2010年3月末で仕事が終わりになり時間ができたので、3才の孫(男の子)が遊べるおもちゃを作ることにした。動くものに限ると思いあれこれ検討した結果、以前息子用に買ってあったレゴのマインドストームを使うことに決めた。制御は自作することにしてネットでCPUの調査を行い、昔ながらのDIPのパッケージが自作向きなのでPICを使うことにした。 いくつかおもちゃを作成し、自分用のメモを作っておくことにしたがついでなのでブログを作成して公開することにした。 写真と動画を見て笑っていただきたい。 なお、1ページで表示できなくなってきたので、以前のものを見る場合は、このページの最後の「前の投稿」をクリックしてください。
2013年10月27日日曜日
13.10.27 バージョンアップが完了した2輪車
2輪車が走るコースに壁を取り付け、迷路を作る。超音波センサーで壁の状態を調べ、2輪車が迷路を探索し、出口にたどりつけるようになった。探索して出口までの経路がわかると、次は後戻りすることなく出口まで走り抜けることができる。
迷路探索のアルゴリズムは「左手法」とした。左側の壁に手をついて、ひたすら壁伝いに進む、という方法である。
1マス毎に左・前・右の超音波センサで壁のあり・なしを測定し、左側の壁に沿って進むように制御する。左の壁がなければ左折、前の壁がなければ直進、右の壁がなければ右折、3方向とも壁があれば後退、とする。
迷路の入り口は右下のマスで上向きでスタートとする。迷路のマスの数のサイズの配列を作り、ここに現在のマスから次のマスに移動する方向を書き込んでいく。今回の迷路はX方向4、Y方向3なので4*3=12バイトの配列となる。次のマスのアドレスが用意されたマスの外側になったら探索終了。最後のマスのアドレスが入口と違ったら出口に到着なので探索成功、入り口と同じなら出口が見つからず探索失敗となる。探索完了後の走行は、この配列を見て次のマスに進むことを繰り返す。
壁の取り付け方法をいくつか検討してみたが、壁をはずした時にコース上に邪魔ものがないことが大切とわかり、壁の下部にピンを立て、そのピンをコース上の穴に差し込む構造にした。穴はなるべく小さくしたいので、ピンはプリント基板用のピンヘッダのピンを使い、コースには直径1mmの穴を開けた。
1辺が10mmの木製の立方体を「常木」という会社から購入し、これに0.8mmの穴を開けてピンを差し込む。この立方体2つを壁の取り付け間隔に合わせて方向も揃うように治具に取り付け、厚さ3mmの発泡スチレンの板を上部に接着して壁を作る。
壁を置いて走らせてみたところ、前向きの超音波センサーが壁に当たることが発覚。センサーの取り付け位置の変更とライントレース用のフォトインタラプタの取り付け位置の変更でなんとか乗り切った。
二輪車が倒れないよう前後にタミヤの「ボールキャスター」をつけてあるが、この動きがガタガタするようになったので、取り外して分解しボールやローラーを拭いてみたところ、スムーズに動くようになった。使っているとゴミなどがケース内部に入り込み、引っかかって動きにくくなるらしい。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