2022年11月12日土曜日

ESP32搭載ラジコンのDCモータノイズ対策

 前回ようやくメカナムホイールのラジコンが完成したので仲間内で遊んでいたんだけど、どうしてもESP32が途中でリセットして止まってしまう。電源ラインにDCモータのノイズが乗ってるのかな?バッテリの電圧を測定しても3.9Vある。リポなので3.3Vぐらいまでは使えると思うんだけど…

一応モータのパワーを切り替えられるようにしてテストしてみてたんだけどフルパワーで激しい動きをするとリセットされるので電圧降下しているのか、電源ラインに思いっきりノイズがのっているのか?ESP32はシールドついてるからなのか意外と放射ノイズに強いし、初期のテストではDCモータは付属のリポから電源をっていたけど、ESP32はモバイルバッテリから電源を取っていた。

ということでESP32の電源部分に昇圧回路を入れてみた。モータドライバはこれまで通りリポ直結。これで電圧降下したり大きなノイズが入っても昇圧回路で吸収してくれないかな。
もともとLipoの1セルにESP32用の電源として3.3Vのレギュレータを繋いでる時点でバッテリ電圧が3.3Vを下回るパターンがあるはずだと思っていたのでここらへんはどうしようか悩んでいたんだけど…(3Vぐらいまで使いたい気が)

効率が悪いような気がするけど、とりあえず安定させるために5Vを生成できる昇圧DCコンバータを使用してみることに。これに3.3Vのレギュレータをのっけて、リポから一旦5Vに昇圧して3.3Vを生成する。

8年前ぐらいに180円で購入していたやつで、3~5Vの入力で5V 1A出力のモジュール。一応2.6Vぐらいから動いた。昇圧チップはAL491っていう刻印があるが詳細分からず。
まずはUSB端子とかUSBラインの充電認識用の抵抗とかLEDとかいらないものを取り外した。
そんでもってこの前メイン基板にハンダした3.3Vレギュレータ類を移植。これで4.2Vのリポが2.5Vになっても3.3Vを生成できる。
とりあえずこれをメイン基板に合体させてみた。これで問題ないようだったら基板全体を熱収縮チューブで絶縁してやろうかな。
とりあえずテストなので適当なところにおいてるだけ。

ついでにスケッチもアップデートして、ESP32のADCでバッテリ電圧を測定できるので、PS3のコントローラのLEDをバッテリ残量に応じて光らせるようにしてみた。これでやっぱり走行中はバッテリ電圧下がってることがわかった。消費電力増えてしまうけどWiFiで電圧見れるようにしてみようかな。

早速テストしてみると、激しい動きをしても落ちない!20~30分ぐらいは遊べる感じになった。ちゃんとモータの出力が弱くなって来ても動き続けられるような感じ。これだとESP32が落ちる前にパワーが落ちてきたからバッテリ充電ってな具合。
ESP32が落ちるぐらいまで遊んでから蓋を開けたらDCコンバータはESP32より温かいぐらいだった。そんでもってバッテリ電圧を測定すると1.1V。最低電圧下回ってるじゃん!とおもって電源を切って測ってみると3.05V。ちょうどいいぐらい使い切れた。おそらく昇圧回路の負荷でかなり電圧降下していたんだな…。

ちなみにモータのノイズ対策は純正状態から何も改造していないので104がモータと並列に入ってるだけ。ログも見ていないのでわからないけどESP32用の昇圧回路がない状態では、モータを動かして電圧降下したときにBrownout detectorで落ちていたんだろう。効率あんまり良さげじゃないけどとりあえずこれで対策できたのでいいかなぁ。
もうちょっと昇圧電圧下げても良さそうだけど(差が小さいほど効率がいい気がする)

ESP32で1セルリポを使ってモータを動かすときに安定しないときは一旦昇圧してみるといいかもしれない。
別な種類の昇圧DCコンバータモジュールもポチってみたのでどこまで昇圧する電圧を下げても大丈夫か確認してみたい。多分VinとVoutの差が小さい方が効率が良いだろうし、3.3Vに降圧するLDOもそのほうが効率いいと思うし。5Vまで昇圧しなくてもいいような気がしているんだよなぁ


0 件のコメント:

コメントを投稿