Arduino 上にArduino WiFi Shieldをのせて、IDEで開発する際にうまく動作しなかった場合、どこで躓いているかを調べるのは意外と面倒だ。
Arduino IDE自体に本体エミュレーション機能とかがあれば便利なのだけど、執筆時点のIDEにはそんな機能は存在しない。
となるとログがわりにSerial.println()を1行ごとにかませて、どこまで動いているかを調べていくしかないのだけど、WiFi通信の場合、そもそもルータが見えているのか、SSIDが間違っているのか、パスフレーズがだめなのかなどのミスの特定はこの方法でもむづかしい。
このような場合、Arduino WiFi ShieldのファームウェアオプションだったFTDIアダプタを入手して母艦PCに別途シリアル接続させ、こっちのポートから動きをモニタすればよい。
私はスイッチサイエンス社から以下のリンク先のFTDI変換アダプタを入手した。
FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)
https://www.switch-science.com/catalog/1032/
このアダプタはmicroUSBメスのインタフェイスとPCを繋がないといけないので、別途ケーブルも必要となる。
接続する手順は、以下のとおり。
- アダプタに、microUSBケーブルを接続する
- microUSBケーブルをPCに接続する
- デバイスマネージャを開き、「ポート(COMとLPT)」の「USB Serial Port」のCOM番号を確認する(プロパティ>全般タブ>製造元:FTDI)
- PC上でPuTTY.exeを起動する
- 「Serial」をチェックし、「Serial line」を先ほど確認したCOM番号に、「Speed」を「57600」に変更して、「Open」ボタンを押す
- PuTTY画面でEnterキーを2度ほど押して、プロンプトを表示させる
- プロンプトで「help」と入力すると、利用可能なコマンド一覧を参照できる
- 「status」と入力すると、現時点のステータスが参照できる
- 「debug on」と実行しデバッグモードをオンにしてから、このままコンソールを開けながら、Arduino IDEでアプリを動かすと、WiFiシールドの動作を確認することができる
..Serial.println()埋め込むほうが早いよね..これだと..
COMポート複数使うので迷うし..
0 件のコメント:
コメントを投稿