システム仕様きめて、それに沿ってプログラムを作って、デバッグ開始しています。
左右クランクの波形をSimulatorを作って2個のM5StickからESP-NOW経由で、母艦M5Stackへ送信して母艦プログラムを中心に4個のCPUからのデータが正常に受信できるかをデバッグしてきます。今までは2か所からの信号をデバッグするのが最大級だったのですが、今回は、4個のマイコンからの同時出力データのデバッグなので、Simulatorプログラムを作って、一歩一歩デバッグしてます。
●本日のデバッグ備忘録(明日まで覚えてられないのでメモ)
プログラム機能 | |
①母艦シミュレータ用 (Crankシミュレータデータ収集) |
Simulator_M5StackBasic_Slave_POWER_ANT__selectoBUGFIXed_rev15.ino |
1)ANT_RCV関数をESP-NOW受信関数の上に配置
2)setup()内LOOPでのANT_RCVが動作しない、遅すぎて、読み抜けてしまっていた 3)ESP-NOW受信関数内にANT_RCV関数をおくことで同期 |
|
①’母艦ローラ台用 (左右クランク、シートチューブ、ANTユニットから受信) |
PM2020_M5StackBasic_Slave_POWER_ANT9600_rev16.ino |
1)上記Simulatorからの移行で、Seattubeからのピン割り込みがコメントアウトされていた
2)左右クランクからの上死点データをどうやって同期させるかのアルゴリズムが課題、右左クランクからの送信順序が時々順不同になることがあるので、それを規定順にそろえてUSBシリアルに出力する、将来的にもよく使うので、汎用性のあるアルゴリズムにするほうがいい。
|
|
➁左右クランク (トルク波形、タイミング) バグ |
右クランク:Simulator_d4_1000_Lang-SHip_M5StickC_Master_ADC_8msec_rev11.ino
左クランク:Simulator_94_1400_2_LangSHip_M5StickC_Master_ADC_8msec_rev11.ino |
1)当初母艦からの上死点タイミングにあわせて正弦波トルクを発生させようとしたが、同期が難しくて、CPUのクロックばらつきもあって、上死点タイミングとは特独立させてシミュレータ波形を発生することにした
3)パワー用積分計算は、個々のマイコンでやるほうが母艦の負荷と積分の精度で有利なので、個別積分を検討する |
|
③ANT受信 (パワータップと心拍センサ) |
M5Stick_ANT_dgrade20190419_rev003_Binary9600_Disp_GroveUart.ino |
1)ボーレートを115200bpsから9600bpsへ落とした、安定性を確保
2)送信文で if (Serial2.available){}でかけていたが、これは余計だったので削除。 3ANT受信開始時間がかかるのがネック |
|
④シートチューブ |
mbedオンラインコンパイラ: PM2020_Joushiten_LSM9DS1_1114FN/main.cpp |
1)チャタリングが発生しているので、防止策必要
2)シートチューブ波形の積分も必要 |
●結果
チャタリングを抑えないとパワー値がとんでしまうので、1発だけにしないと
●以後
ローラ台で練習しながら、デバッグをすすめていきます