2011年10月21日金曜日

10.3 2代目散歩のお供






③散歩のお供:
ここで使っている車の説明が10.1、10.2にあるので、そちらもぜひご覧ください。

前を走る4輪車はリモコンでステアリングと前進・停止を制御する。4輪車が200ms毎に40KHzの超音波を送信するので、後を追いかける3輪車は超音波を受信し、左右の受信器の時間差で超音波の方向を判断する。また、車間を測定するため、3輪車が超音波を発信し、4輪車からの反射音が戻ってくる時間を測定する。
動作の制御は、停止中に車間が大きくなったら前進する。方向は前の車からの超音波の方向を目指す。車間が近づいたら停止する。

孫の反応:
最初に散歩のお供を見せたときは、クネクネ動くのを怖がって逃げて行ったが、それから1年半が経ち強くなってきた。怖がることなく見ているので、「前の車にうしろの車がついてくるんだよ」と言うと「それはわかってる」などと生意気なことを言うようになってきている。

10.2 2代目散歩のお供の3輪車





②3輪車:
3輪車はサイズをできるだけ小さくすることを目指して作成した。
後輪のタイヤを小さいものにし、後輪を支える仕組みを作り直すことで、ボディの高さは以前よりもかなり低くできた。後輪は1つの軸に2つついているが、それぞれが自由に軸の周りを回転できるので、曲がりやすくなったはず。
左右の前輪をそれぞれモーターで駆動する。左右両方のモーターで駆動すると直進、片方だけだと右または左に曲がり、左右のモーターを逆方向に駆動するとその場で回転する。

車体の前部左右に超音波の受信器をつける。前部中央には、距離測定用に超音波の発信器をつけてある。
リモコンで直進・右前・右回転・右後・後退・左後・左回転・左前・停止の制御ができる。
4輪車と比べて動きの制御のボタンが多いし、その場で回転もでき、動きの変化も速いので、リモコンで動かすのは3輪車のほうが面白いようである。

最初の動画は3輪車の動作説明、2つ目はリモコンで走らせるデモ。

10.1 2代目散歩のお供の4輪車





モーターが4つになったので、車2台で何かやらせることにした。あれこれ考えてみたが良いアイデアがまとまらず、2番煎じであるが、散歩のお供の2代目をつくることにした。

前を行く車は4輪車とし、後から追いかける車は3輪車とする。4輪車をリモコンで操作すると、3輪車が追いかけていく。

①4輪車:
4輪車は、ステアリングとディファレンシャルギアつきのものとするが、以前のものと同じでは面白くないので、メカを作り直すことにした。以前のものはステアリングの部分は左前輪のところに大きな歯車がついていて、左右対称でなかったので、この歯車をボディの中央に持ってくるようにした。本来は、1本のタイロッドで左右の前輪を左右に動かすのだが、レゴのパーツだけでは作成が難しかったので、歯車から左右に1本ずつバーを出し、これで前輪を動かすようにした。バーの取り付け位置の関係で左右のバーが1直線にならず、ステアリングを真っ直ぐにした状態で、左右の前輪が並行でないのが難点であるが、走るスピードも遅いので、走行に問題はない。
ステアリングの位置を管理できるよう、歯車にフォトインタラプタをつけ、回転数を測定する。

また、以前はディファレンシャルギアをレゴの普通のパーツで作ったので、ギアが大きくなり、車輪はバイク用の大きなものしか使えなかったが、ディファレンシャルギア用のギアボックスを入手できたので、これを使いコンパクトに作成できた。タイヤは普通のサイズのタイヤが使える。モーターからの駆動は、前回と同様チエーンで駆動する。

車体の後部に超音波発信器をつける。また3輪車からの超音波を反射する反射板もつける。
リモコンでステアリングの右・左・中央と前進・後退・停止のコントロールができる。

最初の動画は4輪車の動作説明、2つ目はリモコンで走らせるデモ。

2011年10月4日火曜日

8.6 ショベルカー










働く車シリーズでショベルカーを作った。
以前レゴテクニックの8047(ショベルカーのセット)を買ってあったので、バケツやアームなどはほとんどそのまま使うことにした。
モーターで動く部分は、バケツの上下、アームの上下、全体の左右回転の3つ。
バケツとアームの上下は歯車で動かすのは難しく、ひもで引っ張ることにした。(写真4)
アームの上下は、降ろす方は重力で自分で降りて行くので、上げる方だけひもで引っ張る。バケツは上げる方も降ろす方もひもで引っ張らないとうまく動かないため、1本の軸の左右に逆方向にひもを巻きつけ、左側のひもで巻き上げ、右側のひもで降ろすことにした。左右逆方向にひもを巻きつけてあるため、ひもにたるみが生じ、逆に動かす時に動き始めるまでにちょっと時間がかかるのが難点である。

