« 2011年3月 | トップページ | 2011年5月 »

2011年4月の2件の記事

2011年4月28日 (木)

モーター制御が先に進まない

 メカトロニクスだ、ロボットだと意気込んで始めたモーター制御だが、早くも挫折気味である。Xbeeラジコンが一通り動いたので、次はステッピングモーターを動かしてみた。これはすんなり動いたのだが、その先の課題、センシング技術でぱったり歩みが止まってしまった。

その顛末はあとでゆっくり説明するとして、とりあえずこの3週間の活動報告から。

ステッピングモーターで遊ぶ(4/12/11)
 モーター制御の次のお題。ステッピングモーターである。マイコンの作ったパルスだけでモーターを回す一種のブラシレスモーターで、こういうしかけは工作心(ごころ)をとても刺激する。今度のプロジェクト(ライントレーサーが一応の目標)の買い物をしたときに、用もないのに面白がって秋月で一番小型で手頃なステッピングモーターを買ってあった(SPG20-1362 ¥250)。

P4283846

 先達(ここや、ここなど)のページを読んでやりかたを勉強する。5V近辺では、普通のステッピングモーターでは余り高回転にはできないようだ。kumanさんあたりによると120rpm(1秒に2回転)くらいが限度だと言う。実験なので、ありあわせの5V電源に、LEDマトリックスのとき使ったトランジスタアレイTD62083をドライバーにして早速ブレッドボードに組んでみる。

 マイコンは、お馴染みのAVR Tiny2313。フラッシュは少ないが、ポートが連続して取れるし、何しろ安い(¥100)のが強みである。 プログラムは順当にタイマー割り込みで制御タイミングを作り、例のISP-UARTでモーターのスタート・ストップ、速度制御が出来るようにする。

 コンペアマッチで起きるタイマー割り込みの間隔をUARTのコマンドで調整できるようにして、4bitのポートピンを順次パターンどおり入れて動かしていく。ポートの下半分(上半分にはISP-UARTが入っている)だけをいじりたいので、一旦、ポートごと、ピンを読み出してセーブし、必要なところだけデータを入れ替えてから元へ戻す。いわゆるread/modify/writeでコードを組む。

配列phase[4]に二相駆動のパターンをconstで定義し、

const phase[4] = {0b00001001, 0b00001100, 0b00000110, 0b00000011};

それで、以下のステートメントを割り込みの度に実行させれば、動くはずだ。

pin_save = PINB & 0xF0;    // save upper nibble of PINB
    pin_save |= phase[i++];    // take next pattern
    if(i == 4) i = 0;          // repeat it evry 4 times
    PORTB = pin_save;          // set new PORTB pattern

 モーターはすんなり動き始めた。おやあ、ジージー音がして、余り良く廻らないぞ。これが脱調と言われるやつか。タイマーの時間を増やしていく。うむ、少しづつ振動が減って回転がスムーズになってきた。遂に全く音も振動もなく静かにモーターが廻り続ける。おやおや60rpm(回転数/分)以下だ。このステッピングモーターは5Vでは、55rpmを越すと細かい脱調が始まる。

 スタートストップや、逆回転(逆にしたパターンの配列に換えるだけ)のコマンドを入れて、UARTから自由にモーターが制御できるようにする。こんな簡単な実験でも、やっぱり動きモノは理屈ぬきに面白い。しばらく遊ぶ。

 ただ、ステッピングモーターは残念ながら実験だけで手近な応用例が見当たらない。この程度の速さなら、時計の針くらいしか用途が思い浮かばない。カメラのパンくらいには使えそうな気もするが、今のモーターでは非力すぎて無理だろう。マイクロマウスにはもっと強力なモーターが必要だ。 

ステッピングモーターを回すだけのソースですが、とりあえずここに置いておきます。例によってAVRStudioのフォルダーになっています。回路図はつけませんが、ソースのコメントを参照してください。

「STPM2313.zip」をダウンロード


