さーて,今回が一番ラジコンラジコンした記事なのですが,ラジコンと名乗るからには無線操作は必須です。
無線はラジコンをラジコンたらしめるアイデンティティです。
…とは言ったものの電波って目で見えませんし,Wifi や Bluetooth,Xbee,ガチのラジコン(無線)と,色々あって何から手を付ければ良いかサッパリな方も多いかと思います。
何から手を付ければいいか分からない人はテレビのリモコンを使おう*1

いわゆる赤外線通信。市販の屋内用ラジコンヘリとかがコレです。前述のテレビやエアコンのリモコン等にも使われてる通信方法です。この先端のLEDが赤外線LED。

この赤外線通信は,単純に赤外線を特定のパターンでONとOFFしてるだけの単純な通信方式なので,解析が非常に容易です。
作戦
作戦はこうです。まずテレビのリモコンを Arduino で解析します。
そししてその解析したデータをもとに 「リモコンの 2番 がの信号を受信したら前進〜」とか言った感じのプログラムを Arduino に描いてコントロールします。
1. テレビの赤外線リモコンの信号を解析する

テレビのリモコンをラジコンのコントローラにするためには,リモコンの信号を解析しなければいけません。これらは,Arduino と 赤外線受信モジュール だけで簡単に解析することが出来ます。
肝心のその解析方法や具体的な Arduino のプログラムですがググったら色々出てくるので本稿では割愛。下記リンクに載ってますのでそちらを参考にしてください。
2,000円以下で始める!Arduinoを使い赤外線パターンを解析する方法 – TONGARISM.COM
http://www.geocities.jp/zattouka/GarageHouse/micon/InfraredCOM/InfraredCOM2.htm
Arduinoでパーツやセンサーを使ってみよう~赤外線リモコン(前編) | Device Plus - デバプラ
そして先の方法で得た「リモコンの1番のボタンは”49”」「2番は”50”」とかをメモっときます。
もちろん,dボタンとかメニュー選択用の十字キーも解析できます。
2. 解析した信号をもとにプログラムを描く
解析まで終わってるんだから,あとは Arduino に,「2番のボタン押されたらモーターが回るー」みたいなプログラム書けばOKです。
www.youtube.com
手元にモータがないなら,こんな感じでLED等で動作確認するのもよしでしょう。
if(2番のボタン押された){ digitalWrite(LED1,HIGH); }
とか
switch (押されたボタン) { case 1番が押された: digitalWrite(LED1,HIGH); break; case 2番が押された: digitalWrite(LED1,LOW); break; case 3番が押された: digitalWrite(LED2,HIGH); break; case 4番が押された: digitalWrite(LED2,LOW); break; }
みたいな感じで,ボタンが押されたのを確認したら光るみたいなプログラムを書いて,赤外線で通信ができるかどうかを確認してみるといいかと。
それでラジコンに実装するときは LED の部分をモータドライバに変更するだけ。と言った感じです。
赤外線通信のデメリット
と,ここまで赤外線通信ならなんでもできるみたいな書き方しましたが,簡単ゆえデメリットもたくさんあります。
- 光が遮られたら通信できない。(テレビの前に物があったらチャンネル変えられないと一緒)
- ついでに野外では太陽光から出る赤外線の影響を受けやすい。(赤外線使ったおもちゃのラジコンヘリの殆どが屋内用だと思います)
- 最近はやりの高級測量用ドローンみたいに,動画をカメラで取った動画をリアルタイムでパソコンに送りながらコントロールなんて重たい処理はまず無理
なので,無線通信の第一歩としてはかなり敷居の低い方法ですが,複雑な処理には向かないようです。
*1:ラジオ(電波)じゃないので厳密には「ラジコン」じゃないけど大目に見てください
