Hackable Portについて
Hackable portとは?

もうひとつの、今まで公開されていなかったICSPポートを紹介します。

Hackable ICSPポートを始めよう



UnlimitedHandのICSPポートでLEDを光らせる
STEP 1. 用意するもの
STEP 2. ハードウェア接続




STEP 3. プログラム記入
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 11 as an output.
pinMode(11, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(11, HIGH);
// turn the LED on (HIGH is the voltage level) delay(1000);
// wait for a second digitalWrite(11, LOW);
// turn the LED off by making the voltage LOW delay(1000);
// wait for a second }
|




UnlimitedHand リモートコントローラ
はじめに
1. 用意するもの
2. 回路図
3. LEDソケットの作成と接続
4. UnlimitedHandライブラリのインストール
5. プログラムの書き込み
6. 動作確認
7. さらに学習したい人は
はじめに


前回は, UnlimitedHandの拡張ポートを使って, LEDの点滅制御(Lチカ)を行いました。
今月号から, この拡張ポートを使った具体的な活用事例を紹介していきます。今回は, 赤外線LEDを使い, ジェスチャで操作するリモコンを製作します。
リモコンの原理

赤外線は肉眼では見ることができませんが, リモコンのスイッチを押すと赤外線LEDが高速で点滅します。
家電側にはこの点滅のパターンを受信する素子が使われており, 点滅のパターンに応じて電源や音量, チャンネルといった様々な機能を操作することができます。
点滅のパターンはNECフォーマット, 家製協フォーマット, SONYフォーマットなどがあり, 各社が製品毎に独自の規格を採用しています。
UnlimitedHandで実現するには

UnlimitedHandはArduino AtHeartの認証を得た「Arduino公式ハードウエア」であり, 本体裏面の拡張ポートからVCC, GND, RST, D11, D12, D13ピンを使うことができます。
Arduinoにはデジタル制御の基本関数としてdigitalWrite()関数とdelayMicroseconds()関数が用意されており,
これを使って赤外線LEDの点滅制御をすることで, Arduinoを使ったリモコンの製作が可能です。
1. 用意するもの
- - UnlimitedHandとUSBケーブル
- - 赤外線LED(TLN110(F))
- - ピンヘッダ(2mm)
- - 被覆導線
- - 抵抗(47Ω)
2. 回路図
今回の回路図は下図のようになっています。
3. LEDソケットの作製と接続

回路図を実現するために, 半田ごてを用いて, 写真のようなLEDソケットを作製しましょう。
作製したLEDソケットをUnlimitedHandのGND, D11に接続し, 先端にLEDを接続します。LEDには向きがあるので, 注意しましょう。
4. UnlimitedHandライブラリのインストール
今回の製作記事に合わせて, UnlimitedHandの内部プログラムを更新する必要があります。
Arduino用のUnlimitedHandライブラリをダウンロードしてください。
ライブラリのインストール方法や使い方は、こちらに解説されています。
5. プログラムの書き込み

UnlimitedHandとパソコンを接続し、Arduino IDEを使ってプログラムを書き込みます。
「ファイル」→「スケッチの例」→「UH」の中にある, 「remoteControl」を開き, 書き込んでください。
プログラムには, SHARP製AQUOSの電源ON/OFFを行う点滅パターンがセットされています。
6. 動作確認

プログラムの書き込みが完了したら, 下記の手順で動作確認をしましょう。
- 1. 赤外線LEDは肉眼で確認できないため, まずは赤色LEDをLEDソケットに装着します。
- 2. UnlimitedHandを腕に装着し, 「手を握る」動作と「手を開く」動作を繰り返します。手を握った時に, 赤色LEDが点滅することを確認してください。
- 3. 赤色LEDを赤外線LEDに交換し, 腕を家電に向けます。
- 4. 手を握り, 家電がリモコン操作できれば完成です。

7. さらに学習したい人は
今回のプログラムには, 点滅パターンとしてSHARP製AQUOSの電源ON/OFFがセットされています。
お手持ちの家電に合わせて, パターンを変えてみてください。
また, 今回は一つのリモコン機能を一つのジェスチャに割り当てましたが, 複数のリモコン機能を複数のジェスチャに割り当てるといった応用にも挑戦してみてください。
リモートレシーバ
はじめに
1. 用意するもの
2. 回路図
3. ブレッドボードによる回路作製
4. UnlimitedHandライブラリのインストール
5. プログラムの書き込み
6. 動作確認
7. さらに学習したい人は
はじめに
前回は, UnlimitedHandの拡張ポートを使って, ジェスチャに応じてテレビを制御できる, ジェスチャリモコンを製作しました。
今回からはセンサを用いて, 外界の情報を読み取る方法を紹介していきます。
今月号では, リモコンの赤外線信号を読み取る方法を紹介します。
今回の方法を使えば, 先月号の製作記事と合わせて, 「学習ジェスチャリモコン」を製作することができます。

UnlimitedHandによる学習ジェスチャリモコン
いろいろなセンサ
センサとは, 外界の情報を読み取る素子の総称で,
温度センサ, 照度センサ, 湿度センサ, 加速度センサなど, 様々なセンサが使われています。
今回はテレビやエアコンといった家電のリモコン信号受信で使われる, 赤外線センサを使用します。
赤外線センサを用いれば, 肉眼で見ることができないリモコンの点滅パターンをセンシングすることができます。

家電に使われている赤外線センサ
赤外線受信モジュール
赤外線センサは, モジュール化されたものが電子部品として販売されています。 電子部品屋さんを探せば, 色々な赤外線センサモジュールを入手することができます。

色々な赤外線受信モジュール
UnlimitedHandで実現するには
UnlimitedHandはArduino AtHeartの認証を得た「Arduino公式ハードウエア」であり, 本体裏面の拡張ポートからVCC, GND, RST, D11, D12, D13ピンを使うことができます。

UnlimitedHandの拡張ポート Arduinoにはデジタル制御の基本関数としてdigitalWrite()関数とdelayMicroseconds()関数が用意されており,
これを使って赤外線LEDの点滅制御をすることで, Arduinoを使ったリモコン信号受信機の製作が可能です。
1. 用意するもの
- - UnlimitedHandとUSBケーブル
- - 赤外線受信モジュール(PL-IRM1261-C438)
- - ピンヘッダ(2mm)
- - ブレッドボード
- - ジャンパケーブル
2. 回路図
今回の回路図は下図のようになっています。モジュール化されているため, VCC, GNDとD12の3本を直接接続するだけで使用可能です。
(精密な回路を作る際は, ノイズが入らないよう, データシートを参考にRC回路を追加してください)

3. ブレッドボードによる回路作製

回路図を実現するために, ブレッドボードとジャンパケーブルを用いて, 下図のような回路を作製しましょう。
4. UnlimitedHandライブラリのインストール
今回の製作記事に合わせて, UnlimitedHandの内部プログラムを更新する必要があります。
ログイン後、Arduino用のUnlimitedHandライブラリをダウンロードしてください。
ライブラリのインストール方法や使い方は, こちらに解説されています。
5. プログラムの書き込み
UnlimitedHandとパソコンを接続し, Arduino IDEを使ってプログラムを書き込みます。
「ファイル」→「スケッチの例」→「UH」の中にある, 「remoteReceive」を開き, 書き込んでください。
プログラムには, 受信した赤外線の点滅パターンをシリアルモニタに表示する機能があります。
書き込みが終わったら,右端のアイコンをクリックして, シリアルモニタを起動しましょう。

6. 動作確認
プログラムの書き込みが完了したら, 下記の手順で動作確認をしましょう。
- 1. シリアルモニタを起動します。
- 2. パターンを読み取りたいリモコンを用意し, 赤外線受信モジュールに向けてボタンを押します。
プログラムが認識するまで, 数秒間押し続けてください。 - 3. シリアルモニタに文字列が表示されたら, 受信成功です。

リモコン発光パターン

受信したリモコンの点滅パターン
7. さらに学習したい人は
4月号の記事と合わせて, 「remoteControl」に点滅パターンをプログラムすれば, お好みの家電を操作できます。
また, 今回は受信のみを紹介しましたが, 受信, 送信を両方行えるプログラムの作製も可能です。
UnlimitedHandの加速度ジャイロセンサを使って, 「腕を下げている時は受信」「腕を上げて, ジェスチャを行った時は送信」といった機能も実現できます。ぜひ挑戦してみてください。