大阪造幣局の「通り抜け」に行ってきた(4/14/2011)

 久しぶりに関西に家の用事で戻ったとき、丁度、遅咲きの桜で有名な大阪造幣局の「通り抜け」の公開初日にあたったので見に行ってきた。ここは、見事な八重桜の並木が川沿いに1キロ近く続くところで、所長は関西出身だが、これまでTV、新聞で見るだけで実際にここを「通り抜ける」のは今回が始めてである。

P4143822

 平日の初日なので思ったほど人は居なかった。花の時期としてはまだ少し早く、こぼれるような八重桜というわけには行かなかったが、沢山の種類の八重桜を鑑賞できた。ただ、たいして混んでも居ないのに係員が「立ち止まるな。足を止めるな」とうるさく拡声器でせかすのは興ざめだった。

 関西は地震の影響は少ないと聞いていたが、このとき乗ったタクシーの運転手の話に驚いた。国外に避難した外国人だけでなく、関東の日本人もたくさん関西に逃げてきたそうである。 明治維新の頃、写真をとられると魂が抜かれると怖がり、明治になってからでも、送電線の下をくぐるとコレラにかかるという迷信が流行ったことがあるそうだ。人間と言うのは、理解できない、目に見えないものに対しては特別な恐怖心を覚えるものらしい。

P4143823

 原発の是非をここで議論するつもりはない。ただ冷静に判断して、4月に入ってからの福島原発の状況は、関西まで逃げなければならない状態ではない。事故発生直後の1週間は確かに心配だった(ひそかに風向きとか天候を調べていた)が、今はその危機を脱していることは確実だ。日本は最近まで、放射線照射などによる遺伝子組み換え大豆を輸入していなかった数少ない国の一つだそうであるが、どうも怖がり方のピントがずれている。

 女優と離婚騒ぎを起こしたネットの有名人が、西表島から「原発から一番遠い南の島より」というメッセージをブログに載せてみんなの顰蹙(ひんしゅく)を買ったが、西表島の西200キロ(東京福島間くらい)には放射能漏れで反対運動の起きている台湾の原子力発電所が3つ以上稼動しており、しかも偏西風で間違いなく風は沖縄にやってくる。怖がるのも良いが、正しい怖がり方をして欲しいものだ。明治の人を笑ってはいられない。

FETならもっと早くなると思ったが(4/16/2011)
 それはともかく電子工作である。旅行から帰った後、工作室に戻っても、やることがなくなってしまった。ステッピングモーターは動いたが、目的がないので、まわってしまえばそれだけの話である。それでは身も蓋もないので、モータードライバーをトランジスタアレイでなく、MOS-FETに換えてみた。

 秋月で買ったNMOSのFETアレイMP4401である。5つも買ってしまってある。ネットの回路図には、ゲートとマイコンのポートの間に抵抗が入っている(2KΩ程度)のと入っていない直結のものがあるが、実験なので直接つないでしまう。

 ピンを少しやすりで削り(1mm近くあってブレッドボードにささらない)、トランジスタアレイへの配線からFETアレイの方にジャンパーを飛ばす。造作のない話である。このFETアレイには、モーターの逆起電圧をバイパスする、フライバックダイオードも内蔵されているので配線は簡単に済んだ。

 回してみる。うむ、トランジスタより快調のようだ。脱調が起きずにスムーズに廻る限界は、トランジスタでは55rpmだったが、FETにすると70rpmくらいまで楽に安定して廻った。ただ、オシロで見ると、モーターにかかる電圧はP-Pではどちらも5.2Vで全く変わらない。変わったところは、RMS(実効電圧)で、FETで3.6Vとトランジスタより、0.1Vほど高くなった。

 モーターは暫く連続して回すと(80~90mA)、ほんのり暖かくなるが、FETの方は全く熱らしいものは持たない。そりゃそうだ。連続3Aをドライブできる石に1/30もかけていない。牛刀で鶏を解体しているようなものだ。トランジスタの場合は、この前のXbeeラジコンカーのTA7291Pでは小さなモーターひとつに結構、熱を持っていたが。

 FETで動かして、ステッピングモーターでは、やることがなくなった。もう少し大きいものを動かさないと大電流の制御をマスターしたことにはならない。この先のマイクロマウスなどは、ステッピングモーターで駆動しているようで、このまま先に行くのはちょっと不安だが、ウェブで見る限りマイクロマウスに使っているモーターは結構高価でそう簡単に試すわけには行かない。

 計画しているウェブカメラの雲台などの制御はステッピングモーターになると思うが、これは機械工作の方が大変だ。急には始められない。となると、当面の目標はライントレーサーということになる。2モーターの制御はラジコンで確かめてあるので、地面の書かれた線をなぞって車を制御するセンシング技術が次の課題である。センサーのハードそのものは、このまえ既に秋月で、大きめのフォトインタラプタ(LBR127HLD ¥60)を調達し、これでやるつもりだ。

