超音波による距離センサが届いたのでテスト。HC-SR04という、パララックス社の「PING))) Ultrasonic Distance Sensor」のパチもん?みたいな奴。ググろと1個150円で手に入れた人もいますが、自分はAmazonで790円。これでも半値。
まず5VのArduino UNOにLCDシールドを載せたものでテスト。サクッと動作確認完了。
つづいて、ブレッドボード上に3.3V動作のArduinoProMiniを使ってのテスト。5V電源のセンサへの供給は3.3VをHT7750で昇圧して供給。
まずは、シャープの赤外線距離センサGP2Y0A21YKにてテスト。事前にそれほど出力シグナルの電圧は5Vフルとかは出なさそうなことを検索して得ていたので強行。3.3VArduinoのADCのぎりぎりのとこまでしか出ない様だ。直結でも使えそう。
つぎはHC-SR04のテスト。以下の画像の感じで。
センサからの出力側は分圧抵抗で下げておいて、センサへの入力は5Vレベルのロジックでも3.3Vの信号はHIGHと認識するであろうという期待から直結。で、動作確認できました。どちらも消費電力が同じようなのでどっちを採用しても良いですね。HC-SR04はオシロで出力の最大値を見ておいたほうがいいかな。
リモコンのソフトウエア面は、小改造。黄色いボタンに機能を割り当てました。自律モードへの導入および解除。
クロウラー側はまだいろいろ検討ちゅうなので、とりあえず自律モードにはいったら2秒間時計と逆回り、自律モードからぬけたら2秒間時計回りをするようにしてみた。
今後は、距離センサをつかった障害物避け。あと、方位センサで方位を意識した動作(特定角度を維持しつつ床を塗りつぶす的な)を検討。
そして、リモコン側は使いやすさを考慮してゲームコントローラに切り替えます。
ただし脳みそ部分は、
- Arduino&USBホストシールド
- PCでProcessingにてjavaのgame API
- PCでC# & DirectInputで
のどれにしようかね?あえて三番目?
というか、方位センサと距離センサで部屋の地図作れるかも。塗りつぶし方式ですけど。それをProcessingでリアルタイムに可視化すると。だと二番目にしておこうかな。そもそもC#にする必要性は全くないし。職場もjava系になりそうであるのでリハビリとして。どんな言語でもライブラリとかフレームワークとか決まってるのならそれで作るだけですし。フレームワークや言語の好き嫌いはありますが。