2021年5月7日金曜日

電源回路を改良しよう!

今回は電源回路の改良に挑戦したいと思います。

ロボットの稼働にはエネループを使用していますが、たまにロボットの動きがギクシャクするときがあります。

そこで、ロボット歩行時の電源回路の3.3V端子の電圧を計測してみました。以下がその結果です。

エネループ満充電後のロボット直進歩行時の3.3V端子電圧を100Hzで10秒間計測しています。

これをみると所々電圧低下が見られます。一応、使用しているマイコンのデータシートを確認すると電源電圧は3.0Vから3.6Vの範囲内であれば動くようですが、満充電直後にもかかわらず一瞬とはいえ3.0Vを下回るのはよろしくありません。これではマイコンが安定してロボットの制御が出来なくなるのも納得です。

使用している三端子レギュレーターはNJM2391というものでドロップアウト電圧が1.1Vもあります。つまり、3.3Vを保つためには電池が常に4.4V以上の電圧を出力する必要があります。

しかし、既に紹介したようにサーボモータに大電流が流れると電池の内部抵抗のため電圧低下が起こりますので「常に4.4V以上」というのは厳しそうです。

そこで、ドロップアウト電圧が0.18Vという低損失のNJM2845を使ってみようと思います。

ロボットを分解してNJM2391三端子レギュレーターを基板から取り外し、代わりにNJM2845を半田付けします(サラッと書いていますが、作業はとても大変でした...)。

再び、ロボット歩行時の電源回路の3.3V端子の電圧を計測してみます。結果は以下の通りです。

非常に電圧が安定するようになりました!

ロボットのギクシャクした動きもなくなり、そのため、一回の充電での稼働時間が大幅に伸びました。

皆様もよろしければ参考にして頂ければと思います。

次回は今のところ未定です。

2021年5月3日月曜日

起き上がり動作をさせよう!

今回はロボットに起き上がり動作をさせます。

ちなみに、「よさイチつくロボ」本にはp.181にざっとした説明があるだけで、正直、これだけで起き上がり動作を完成させることは難しそうでした。

そこで、本の著者のページを探してみると起き上がり動作について詳細な解説が載っていました。以下のページを参考にしながら進めていきます。ソースコードもダウンロードして「mr6-1」のプログラムを参照します。

予算1万円でつくる二足歩行ロボット | cog | Meuse Robotics

足のネジを短いものに変える件については既にこのブログでも紹介していますので割愛します。

手先を延長するために付ける部品ですが、これは余った基板があるはずですのでそこから調達します。具体的にはロボットの手先についている部品と全く同じものを先端に接着します(私はエポキシ系の接着剤を使いました)。

上記の著者のページに「Hip Pitch軸をより前方に曲げられるようにサーボホーンの取り付けセンターを前側にひと歯ずらす」とありますが、ひと歯だけだと著者ページの写真と比較して十分な角度が得られない感じだったのでふた歯ずらしました。ずらした分、プログラム中のオフセットを調整します(私の場合、offset[1]の値が-32、offset[10]の値が+32変わりました)。

次は、プログラムの変更です。前回まで作成したソースコードをエディットしていきます。

具体的には、

  • 「mr6-1」から「#define STDUP  7」をコピペ。
  • 「mr6-1」からint16_t stdupの値を初期化している部分をコピペ。
  • 足を曲げた際になるべく前方に足が来るように(ロボットのボディ前面のプレートに足がギリギリ接触しない位置になるように)Hip Pitch軸を調整。具体的には、stdupの[5][1]、[6][1]、[5][10]、[6][10]4つの値を変更。デフォルトではそれぞれ220と-40が入っている。
  • 「mr6-1」からリモコンの「↘」に反応する部分(case 129:)をコピペして、さらに処理の中に「nextKeyFrame = 1;」を加える。
  • // サウンド出力 のコメントの1行上に、 if(action[nextKeyFrame][12] == 127)actionMode=STOP; を加える。

ちなみに、私の場合上記の220と-40はそれぞれ195と-15になりました。足を曲げすぎてボディに接触してしまうと過電流が流れてマイコンが落ちる可能性がありますし、逆に曲げが足りないとちゃんと起き上がれませんので頑張ってベストな値を探しましょう。

以上の変更後、ロボットを起動してうつ伏せ状態にしてからリモコンの「↘」キーを押します。

はい、上手く起き上がれました。

若干、真っ直ぐ起き上がれていないのは腕のオフセットを全く調整していないためと思われますが、とりあえず起き上がれたのでこのままで良しとします。

次回は、ロボットの電源回路の改良を行う予定です。