2011年5月20日金曜日

8.1 クレーン車





クレーン車を作った。
アームの角度を変えるのと、フックを吊るすひもを引っ張るのはすぐにできたが、これだけでは面白くないので、全体を左右に回転させることにした。モーター2つとクレーンのアームを回転させることになり、かなりの重さになるので、回転軸の取り付けや回し方などを検討したところ、まずまずの強度でとりつけることができた。ただしモーターは2つしかないので、全体の回転は手で回すことになった。

荷物を吊るした状態でアームやフックがズルズル落ちるのではないかと心配したが、動かしていないときはモーターでブレーキをかけるようにすれば問題ないことが確認できた。本物らしいフックをつけたかったが、適当なパーツが見つからなかったので、フックとは見えないものになったのが残念。荷物は釣り用の錘にひもをつけ、フックに引っかけてある。
フックを巻き上げるところは、滑車をつけて本物らしくしておいた。

孫の反応
久しぶりに興味を持った。最初はひもを手で引っ張ったりアームを倒したりしていたが、動かし方を教えてあげたら、手で回したり、お皿に荷物を降ろすのをやってみたりしていた。形がそれらしく、普通の動きをするものが好きなようである。

2011年5月17日火曜日

7.2 くるくる回る飛行機





子供のころデパートの屋上にあったくるくる回る飛行機を作ってみた。
回りながら飛行機が上に上がっていく仕組みを作ることにし、あれこれ考えてみたが、モーターを使って巻き上げるメカは簡単にはできそうにない。手動でいくことにして、いくつか試してみた結果、飛行機をつるすひもを止めるパーツが回転軸の周りを自由に回るようにしておき、回転中にこのパーツを手でつかんで止めると、ひもが回転軸に巻きついて飛行機が上がってくる、という仕組みができた。

飛行機を吊るすひもの結び目が目立たない様にしたかったが、長さの調節がやりやすい方法でないとうまくいかず、結局単純な縛り方になってしまった。

回転のスタートとストップのときは、飛行機がゆれないように徐々にスピードを変えるようにしてある。

孫の反応
これも興味なし。形がそれらしくないと好きにならないと思われる。

2011年5月10日火曜日

8.0 四足風に歩くロボット




四足で歩くロボットができないか検討してみたが、ちゃんとやろうとすると足1本毎に3つのモーターが必要になることが判明し、あきらめざるをえなかった。それでも、悔しいのでモーター2つで四足風に歩けないか考えてみたところ、なんとかなりそうなめどがたったのでさっそく作ってみた。

足の動きは犬がスローモーションで走っているような感じとなる。左右の前足は同じ動きで、左右の後ろ脚も同じ動き。前後の足は逆の動きになる。これだけだと進めないので、前後の足の中間に小さい車輪を付けた。前足で掻くときは体重を前にかけ、後ろ脚で蹴るときは体重を後ろにかける。

足は後ろ脚部分をモーターで駆動し、前足も歯車を伝って同じモーターで逆向きに駆動する。体重移動は、錘を別のモーターで180度回転させて前後に動かしている。
足の動きを監視するため、歯車にフォトインタラプタを取り付けて動いた歯数をカウントする。

ボディは体重のバランスが取れるように部品の配置を考えた。足がすべらないよう、輪ゴムを巻き着けてある。
錘を動かした後、ボディが傾くまでの時間待ちの調整などをやり、うまく歩けるようになった。

孫の反応
見せたところ、「これ亀?」と一言。動かして見せたら、うさん臭そうな顔つきでちょっと見てそれっきり。まあ、これは嫌いだろうとわかっていたのでショックはなかったが、、。

2011年4月26日火曜日

7.1 メリーゴーラウンドもどき






観覧車に続き、メリーゴーラウンドを作ることにした。
本物は柱に沿って上下に乗り物が動くが、このメカをレゴで作るのは難しくあきらめた。代わりに支点を中心に円運動で上下する簡単なメカを作成した。これでもどきになってしまった、、。乗り物も、馬や馬車は作れないので簡単な車としてある。
水平方向に回転する仕組みをしっかり作るのが難しく、回転軸が多少ガタガタするのも残念である。

孫の反応
やっぱり興味なし。レゴで消防のはしご車をいっしょに作ることになった。最近は家ではLaQでいろいろ自分で作るようになってきていて、形を作るのが面白いようである。
最後の写真がこのとき作ったはしご車で、作者がはしごの部分を作り、それ以外はリー君が作ったものである。

2011年4月24日日曜日

4.2 キッチンタイマーの追加機能



キッチンタイマーのシステムを使ってメトロノームとテスターの2つのツールを作成したので、これも紹介しておくことにした。

☆メトロノーム
昨年末にちょっときつい山歩きをしたら、足がかなり痛くなってしまった。体力作りが必要と思い、家の階段を上り下りすることにし、同じペースで一定回数だけ上り下りできるよう、メトロノームを作成した。
テンポと長さを設定できる。テンポは普通のメトロノームと同じように1分間の4分音符の数で設定し、長さはコーラス数で設定する。1コーラスは32小節としてある。

コーラスと小節を3桁の数字で表示する。コーラスは2桁必要で、小節には1桁しか使えないため、実際の小節数の4分の1の値を表示している。
1拍ずつ「キッコッコッコッ」と音が鳴り、4小節毎に「キッコッコッコ-ッ」と4拍目が長くなるようにして、区切りがわかるようにしてある。

