profile-photo

マイクロキャット3号

超音波センサで障害物を避けながら走行するロボットカー


ライントレーサーや迷路探索ロボットではありません。ただひたすら障害物を避けながら走るロボットカーです。
ただ小さく作りたかったので、こんな格好にになりました。障害物センサは有名なHC-SR04超音波センサ。ちょうどロボットの顔みたいな感じになりました。これをマイクロサーボで首振りさせています
駆動はマイクロサーボを改造した回転モーター、コントローラーはArduino pro mini(5V/16MHz)です。
電源はLI-POバッテリなので、プリント基板上には、3.7V→5Vの昇圧回路も搭載しています。

 

001

先ずは駆動方法

小型化を考えるとどうしても駆動方法で悩むことになる。
1号機はタミヤのダブルギヤボックスをユニバーサルプレートに搭載。UNOとモーターシールドで駆動したので、かなり大型になってしまった。
2号機は、携帯の振動モーターのシャフトドライブで小さくできたのだが、電源に問題。そのサイズに見合った電池が無くて、無理矢理Li-Po電池を貼り付けて走らせた。
その時WEBを検索していてサーボモーターを回転モーターに改造している方々がいらっしゃることに気付き、マネをして改造してみた。
最初は耐久性とか心配だったが、なかなか小さくて、制御もデジタル1bitと、使いやすいことを知った。

002

アナログサーボモーターは、指示をパルス(の幅)で与える。サーボ側はパルス幅を電圧に変換する。また回転軸に取り付けたポテンショメーターで、現在の回転角が電圧として得られる。
そして、指示された回転角(電圧)と現在の回転角(電圧)を比較して、同じになる位置へモーターを回すのだ。
このポテンショメーターの信号を誤魔化して、いつも0度だと返すようにすれば、与えるパルス幅で、回転方向や回転速度を自由に制御できるようになるわけだ。
そのための改造ポイントは2カ所。
まずは、ギヤを分解して、180度以上動かないようにしているストッパーを切ること。
そして、ポテンショの信号線を切断。その代わりに固定抵抗を取り付けることだ。

003

サーボモーターはこれまた良く使われるマイクロサーボSG90を使用。ポテンショは5KΩだ。
そこで、ポテンショが接続されていた所に、2.5KΩの抵抗を2つつければ、丁度中間の位置(=0度)と、サーボのコントローラを騙すことができる。
実際は2.5KΩが無いので、2.4KΩを使用した。WEBの情報では、2〜3KΩなら良さそうだ。ただし、分圧値が1/2にならなくてはいけないので、2つの抵抗は同じ値のものが必要になる。
手元に2.4KΩ5%のものが10個ほどあったので、テスターで測ってみたが、すべて2.42KΩだった。そこでこれを2個採用。サーボの基盤のポテンショへのケーブルが付けられていたところに丁度収まった。

004

最初の罠は電源

サーボモーターの回転モーター化は何とかなった。まずは左右2軸分を改造。同じ抵抗なのに0度(=停止)のパルス数が微妙に異なったが、機械の個性なのだろう。
そして、電源とコネクタをユニバーサル基板に組んで動かしてみた。電源はハンドドリル用のダメになったバッテリーパックを分解して取り出したLi-Po電池の元気そうな1セル。
(Li-Po電池の分解は危険なので、本当はやってはいけない!)。
3.7Vなので、MC34063Aを使った昇圧回路で5Vにステップアップした。しかし、単体なら動くのに、全体を組み込むとまともに動かない。シンクロスコープで覗いてみると、電源がモーターのパルスに引っ張られてリセットが頻繁に掛かっていることが分かった。
(写真の波形は上がサーボ指令パルス、下が電源ライン。)
原因が分からなくてしばらく悩んだ。

005

