2011年5月7日土曜日

Arduino Fio (Wireless プログラミング篇)

Arduino Fio の XBee を使ったワイヤレスアップロードの紹介です。
前回は USB シリアルアダプタによる転送を行いました。

XBee (Series 1) を正しく設定すれば、USB シリアルアダプタは購入しなくても、Arduino IDE からプログラム転送する事が出来ます。
Fio の公式ページ (Arduino.cc) とFunnel のページ (funnel.cc) を読んだ上で、Mac OS X 上のArduino IDE (ver 0022) で使う場合に特化して説明します。

それぞれのページに、複数の方法が書いてありますが、XBee Config Tool というソフトを使うのが簡単です。
ハードウェアは2 台の XBee (Series 1) モジュール、1 台の Arduino Fio、1 台の XBee Explorer USB (USB アダプタ)を使っています。

[XBee モジュールの設定]
作業前に悩んだ以下の点を説明します。

1. AT コマンドによる設定は必須?

(結論) >> 不要です。XBee Config Tool を使うと、そのコマンド群のように設定されます。
 特別な理由がなければ XBeeConfig Tool を使うのが良いでしょう。

2. XBee ファームウェアのバージョンは?
>> http://funnel.cc/Hardware/FIO?userlang=ja
>> XBee無線モデムのファームウェアのバージョンを確認し、
>> 1.0.A.5または1.0.C.Dよりも古い場合にはX-CTUを使用してファームウェアを
>> アップデートする

(結論) >> XBee Config Tool で[Read] ボタンを押すと、表示されます。
 AT コマンド(ATVR) で調べることもできます。
 ファームウェアバージョンについては、最近購入したものであれば問題ないと思います。(Mac ではアップデートできなさそう)

3. XBeeConfig Tool は使えるの?Fio XbeeConfigTool とXBeeConfig Tool は何が違う?

>> http://arduino.cc/en/Main/ArduinoBoardFioProgramming
>> You can configure your radios using a terminal application,
>> or using X-CTU on Windows, or you can use the Fio XBee Config Tool.
>> This is a modified version of Shigeru Kobayashi's XBeeConfigTool.

(結論) >> この2つは同じものの様です。Funnelソフトウェアとして配布されているXBee Config Tool (のMac 版) は ver 1.0-r787 の場合、
funnel-1.0-r787/tools/XBeeConfigTerminal/application.macosx/XBeeConfigTerminal.app
にあります。付属のソースコード同士を比較しましたが、(空白や改行などの違いを除くと)Fio XBee Config Tool との違いは、ウインドウに表示される名称だけでした。
(Modify の結果が、Funnel の方にも取り込まれているようです。)

既に Funnel ソフトウェア をダウンロードしている場合は、あらためてFio XBee Config Tool をダウンロードする必要はありません。

4. XBee Config Tool の通信速度設定は?

(結論) >> 自動で設定されるようです。
XBee を57.6kbps にした場合と、9600bps にした場合と試しましたが、どちらでも大丈夫でした。

5. wireless bootloader が必要?

>> Wireless XBee/AVR Bootloading tutorial

(結論) >> 不要です。Arduino Fio を使う場合、この手順は読まなくて良いようです。


**********
実際の設定は

Mac で使うXBee モジュールの設定


Arduino Fio で使うXBee モジュールの設定

1. Serial Port を選択(XBee Explorer のポートを選択)
2. Mode を選択(Mac 側で使う方をProgramming radio に、Arduino で使う方をArduino Fio radio に)
3. Baud rate を選択(最近買ったものならATmega328 なので、57600 を選択)
4. PAN ID を設定(0000 からFFFF までの好きな値、2台とも同じ値にする)
5. MYID を設定 (0000, 0001 が自動でセットされるのでそのままでOK)
6. DLID を設定 (FFFF, 0000 が自動でセットされるのでそのままでOK)

選択・設定をしたら [Config] ボタンを押して書き込みます。
Arduino 側とMac 側と、別々の設定になるので、間違えないように印を付けた方がいいと思います。(MYID を書くと良いと思います。)

[ハードウェアの設定]


・Arduino Fio 側は、すでにジャンパがついていました。
・XBee Explorer 側は説明の通り、RTS とDIO3 をショートしました。

[Arduino IDE の設定]
・(Tools > Serial Port) XBee Explorer のポート(usbserial で始まる) を選択。
・(Tools > Board) Arduino Fio を選択。

あとは、Arduino Fio の電源をON にし、通常通りにアップロードすれば OKです。


いろいろと調べすぎてしまって大変でしたが、実際に必要な作業はとても簡単です。
同じ方法で、Arduino Uno + XBee Shield も試したのですが、こちらは上手く行きませんでした。(原因調査中)

7 件のコメント:

  1. こんにちは、今研究でarduino fioを使った無線通信をはじめようとしています。

     TETRASTYLE さんのブログを参考にさせていただいていますが、上手くアップロードできません。
     何かチェックが必要な項目があるでしょうか?

     使用しているOSがwindows7であること以外は同じ構成です

    一ヶ月間以上悩んでいます。どうかよろしくお願いします

    返信削除
    返信
    1. 藤岡さん はじめまして
      そうですか、、、週末にちょっと検証してみます。
      FTDI アダプタなどを使った有線での書き込みはできているのでしょうか?

      削除
    2. とりあえず、Win7pro(SP1), Arduino IDE 1.0, XBee (Series1) の組み合わせで無線書き込みを試しましたが、できました。
      1度目でエラーが出ましたが、何度か書き込むと成功しました。


      どのようなエラーが出ていますか?

      削除
  2. TETRASTYLEさんコメントありがとうございます

    はい、FTDIアダプタでの書き込みは成功しています。


    xbeeを使ってやろうとすると何回やっても

    avrdude: stk500_getsync(): not in sync: resp=0x00

    の一文のみで、書き換えることが出来ません。


    因みにwin7 64bit のhome premiumを使っています

    返信削除
    返信
    1. チェック内容も本文に書いた通りで大丈夫かと思います。

      基本事項(ハード)
      ・XBee はSeries 1 ですか?
      ・XBee のファームウェアのバージョンは?(本文参照)
      ・XBee Explorer のジャンパ(RTS-DIO3) はされてますか?(本文参照)
      ・Fio のMPU はATmega 328 ですか?
      ・Fio に電源(USB またはLiPo)をつないでいますか?

      FioXBeeConfigTool での設定
      ・PC に接続するXBee をProgramming radio の設定にしましたか?(本文参照)
      ・Fio に接続するXBee をArduino Fio radio の設定にしましたか?(本文参照)

      Arduino IDE での設定
      ・Tools > Board で Arduino Fio を選択していますか?
      ・Tools > Serial Port で XBee Explorer のCOM ポートを指定しますか?

      その他
      ・電源On でON の LEDは点灯しますか?
      ・プログラム転送中にRSSI のLED は点灯しますか?


      以上すべて問題なければ、正直わかりません、、、
      秋葉原に出られる方でしたら、ナノラボかはんだづけカフェで相談のることもできますが、、、

      削除
  3. いろいろコメントありがとうございます。

    ご指示の通り試してみましたが、設定や指定には問題がありませんでした。ただ、プログラム転送中にRSSIのLEDが点灯していませんでした。

    もしご都合つくようでしたら、是非相談に乗っていただきたいです。申し訳ありませんが、今試験期間中なので2月の中旬以降でお願いできると助かります。

    返信削除
    返信
    1. うまく日程が合うかわかりませんが、試しにフォームつくってみたので、
      その気になったら呼んでみてください。
      http://dev.tetrastyle.net/2013/01/blog-post.html

      削除