目的
赤外線通信を用いた光線銃を製作します。
必要なデバイスとその使い方を本記事にまとめます。
※赤外線通信のソフト編は次の記事にまとめます。
参考資料
赤外線を遠くて狭い範囲に照射する手段として、100均レンズによる集光方法を参考にしました。 wazalabo.com
M5Stackで可視光LEDを点灯させる回路、プログラムを参考にしました。 qiita.com
準備
M5Stack Basic
ヒットポイントや残弾数を表示したかったので、画面が大きくてケース付きのマイコンモジュールを選びました。 www.switch-science.com可視光LED (OSUB5111A)
完成品には組み込む必要はないのですが、レンズの焦点距離の確認に、可視光の(普通の)LEDを使用します。
指向性特性(照射角度)を赤外線LEDと合わせておきます。 akizukidenshi.com赤外線LED (OSI5FU5111C-40)
高輝度で照射角度が小さい(指向性が強い)仕様のものを選定します。 akizukidenshi.com赤外線受光モジュール (OSRB38C9AA)
秋月電子ではいくつかの赤外線受光モジュールが取り扱われています。
SPS-***シリーズは、M5StackをLiPoバッテリーで運用している際に起動が不安定になりました。(起動電流が大きいため?)
OSRB38C9AAは、M5Stack/M5StickCと組み合わせて動作確認済みです。
akizukidenshi.com赤外線LED電流制限用抵抗 47Ω
抵抗値の計算は、秋月電子の資料が参考になります。
http://akizukidenshi.com/download/led-r-calc.pdf
M5Stackに搭載されているワンチップマイコンESP32では、GPIOから出力できる電流値は40mAと20mAの2通りがあり、GPIO毎に決まっているようです。
できるだけ通信距離を稼ぐため、40mAが出力できるピンを選択し、40mAが出力される抵抗値を選定します。(赤外線LEDの最大定格電流は100mAなので、赤外線LEDのスペックとしてはまだ余裕があります)
ESP32のGPIOの出力は3.3Vです。赤外線LEDの順方向電圧降下は、データシートによると1.35Vです。
よって、(3.3[V]-1.35[V])/40[mA]*1000=48.75Ωとなり、市販されている47Ωを選択しました。凸レンズ
ダイソーで様々なレンズを買って試したところ、とげ抜きルーペのレンズ直径と焦点距離が最適でした。 getnavi.jp
レンズの焦点距離の計測
赤外線LEDは半値角(※1)15度のためそれなりに狭い角度で照射されるのですが、シューティングゲームとしてもう少し難易度を上げたいので、凸レンズでさらに照射角度を小さくします。
原理上は、凸レンズの焦点位置に光源があると、凸レンズを通過した光は平行光線になります。
100均レンズの焦点位置は分からないため、M5Stackで可視光LEDを駆動し、その光を凸レンズに通して光の広がり具合を確認することで、焦点距離を計測します。
※1:光出力がピーク値の半分になる角度。15度の外側にも多少の光が照射される、ということ。
可視光LEDをM5Stackから駆動できるように回路・プログラムを作成します。
M5StackのGPIOはLCDやスピーカーのコントロールと共有されているものがあり、シンプルに使用できるGPIOは限られているため注意が必要です。
今回はGPIO26を使用します。
LEDの電流制限抵抗については、そこそこの明るさで良いので、とりあえず47Ωを入れています。
点灯プログラムについては、m5stackでLチカを参考に作成しました。本記事では詳細は割愛します。
凸レンズと可視光LEDの距離を変えながら照射される光の大きさを計測したところ、焦点距離は53.5mm(レンズの端部で計測)で、1m先で径80mmの集光でした。
計算上の照射角は±1.6度となります。
送信側の製作
レンズと赤外線LEDを図のように配置し、焦点距離を可視光LEDの調整結果に合わせます。
赤外線LEDとM5Stackを図のように接続します。可視光LEDでの接続と同じです。
受信側の製作
赤外線受光モジュールとM5Stackを図のように接続します。M5StackのGPIOと直結できるので簡単です。
この赤外線受光モジュールの電源Vccは2.7~5.5Vまで許容されており、出力される信号OUTPUTの電圧は電源電圧と同じになります。M5Stack(ESP32マイコン)のGPIOに印加できる電圧の上限は3.6Vのため、赤外線受光モジュールの電源Vccに3.3Vを接続します。
赤外線受光モジュールのデータシートにはノイズ対策のRCフィルタ回路が記載されていますが、今回は無くても綺麗な出力波形が出てきました。
まとめ
光線銃のための赤外線通信システムの全体像です。
- 光線銃を実現するためにはレンズによる赤外線の集光が必要です。
- 可視光LEDを使って100均レンズの焦点距離を求めました。
- 赤外線LEDとレンズを焦点距離で配置し、M5Stackに赤外線LEDと受光モジュールを接続しました。
動作の様子はソフト編に記載します。