P04500

ライン制御のノウハウがわからない(4/18/2011)
 センサーのロジックを調べ始めた。しかし参考になる情報が極めて少ない。ライントレーサーを話題にしているサイトは山ほどあるのだが、実際にフォトインタラプターの数はどれくらいが良いのか、折れ曲がったライン(直角のラインなどが難しそう)をうまくトレースして2つのモーターの制御を具体的にどうするべきかなどの実践的な情報がないのである。

 モーター制御の特集をした雑誌(インターフェース誌 2010年1月号)には簡単な制御ロジックがでているが(P60~65)、こんな簡単な制御(3つのインタラプター出力をコンパレーターにかけ0,1だけで判断)では、少し速度を上げればすぐ破綻するのは目に見えている。

 一番頼りになったのは、結局はやはりChaNさんのチョロQのモーターをつかった手のひらサイズのライントレーサーのページである。こいつはコイン電池2つを載せてA3 の用紙の上に描かれた8の字コースを器用にクルクル廻る。素晴らしい。

 しかし、ここでも制御アルゴリズムとなると途端にPID制御の話が出てきて理解不能に陥る。こちらは昔、なまじ自動制御技術をラプラス変換か何かで勉強させられたのでその復習を、良い機会なのでやりたいのだが、このPID制御理論との整合性がどうにもとれない。

 他のサイトも、このあたりは極端に省いているか、極端に難しく説明しているかどちらかで、こちらが考えているような具体的な技術(しかけ)に応用できそうなロジックが見つからない。最近、良くコメントを寄せてくれるeNastyさんが紹介してくれたサイトも、全体的な話だけで肝腎のセンシングのアルゴリズムまでは出ていない。

 秋月で入手した大きめのフォトインタラプターLBR127HLDは、ちょっと試してみたところ、かなり感度は高そうなので性能的には問題なさそうだが、これをいくつ並べて、どの位置から値をとれば良いのかがわからない。どうもラインセンサーのこの部分はかなり高いノウハウのようで、そう簡単にはウェブでは教えてくれないようだ。意図的に省いているのではないかと勘ぐりたくなるくらいである。

 やれやれ、これは相当な下準備をして、実験を重ねながら、自分なりのアルゴリズムを考えて実装していく必要がありそうだ。一筋縄では行かない。道は遠そうである。

雑誌付録基板LPC2388のLANポートを作り始めた(4/20/2011)
 そんなことを思い悩んでいるうち、このブログに、2年近くも前のXbee電力ロガーの記事を目当てに来るお客さんが急に増えた。調べてみると、震災後の話題のひとつ節電にからんだ交流電力の測定の話である。こちらのURLがいくつかのサイトで紹介されているようだ。そこでも話題になっているのが、正確な交流電力の測定のための専用のチップADE7753である。2年前に買ってそのままになっている。

 そう言えばあのとき一緒に買った、EtherNetの物理層(PHY層)のIC、DP83848も、変換基板に載せたままそのままになっている。久しぶりに、このチップ2つを取り出して眺めているうち、どういうはずみか、急にネットワークチップDP83848の実装がやりたくなった。

 この石は、もともとCPU基板の雑誌付録(インターフェース誌2009年5月)とタイアップした部品販売店のLAN&SDカード拡張基板が法外に高価なのに反発して、自分で作ってやろうと手に入れたのだが、ぐずぐずしているうちに、STM32でお世話になっている「ねむい」さんに先にあっさり実装されてしまい、変換基板に半田付けした時点で、すっかりやる気をなくして放置してある。

 このLANチップの親のCPU基板は、LPC2388である。この基板も、ChaNさんが雑誌に詳しく制作記事を掲載されたのを契機に制作意欲を失い、開発環境を試しただけでそのままになっている。へそ曲がりで天邪鬼(あまのじゃく)な性格なのは困ったものだ。結局ARMはSTM32の方に走った。

 今となっては少し古い設計だが規模から言えば、この石(LPC2388)なら静止画くらいのウェブサーバーを作れそうである。ここにステッピングモーターを使ったカメラの移動装置を作りこめば面白いかもしれない。イーサネットPHY層のチップ、DP83848の実装が無駄にならないですみそうだ。

