LancerStratos’s blog

第23回ロボットグランプリに向けたロボットランサー”ランサーストラトス”開発記録

走行データの記録

ロボットランサーの走行速度がある程度に達すると、走行データを子細に把握する所要が高まってくる。低速の場合は肉眼でとらえた現象に従いハードやソフトの修正作業を行うが、高速になると細かいタイミングがわからず、そもそもマイコン内部の処理は目に見えないから厄介だ。

ランサーストラトスでは、多くのマイコンカーが採用しているSDカードによるログ機能を搭載している。SDカードとマイコンの接続方法やプログラムは「STM32HAL&SW4入門 Kindle版」を参考にした。

この方法はSDカード書き込み速度が遅く、msec単位でロギングしようとすると本来のプログラムの処理速度に影響をあたえてしまう。そこでデータは一旦マイコンのメモリに蓄えておき、走行終了後にまとめてSDカードに書き込むことにした。この場合、マイコンのメモリーをその分消費するが、STM32F405のRAM192Kバイトの範囲で賄えば問題ない。多分メモリが足りない場合は開発環境STM32CubeIDEが警告してくれるだろう。

走行後、機体からSDカードを引き抜いてPCに差しExcelでグラフ描画などして現象を正確に把握する。これ無しでは開発は不可能といっても過言ではない。写真はバッテリ電圧が異なる場合の走行速度の推移比較。速度制御プログラムは同じなのにバッテリ電圧の差がダッシュ力の違いに表れていることがよくわかる。

走行速度の推移比較