長かった夏休みも終わり、本日から新学期です。
しかし、あいにくの雨模様・・・しかもなんか台風まで近づいているとか・・・
そんな中、Yの学校では「引き取り訓練」があったらしいです。
まあ、本来であれば9月1日の防災の日のイベントでしょうけどね。
大きな災害を想定して、親が学校に来て、児童を引き取るというイベントです。
私は勿論会社、M&Y母も会社・・・ということで、ヒマな?Mが引き取りに行くことになり、無事にYは引き取られたそうです。
めでたし めでたし
長かった夏休みも終わり、本日から新学期です。
しかし、あいにくの雨模様・・・しかもなんか台風まで近づいているとか・・・
そんな中、Yの学校では「引き取り訓練」があったらしいです。
まあ、本来であれば9月1日の防災の日のイベントでしょうけどね。
大きな災害を想定して、親が学校に来て、児童を引き取るというイベントです。
私は勿論会社、M&Y母も会社・・・ということで、ヒマな?Mが引き取りに行くことになり、無事にYは引き取られたそうです。
めでたし めでたし
本日午後は、いつもロボカップのノード大会、ブロック大会でお世話になっている都立産業技術高専に行ってきました。
RISE科学教育研究会主催の Kokohore Wan Wan Version2 が開催されるというので、見に行きました。
といっても、我が家の子供達は・・・忙しくて欠席です。
M&Y母と私だけなので、電車でのんびりと向かいました。
今回は、競技を見るというより、富永先生に教授昇進祝をお渡しするという超重要なミッションが存在していました。
と、いうことで着いたときには、競技は半分以上終わっており、その後、富永先生にグラーツの話など聞いていたので、競技は最後の高専チームしか見れませんでした。
でも満足!
今回ので、都立高専(まあ、名称は都立産技高専に変わったかもしれませんが・・・)は、世界大会連続出場の記録を伸ばしたことになりますね。
会場には、殿堂入りした Algebla のロボットが展示されていました。
マルチ優勝のトロフィーも展示されていました。
これっ?トロフィー?
でも、本日のミッションコンプリート
本日は朝食後に早速選挙に行ってきました。
Yも社会勉強ということで、一緒に付いてきました。
私の母校の小学校が会場です。
受付→投票とYと一緒に順に巡りました。
入口に、アルコール消毒の用意がしてありました・・・が、あまり活用されている感じではなかったですねぇ。
(我が家は全員消毒しましたよ)
今年は、私が中学校を卒業して30年・・・らしい。
こう書くと歳がバレるなぁ。
と、いうことで、同窓会がありました。
いゃ~ 中学校卒業以来、30年ぶりに会う先生です。
私に生きる道を教えてくれた方・・・
私に試練を与えてくれた方・・・
皆様元気でなによりです。
話し方、声も変わっていません。
とても、懐かしい!
同期も、最初は「誰?」と聞かないと分からないヤツ、顔を見るとすぐに分かるヤツ・・・
とても、懐かしい!
(名前を聞いても、分からないヤツも居ましたけどね・・・だって6クラスもあったんだもん。)
名前を聞くと「そうだよ○○さんだよ、目が変わってないよ」などと、大変楽しい時間でした。
皆いろんな人生があるようです。 でも、今日は皆楽しく話しをしていました。
私も、一次会で帰ってしまうのが勿体無くなって、二次会まで付き合ってきました。
さすがに、明日のイベント(選挙もあるし)を考えると、朝までは付き合えないと・・・帰ってきました。
でも、またやる時は呼んでくれよな。
当時、プチあこがれてた女の子ともたくさん話せたし・・・
ちょっと青春してきました。
最後に・・・幹事さんお疲れ様でした。
Yの夏休みの宿題で、ATTiny2313の基本的なプログラムをテストしていたときのことです・・・
時間待ちをするのに、普通ならタイマーなどを使いますが、さすがにYにそれを期待するのはかわいそうなので、単純なループで時間待ちを作ることにしました。
0.1秒(100ms)の時間待ちループを作れば、あとはそれを何回か繰り返せば、5秒だって10秒だってできちゃいます。
ということで、Yは、0.1秒ループを作成するために、ストップウォッチを片手に、その単純ループを100回繰り返すと10秒になるループ回数を試行錯誤して調査していきました。
こんな感じのプログラムなのですが・・・
#include <avr/io.h>
void wait( int t )
{
long i;
while( t-- > 0 )
for( i=0 ; i<700000L ; i++);
}
int main(void)
{
DDRB = 0b00011111;
while( 1 )
{
PORTB |= 0b00010000; // LED ON
wait( 100 );
PORTB &= ~0b00010000; // LED OFF
wait( 100 );
}
}
これで、LEDが点灯している時間、消灯している時間を計ります。
で、上の wait関数の forループの中の定数を変化させて実験していました。
690000Lの時に9秒くらいだったので、じゃあもうちょっと増やそうということで、700000Lにすると14秒くらいになります。 あれ、増やしすぎたかなぁ。
710000Lにすると、10秒くらいになりました。 えっ、700000Lと逆転?
なぜか、70万回ループだけ異様に時間が掛かります。
謎です。
ネットをいろいろとさまよっていたら・・・
LEGO MINDSTOREMS NXT2.0 というのが販売されていました。
まあ、部品数が多くなったくらいなのかな?
と、説明を読んで行くと・・・
なんと
標準でカラーセンサーなるものが付いてくるようです。
(従来の光センサーの代わりらしい。 下のロボットの飛び出してるヤツ。)
これで、緑の被災者発見もバッチリ! (・・・なのかな)
こんな説明が書かれています。
Color Sensor has triple functionality: distinguishes colors and light settings, and functions as a lamp
写真を見る限りでは、RGBの3つのランプがあり、それぞれの明るさを測ることで、カラーセンサーとして機能するのだろうと想像します。
これ、センサーだけ、どこかで(安く!)売ってないですかねぇ。
このセットは、アメリカでは既に販売されているようですが・・・日本ではまだ?
いろいろ努力の結果・・・方位センサーが完成しました。
部品代は500円でしたが、私の努力の費用は・・・(疲れた!)
まず、このセンサーは、90度ずれた地磁気の強さ?X,Yの2つの値を返します。
その2つの値から方位を計算します。
しかし、その計算がそんなに単純じゃありませんでした。
出力される値自体の補正をしなければなりません。
①真北に向けて値を取得し記録します。
②真南に向けて値を取得し記録します。
①と②の値の平均値分だけ、X,Yのそれぞれの値から差し引いた値になるように補正します。(この説明じゃわかりませんね。 要は、①と②の平均値が0になるように出力の値を細工します。)
それが済むと・・・
北(x>0,y=0) 東(x=0,y<0) 南(x<0,y=0) 西(x=0,y>0)
という値が取り出せます。 ここから arctan を使って(実際には変換テーブルを使って
)方位(角度)を取得します。
とりあえず、精度もそれほどでもなさそうなので、最小単位5度の72分割にしてみました。
やっと、ワンコイン方位センサーの完成です。
あくまでも自己満足ってことで・・・
ところで、上にも書いている「補正」の作業ですが・・・
2008年の蘇州世界大会の時の中国チームのロボットで、方位センサーを搭載したスゴイのがありました。
競技の前に、
①2階の壁の前に撒かれている楊枝をどける
②楊枝をどけたところにロボットを置き、壁に押し付ける
③何かスイッチを押す
④ロボットを180度回転させて、再び壁に押し付ける
⑤何かスイッチを押す
⑥ロボットを持ち上げ、楊枝を元のようにならす
とやっていたのですが・・・いったい何をしているのか分かりませんでした。
これは、方位センサーの補正作業をしていたのですね。
もしかして、これが「キャリブレーション」ですか・・・
うん、納得
さて、オモチャから取り外した部品は、方位センサーとして機能するのでしょうか?
まずは、センサーからの計測結果の数値を取り出します。
計測結果は11ビットの数値が2組出力されます。
x と y で、90度ズレた2つの方向での磁気の強さを測っているようです。
で、出てきたこの2組の出力で方向を判断する、プログラムを組まなければなりません。
(写真の「12」は、2進数「1100」を10進数で表示したものです。)
通常は arctan( -y/x ) という式で計算して、角度(方位)を求めるらしいのですが・・・NXCにもWinAVRにも arctan などという三角関数はなさそうです。(あるのかなぁ?)
なので、実際には、値→角度 となるテーブルを用意しておいて、変換するのが得策のようです。 まあ、10度くらいの精度で分かれば良いので細かい表は無しにします。
ここまで、なんとかできました・・・
それらしい数値が取り出せているので、なんか動いていそうなのですが・・・
まだ方位センサーとして機能しておりません。
なんだか、これ以上努力するのが、バカらしくなってきましたが・・・
とりあえず、続くハズ・・・・
秋月電子の8方位の方位センサーが3400円もするのですから、500円の投資は無駄では無かった・・・と自分では納得しようと思います。 いゃ、無理やり納得しています・・・
さて、オモチャから取り出した方位センサーの部品ですが・・・
果たして使えるのでしょうか?
オークションで(1個)500円で落札したので、500円分くらいは楽しませて欲しいなぁ。
で、いろいろ調べて見ると・・・コンピュータとはシリアルで接続することになるようです。
早速、AVRと接続してみます。
電源は3Vらしいので、3端子レギュレータで降圧して供給します。
AVRからコマンドを送り、そのコマンドに対応してデータを送出してくれるようです。
シーケンスは
Reset device(AVR→センサー)
Start measurement(AVR→センサー)
Report measurement status(AVR→センサー)
これで、デバイスの状況が回答されます。
ここで、"1100"の回答があれば、計測終了&エラー無しとなり、続けて計測結果が転送されます。
されるハズです。
でも、なかなか"1100"が送り返されません・・・・"1111"になってしまいます。
タイミングが悪いのか、プログラムが悪いのか、私の生活態度が悪いのか・・・(笑)
しかし、なんか、いろいろやっているうちに、やっと"1100"が返ってきました。
もしかしたら、方位センサーとして使えるかもしれない・・・と期待感が高まったところで・・・
気が付くと、もう日付変更線を越えています。 明日も普通に仕事があるので・・・本日はここまで。
おやすみなさい。
先日、手に入れたLEGOの本「LEGO book museum」にLEGOの語源というか、名付けた経緯が書かれていました。
デンマーク語で「よく遊べ」という意味の「Leg Godt」(発音はライゴッド)から略してLEGOになったらしいです。
そんなことを知らない私は、勝手に「Let's GO」が語源と思っていました。
こども向け?のおもちゃで、トレジャーガウストというのをオークションで手に入れました。
空間に潜むガウストを探知!ガウスポジションシステムで空間追跡!リールアクションで捕獲!捕まえたガウストで育成&バトルができる!
という、なんかよく分からないゲーム(アクション)ができるらしい。
よし、これでYと一緒に遊ぶゾ!
という訳ではありません・・・
なんで、これを手に入れたか、と言うと・・・この、おもちゃは方位センサー(地磁気センサー)を使っているらしいので、その部品を取り出すためなのです。
では、早速分解を・・・まずは、赤い方に犠牲になってもらって・・・
まずは、もう外から見えるネジというネジを全部外しました。(お菓子に小さな蟻が集っているみたい・・・)
これで、裏蓋は外れますが・・・その中には、目的の物はなさそうです。
じゃあ、もう一つの筐体(正面の方)を外さなければなりません。 とはいえ、ネジは見あたらないし・・・もう、どうせ元に戻すつもりもないし、バキッとやっちゃうか!
いや、最後にもう一回確認とばかりにネジを探すと、巧妙に穴が空けられているところがありました。 無事、ネジを外すことができました。
さて、そこを開いてみると、大きな基板が鎮座しております。
見る限り、目的のものは見つかりません。 しょうがないので、またまた、基板を止めているネジというネジを外して基板を取り外しました。
基板の裏側を見ると・・・やっと、目的のものを見つけることができました。
しかし、基板にしっかりハンダ付けされており、簡単には取れそうにありません。
とりあえず、よく分からないリード線などをニッパでパキッパキッと切っていきます。
基板を残して、あとはゴミ箱行きです。(さようなら)
さて、小さなセンサー基板をどうにかして外さなければなりません。
どうしよう、どらえも~ん!
たらららったた~♪ 半田吸取り機!
ということで、先日手に入れた半田吸取り機が役に立ちました。
苦労しましたが、目的の部品の摘出に成功しました。
よしじゃあ、次は青い方も犠牲になってもらおう・・・
もう、手順も分かっているので、必要な部分だけ外して・・・
完璧!
これで、2つの部品が手に入りました。
さて、この私の努力は報われるのでしょうか?
半田付けをするのは良いけど・・・
間違って付けちゃった場合に、リカバリするのって結構大変ですよね。
一本や二本くらいなら可愛いけど・・・ICとか逆に付けると、もう、どうしようもありません。
で、前から欲しかった、半田吸い取り機なる工具を買いました。
まあ、こんなに安いのであれば、もっと前に買っておけば良かった。
結構、役に立ちますよ。
これと、網線のようになっている半田吸取線を併用すれば、失敗してもなんとかなりそうです。
なぜ、今回これを買ったのか?
それは、半田付けしてある部品を基板から取り外したかったからです。
無事に取り外せるかは・・・後日挑戦してみます。
Yの夏休みに自由研究に先立って、初めて使うATtiny2313にプログラムが書き込めるか、調査していたときのこと・・・
ブレッドボードにAVRを挿し、書き込みに必要な配線(6本)をして、電池(4.5V)をつないで見ました。
AVR書き込み機(AVRISPmkII)を接続すると、(書き込み機の)LEDが赤く光ります。
電池の電源をONにすると、書き込み機のLEDが緑色になるハズなのに・・・ならない。
オレンジ色に点滅します。
電池の電源をOFFにすると、何も無かったように、LEDが赤く光ります。
あれ~ 配線を間違えたかな~
何度見ても配線は間違い無いようです。
何で?
とAVRを触ったら
熱っちぃ!
すごい熱で、指先を火傷するところでした。(すぐに氷で冷やしました。)
なんで、こんなに熱いの?
もう一度配線を確認しましたが、やっぱり間違いは無いようです。
またまた「このATtiny2313は壊れてる」等と言う考えがよぎりました
が、もう一度良く見たら・・・単にAVRが180度逆に挿してありました。
(単に、それだけ)
気を付けろよ俺! 落ち着けっ俺!
LEGO関係の本の第3弾が到着しました。
LEGO book museum + Active Fun Block +
というものです。
中身はLEGOの歴史と歴々のシリーズの紹介といったところです。
その中にレゴの10のルールというのがありました。
1.Unlimited play possibilities
2.For girls , for boys
3.Enthusiasm for every age group
4.play all year round
5.Stimulating and absorbing play
6.Endless hours of play
7.imagination , creativity , development
8.Each new product multiplies the value
9.Alway topical
10.Leadership in teams of safety and quality
これ全てを満たしているオモチャだそうです。
さらに各部品は1000分の2mmという精度で作られているらしいです。
大人買いした、LEGO関係の本の第2弾が到着しました。
創作アイデアの玉手箱
続・ブロック玩具で遊ぼう!!
です。
前作に比べて、さらにパワーアップした作品群がすごいです。
中にはトレインの特集があり、元鉄ちゃんとしては心躍るものがあります。
また、情景や街を作るところがあり・・・ただ、ただ、ため息が出ます。
Mは、前作以上に目を輝かせていました。
「基礎の基礎」のところに、ブロックの組み立てや外し方のアイデアが書かれています。
確実に「はめる」のにはゴムハンマー、外すときにラジオペンチやペーパーナイフの使い方が紹介されています。 作品をきれいに見せるテクニックなどが満載です。
我が家のチームメンバーもこれを読んで、美しいロボットを作ってくれよな。