【PowerMeter2020】計測システムデバッグ開始<4本のプログラムデバッグ>

システム仕様きめて、それに沿ってプログラムを作って、デバッグ開始しています。
左右クランクの波形を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シリアルに出力する、将来的にもよく使うので、汎用性のあるアルゴリズムにするほうがいい。


3)上死点タイミングが、シートチューブCPU、左右クランクと母艦から発信してる同期信号のタイミングを4か所のタイミングがあって数msec~数百μsecのズレがある。それをどう統一するか課題

 

➁左右クランク
(トルク波形、タイミング)
バグ
右クランク:Simulator_d4_1000_Lang-SHip_M5StickC_Master_ADC_8msec_rev11.ino

左クランク:Simulator_94_1400_2_LangSHip_M5StickC_Master_ADC_8msec_rev11.ino

1)当初母艦からの上死点タイミングにあわせて正弦波トルクを発生させようとしたが、同期が難しくて、CPUのクロックばらつきもあって、上死点タイミングとは特独立させてシミュレータ波形を発生することにした


2)シミュレータで波形上死点位相がずれるのは、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発だけにしないと

 

●以後
  ローラ台で練習しながら、デバッグをすすめていきます

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です