バケツとアームの位置を管理するため、歯車にフォトインタラプタを取り付け、移動量を測定するようにしてみたが、ひもで引っ張っているためか、再現性が低く使えないことが判明した。結局バケツとアームの一番上と一番下の位置にスイッチを取り付け、その範囲だけで動くようにした。(写真5,6)
スイッチはレゴのパーツにメッキ線を巻きつけ、2つのメッキ線が接触するのを検出するようにした。長期間安定して使うことはできないと思われるが、うまく動作している。

歯車の回転数測定からスイッチ方式に変更したため、スイッチや配線ケーブル作成に予想以上に時間がかかってしまった。

全体の左右の位置の検出は反射式のフォトインタラプタを使用した。(写真7)フォトインタラプタをボディの左右に取り付け、右いっぱい、中央、左いっぱいを検出する。

バケツで掬う荷物は、最初レゴの一番小さいブロックを使ってみたが、四角くて角があるため、引っかかって飛び散ることが多くあきらめた。丸いものにしようと考えていて、友人がBB弾を持っていたのを思い出し、少し提供してもらった。試してみたところ、具合が良くこれに決めた。
レゴのブロックで箱を作り、これに入れておく。
トラックもレゴで作成した。

マニュアル動作では、リモコンでバケツの上下、アームの上下、全体の左右回転を制御する。
自動動作では、全体左回転->バケツ降ろす->アーム降ろす->バケツ巻き上げ(荷物を掬う)->全体右回転->バケツ降ろす(荷物をトラックに載せる)、の動作を2回行い、最後は全体が正面を向き、バケツ・アームを巻き上げた状態で終了となる。

動画は2つあり、1番目は動作説明で2番目は自動動作のデモ。

孫の反応
最近はキラキラ光る折り紙で何かを作るのに熱中しており、レゴのおもちゃには興味を示さない。唯一興味を持ったのはBB弾だけ。

2011年8月28日日曜日

8.5 自分で荷物を取り台に乗せるフォークリフト







フォークリフトが自分で荷物を取り、台に乗せる仕組みを作った。
作成中にモーターをもう1つ調達できたので、車輪の駆動を左右それぞれ独立に行うようにした。これで、ディファレンシャルギアなしでも曲がりやすくなったし、駆動力も強くなった。
モーターは4つ使っており、車輪の駆動に2つ、フォークの上下に1つ、ステアリングに1つ使用している。
フォークの上下とステアリングはフォトインタラプタで移動量を監視しているが、車輪の駆動はフォトインタラプタを使えないので、駆動時間だけで制御している。

センサーは駐車場に車を停めるのと同じ超音波センサーを使い、制御もほぼ同じ仕組みで行っている。
台の方向は、台から送信される超音波が左右の受信器に届く時間差で検出する。
フォークリフトから送信する超音波が台の壁で反射され、左右の受信器に戻ってくる時間を測定し、台との距離と台との角度を測定する。

台はマニュアル動作用に作成したテーブルと散歩のお供で使った引っ張る車を合体させ、壁を拡大して作った。200ms毎に40KHzの超音波を発生する。
フォークリフトは受信用のセンサーを左右それぞれ1つ持ち、距離測定用の送信器を1つ持つ。送信器の位置は最初はフォークの後ろにしたが、これだとフォークの上下の位置の制限もあるし、台との間に柱などもあったりして不安になり、結局フォークの下に取り付けることにした。

動かす前にマニュアルでフォークを床ギリギリの高さにし、ステアリングを真っ直ぐにしてリセットボタンを押しておく。

荷物を取り上げるところは、方向の検出はなしでやることにした。荷物をフォークリフトの正面に置き、フォークを少し持ちあげて荷物までの距離を測定し、一定距離まで前進する。そこで再度距離を測定し、フォークを床に降ろして前進し荷物を台より少し高い位置まで持ち上げる。

その後、荷物を持って後ろに下がり、台と真っ直ぐになるように方向を調整し、だいたいまっすぐになったところで停止し、台に向かって真っ直ぐ前進する。

台と一定の距離に近付いたら停止し、台の中心に近いか、台との角度が直角に近いか測定する。OKなら前進して荷物を台に降ろし、後ろに下がって終了。
NGの場合は再度後ろに下がり、やり直す。

