2010年3月末で仕事が終わりになり時間ができたので、3才の孫(男の子)が遊べるおもちゃを作ることにした。動くものに限ると思いあれこれ検討した結果、以前息子用に買ってあったレゴのマインドストームを使うことに決めた。制御は自作することにしてネットでCPUの調査を行い、昔ながらのDIPのパッケージが自作向きなのでPICを使うことにした。 いくつかおもちゃを作成し、自分用のメモを作っておくことにしたがついでなのでブログを作成して公開することにした。 写真と動画を見て笑っていただきたい。 なお、1ページで表示できなくなってきたので、以前のものを見る場合は、このページの最後の「前の投稿」をクリックしてください。
2011年1月13日木曜日
5.2 逆立ちしてジタバタ動く三輪車
以前、逆立ち2輪車を歩かせようとしたが、制御がいいかげんなため立ち上がるのがやっとで歩かせることはできなかった。久しぶりに逆立ち歩きに再挑戦することにした。
前回は2輪車のボディを作ったが、三輪車のボディが斜めに逆立ちできることに気がついたので、ボディは三輪車をそのまま使うことにした。
制御は前回と同じ方式とし、センサーも前回と同じ超音波の送・受信器を使う。
前回はセンサーを2セット使ったが、ボディの角度がわかれば良いのでセンサーは1セットあれば良いことに気がつき、ボディの前方に1セットだけセンサーを取り付けた。受信の感度を高くするため、また転んだときにセンサーが外れにくくするため、センサーの取り付け角度が変わるようにしてある。
逆立ち
ボディの角度をセンサーと床までの距離で測定する。ちょうど逆立ちになる位置にボディを置き、スイッチを押すとそのときのセンサーから床までの距離を測定し、これをゼロ点の値とする。測定の間隔は数ms程度で、リモコンで調整できるようにしてある。
2回連続して前方または後方に傾いたら、反対側にボディを動かすため、そのときの測定値とゼロ点の値の差をもとにして車輪の駆動のPWMのパルス幅を決めて駆動する。
ゼロ点の設定が難しいので、設定した後リモコンでゼロ点の値を調整できるようにした。逆立ちした状態でゼロ点の値を増やしたり減らしたりしながら、安定して逆立ちするよう調整する。
歩かせる
歩く方向にボディを傾けるようにしてみた。歩き始めるとすぐに速度が上がり、制御できなくなって転んでしまう。
次は歩く方向と逆方向に駆動する時の駆動力を弱くしてみた。4分の1くらいにすると転ばずにジタバタ動こうとする。ただし、2つのモーターの特性の違いのせいか、まっすぐに動かずに曲がってしまう。片方の車輪だけ駆動力の制御をしてみたところ、転びにくくなったので、この方法で歩かせることにした。
これだけだとあまり動かないので、歩き初めに少しだけボディを傾け、徐々に傾きをなくすようにしてある。
歩く方向はリモコンで指示する。前・後・右前・左前・右後・左後・停止。
結果
歩きたがっているのはわかるが、ちょっと動いたと思っても、しばらくすると元の場所に戻っていたりして、とても歩いたとは言えない。いいかげんな制御ではこのあたりが限界か。
孫の反応
逆立ちしているのを見て「へー」という顔をしていたが、歩いていると認識できないようで、それ以上の興味は示さなかった。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