小容量リポの充電回路

ハーフマウスで50mAh程度のリポを使いたい場合に、それを1Cで充電できる充電回路がなかなか見つからない
市販のラジコン用充電器は最低でも100mAの充電電流になっている。

というわけで50mAで充電できるICを調査してみる
Microchip系のICはバッテリを4.2Vまで充電するためには、バッテリ電圧+1Vの電源電圧が必要そうな記載だし、実際に図表にもVDDが5.2Vと書かれている。
LiPoバッテリー充電コントローラ(MCP73831T) – 電子工作専科でも4.2Vまで充電できなかったことが示されている
USB等の5Vの電源動作時に4.2Vまで充電できるかどうかがあやしいので使うのは見送る

LTC4054L-4.2は5Vの電源でも4.2Vの充電ができそうだし、充電電流も10mA~150mAとハーフマウスのバッテリーにはちょうど良い範囲にあるが、割高感がある。
最近流行のTop Power ASIC社のICならTP4056XTP4057もデーターシートに充電電流50mAの設定が記載されている

Amazonとかで格安で販売されているTP4056搭載の充電モジュールはどのメーカのセカンドソース品が乗っているかは分からないが、もしかしたら回路定数を変えると50mAにできるかもしれないし、ピンコンパチであるなら上記のTop Power ASIC社製のTP4056Xに置き換えて使えるかもしれない

壁センサの線形化

この記事はマイクロマウス Advent Calendar 2025の2日目の記事です。1日目の記事は社畜博士によるロボトレース競技に使えるギヤ付きホイールの作り方の紹介でした。

マイクロマウス大会のスポンサーであるMathWorks社からMATLABのライセンスを提供してもらえているので、せっかくなのでMATLABを使って壁センサの線形化をやってみた。
ちなみに去年までは壁センサからの値の常用対数そのまま利用していて制御的には困っていなかったけれど、物理量(距離)への変換をしていないため、壁との距離を直観的に把握することができなかったことが少し不便だった。

ということでmatlabを使ってセンサの線形化をした手順の紹介
①治具を使って壁とロボットの距離を可変できるようにする

②壁との距離を変えながらセンサの値を取得する。今回はロボットの前後方向の中心が柱の位置にある場所を45mmとして、ロボットが区間の中心にある場所を90mmとした。L列に左前センサの値、R列に右前センサの値を記録する

③測定結果をテキストファイルに保存する

④matlabを立ち上げてデータのインポートボタンを押して、③で作ったテキストファイルを選択する

⑤インポートツールが立ち上がるので選択のインポートを押したのち、画面を閉じる

これで変数maekabeがmatlabにインポートされる

⑥matlabメイン画面のアプリのタブに移動して、アプリの一覧から曲線フィッターを選択して、曲線フィッターを立ち上げる
⑦データの選択を押して、X軸に変数maekabeのセンサの値の列を、Y軸に変数maekabeの壁との距離の列を選択する

⑧近似曲線から対数を選ぶとフィッティングされるので、右下の近似パラメーターの値a,bをメモする。

⑨マウスのソフトに組み込む
今回の実装では、自然対数の計算は遅いのでテーブルln_table[]を作成してそれを参照するようにし、
また、距離分解能が1mm刻みだと少し荒く感じたので、45mm=450になるように近似パラメーターa,bをそれぞれ10倍して反映させている

以上の手順によって、matlabを使うことで手早くセンサの線形化ができた

明日のAdvent Calendarはあこちゃんによる誰でも作れる、シリコンタイヤ !です