ライントレーサーや迷路探索ロボットではありません。ただひたすら障害物を避けながら走るロボットカーです。
ただ小さく作りたかったので、こんな格好にになりました。障害物センサは有名なHC-SR04超音波センサ。ちょうどロボットの顔みたいな感じになりました。これをマイクロサーボで首振りさせています
駆動はマイクロサーボを改造した回転モーター、コントローラーはArduino pro mini(5V/16MHz)です。
電源はLI-POバッテリなので、プリント基板上には、3.7V→5Vの昇圧回路も搭載しています。
アナログサーボモーターは、指示をパルス(の幅)で与える。サーボ側はパルス幅を電圧に変換する。また回転軸に取り付けたポテンショメーターで、現在の回転角が電圧として得られる。
そして、指示された回転角(電圧)と現在の回転角(電圧)を比較して、同じになる位置へモーターを回すのだ。
このポテンショメーターの信号を誤魔化して、いつも0度だと返すようにすれば、与えるパルス幅で、回転方向や回転速度を自由に制御できるようになるわけだ。
そのための改造ポイントは2カ所。
まずは、ギヤを分解して、180度以上動かないようにしているストッパーを切ること。
そして、ポテンショの信号線を切断。その代わりに固定抵抗を取り付けることだ。
サーボモーターはこれまた良く使われるマイクロサーボSG90を使用。ポテンショは5KΩだ。
そこで、ポテンショが接続されていた所に、2.5KΩの抵抗を2つつければ、丁度中間の位置(=0度)と、サーボのコントローラを騙すことができる。
実際は2.5KΩが無いので、2.4KΩを使用した。WEBの情報では、2〜3KΩなら良さそうだ。ただし、分圧値が1/2にならなくてはいけないので、2つの抵抗は同じ値のものが必要になる。
手元に2.4KΩ5%のものが10個ほどあったので、テスターで測ってみたが、すべて2.42KΩだった。そこでこれを2個採用。サーボの基盤のポテンショへのケーブルが付けられていたところに丁度収まった。
最初は、DC-DCコンバーターの容量が足らないのかと、ダイオードを交換したり、インダクタの抵抗を下げるべく、トロイダルコアに電線を巻いてインダクタを自作したりしてみた。
お陰でトロイダルコアの使い方も勉強できた(^_^)
数百μH程度までのインダクタなら、簡単に巻けることも分かったのが収穫ではあった。
電源ラインの配線を強化したり色々やっていて、分かったのは、「モータの電源と制御の電源を一緒にしてはいけない。」と、言う基本的なことだった。SG90の仕様書では、電圧は4.8〜5.0Vとなっていたので、「DC-DCコンバーターをもう一つ載せなくてはいけないのか。」と、ガッカリしたのだが、念のためと、サーボ電源だけを直接バッテリーに繋いでみたら、電源ラインのノイズは消え、モーターも順調に動くようになった。
写真のようにごついインダクタになってしまった。
モーターの電源はこのコンバータを通さなくなったので、普通のマイクロインダクタで十分なのだが、やってしまったので、トロイダルコアに巻いた自作インダクタのままにしてある。
これで約100μHだ…たったの5ターン!
(このコアにこの電線で1ターン当たり20μH強になる。コアに電線を等した状態を、インダクタンスメーターで測っておくと、作るインダクタの巻数はすぐに分かる)
CPUにArduino pro miniを使った。
最初はこの部分にケースを付けて、その上にバッテリーボックスを、考えていた。pro miniには細ピンのピンヘッダーを付け、基板は丸ピンソケットで受けることとして高さを低めに抑えた。電池を下に入れてしまったので(しかもタイラップで固定!)あまり、高さを抑える意味も無くなってしまったのだが。
このロボットに搭載されているバッテリーは、実はM社の電動工具用のバッテリーに入っていたもの。しばらく使って、使えなくなったので分解してみたら、セルが8個入っていて、2個ずつ並列になったものが4組直列になっていた。勿論制御用のCPUも…そのセルをバラバラにして1つずつ調べたら、5つ程はまだ使えそうだった。それで、今回活躍して貰うことになった。
このバッテリー、正式には「リチウムイオンポリマー電池」と言う。
小型で強力だ。
ただしリチウムイオン電池はエネルギー密度が高いので、使い方を誤ると危険。あのボーイング社でもB-787の初期に随分発火したりトラブったのでご存じの方も多いだろう。
充電は、1Cで行う。専用の充電器とバッテリーのセットなら急速充電も良いだろうが、自作の場合は時間が掛かっても「1C充電」を守りたい。
USBボートに繋いで使える超小型の充電器は、SpakFun等から出ている。