PR

ロボット制御⑧ バッテリーを試してみる
Arduino を使って 18650リチウムイオン充電池とTP4056充電モジュールを使ってサーボモーターを複数台動かしてみた

制御

以前よりサーボモータをアルカリ乾電池で動かしていたのですが、交換が必要なので充電式のバッテリーを試してみたいと思っていました。そこで今回は、18650リチウムイオン充電池を使ってサーボモータを動かす実験をしました。実は、何度か実験失敗になりましたが、最終的にはサーボモータ2台が動くところまで確認できましたので、記事を掲載します。

18650 リチウムイオン充電池

今回は、「18650 リチウムイオン充電池」を使いました。理由は、Web上に多く情報を見かけたので、メジャーな充電池だと認識した為です。また、充電モジュールも格安だったのも決め手でした。ただ、充電池本体は、結構な値段するなと思いました。

この電池の定格電圧は 3.7V 、満充電時は 4.2V です。私が使っているサーボモータ MG90S は、4.8~6V のインプットですが、これまで使ってきた印象では、サーボモータの消費電力は結構大きいのではないかと思います。今回は出来れば消費電流も測ってみたいと思います。

電源4.8~6.0V
動作速度0.1秒/60°(4.8V)、0.08秒/60°(6.0V)
トルク1.8kgf・cm(4.8V)
デッドバンド幅1μ秒
動作温度範囲0~55℃
寸法22.8 x 12.2 x 28.5 mm
配線茶=GND、赤=電源[+]、橙=制御信号[JRタイプ]
MG90Sの主な仕様

【余談】
制御信号はJR(日本遠隔制御)タイプということで通常は、1500μs が中心で±500μs(つまり1ms~2ms)なのですが、この幅だと±45°しか稼働しません。試したところ500~2500μsで180°(±90°)は、電圧と電流さえ必要な範囲で供給できれば動きます。

TP4056 – 充電モジュール

このTP4056は、18650リチウムイオン充電池1つ用のモジュールです。つまり複数で使いたいという場合は、このモジュールを並列、または直列に繋いで接続します。まずは単体で使ってみたいと思います。

最初は赤のLEDのみ光っていましたが、充電が満タンになると上の写真のように青のLEDが光ります。

入力インターフェスマイクロUSBケーブルでの入力口もあります
入力電圧5V
過充電停止電圧4.2V(±1%)満充電時の出力電圧
最大充電電流1Aバッテリーに流す最大電流
過放電保護電圧2.5Vこの電圧に達すると放電を停止します
過電流保護電流3Aこの電流以上が流れると放電を停止います
ボードサイズ26 x 17 mm
TP4050 の主な仕様

過電流保護回路は、電池を守るための保護回路であり、外部電子部品は、短絡などするとそのまま流れて壊れてしまいます。まぁ、どうしようもないですよね。ですが、電源関連の実験をしていると分かっていても気付かぬうちに短絡してしまいます。私は2回もやってしまいました。1回はハンダ付けの失敗、もう1回は絶縁不備のまま電気を流してしまい、機器を壊してしまいました。

MT3608 – 昇電圧モジュール

続いて、MT3608です。MG90Sサーボモータの規定電圧が4.8~6.0Vなので電圧を上げないとまともに動きません。そこで電圧を上げる為にMT3608を使用します。これはかなり癖のあるモジュールでした。

まず、電線を接続する穴か無意味に大きいです。なのでどうやって電線を接続しようか迷いました。今回は実験なので出来れば取り外しが用意に出来る接続を選択したかったのですが、丁度良い端子などが見つからず、結果的に取り合わせの部品を使い、メインはハンダでの接続を行いました。

しかし、ハンダ篭手のスキルレベルが低いので、ケーブルの接続がかなり難航しました。(以前のハンダ着けスキルレベルが低いことでぼやいた記事)

このモジュールの最も癖の強い部分は、電圧調整です。トリマポテンショメータ(半固定抵抗器)についている小さなつまみを回転させるのですが、時計回りなのか反時計回りなのかが分かりません。私の購入したものは、反時計回りで電圧が上昇します。(私が購入したものは全て反時計回りで上昇しました)が…かなり回さないと電圧の変化が見られません。電圧が変化し始めるといきなり繊細になり、それまで何十回転させても変わらなかった電圧が、少しの回転(90度など)で大きく変化するようになります。そのため電圧計を見ながら微調整が必要になります。