P4243839

 寄り道をする癖がついてしまって、DP83848を載せた変換基板に、かねてより準備していた回路図でハードの実装を始めた。この回路図は、「ねむい」さんが、実装するのに利用したKeilのLPC23XX用の評価ボードMBC2300の回路図である。こちらも同じ頃、独自に発見して残してあった。 

 実装も彼のやりかたをそっくり真似て、千石でサンハヤトの片面べたアースの汎用基板を手に入れた。このまえのマイクロチップのLANチップENC28J60は普通の基板で問題なく動いたが、今度は100BASE/Tでも動くNICチップである。彼の言うように用心するに越したことはない。価格も¥250とサンハヤトにしてはそう高くない。

 まず、変換基板上につけられるだけのパスコンをチップコンデンサーでハンダ付けする。べたアース基板は気をつけないと簡単にショートしてしまいそうで実装には気を遣いそうだ。久しぶりの細かいハンダ付けである。モジュラージャックの固定が問題だ。

P4243838

ソフトをたくさんダウンロードしすぎた(4/25/11)
 配線そのものは予想したとおり、そう難しいところはない。「ねむい」さんが50Mhzの配線に気を遣っておられるが、データシートでは25Mhzのクリスタルを外付けすることになっている。良くわからない。RMIIモードでは50Mhzを出力するピンがあるが、Keilの回路図ではここはどこともつながっていない。まあ、組むだけ組んでみよう。それよりソフトを用意しなければならない。

 LPC2388にDP83848を付けてウェブサーバーにしているサンプルソースは、いくつかウェブ上に見つかっている。ただ、OSを使うか使わないかの判断が難しい。CPUお膝元のNXPのサイトには、この評価ボード用のデモソースがあるが、これはOSを使っていない(AN10799)。 uIPのサイトからもLPC23XX用のOSを使わないDP83848を使ったWebServerのデモソースを落とす。これもOSなしだ。

 ウェブカメラのようなアプリケーションを制御するならOSなしより、OSが入っていたほうが圧倒的に開発が楽になるので、FreeRTOS6.0とlwIP1.3を使ってWebServerをこの評価ボードで作った個人のサイトからも、ソースを頂く。当然、「ねむい」さんのところからも。ChaNさんのFatFSが、FreeRTOSのもとで動くか心配だが。

 TOPPERS/JSPもLPC2388で動くようだ。TOPPERS/JSPは、参考書も買って一時、H8に入れようとしたが、開発環境がLinuxだったりして敷居が高く、先に進まなかった。ChaNさんのFatFSはTOPPERSの標準ファイルシステムだ。TOPPERSにしたい気持ちもある。今まで外国製品ばかり使っている。H8もNECの78K0も、ルネサスのSH2もろくに使っていない。

P4243828

 ここでOSまでもFreeRTOSにすると非国民と言われそうなので、TOPPERSを無理にでも入れたいのだが、初めての評価ボードにいきなり実装するのは余りにも冒険過ぎるだろう。OSにこだわるのは、一旦、入れてしまうと別の環境に移りにくく、いわゆるロックインされてしまうからだ。

 あれやこれやと迷路の迷路に入り込んで、ウェブをさまよう。まあ、これが面白くて電子工作しているようなものだけどね。

 結局、ウェブからソースコードが5セットも集まった。OS付きが3つ、OSなしが2つ。色々迷った結果、正規のFreeRTOS7.0のデモソースが、この評価ボードをターゲットにしていることを確認し、これが一番新しそうなので、これをインストールして動かすことに決めた。さて始めてのOSである。うまく動くかどうか。

