センサー一覧

クロウラーに距離センサを仮付け

クロウラー先頭の部分に超音波レンジセンサ

 マイクロブレッドボードに、HT7750A使用の5V昇圧回路とレンジセンサからの5V信号を3.3Vに落とす分圧抵抗を設置して、テスト。
 まぁ、なんというか、まっすぐ走らなくて曲がってしまうがな。左のモータの方が速い様です。これは方位センサを用いてモータのPWM値をリアルタイム調整する事で何とかしたいと思います。
 レンジセンサも意外と間違いデータが発生するので、n回の値を取らないと旨く止まりませんでした。レンジセンサも障害物との距離が遠いと1回の測定に時間がかかる。超音波っても音だからか。近いとエコーがすぐ帰ってくるので速い。

 実際に作って動かしてみると色々と改良ネタが出てきますね。


距離センサーのテスト

 超音波による距離センサが届いたのでテスト。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のテスト。以下の画像の感じで。
DSC_0471

 センサからの出力側は分圧抵抗で下げておいて、センサへの入力は5Vレベルのロジックでも3.3Vの信号はHIGHと認識するであろうという期待から直結。で、動作確認できました。どちらも消費電力が同じようなのでどっちを採用しても良いですね。HC-SR04はオシロで出力の最大値を見ておいたほうがいいかな。

 リモコンのソフトウエア面は、小改造。黄色いボタンに機能を割り当てました。自律モードへの導入および解除。
クロウラー側はまだいろいろ検討ちゅうなので、とりあえず自律モードにはいったら2秒間時計と逆回り、自律モードからぬけたら2秒間時計回りをするようにしてみた。
 今後は、距離センサをつかった障害物避け。あと、方位センサで方位を意識した動作(特定角度を維持しつつ床を塗りつぶす的な)を検討。

 そして、リモコン側は使いやすさを考慮してゲームコントローラに切り替えます。
 ただし脳みそ部分は、

  1. Arduino&USBホストシールド
  2. PCでProcessingにてjavaのgame API
  3. PCでC# & DirectInputで

のどれにしようかね?あえて三番目?

 というか、方位センサと距離センサで部屋の地図作れるかも。塗りつぶし方式ですけど。それをProcessingでリアルタイムに可視化すると。だと二番目にしておこうかな。そもそもC#にする必要性は全くないし。職場もjava系になりそうであるのでリハビリとして。どんな言語でもライブラリとかフレームワークとか決まってるのならそれで作るだけですし。フレームワークや言語の好き嫌いはありますが。


様子見中の雨センサ

chart20130607

 今日の電圧グラフは↑こんなん。横軸は現在(19:30)からの過去時間(hour)。午前中の雨も検知してたのでひとまずOKかな。今晩、電源電圧が急降下しなければ。しかしこの現象の原因が不明だ。朝10:00くらいに電圧が復活してきて、夜中0:00くらいに下がっていく。時間的に太陽電池の発電タイムとは合わないのですよね。定期的にリチウムイオン電池をリフレッシュしないといかんかもね。


雨センサのバッテリーが・・・

20130606_01

 雨センサの電源。
 このところ、充電はしているようなのだが、夜半に電圧が2.5V程度まで落ちて、朝に太陽電池が復活してくると3.1Vまで戻るようなデータがとれている。バッテリーが死んだか?というと夜でも日が変わる前は動いているので完全に死んでいるわけでもないみたい。
 別のリチウムイオン電池に取り替えようとしたのだけど、そっちこそ過放電で死んでた。2年間使ってなかったからなぁ。スイッチサイエンスさんで替えの同じタイプのリチウムイオン電池を物色してみたんだけど、どうも端子が2mmのJSTになっている様で、家のは2.54mmのJSTっぽい。付け替えてもいいのだけどJSTの2.54mmの2ピンが手持ちにない。
 今まで使っていた奴を再充電してみて様子見しよう。ダメそうなら、ベランダ柵までUSB5Vのケーブルを引っ張るかね。カメラ使ってた時にベランダにモールを設置してあるのでそこの中の這わせれば電源は渡せないことはない。でも、有線でつなぐなら信号線も無線のXBeeでなく有線にしてもよいかもね。
 梅雨の時期前なのですがちょっと様子見です。雨センサと風センサはどうも継続的実用が素人レベルでは難しいですね。


アルシオーノの二階作成中

 20130604_01

 サイズ的にアルシオーノと合うのでサンハヤトのArduino用ユニバーサル基板 UB-ARD03-Pを使用。この基板GNDラインとVCCラインがあって便利。付属のピンソケットはモータドライバ基板のソケットとかUSB-シリアルアダプタのソケットに使用して、一階との接続は普通のピンヘッダにしてみた。今日中に完成する事も可能ではあるが、余裕を持って明日以降に持ち越しです。一階も二回もL字ピンヘッダが多いですな。


ちょっとプログラム(アルシオーノ&クロウラー編)

 本日は、ハードウエアではなくソフトウエアを作成。

 インセクトの時のリモコンをベースに、コマンドデータを送信するようにした。

 2byteのコマンド。1byte目は下位4bit利用で左右のモータのON/OFF。モータードライバを介しているので、一つのモータに対して正転と逆転を同時にONに指定することができる。機能的にはブレーキの扱い。ただ、キャタピラ車なのでブレーキにあまり意味は無い。2byte目はモータの回転速度を制御するPWMの0-255の値。ただ255段階も細かくする必要もないので、16段階にして、モータ制御のコマンドと合わせて1byteにしようと思っている。ビットにしたほうが、ビット演算とシフト演算で短くコードを書けるので楽だね。
 で、モータ制御の操作スイッチに変化がない間は、方位センサーの値を要求するコマンドを送っている。

 つづいてクロウラー側。まだ、二階部分の基板は作ってないので、ブレッドボード上でテスト。。
 モータ制御コマンドを受け取ったらそれに対応。
 方位センサーの値の要求コマンドを受け取ったらそれに対応。
 なんのことはなく完成。

 ソフト部分ができてきたので、明日はハンダ付けの日かな?