操作
電源投入時、右のスイッチを押しながら電源を入れる、これでメトロノームになる。
右のスイッチを2回連続押しするとテンポの値が表示され、3回連続押しするとコーラス数が表示される。左のスイッチを押すと値が増加し、まん中のスイッチを押すと値が減少する。右のスイッチを1回押すと、動作がスタート・ストップする。

これでテンポ93で12コーラス、48往復の階段昇降を毎日続けているが、効果は絶大である。先日7時間くらいアップダウンのきつい山道を歩き続けたが、長い登りでも休まずに登れるし、翌日足も痛くならなかった。

☆テスター
おもちゃを作るようになって、単3・単4の電池がたくさんたまってきた。捨てるものと使えるものを区別するために、電圧を測定できるようにした。電池の電圧をそのままPICのAD変換器に入力する。測定値は「1.50」のように3桁で表示される。
また、抵抗のカラーコードが3桁のものと4桁のものがあって紛らわしいので、抵抗も測定できるようにした。正確に測定しようとするとレンジを切り替える必要があるが、オーダーが分かればよいことにし、レンジ切り替えは行わない。電源とグラウンドの間に測定対象の抵抗と10KΩの抵抗を直列に接続し、中点の電圧をAD変換し、抵抗値を計算する。
測定値は「470.」「47.0」「4.70」「470」のように表示される。

操作
電源投入時、左のスイッチを押しながら電源を入れる、これでテスターになる。
電圧を測定する場合は、電池を端子に接続し左のボタンを押す。抵抗を測定する場合は、抵抗を接続し右のスイッチを押す。

☆写真
1番目はメトロノームの写真で2番目がテスターで電池の電圧を測定する写真。
3番目はメトロノームの動画で、最後はテスターの動画。

2011年4月21日木曜日

3.2 双方向になったPC用赤外線リモコン






自分で駐車場に停まる車を作っているとき、超音波のセンサーの測定値が怪しいことに気がつき、測定値を調査してみることにした。デバッガだと毎回動作を止めないとデータが見れないので、動作状態で測定値を見る仕組みを作ることにした。
以前、声で動かす偽バイクのときに、PCに接続して使う赤外線リモコンを作成してあるので、これに赤外線信号を受信してPCにシリアルで送る機能を追加し、車に赤外線LEDをつけ、これで測定値をPCに送ることにした。

四輪車からの赤外線信号送信
PICの基板に赤外線LEDを追加した。ついでにこれまで外付けで使っていた赤外線受信器も基板に追加してある。
4番目の写真右下の黒いものが赤外線受信器で、スイッチを挟んで反対側にある白い円筒形のものが赤外線LEDである。
距離を測定し、駐車処理を行った後に、送信要求がオンになっていれば、その時点のセンサーの状態を送信する。送信要求は、リモコンの「プログラムナビ」ボタンを押すとオンになり、駐車中もオンになる。
駐車場からの超音波の発生間隔の200ms毎に送信することになるので、その間に送信できるよう、1回の送信データは6バイトとした。
送信データは、
Byte0: 駐車モード
Byte1: 距離のフラグ
Byte2,3: 駐車場からの超音波、右-左の時間差
Byte4,5: 自分で送信した超音波、右-左の時間差

リモコンでの赤外線信号受信とシリアル信号送信
赤外線受信器を基板に追加した。また、シリアル信号送信のため、USB-シリアル変換基板のRXD端子にPICからの信号を接続した。
メインループで赤外線入力を監視し、データを受け取る。正しいデータが受信されると、6バイトのデータをシリアルで送信する。送信時はタイマー割り込みでシリアルのタイミングを管理する。
PC->LegoとLego->PCの両方の信号を扱い、タイマーなどのリソースを共用しているので、どちらかの処理が行われている間はもう一方の入力を無視するようにした。

PCでのシリアル信号受信
ハイパーターミナルでシリアル信号の送・受信を行う。
キーボードの'f'をタイプすると車が前進し、'b'で後退、's'で停止する。
Legoからの信号は1バイトずつヘキサで表示される。

測定値
毎回値がバラツクことが一目でわかる。最後の写真の一番左の数字が08のところが車が停止して角度を測定しているところであるが、この間の測定値(Byte4,5)は0x0Bから0x17までの値になっており±6のバラツキがある。8回の平均をとり、なんとか使えるようになった。

2011年4月16日土曜日

6.3 一定速度で走る四輪車




これまでの速度制御はモーターを駆動するPWMのデューティーの変更で行っていた。これだと速度の変更はできるが、床の状態などによって速度が影響を受けてしまう。
ステアリングのモーターの歯車にフォトインタラプタをつけて回転数を測定しているが、これと同じ仕組みを車輪を駆動するモーターにも取り付けた。

一定期間(200ms)毎に動いた歯数をカウントし、設定速度との差をみてPWMのデューティーを制御するようにしてある。

これで床が木でもカーペットでも、ほぼ同じ速度で走るようになった。また、これまではカーペット上を低速で走らせるのは難しかったが、起動時はPWMのデューティーが大きくなるため、低速でもカーペット上を走れるようになった。