| | コメント (7) | トラックバック (0)

2011年4月 9日 (土)

Xbee APIモードのラジコン制御成功

 モーター制御をするはずだったのが、XbeeのAPIモードに寄り道し、XbeeのAPI汎用モニターをでっちあげてしまった。そのついでに、これまで気になっていたUARTの改善にはまりこんでしまう。完全な「寄り道の寄り道」である。

ソフトUARTをC言語化する(4/1/2011)
 Xbee自体が道草だったのだが、さらに迷路である。このISP-UARTは、最初ChaNさんが作られたもので、ISPシリアルライター(AVRSP)でプログラムを書き込んだ後ケーブルをつなぎかえる必要もなく、そのままの状態でUARTに使えるというのがウリである。

 AVRに取り組んですぐ、ChaNさんのオリジナルUARTソース(アセンブラー)に、受信が割り込みで動くようにC言語でロジックを追加した。この改修で、UARTは入力待ちで止まらないので(入力があるとフラグを返す関数を使う)、モニター代わりに当研究所では殆どのシステムに入れてある。

 デバッグが済めばUARTを使わないシステムでは完成後はずせばよい(フラッシュに余裕のある時は結線をはずすだけ)。中の変数を簡単に出力でき、プログラムをLEDなどでデバッグするより格段に効率が良いので、大変重宝している。

 ただ、前から不満が残っていた。それは、ソースコードに、ChaNさんのアセンブラールーチンが残っていて、使うたびに、アセンブラーのファイル(.S)とUART本体のファイル(.C)の2つをインクルードしなければならないことである。それと以前、アセンブラーの部分をすべてCに換えようとして、うまくいかずあきらめて残した経緯がある。それ以来、何となくわだかまりが残っている。

 ISPのラインを使わず(MOSI/MISO/SCK)、通常のGPIOで、このUARTが使えるようにしたことはあるが、このASMルーチンは残したままであった。ISP-UARTは、通常のUARTと違い、ISPのプログラム書き込みの関係か、UARTのデータラインが正論理(スタートビットがHigh)になっており、このときはこれを負論理に置き換えただけである。

 アセンブラーで書いた部分をC言語に出来なかったのは、時間遅れを正確に把握できず、受信がどうしても安定しなかったためと記憶している。しかし、あのころに較べたらオシロもロジアナもあるし、開発環境は格段に進歩している。丁度良い機会なので、XbeeのAPI汎用モニターをより汎用化するため、GPIOのC言語だけのUARTを作ってしまおうと決意した。

 意気込みは良かったが、やっぱり今度も、四苦八苦した。送信は何とか動くようになって、マイコンからのオープニングメッセージが出るようになったが、PCからのデータ受信が難しい。キーボードからの1文字だけの入力なのだが、どうしても正しい文字を受け取れない。Uart_rx

  やっぱり、ロジックアナライザーの出番が必要になった。GPIOでボーレートに従ってピンの入力を調べるところへ、ロジアナに信号を送るプローブピン(ピンをトグルするステートメント)を入れ、時間を測った。UARTはどんなに早くても1ビット数十から数百μsの世界だが、AVRのクロックは4Mhzでも1/4μsで少々プローブを入れても影響は殆どない。コンパイルし直してロジックアナライザーを動かす。

 これでGPIOの動きが一目瞭然になる。これが一番強力なデバッグ法だ。これができなくて前は挫折したのだ。画面を注意深く検討する。うーむ、想定どおりのタイミングでデータを読み込んでいるぞ。正しくデータをとっているようだな。ビットを数える。ちゃんとスタートビット、ストップビットをカウントしている。チャートで見る限りは正しい文字を得ているはずだ。それなのに出力がおかしい。

 わかってしまえば、馬鹿馬鹿しくなるほど簡単な間違いなのだが、この段階でも原因はつかめなかった。デバッグというのはこういうものだ。一生懸命、タイミングを調べていたが、ロジアナで見る限り、データを採取するタイミングは間違っていない。最初、割り込み直後の待ち時間が長すぎて、全体が後ろにずれていたが、これを補正してコンパイルしなおしても正しいデータはとれない。とすると原因はここではない。

 採集した1バイトデータがこのあとおかしくなっていることになる。1バイトデータはシフトレジスター的に1ビットづつ移動しながらデータを取る。ふーむ、前もこんなことがあったような....もしかして出来上がったデータを最後にさらに回してはいないかい。あ、あ、あ、やっぱりここでもやっていた。

 いやあ、時間がかかった。これはdo whileのように終了条件を後にしても解決しない。8ビットのデータを得ながら、8回シフトすれば、データは1ビットずれる。出力する側をシフトするのでなく、マスクする側をシフトするようにロジックを変更する。

 よーし、受信も問題なく動くようになった。C言語での割り込みのオーバーヘッドはやはり思った以上にASMよりかなり大きかった。ASMではビットレートの半分くらいをスタートビットから待っていたが、この部分はCでは殆ど必要がないくらいだった。クロック4Mhzで14μsもかかっている(38.4kbpsで1ビット26μs)。一旦読み込みが始まれば割り込みを経由しないので、ほぼ想定どおりの待ち時間でまわっている。

 CPUクロックが4Mhzとかなり低い(たまたまこの水晶しかなかっただけだが)のでクロックを上げたときには、もう少し補正する必要があるかもしれない。

