2011年6月15日水曜日

5.5 ひらがなを書く三輪車





一筆書きの家に続いて、孫のリー君の名前をひらがなで書くことにした。
最初に「り」のデータを作り、次に「ひ」のデータを作っていたら、初期値付きのデータのサイズがオーバーした、とメッセージが出てビルドできない。データのフォーマットを修正し、なんとか「りひ」まで書けるようになった。
調べてみたところ、使っているPIC18F2431にはRAMは768Bytesしかない。「りひ」のデータで256Bytes弱を使っていて、スタックも256Bytes使っていることが判明。スタックはほとんど使わないので、スタックを小さくし、メモリのレイアウトも修正して文字のデータを追加してビルドしてみたが、やはりNG。これ以上調べるのはやめにして、「りひ」だけ書くことにした。

ブログを見た友人から、写真の背景のカーテンの模様がうるさい、というコメントがあり、背景には無地の布を使うのが良いというアドバイスもあった。
今回の写真は背景にバスタオルを使って撮影した。カメラは絞り優先モードで絞りは18に設定し、タオルの色を変えたり明るさを調整してみたり何度かテストし、明るさを-0.7に設定した。カメラは三脚に取り付け、リモコンで撮影。

孫の反応
前回、次はリー君の名前を書こう、と言っておいたので、動かしてみたらすぐに自分の名前を書いているとわかった。「りひ」までしか書けないことを説明して写真に撮った文字を見せたところ、「り」の幅が広すぎて、これは「い」だから「いひ」だね、と言われてしまった。最終版は「り」の幅を少し狭めるように調整しておいた。

2011年6月9日木曜日

9.0 聴力テスト用サイン波

今回はレゴもPICも関係ないので、興味のない方には失礼。
山歩き仲間の一人が難聴ではないかと心配になり、耳鼻科で聴力の検査をしてきた、という話を聞き、自宅で簡単に傾向程度でもみれるような環境を作ってみることにした。

正式の検査では、オージオメータという機械を使い、オージオグラムというグラフで評価するということである。参考まで、http://jibikkuma.jp/audiometry.htmlに説明あり。
正式には気導と骨導の両方を測定するようだが、今回は耳から聴く気導だけを見ることにする。

サインのデータを作成し、それを使って検査を行うアプリを作成するつもりであるが、現在使っているVisual C++ 2008 Express EditionではGUIが使えない。これでGUIが使えるようにする方法はあるらしいので、それに挑戦するか、あるいはHTMLでアプリを作るかのどちらかにしようと考えている。

とりあえず、サイン波をつくるところはできたので、老人性難聴のだいたいの感触でもわかるはず、ということでここに置いてみることにした。

サイン波は4つある。周波数がそれぞれ約1KHz, 4KHz, 8KHz, 16KHzのもので、音量がしだいに大きくなっていく。出だしの音量は-60dBで、最後の音量が0dB。これを20秒間で変化していくので、N秒後に音が聞こえ始めたとすると、そのときの音量は、
60*N/20-60 = 3*N-60dBとなる。

今回はPCで再生したものをカメラで動画で撮影したものなので、ノイズも多く値は正確とは言えないが、ある程度の傾向はわかるはずである。
8KHzが聞こえればまず問題なし、4KHzが聞こえないと怪しい、というくらいか。
ちなみに、作者は8Khzまでは聞こえるが16KHzは聞こえない、という程度である。
ヘッドホンで聴くこともあると思うが、耳を傷めないよう、くれぐれも再生音量には注意していただきたい。

2011年6月3日金曜日

5.4 一筆書きの家を書く三輪車








次に作るもののアイデアがなかなか出てこなかったが、絵や字を書く車、というのを思いつき、一筆書きの家を書かせることにした。
車はその場で左右に回転できるのが決め手で、久しぶりに初代の三輪車とした。
左右の前輪の中央のところにLEDを着け、この軌跡で絵を書くことにする。

書いた絵をブログでどう見せるかを考える。動画を処理してLEDの軌跡を静止画にするのは、ソフトを調達する必要があるようであきらめる。カメラはニコンのD40XとP100があるので仕様書をみたところ、D40XのシャッターはBulbがあり、リモコンを使えばリモコン1回押しでシャッターが開き、もう一度押すとシャッターが閉じる、ということを発見。リモコンも持っているのでこれを使うことに決めた。

三輪車の駆動は、路面の状態が変わっても速度が変化しないよう、車輪を駆動する歯車にフォトインタラプタを付け、回転速度を監視しながら一定速度になるよう制御している。
絵を書くときの移動距離・回転角度は車軸の回転数(フォトインタラプタで計測)と駆動時間の2種類の制御を試してみた。
車軸の回転数のほうがうまくいくのではないかと期待していたが、そうでもなかった。フォトインタラプタを車軸の歯車に着けているが、これだと歯車の回転が遅く、絵をかくときの歯車の回転数の設定値が一桁の値になっており、精度が低いためと思われる。
モーターの軸にフォトインタラプタを付ければ改善できそうであるが、実装が難しいので今回はあきらめた。

移動距離は家の四角の一辺の値を決め、屋根のところはこの√2分の1、家の壁の×印は√2倍とする。回転角度は45度の値を決め、90度・135度はこの2倍・3倍とする。

歯車の回転数で制御するデータと時間で制御するデータをPICのソフトに組み込もうとしたが、初期化付きのデータのサイズに制限があるようで2つ同時には組み込めない。しかたないので#ifで切り替えながらコンパイルしている。

調整を何度もやったが、けっこう面倒。動かしてカメラでLEDの軌跡の写真を撮り、それを見て設定値を修正してビルドし直し、PICに書き込んでまた動かすのだが、この間にD40Xの設定がリモコンから普通のシャッターボタンに戻っているので、再度リモコンを選択してから車を動かす、というのを何度も繰り返した。
最初の写真が移動距離を時間で制御したもの、次が移動距離を歯車の回転数で制御したものである。

夏に向け、節電のために食卓の上の照明を白熱電球からLED電球(白色)に取り換えたところ、写真の色の感じが全く変わってしまった。
友人からこれまでの写真の被写界深度が浅すぎてボケている部分が多すぎる、という指摘もあり、D40XとP100で同じ被写体を撮って比較してみたところ、絞り値が同じでもD40XよりもP100のほうが被写界深度が深く、ボケが少ないことが判明した。
今回の車の写真は最初の2枚がD40X、次の3枚はP100で撮ったものである。

孫の反応
最初に「何をやってるかわかるかな?」と言って動かして見せたがさっぱりわからない。次に書いた家の写真を見せて、「これを書くんだよ」と説明して動かしたら、「ほんとだ」と感心して見ていた。

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でいろいろ自分で作るようになってきていて、形を作るのが面白いようである。
最後の写真がこのとき作ったはしご車で、作者がはしごの部分を作り、それ以外はリー君が作ったものである。