アップデート内容
自作ラジコン操縦アプリ(Happy_RC_Driver)用のレシーバー側プログラムに関して、ESP32が Core 2.x系から3.x系にアップデートされていたため、旧バージョンのプログラムが使えなくなっていました。
主にタイマー割り込みのコードの更新が必要だったため、アップデートを行いました。前よりもプログラムがシンプルになった感じがします(ちょっとうれしい)。プログラムのアップデートはGitHubのレポジトリに反映しておきました。
アップデートしたプログラムは実機(下画像のESP32_DevKitc_V4搭載ラジコン)にも書き込み、動作することを確認しました👍
アップデート前(タイマー割り込み部分)
timer = timerBegin(0, 80, true); //80クロック1カウント
timerAttachInterrupt(timer, &onTimer, true); //onTimerという名前の関数で割り込み
timerAlarmWrite(timer, 1000000 * 0.1, true); //80クロック×1000000カウント=1秒、1*0.1=100[ms]
timerAlarmEnable(timer); //タイマー有効化
アップデート後(タイマー割り込み部分)
timer = timerBegin(1000000); //周波数を1MHzに指定(1µs毎にカウントアップする) ※ ESP32 Core 2.x系 → 3.x系に伴い変更した
timerAttachInterrupt(timer, &onTimer); //onTimerという名前の関数で割り込み
timerAlarm(timer, 100000, true, 0); // (1/周波数)*カウント数=(1/1000000)*100000 = 0.1 [s]ごとに割り込みを発生 ※ ESP32 Core 2.x系 → 3.x系に伴い変更した
☝ 動作確認の様子
参考文献
- なんでも独り言「ESP32 (Arduino Core) 2.0系から3.0系への移行」、(https://ehbtj.com/electronics/migrating-from-esp32-arduino-core-v2-to-v3/)
関連記事
- 前回記事 →→→ Bluetooth モジュールでRCサーボ・ESCを制御したい [第16回-ジョイスティック実装]
- ラジコン操縦アプリ「Happy_RC_Driver」のGitHubレポジトリ →→→ https://github.com/TomokiIkegami/Happy_RC_Driver