Chanasm

 それにしてもChaNさんのコーディングは何時見ても実に素晴らしい。このUARTの送信の部分のアセンブラーコードなどは惚れ惚れする。UARTのスタートビットとストップビットの追加は、普通なら別のステップを用意するところを、10回のループをまわしているだけで実現している。

 スタートビットは、まずCOMという命令でデータを反転させ(このUARTは正論理なのでこれが必要)、ついでにこのときできたキャリービットをスタートビットに使う。そして最後のストップビットは、シフトの空振りで出来るゼロビットで実現だ。送受信とも命令数は10あるかないか。

 皮肉なことにフラッシュサイズは、全部Cにしたら数十バイト増えてしまった。要するにこれだけ苦労して必要なファイル数をひとつ減らしたに過ぎない。まあ、これで全部自前のコードになったというつまらないプライドは満足させることができた。

タクトスイッチを使ったXbeeのデジタル出力が実現した(4/5/2011)
 それはともかく、Xbeeのラジコン制御である。ラジコンだけなら、面倒な汎用モニターの大部分(キーボード入力文字をデコードする部分)のコードは不要である。どうしようか迷ったが、ラジコン制御のロジックも今のAPI汎用モニターに組み込んでしまうことにする。

 汎用モニターもまだ修正するところがあるだろうし、ソースをひとまとめに管理していた方が楽だ。すべての処理はイベントドリブンで動いているので、どちらもオーバーヘッドになることはない(ifのところだけ)。フラッシュにも余裕がある。

 モーターにひとつづつタクトスイッチを割り当て、スイッチの押下でモーター起動、離すと停止するコマンドを送ることにする。前進、後進の切り替えは、スナップスイッチで別のピンを設定する。

 このピンを見ながら、それぞれのモータードライバーの2本の制御線のどちらかをONにすればラジコン側は、4本の出力ピンだけで前後進、左右転回ができる理屈である。

 まず手始めに、一方のモーターの前進部分だけを実装する。モータードライバーへの供給電圧と、XbeeのVccが違うのに気がついて、最初はLEDを使う。

 タクトスイッチのチャタリングは、これまでのインタバルタイマーの時間を20msから5msに短縮(プリスケールを1024から256に)し、ピンチェンジ割り込みをスイッチポートに設定し、割り込みが起きてから5ms待つことで防止する。

P4063746

 大した作業量ではない。ほどなくスイッチを押すとLEDが点灯し、離すと消えるという機能が実現した。心配していたが、応答速度は、想定していた通り、100ms内外に納まる。 最初は通信が確立していないので、1秒位待つ時があるが、その後は、殆ど変わらない。 UARTからメッセージが滝のように流れるが、これはXbeeからのレスポンスデータなので、タクトスイッチのレスポンスには影響がない。子供のように子機を遠くに離してLEDが点いたり消えたりするのを楽しむ。

