いつの間にやら親知らずを抜いた中の人です。前回予告していたUnitVをつなげて動かす話です。
UnitVから画像を転送する
UnitVの接続については、GroveのUART接続を使用しました。ESP32とUnitVの間は4Mbpsで接続しています。画像の引き抜き方法についてですが、UnitVで内でRGB565の画像を作成後、UnitV-ESP32間はUART、ESP32-PC間はBluetooth Serialで引き抜くようにしました。最終的にPC内でPNGに直して生成するようにしています。
Bluetooth Serialを使用してデータ転送を行う場合、あまりに長いデータを送るとデータ破損して使い物にならなかったです。トライアルの結果、上り下りのデータを交互に転送することでこの問題を回避できることが分かったので、画像をH方向に分割し、適宜PCからESP32への同期用データを送付することで解決しました。
![]() |
PCに転送されたデータ |
もろもろ結合したら動かず...
とりあえずここまでやってきた内容をすべて統合(駆動系制御+画像転送)し動かしてみたのですが、バッテリー駆動にしたとたんUnitVの起動に失敗することが分かりました。残念。
![]() |
電源系統図。今回問題になったのはAI Acc.のところ。 |
シナリオとしては、"駆動系用のDCDCと制御系のDCDCが同時に電流を引こうとした結果、バッテリーの電源供給能力が追い付かなくなり、結果としてDCDCの出力電圧低下を招いた。そして電圧変動に最も弱いUnitVが瞬停したのではないか(ESP32は5V->3.3Vの電圧降下を実施しており、5Vラインの変動にある程度対応可能?)" といった具合です。詳しく電力計測を行ったわけではないのであれですが...。
これを踏まえて、対策を考えてみます。
対策を考える
バッテリーが出せる電力をシステムが要求する電力が上回ってしまっていることが問題なので、バッテリーを変更するか、回路側でピーク電力低減をするしか方法はありません。
バッテリーを変更する場合、前々回話した通りLiPoのようなバッテリーは使わずに行きたいので、同種の電池を追加することになります(例えば、単三電池2本から3本に増量)。ただしこの案には問題点もあり、電池を増やすことで重量増になり、結果として駆動系の電源系統への負荷がさらに上がることが危惧されました。
となると、回路側で工夫するほかなさそうです。どれぐらいの量/幅で電力を削ればよいかわからないので、大きく削れそうなところを探して修正していく方針で行きます。
駆動系統の低電圧化
一番大きなアイテムとして駆動系の電圧を落とします。駆動系のテスト結果から、思った以上に速度が出てしまうので、もっと速度を落としてもよさそうに思いました。モータの電圧を落とせばよいのですが、思い切ってMDの電源をバッテリー電源につないでしまいます。こうすればもともと5V駆動だったものが2.4V程度(Ni-MH*2前提)まで落とせるため、定常動作時の電力は半減します。ピーク電力もある程度は落とせるでしょう。
課題としては、走行用モータのトルク低下と、サーボモータとMDの最低電源電圧が2.4Vよりも高いことが挙げられます。トルクの低下についてはギアをもう一枚かませることで速度を犠牲にトルクを3倍程度増やすことで解決します。また最低電圧の話について、MDについては新たに最低1.8V駆動が可能なものに変更し、サーボモータについては自作することで解決します。
ESP32のDCDC直接駆動化
ESP32の電源については、もともと制御系の5VラインからLDOを介して3.3Vに落としたものを使用していました。ですがLDOを使用するよりもDCDCの方が効率が良いのでDCDCで直接駆動する方式に変更します(短いスパンの電力変動に効くかどうかは不明)。
次回
といった感じで、途中まではうまくいっていたのですが最後に躓いてしまいました。この後ステア用のサーボモータを自作するのですが、その話は別の機会にしようと思います。
©2025 shts All Right Reserved.
0 件のコメント:
コメントを投稿