2011年11月24日木曜日

10.7 クルクル回して動かす3輪車





またもや2番煎じであるが、今度は3輪車をクルクル回すコントローラで動かした。
右側の歯車で右の車輪を動かし、左側の歯車で左の車輪を動かす。

4輪車とは違う動かし方になるが、前進・後退はほぼまっすぐ動かせるし、方向転換やその場で回転も無理なくできる。クネクネ動かすのもできる。

コントローラが安定して動くようにいくつか改良してきた。一番効果があったのはフォトインタラプタの取り付けの高さを微調整したこと。これで安定して希望の位相とデューティーで出力を得られるようになった。ネジにはスプリングワッシャをいれてゆるみにくくしてある。
次は、歯車とフォトインタラプタを取り付けてあるブロックの強度を補強したこと。これで歯車とフォトインタラプタの位置がずれにくくなった。

2011年11月20日日曜日

10.6 クルクル回すコントローラ





ロータリーエンコーダのアプリを考えていて、歯車をクルクル回してコントロールする4輪車のリモコン、というアイデアを思いつき、さっそく作ってみた。

回す歯車はステアリング用と車輪駆動用の2つを用意する。
車輪は歯車をクルクル回す方向と速さで前進・後進と速度を制御することにした。ステアリングは歯車の位置でハンドルの角度を制御するようにしてみたが、車輪とステアリングで歯車の動かし方が違うと操作しにくいことに気がつき、ステアリングもクルクル回して制御するように変更した。

歯車は大きい歯車と小さめの歯車を同じ軸に取り付け、ロータリーエンコーダを大きい歯車に取り付け、小さめの歯車を手で回す。勢いよく回すと2-3秒は回っているので、続けて回せば連続して走ったりハンドルが動いたりする。

赤外線の信号を送信するのに100ms弱の時間がかかり、ステアリングと車輪の信号を送るので、それぞれ100msずつ時間をとることにし、200msの周期で信号を送ることにした。
歯車の回転の変化を検出するのに200msの時間が必要となり、車輪やハンドルの動きの開始や停止に遅れが生じるのが気に入らないが、今回はこのまま使うことにした。

PICの基板は、最初は三輪車のものをはずして使っていたが、最初に作ったPIC18F1320の基板が空いているのを思い出し、こちらに移植した。
赤外線LEDは基板に実装されていないので、別基板に組み込んだ。トランジスタでドライブするようにして、駆動電流も大きくしてある。

動画は2つあり、最初はコントローラの説明で次は4輪車を動かすデモ。

孫の反応
動かし方を説明したら、少し遊んでいたが、興味はないようですぐにやめてしまった。

2011年11月7日月曜日

10.5 ロータリーエンコーダ








これまで歯車の回転数はフォトインタラプタ1つで測定していたが、これだと回転の方向は検出できないので、きちんとしたロータリーエンコーダの取り付けを検討した。少し調べてみたところで、歯車にフォトインタラプタを2ヶ付ければよいことに気がつき、さっそく実験してみた。

ユニバーサル基板にフォトインタラプタをハンダ付けして固定するので、取り付けの間隔は2.54mmの倍数となる。とりあえず一番近くに並ぶように取り付けてみた。
これで2つのフォトインタラプタの出力を見たところ、最初の写真のように位相がほぼ180度ずれており、ロータリーエンコーダとしては使えないことが判明。

次に、2つのフォトインタラプタを接着剤で接着して取り付けてみた。1つはリード線を基板にさしこんで固定し普通に配線するが、もう1つの方は基板には取り付けできないので空中配線となる。これで実験してみたところ、2番目の写真のように位相はほぼ90度のずれで、デューティーもほぼ1:1となっており、十分使えると判断した。

4輪車のステアリングの歯車の回転数の測定にロータリーエンコーダを組み込んだ。
手で歯車を動かしても方向と回転数を測定できるので、一度直進状態に設定するとモーターで動かしても手で動かしても常に位置を検出できるようになった。

次に、3輪車の左右の車輪にロータリーエンコーダを取り付け、逆立ちして歩かせてみようとした。動いた方向が分かれば多少役に立つはず、と思ったが、残念ながらいいかげんな制御では歩くのは無理、ということが良く分かった。
3輪車のほうは、ロータリーエンコーダを取り付けると、他の機能が使えなくなるし、大きな歯車を追加しないといけなくて見た感じも美しくないので、小さめの歯車にフォトインタラプタを1つ付けて回転数を数えるようにしておいた。

ロータリーエンコーダならではのアプリを考えることにする。

2011年11月1日火曜日

10.4 並んで歩く2台の車







散歩のお供は3輪車が後から追いかけてくるが、2台が並んで歩くのをやってみることにした。
センサーは超音波ではやりにくそうなので、他のものを使うことにし、まず歪ゲージを検討して見た。種類も多く調達が面倒なのと、きちんとしたアンプを作らないと使えないことが判明し、歪ゲージはあきらめた。以前ショベルカーで作ったメッキ線を巻いたスイッチが使えそうなので、これでやってみることにした。

4輪車から横に棒を出し、これで3輪車のスイッチを動かすことにする。
前・後・左・右を検出できるよう、まん中に軸を1本立て、その周りに4本軸を立て、軸にメッキ線を巻きつけてスイッチとする。まん中の軸と周りの軸の距離が少し離れているので、まん中の軸には軸をつなぐパーツを取り付けて直径を大きくし、そこにメッキ線を巻いた。まん中の軸に4輪車からの棒を取り付け、これでスイッチを動かす。

これで簡単に動くだろうと思っていたが、けっこう調整が必要であった。
右に曲がるときと左に曲がるときで、棒の先端にかかる力の方向が違い、左右バランス良く曲がれるように調整する必要があった。棒の先にユニバーサルジョイントを付けてみたり、角度を変えて棒をつないでみたり、つなぐ棒の長さを変えてみたりして、なんとかバランスがとれる組み合わせになった。

後退させるのは難しいことが判明したので、前進だけとしてある。
前のスイッチだけオンなら直進、前と右のスイッチがオンなら右前、前と左のスイッチがオンなら左前に進み、それ以外は停止する。
スイッチのチェックは100ms毎に行っている。

おまけで、3輪車を逆立ちさせた。
以前のものよりボディが小さくなり、固有振動数が大きくなったせいか、立たせるのにけっこう苦労した。相変わらずいきあたりばったりのいい加減な制御しかできないので、ジタバタしながら立っているのがやっとである。

動画は3つあり、最初のほうから、3輪車のスイッチの説明、並んで歩くところ、3輪車の逆立ち。