ArduinoとBluetoothモジュールでリモコンを作ってみた
- 電子工作
今週のブログは高橋知成の担当です。今回は今までブログで書いてきた知識を応用して「スライド用リモコン」を自作してみました。
近頃プレゼンテーションの機会があり、その時に使えるスライド用リモコンを作ってみたいなぁという動機でつくりました。試行錯誤しながらの作成でした。。。
まだまだ勉強しなければなりませんが「作りたいものを1つ形にする」ことができたのでよかったです。間違った解釈をしているかもしれません。その時はご指摘いただけると幸いです。
完成したもの
スイッチが押されるとBluetoothモジュールから信号が送られる。その信号をMac側で受け取りスライドのページを進めることができるものです。またスマホ用のモバイルバッテリーを使用してリモコン化しています。
主に使用したもの
- Arduino UNO
- Bluetoothモジュール RN42-XVP-I/RM(RN42評価キットがあるならばそちらをおすすめ)
- Xbee用2.54mmピッチ変換基盤(RN42評価キットの場合は不要)
- タクトスイッチ
制作
仕組みとしては、スイッチが押された時にキーボードの矢印キーが押されたものと同じ信号をRN42からMacに送ることでスライドをコントロールします。
制作手順
- RN42とMacとの間でシリアル通信をする
- RN42をMac側からキーボードと認識してもらえるようにする
- スイッチに信号を割り当ててスライドを操作する
RN42とMacとの間でシリアル通信をする
まずはArduinoとRN42を接続します。そしてArduinoIDEのシリアルモニタからRN42経由で信号を送り、Mac側からその信号を確認します。
このときArduinoとMacとのやりとりでは、シリアル通信を使うことで文字列などのやりとりができます。
RN42のデータシートを見ながらArduinoと接続します。この時RN42-XVP-I/RMはピッチ(ピンの幅)が2mmなのでそのままではブレッドボードに接続することができませんでした。(写真左側)
なのでXbee用2.54mmピッチ変換基盤を用いてピッチを変換しています。(写真右側)
簡略化のために今回は抵抗を表記していませんが、ArduinoからRN42へ信号を送る回路(上の回路図では赤色)は抵抗を用いて分圧(電圧を下げる)をしています。
TXDは信号送信/RXDは信号受信を表しています。
ここで注意しなければならないのは、RN42への電源は必ず3.3Vをつないでください。5Vを流してしまうと確実にRN42が壊れてしまうので。
確認手順
以下のソースコードをArduinoに書き込む
MacとRN42をペアリングする
ターミナルなどを使って以下のコマンドを実行。
% cd /dev/
% ls tty*
// ここでtty.RNBT-37C2-RNI-SPPの様なものが出てくるのでこれを以下のコマンドで使用
% screen tty.RNBT-37C2-RNI-SPP
そして、ArduinoIDEのシリアルモニタ(9600bps)で文字を入力するとPC側から確認することができます。
RN42をMac側からキーボードと認識してもらえるようにする
次にArduinoをキーボードとして認識してもらえるようにします。それをHID化と呼ぶそうです。(まだここは理解しきれていません)
RN42には様々な設定変更などをすることができるコマンドが用意されています。それをシリアルモニタを使って変更するためのコードを追加します。
そしてArduinoに上のコードを書き込んだ後にシリアルモニターから以下の文字を一文字づつ送ります。そうすることでRN42がキーボードとしてMacが認識をしてくれます。
s -> d -> m -> p -> k -> d -> r
やっていることはRN42を設定変更モードに切り替えてキーボードに設定を変更し再起動をしています。 自分の場合は、RN42本体のLEDの点滅速度が設定変更時には変化しました。
スイッチに信号を割り当ててスライドを操作する
最後にスイッチが押された時に、RN42からMacへ「上矢印キー」が押された時の信号を送るようにコードを追加します。以下のコード表を見てコード(29行目あたり)を変えると「上矢印キー」以外にも対応できます。
※ 簡略化のために抵抗を省略しています。
まとめ
2ヶ月ほど継続的に電子工作を続けてきて知識はまだまだですが、電子工作独特の「ググり力」が身についてきたなぁと思っています。また、せっかくのスイッチなので3Dプリンターを使ってケースを作りたいと考えたりしていますが、今月はここまでということにします。
それではまた来月に。
完成後記
もしRN42評価キットが手に入るのであればそちらの使用をお勧めします。
実は、はじめはRN42評価キットを使用していたのですが電圧5Vで電源を供給してしまったためにRN42評価キットを破壊してしまいました(泣)仕方なくRN-42を秋葉原の秋月電気に買いに行ったところ、評価キットは品切れとのこと。買ったRN42-XVP-I/RMはピッチが2mmであったためにピッチを変換しなければなりませんでした。