遂に、XbeeのAPIモードを使ったラジコンの操縦に成功(4/7/2011)
 LEDで成功したので、いよいよモータードライバーへの接続である。子機のXbeeの電源はレギュレーターで3.3Vにしているが、モーターは大きなレギュレーターがないのでリチウム電池そのままで、この間にはレベルシフターが必要になってきた。XbeeからいきなりモータードライバーTA7291Pにつなぐのも心配だったので丁度良い。手持ちの2SC1213などのトランジスタでバッファーをブレッドボードに組んだ。とりあえず前進のみの2つ。

 Xbeeを載せたブレッドボードは落ちないようにモーターの上にマジックテープで仮止めし、電池フォルダーもモータードライバーのサブ基板のすきまに放り込んだ。急回転するとどちらも落ちそうだが、早く動くところを見たいので激しい手抜きである。

P4073757 試運転に入る。胸が高まる。スイッチを入れるとき少し暴れてモーターが動くがすぐに納まる。Xbeeは最初の通信が確立するまで秒単位待たされる。

 タクトスイッチ2つを同時に押すと直進、どちらかを止めると回転。おおー、操縦できる。快調快調。コマンドの遅れも殆ど感じない。機械は、電池と制御ボードを背中に載せた不細工な自走車だし、ラジコンで動くことなどいまどき驚く話でも何でもないが、すべて手作りでここまで動かしているという感動で胸が一杯になる。

 この感激を分かってもらうのは、これはやはり動画でないと面白くない。携帯で動画を撮ることを思い立つ。苦心して携帯を固定し、何シーンか撮ったが、やはり操縦と撮影を一人でやるのは大変だ。何とか出来たムービーを、ブログのビデオ共有サイトに送ってはみたもののもう少し良い画を撮りたい。(現在動画サイトの閉鎖により見えません)

 それに、今は前進だけで、後進できないので一旦障害物に当たると戻れない。リモコンはPC横の大きなブレッドボードに作ってあるので移動できない。やらなければならないことが急に増えた。

少しまともな動画を撮る(4/08/2011)

Xbee_apimon_2

 携帯電話で撮った動画は、まあ、動いていることをみなさんにわかってもらうだけのレベルで満足できる結果ではなかった。負け惜しみになるが、もともとはライントレーサーにしてみようと思っていた車体をXbeeを見て浮気してしまっただけのことである。 この程度で止めれば良いものを、やりだしたら止まらない性格である。後進機能と、リモコン機のポータブル化につきすすむ。PC横の大きなブレッドボードに設置した親機を、ミニブレッドボード2つに移し、リモコンとして持ち運べるようにする。

Xbeerc

 ラジコン車の方は、4つのトランジスタをミニブレッドボードに詰め込んで、後進もできるように実装した。後進のロジックは大分前にもう作ってある。リモコン機が出来た。電源は単3二つのバッテリーケースを持ちながら移動する。後進も想定どおりスナップスイッチの切り替えで順調に動いた。家族にビデオをとってもらうため居間に持ち込む。猫2匹が早速重大な関心を寄せる。

 家族に撮影を頼んで、居間で動かす。猫がいても面白いので、猫を入れて撮影する。始めは恐る恐る見て いた猫も次第に慣れて来て、容赦のない猫パンチを浴びせ、ジャンパーが飛んで操縦不能になるところまでの画がとれた。少しは笑っていただけるかもしれない。

P4093758

 ひと時の興奮から醒めて冷静になって考えた。ラジコンだけでは今さら何も珍しくも何ともない。XbeeZBのAPIモードでマイコン使わないで制御していることなど、わかる人でもなければ、誰も感心してくれない。やっぱりライントレーサーにいくしかないか。

以下に、ISPピンでなく普通のI/Oピン(PC5,PC4)でUARTを動かすバージョンのXbeeAPIモード汎用モニターのソースと回路図ファイルをAVRStudioのフォルダーに入れたものを置きます。ChaNさんのASMソースを使ったものも入っています。コンパイルのときに選んでください。ISPピンで動くソースは、save_org_uartフォルダーにあります。

P4093763

| | コメント (0) | トラックバック (0)

« 2011年3月 | トップページ | 2011年5月 »