前回までにマイコンにプログラムを書き込んで動かすところまで出来ました。
今回は、サーボを接続してプログラムから動かしてみます。
「よさイチつくロボ」の本ではp.132でsv0端子に接続されたサーボの角度を90度にするプログラムが紹介されています。ただ、これだとsv0端子の確認しか出来ず(端子はsv0~sv11まで12個あります)、また同時に複数のサーボを動かすことが出来るかどうかのチェックが出来ません。
そこで本のp.156のリスト5-7のプログラムを使って歩行(左足へ重心を移す→右足を前に動かす→右足へ重心を移す→左足を前に動かす)時の動きがちゃんと出来るかどうか確認しました。
はい、ちゃんと動きました!歩行動作ではsv0とsv11を使用しないので、この2つは別途動かして動作確認をしました。
...と、これで終わりだったら簡単だったのですが、残念ながら思わぬ事態が発生しました。しばらく動かしているとサーボが暴走し始めたのです。ロボット組立後にこの暴走が起こっていたらサーボやフレームを壊していたかもしれませんので、この段階で発見できて良かったと思います。
最初は原因が分からず途方に暮れましたが、試しに本のp.134のプログラムを参考にしながらサーボの角度を0度→90度で往復運動するようにしてみました。この場合、上記の歩行プログラムと異なりサーボは最高速度で動くことになります。
すると、サーボ1個および2個まではちゃんと動作していたのですが3個同時に動かすと暴走することが分かりました。そこで電源の端子電圧を計測してみるとサーボ駆動時にかなりの電圧低下が起こっていました。どうやら、
サーボを複数動かす
↓
大電流が流れる
↓
電池の内部抵抗のため起電力が大きく落ちる
↓
三端子レギュレーターが3.3Vを発生できなくなる
↓
マイコンが暴走
という流れのようです。
これは困った...
マイコンの暴走を防ぐため三端子レギュレーターの出力側に1000μFの電解コンデンサーを取り付けたりしましたが恒常的な電力不足には通じませんでした。
結局、内部抵抗の低い高級アルカリ乾電池「EVOLTA NEO」に交換したら暴走しなくなりました。安物のアルカリ乾電池では力不足だったようです。
「EVOLTA NEO」の場合、上記歩行プログラムは問題なく動きますし、サーボを最高速度で動かしても3個までは大丈夫です。ただ、4個だと暴走するのでロボットのモーションをつくるときは「なるべく少数のサーボでゆっくりの動き」を心がけた方が良さそうです。
いやいや、今回はかなり焦りました。
皆さんも安物の乾電池は使わないようにしましょうね。
最後に、次回以降の組立に入る前にサーボの角度を全部90度に合わせておきました。
次回はロボットのフレームを組み立てていく予定です。
0 件のコメント:
コメントを投稿