2014.07.06
Arduino Leopardo系とのシリアル通信方法
大きさ比較
写真の一番左がArduino UNO。標準的なタイプ。でも少し大きい。
残りの3つは左からArduino MICRO 、ストロベリーリナックスのダヴィンチ、sparkfunのPro Micro、これら3つはArduino Leonardo系です。
Arduino Leonardo系に共通なのは、マイコンがひとつしかないこと。
これによって、スケッチの書き込みとシリアル通信が他のUNOなどのモデルと多少方法が変わります。
ArduinoのIDE操作はMacがお勧め
ArduinoのIDEはMacとWindows版でのメニューの反応速度が大きく違います。
Arduinoでのスケッチの書き込みなどの操作はMacで行うほうが断然楽です。とくにLeonardo系は。
WindowsでのLeonardo系のスケッチの書き込み方法
※あらかじめ、ストロベリーリナックスからドライバーとファームウェアをダウンロードして設定しておきます。接続されているもあわせておきましょう。
1)USBにLeonardo系のマイコンボードをつなげます。
2)リセットスイッチを押したときのCOM番号をデバイスマネージャーで確認し、Arduino IDEで(たびたびリセットスイッチを押しながら)[ツール]>[シリアルポート]で選びます。
3)ボード付属のリセットスイッチを押します。(※注意※)
4)Arduino IDEで[ファイル]>[マイコンボードに書き込む]を選びます
5)書き込み中は、COMポートが変わらないように、たびたびリセットスイッチを押します。
※注意※Leonardo系はスケッチ書き込みモードでいるのは、リセットスイッチを押して7秒程度です。すぐに通信?モードに切り替わってしまうため、普通に書き込みを行うとほぼ100%失敗します。
※状態確認のために、環境設定から「詳細表示」にしておくとわかりやすいです。
WindowsでのLeonardo系の確認方法
書き込みが完了したら、動作確認ですね。
動作確認のときは、リセットスイッチを押さない普通の状態でのシリアルポートを選択します。
ここを選びなおさないと、エラーがでます。
この方法がわかるまでとっても大変でした。。。
おっと。
MicroはOKですが、Leonardoボードだと、シリアルインスタンスの作成を待つための一文が必要です。
これを忘れるとスケッチ段階でもシリアルモニターに結果が表示されません。
void setup() {
Serial.begin(9600);
while(!Serial); <<ここ必要!!
}
AIRから直接シリアル通信の値を得る
(上の写真は測距センサーを接続して、人が距離内に近づいたら知らせるというもの)
さて、Arduino IDEでの動作テストが済んだら、実際にコンテンツに組み込むと思います。
私は、展示コンテンツが多いのでAIRアプリにします。
AIRはActionScript3.0で作成しますが、そのクラスの中にはシリアル通信を直接監視するようなものはありません。通常はfunelなどを用いてサーバー経由で取り出します。でも、それだと環境構築に多少手間がかかるので、もう少し簡便なアプリにしたいなと考えていたところ、見つけました!!
名前の通りArduinoのシリアル通信を得るためのANEです。
DLL同梱なので、これを含めるだけで、サーバ無しでもマイコンボードからのシリアル通信の値を得られます。
public var arduino:ArduinoConnector;
public function initApp():void
{
arduino = new ArduinoConnector();
arduino.connect("COM10",9600,true); <<Leonardo系だと第三引数が必要です。無いと値は取れません。
}
protected function closeApp(event:Event):void
{
arduino.dispose(); <<必須。通信プロセスを正常終了させます
}
これで、AIRからシリアル通信値を直接得られます。
はまりましたーーーー。
嵌ったおかげで、写真のように小さいサイズのマイコンボードを揃えてしまいました。
そろったところでわかったのですが、これらは基本マイコンがひとつなので、少し手間取る仲間たちでした。
でも、これがわかったので、もう恐いものはありません!
価格比較
左から順に。
Arduino UNO ¥2,972
Arduino Micro ¥2,916
ストロベリーリナックス Da Vinci 32U w ¥1300
sperkfun Pro Micro 5V ¥2,256
いろいろ調べていたら、もっと安価で小さいものを見つけた。今度試してみたいですね
「895円の超小型Ardunoクローン DigiSparkを買った」
追記:Windows 8でダヴィンチを使う
Windows 8からは無署名ドライバをインストールできなくなっています。ダヴィンチは無署名ドライバなので、困りました。
で、見つけました。
「デジタル署名のないドライバをインストールする方法」
http://www.personal-media.co.jp/utronkb/support/install_sig_win8.html