
ESP32 デバッグにTera Term 活用
先の記事、「Google Sheets にログ出力」で取りこぼしが発生した件、まだ引きずっています。
microPython開発環境として「uPyCraft IDE 使ってます」
取りこぼしだけでなく、エラー停止することもあるのですが、uPyCraftではエラーメッセージを確認出来ないケースが多くて苦戦していました。
uPyCraft用に使っているUSB-シリアル変換基板の出力をTera Termで観察するとprint( ) で出力させた文字列は勿論、エラーメッセージも綺麗に記録出来ることを発見して状況打開中です。
Tera Term は言わずと知れた定番のWindows用ターミナルエミュレータです。ボーレートは115.2kbps、他の設定はデフォルトのままです。
uPyCraftを使って、ESP32にプログラムを書き込み、Default Runに設定したら、Disconnect して一旦ESP32の電源を切ります。Tera Term の準備をして、ESP32の電源をONします。
後はLOGを採るなり、画面に表示させるなりして様子を見るだけです。
悪戦苦闘
稀にしか発生しない不具合は扱い難いものです。uPyCraftで観察しながらエラー発生を待っていましたが、折角エラー停止してもuPyCraftからエラーメッセージなど必要な情報を得られないと言う不毛な状態が続いていました。
当てずっぼうですが、I2C接続のセンサーを読み出す処理をtry: にし、割込み処理をフラグを立てるだけの簡単なものにして残りをmainレベルに移すなどの対策をして様子を見ていました。
そして、Tera Term 作戦を思いついて実施したところ、LCDにI2Cで表示データを送る行でエラー停止している事実を発見!エラーはENODEV。
早速当該部分にもtry: を入れて様子を見ています。
エラーメッセージの有難さ
当てずっぽうも想像する楽しみがありますが、そうそう気長に楽しめるものではありません。元々ブレークポイントも設定出来ない、(ちょっと頼りない)開発環境を承知で作業していましたが、エラーメッセージすら得られないケースが多いことには辟易しておりました。
Tera Term に限らずターミナルエミュレータなら問題ないわけで、Raspberry Pi で手軽に記録することも出来ると思います。
ついつい嬉しくなって記事にしてしまいました。
続報をお待ちください
ここまで来たら、もう一歩です。
必ず続報します。
今後とも宜しくお願いいたします。
いいなと思ったら応援しよう!