これで、なんとか予定の動きができるようになったが、成功の確率がかなり低いのが残念である。

動画は2つあり、最初のものは一度で成功した例で、2番目はやり直して成功した例。

孫の反応
一度動かしてみせ、うまく台に乗せることができたが、どうもリモコンで操作していると思っているらしい。自分で動いていることを説明してもう一度見せる必要がある。

2011年8月1日月曜日

8.4 ハンドルがモーターで動くフォークリフト











レゴのモーターを1つ調達できたのでフォークリフトのハンドルをモーターで動かすようにした。
また、以前のフォークリフトを友人に見せたときに「こいつが自分で荷物を取ってテーブルに置くのか」と言われたことを思い出したので、実現方法を検討し、駐車場に車を停める仕組みを使うことにした。

以前のフォークリフトをベースに、ハンドル用のモーターと超音波の送信用のピエゾ1つ、受信用のピエゾを2つ追加した。
ピエゾを実装する位置の関係でフォーク用のモーターは高い位置に置かざるをえなくなり、以前よりも背が高くなった。

フォークリフトが自分で荷物を運ぶ制御はこれから作り始めるが、マニュアルでは動くようになったので、とりあえずブログに書き込むことにした。今月中には自分で荷物を取ってテーブルに置く仕組みを動かすつもりである。

ハンドルの駆動は、以前手で回していた軸に歯車をつけ、これをモーターで駆動する。ハンドルの角度を検出するため、歯車にフォトインタラプタをつけてある。ハンドルは右回転・左回転・停止・直進の制御ができる。右回転・左回転の場合、一定の角度になるとそれ以上角度が大きくならないようにモーターを停止させる。

フォークを駆動するモーターの取り付け位置が高い所に変更になったので、駆動用のチェーンが短くなり、フォークが以前よりも高い位置まで上がるようになった。フォークの上下の位置を制御するため、フォークを駆動する歯車にもフォトインタラプタを取り付けた。

超音波を送信するピエゾは車体の中央に置く。フォークの後ろ側にしか置けなかったので、超音波を送信するときはフォークを高い位置に移動させておく必要がある。
受信用のピエゾは車体の左右に置く。

荷物までの距離を測定できるよう、荷物のタイヤの後ろに壁を作った。
荷物の台から超音波を送信する、また距離測定用の壁も必要なので、荷物の台に以前作った散歩のお供の引っ張る車をそのままくっつけてある。

写真は10枚ある。最初の3枚はフォークリフト全体の写真。最初の写真に送信用のピエゾが見える。次の2枚はフォークの駆動部とフォトインタラプタ、次の2枚はハンドルの駆動部とフォトインタラプタ。次はフォークリフトと荷物の台で最後の2枚は荷物の台。
動画は2つあり、最初は仕組みの説明で、次は荷物をマニュアルで台に移動するデモ。

2011年7月25日月曜日

10.0 新コントローラー





クレーン車やフォークリフトでモーターが2つでは足りなくなってきたが、モーターを調達するめどが立ってきたので、モーターを4つ使える制御基板の製作を開始した。
PICはこれまでと同じPIC18F2431を使うことにした。モーターが2つから4つに増えたため、モーターの制御に必要な制御信号が増える。従来の制御基板は動作状態を表示するLEDを5つ持っていたが、これを2つに減らし、入・出力ピンはジャンパプラグで用途を切り替えるようにして、なんとか収まった。

モーターの数は2から4に増えたが、他の機能は以前のものと同じにしてある。
Piezoの入力は2チャンネル、Piezoの出力も2チャンネル分用意してある。
2つ同時に使うことも考え、モーター用の電池基板も新規作成した。
LEDの数が少なくなったのでデバッグの手間が増える可能性があるが、赤外線でPCに情報を送ることができるので、これでデバッグすることにする。

ハードの製作とデバッグがほぼ終了したので、久しぶりにブログに書き込むことにした。

以前のソフトウエアからの変更点は、赤外線の入力をメインループで監視しながら処理していたのを、今回は赤外線入力の変化で割り込みをかけて処理するようにしたくらいである。
ピエゾ入力による割り込み処理、ピエゾ出力、赤外線リモコンの入力、赤外線出力、モーター駆動などの動作確認を行った。
最後にフォークリフトを新しいコントローラで動かし、問題なく動作することを確認した。

写真はいずれも右側が新コントローラ、左側が旧コントローラである。見掛け上の違いは、モーターを駆動するTA7291Pが4つに増えたこと、LEDが減ったこと、ジャンパプラグがついていることなど。