入力電圧2V~24V
最大出力電流2A
最大出力電圧> 5V~28Vトリマポテンショメータで電圧を調整します
効率> 93%
MT3608の仕様

この調整を試そうと思うと回しながらテスターで確認していたら非常に時間がかかってしまいますので、次のリアルタイム測定が可能な電子部品を購入して実験を継続することにしました。

電圧・電流計測LEDモニタ

調整時もそうですが、出力電圧・電流には細心の注意が必要ですので、この実験では、常時計測できる状態にしておきたいと思い、LEDモニタで電圧と電流が計測できるものを取り付けたいと思います。

回路接続① 1本の充電池

それでは回路を接続していきたいと思います。まずは、1充電池で繋いでみます。

【余談】
回路図を作成するソフトウェアを色々と悩んでいましたが、やはり一番メジャーなFritzingを使うことにしました。有料になっていますが、1,300円弱でしたので購入しました。インストール後に検索するとパーツが入手可能で今回使っているものも全て見つかりました。

実際には、MT3608 と PCA9685 の間に電圧・電流計測LEDモニタを挟んでいます。

まずは、18650リチウムイオン充電池1台を接続して、充電を満タンにしておきます。USBケーブルを外して充電池のみで駆動します。TP4056 充電モジュールとMT5608昇電モジュールを繋ぎます。MT5608の出力電圧を6.0V弱に設定します。後がいつも使っているPWMコントローラPCA9685とArduinoを繋いで、PC9685の外部電源接続コネクタにMT5608の出力電力を繋ぎます。

動作実験の動画で確認できますが、サーボモータ1台の時はスムーズに動きますが、3台まで増やした時点でLEDモニタの電流が切れました。合わせて電圧が5.76Vから4.0Vに急に降下して、以降充電モジュールがまともに動かなくなりました。また、サーボモータの1台も動かなくなってしまいました。

色々と原因を考えてみたのですが、1つ思い当たるのがLEDモニタの配線方法です。サーボモータのVCCとLEDのVCCを同じところから引いていますが、片やサーボモータは3台繋ぐとおそらく1A近く電流を必要としますが、LEDモニタは、0.48A程度と低く同じVCCに繋いではいけないのでは?と思ったしたいです。理由は、以下の商品接続画像の1枚目通りに利用したためです。

特に流れる電流については記載ありませんが、過電流が流れるとおそらく壊れてしまいますよね。この実験は、ここで打ち切って、新しい各種モジュールで並列接続を試してみました。この際は、LEDモニタは、Arduinoからの供給電源を利用して平和に動かすことにしました。

回路接続② 18650リチウムイオン充電池の並列接続

1本でちょっと実験と思って繋いでみましたが、想定外の事態に陥って焦ってしまいました。使用している「PCA9685 PWMDriver」は、サーボモータが16台まで繋がります。1本ではとても電力が足りるとは思えず、少なくとも2本を並列に繋ぐことにしました。

なお、MT3608は昇電圧モジュールなので直列に繋ぐとサーボモータの定格電圧、6.0Vを超えてしまいます。並列であれば、電流量は増えて、電圧は同じになるので並列接続を選択しました。

2枚のTP4056充電モジュールのOUT+、OUT-をそれぞれ繋いで電池を並列接続したのと同じ状態にします。これで電圧は上がらず、電力のみ上昇させることが出来ます。

サーボモータの動作実験

実際に繋いで実験をしてみます。動画は、最初にアルカリ乾電池4本で試してみて、続いて18650リチウムイオン充電池を1本、その後、18650リチウムイオン充電池を2本並列で動かしてみています。

今回の実験は、非常に苦労して時間がかかってしまいましたが、最終的に充電池ボックスと3台のサーボモータを動かすことに成功して本当に良かったです。

実際にロボットに搭載する際は、このLEDモニタは使いません。ArduinoもしくはRaspberryPiに直接電力(電圧・電流)監視をすることになります。その際は、「INA219」チップを使うことになると思います。また、それは別の機会に実験を行いたいと思います。

以上

コメント

タイトルとURLをコピーしました