2025年8月11日月曜日

トイラジコンを作る話(5)


前回、ピーク電力を抑えるための施策を考えましたが、今回はその中に上がっていたステア用サーボモータの自作についてです。



機構を考える

M2ねじとナットによる直動機構

 以前使っていたRCサーボモータ(SG90)は角度維持のために常に電圧をモータにかけておく必要がありました。電源に余裕があれば問題ないですが、今回はそこまでの余裕が無いため電力を使わずに位置を固定できるような機構を採用しました。
 今回はネジとナットを使用した直動機構を作成しました。外部からステア角を変えるような力が加わったとしてもナット自体の位置は動かず、逆にねじを回せばナットの位置が変わる仕組みになっています。この仕組みにより所定の位置になったらモータの電圧を落とせるため、消費電力を落とす狙いです。 
 位置決めについては、ねじの回転角度が分かるように光学式エンコーダを入れます。本当であれば、ナットの位置が分かるようなセンサを入れるべきですが、機構が思いつかなかったのでやむなしです。

光学式エンコーダを作る


 今回は光学式エンコーダについても自作します。光学式エンコーダには発光部と受光部を同じ面に配置する反射型と対面に配置する透過型がありますが、スペースの都合上今回は反射型としました。センサについては実装面積の都合によりNJL5901ARを2つ使用し2相式としました。これはカウント値と回転方向を知るための施策です。

反射板(兼ギア)

 エンコーダの反射板ですが、最初は白黒の紙を貼っていましたが黒でも相当反射を拾ってしまうことが分かりました。また今回反射板作成に使用したVisiJet® M2R-TNは赤外線を結構反射していることもわかりました。結果として、反射部分をぎりぎりまでセンサに近づけ(設計時で0.5mm程度)、それ以外の部分は穴をあけたり黒く塗ったりして赤外光が反射しないようにしました。また、反射板の外周にはM0.5の33枚歯のギアをつけており、反射板と駆動用のギアを兼ねた構造にしています。反射する部分としない部分は3つづつ作成し、結果として1周24カウントとしています。
実際に作成した反射板(裏面)

 回路側は抵抗とフォトトランジスタの電圧変換回路を入れたうえで、後段にコンパレータを入れただけのシンプルな回路としました。電圧変換回路の抵抗値は調整が必要でしたが、それさえできれば特に問題なく動いています。本当であれば電圧変換後にフィルタやゲインアップを行い、チャタリング防止等の回路も入れるべきですが、今のところはなくても問題なさそうです。

動作確認



 それっぽい感じには動きました。波形等も特に問題なさそうです。また意図した通り、電源を切っても位置は固定されたままなので、動作時の電源OFFも問題なくできそうです。

次回

 今回は光学式エンコーダを作成しました。裏でこれ以外の試作したりもしていたりしましたが、結構失敗しています(モータのピニオンギアを自作して失敗、反射板とフォトトランジスタのギャップを1mm程度にしたら電圧波形が全然変化しない、抵抗値を上げすぎて電圧波形ピークが小さすぎるetc)。オペアンプで波形増幅+オフセット調整+フィルタ等を行えばよかった等の反省点もあるのでそのうち反映したいなと思います。
 次回はそのほかの省電力についても見ていきたいと思います。


©2025 shts All Right Reserved.

トイラジコンを作る話(4)



いつの間にやら親知らずを抜いた中の人です。前回予告していた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.のところ。
 電源系統を見てみると、UnitV+ESP32用の5V系統(制御系)と、サーボモータと走行用モータ用の5V系統(駆動系)の2種類に大別できます。今回問題を起こしたのはUnitV+ESP32の系統ですが、画像転送ができていることから、この系統のみを使用する場合は問題がないことが分かります。また、走行用モータの系統+ESP32のみ使用でも問題がないこともわかっていることから、今回は複合動作をさせたことが原因と推測しました。
 シナリオとしては、"駆動系用のDCDCと制御系のDCDCが同時に電流を引こうとした結果、バッテリーの電源供給能力が追い付かなくなり、結果としてDCDCの出力電圧低下を招いた。そして電圧変動に最も弱いUnitVが瞬停したのではないか(ESP32は5V->3.3Vの電圧降下を実施しており、5Vラインの変動にある程度対応可能?)" といった具合です。詳しく電力計測を行ったわけではないのであれですが...。
 これを踏まえて、対策を考えてみます。

対策を考える


 バッテリーが出せる電力をシステムが要求する電力が上回ってしまっていることが問題なので、バッテリーを変更するか、回路側でピーク電力低減をするしか方法はありません。
バッテリーを変更する場合、前々回話した通りLiPoのようなバッテリーは使わずに行きたいので、同種の電池を追加することになります(例えば、単三電池2本から3本に増量)。ただしこの案には問題点もあり、電池を増やすことで重量増になり、結果として駆動系の電源系統への負荷がさらに上がることが危惧されました。
 となると、回路側で工夫するほかなさそうです。どれぐらいの量/幅で電力を削ればよいかわからないので、大きく削れそうなところを探して修正していく方針で行きます。

駆動系統の低電圧化

検討中の電源系統図(SubMCUは検討途中でドロップした)

 一番大きなアイテムとして駆動系の電圧を落とします。駆動系のテスト結果から、思った以上に速度が出てしまうので、もっと速度を落としてもよさそうに思いました。モータの電圧を落とせばよいのですが、思い切って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.






トイラジコンを作る話(3)


前回、改善したいところを書き連ねましたが今回はその改善の話です。




前回の振り返り

前回見つけた課題をもう一度見てみます。
  • Grove経由の信号のレベル変換がないので、5V信号が来ると破損の可能性あり
  • IMUを搭載したい
  • 基板をフレーム替わりに使いたい
  • 分解組み立てが難しいので改善したい
 上二つについて、レベル変換はMOSFETを使ったレベルシフト回路を挟めばよさそうで、IMUはその辺に転がっていたMPU6500を入れればよいでしょう。
 少し難しいのが下二つです。組み立て手順が相当難しい(ねじ止めの順番を入れ替えてしまうと組み立て不可になる)のでそこを改善しつつ、フレームをMJFから単価の安い基板に入れ替えることを考えます。

基板でフレームを作る

実際に作成した基板

 前回の作った構造を振り返ると、メカ部品を上下2枚の板で挟み込む構造になっていました。これを踏まえて、この上下の板をプリント基板に置き換えることを考えます。
 設計の流れとしてはメカ周りの設計を行った後、電子部品を置くと干渉しそうなところを抽出、その後回路側の設計を行う流れで設計しました。内部のメカについてはギアボックスを作成してプリント基板でサンドイッチする方針としました。また、回路図自体はレベル変換とIMUの追加以外は前回と同じものを流用しています。

今回作成した改良版(左)。以前のもの(右)と比べるとずんぐりむっくりになった。

 合わせて基板やメカの固定方法も見直し、サンドイッチ構造を上下からねじとナットで止めて固定するように変更しました。これによって、分解・組み立てが非常に楽になりました。
表面の様子。電子部品が多いのでわかりにくいが、ナットが6つある。

裏面の様子。
ねじが表面まで貫通しており、挟み込む格好になっている。

動かしてみた



駆動系はメカ・回路含めて特に問題なく動作しました。

次回

次回はUnitVを実際に接続して動かしてみようと思います。


©2025 shts All Right Reserved.