こんにちは。
今回は、群ロボットの動作用に赤外線通信の試行をしてみたのと、それを踏まえて、赤外線通信素子をどう群ロボットに設置するか検討したことについてです。
↓ この辺の記事の続き。
赤外線通信
もともと予想はしていましたが、ライブラリの繁栄とありがたいブログ記事のおかげで苦労すること無く動作を確認できました。 私の群ロボットはマイコンにESP32を用いており、この ↓ の記事通りのプログラムで即座に動作しました。
試行に使用した部品は、秋月で適当に買った赤外線リモコン受信モジュールです。このモジュールは、内部にフォトダイオードとアンプ、フィルタを内蔵しているため、面倒くさい回路構築をすることなく容易に赤外線信号を受信できます。
回路はクソ雑で、直接電源と信号ピンをつなぐだけにしてみました。送信用のLEDについては信号ピンから抵抗とLEDを挟んだだけです。
以下が動作チェック時の動画ですが、かなり高感度であることがわかると思います。 youtu.be
送信用のLEDと受信用のモジュール間を手で覆ったり、メモ帳を挟んだり、素子同士をあらぬ方向に向けたりしても受信成功(Protocolが"NEC")しています。通信失敗のUNKNOWNはほぼありません。
これは群ロボットを実装する上では、近隣以外のユニットに通信が届いてノイズとなる可能性があるので、感度を下げたいところです。
低感度にしたい
どの程度、感度を下げる必要があるかは実際に群ロボットを動かしてみなけれ分かりませんが、ちょっと感度を低下させる方法を見つけました。それはノイズに強いらしい下記の回路に組み直すことです。
きっちり一致する値のがなかったので、下記の部品を使用。
- R1 : 100Ω
- R2 : 47kΩ
- C1 : 0.1 uF
以下がノイズに強い(?)回路の試行動画です。 youtu.be
この回路では、手でLEDを覆うことでは受信を妨害できませんでしたが、メモ帳を地面にしっかりつけることで受信を妨害できました。あとは抵抗の値を調節したら、実環境での実験時も何とかなりそうです。
群ロボットでの赤外線通信素子取り付け方向
赤外線通信がかなりパワフルなことがわかったので、実際の群ロボットでは遠くの赤外線信号を、ノイズとして取得しないようにしたいと考えています。
そこで、"kilobot"という群ロボットに従って、赤外線の送信機と受信機の取り付け位置・方向は画像の通りにしたいと思います。下側に反射させることにより、遠くのユニットまで赤外線が届くのをある程度阻止できるはずです(拡散反射がどう影響するか気になりますが)。
おわりに
技術系の話は開発と記事化を含め、1日でするものじゃないですねぇ。本当はプロトコルの検討までしたかったんですが、要件を満たすものが思いつかず記事化を見送ってしまいました。
クオリティの低い記事ばかりの状況になるのなら、連投チャレンジなんて意味がないものになりそうです。また1週間、引き締めて頑張っていこうと思います。