最初は、DC-DCコンバーターの容量が足らないのかと、ダイオードを交換したり、インダクタの抵抗を下げるべく、トロイダルコアに電線を巻いてインダクタを自作したりしてみた。
お陰でトロイダルコアの使い方も勉強できた(^_^)
数百μH程度までのインダクタなら、簡単に巻けることも分かったのが収穫ではあった。
電源ラインの配線を強化したり色々やっていて、分かったのは、「モータの電源と制御の電源を一緒にしてはいけない。」と、言う基本的なことだった。SG90の仕様書では、電圧は4.8〜5.0Vとなっていたので、「DC-DCコンバーターをもう一つ載せなくてはいけないのか。」と、ガッカリしたのだが、念のためと、サーボ電源だけを直接バッテリーに繋いでみたら、電源ラインのノイズは消え、モーターも順調に動くようになった。

006

写真のようにごついインダクタになってしまった。
モーターの電源はこのコンバータを通さなくなったので、普通のマイクロインダクタで十分なのだが、やってしまったので、トロイダルコアに巻いた自作インダクタのままにしてある。
これで約100μHだ…たったの5ターン!
(このコアにこの電線で1ターン当たり20μH強になる。コアに電線を等した状態を、インダクタンスメーターで測っておくと、作るインダクタの巻数はすぐに分かる)

007

次の課題は機械的な組み立て

直流モーターにギヤの組み合わせとすると機械工作が結構(僕には)大変なのだが、駆動部にサーボモーターを使ったので、随分簡単になった。
シャーシはアクリルの板一枚(1mmを使ったがちょっと薄かった。やはり2mmは欲しいところだ)
底にアクリル棒をガイドとして接着し,穴を空けてタイラップで縛っただけ。バッテリーも受け金具とか考えるのも面倒なので固定してしまった。
小さいので、充電器の所へロボット毎持って行けば済む。
超音波センサとサーボ(こちらは改造していない本来のサーボ)の取り付けはアクリルのL字板を加工して小さいネジで無理矢理サーボホーンに取り付けた。
最後の予想外の出来事は超音波センサを接続するケーブル。ブレッドボード用のメスーメスケーブルを使ったのだが、以外に硬くてヘッドの回転にストレスになってしまったこと。長いのでそのまま空中に出して何とか動くようになった。

008

CPUにArduino pro miniを使った。
最初はこの部分にケースを付けて、その上にバッテリーボックスを、考えていた。pro miniには細ピンのピンヘッダーを付け、基板は丸ピンソケットで受けることとして高さを低めに抑えた。電池を下に入れてしまったので(しかもタイラップで固定!)あまり、高さを抑える意味も無くなってしまったのだが。

009

やっと走り出した

そうそう、前輪はタミヤのボールキャスターだった。
これは走る時ちょっと煩いが、高さを色々選べるので便利だ。

010

サーボモータのケーブルは結構長い。コネクタが付いているので、簡単に切ってしまうことができないので厄介だ。
センサのケーブルやモーターのケーブルが賑やかに這い回ってしまった。

011

HC-SR04は顔に使うとなかなか愛嬌があって良い。次はアクリル板で顔の輪郭も何とかしたいと思う。



Li-Poバッテリー

このロボットに搭載されているバッテリーは、実はM社の電動工具用のバッテリーに入っていたもの。しばらく使って、使えなくなったので分解してみたら、セルが8個入っていて、2個ずつ並列になったものが4組直列になっていた。勿論制御用のCPUも…そのセルをバラバラにして1つずつ調べたら、5つ程はまだ使えそうだった。それで、今回活躍して貰うことになった。
このバッテリー、正式には「リチウムイオンポリマー電池」と言う。 小型で強力だ。
ただしリチウムイオン電池はエネルギー密度が高いので、使い方を誤ると危険。あのボーイング社でもB-787の初期に随分発火したりトラブったのでご存じの方も多いだろう。
充電は、1Cで行う。専用の充電器とバッテリーのセットなら急速充電も良いだろうが、自作の場合は時間が掛かっても「1C充電」を守りたい。
USBボートに繋いで使える超小型の充電器は、SpakFun等から出ている。


参考までにハードウェア・ソフトウェアの情報を。ただしこれらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。