2011年6月23日木曜日

8.2 小さなクレーン車





リー君とレゴで遊んでいて、リー君が作った車にクレーンをつけることになった。フックの部分のパーツはリー君が選んだパーツを使う、という条件付き。その日は時間がなかったので、「次に来る時までに作っておくよ」と言って車の屋根にクレーンのアームとフックを付けて錘も付けておいた。

昨日迎えにいったところ「クレーンできてる?」と聞かれた。作っておいて良かった。
家につくと、さっそくいじってみて「これだめじゃん」と言う。アームを前に倒したときに錘が床に着くのが気に入らないらしい。作り直そうかとも思ったが、アームの先のフックの部分を逆に折り曲げ、錘をアームの上に置くようにしてみたところ、これで許してもらえた。

アームは3段階の角度で止められる。フックの部分はバイクの後車輪を支えるスプリングつきのパーツ。荷物は以前のクレーンで使った釣りの錘。

写真は上から、アームが立っているクレーンその1、その2、「ダメ」な状態、許してもらった状態。

2011年6月19日日曜日

9.1 聴力テスト用アプリ



先日聴力テスト用のサイン波を作成したので、それを使ってテストを行うアプリケーションを作成した。
初めてJavaを使ってみた。きちんと勉強したわけではなく、サンプルをネットで探し、HTMLをつぎはぎしながらなんとか動くようになった。

初心者の悲しさで、使い勝手も見栄えもほめられたものではないが、最低限必要な機能は持っているし、使う人も限られているので許してもらうことにした。
作者はインターネット上で使えるサーバーを持っていないので、今回はアプリはCDに焼いて配達する。

テストする周波数はオージオグラム測定と同じ周波数とした。音圧は絶対値の設定はできないので、相対値の表示となる。
左右・周波数毎に-60dBから0dBまで徐々に大きくなるサイン波を聞き、聞こえた時点にストップボタンを押し、聴力を測定する。
これを繰り返し、全部終わったところで結果をグラフで表示する。

画面のスナップショットを2枚用意した。
最初のものは使いかたの説明と、操作ボタン。
次のものは作者がテストした結果をグラフにしたもの。
4KHzが一番良く聞こえている。8KHzが聞こえにくいのは老人性のものであろう。
低い周波数が聞こえにくいのは、PCの再生環境やヘッドホンの特性なども影響している可能性がある。

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で撮ったものである。

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