歩行ロボットを制作するための基礎~サーボ編(2)

歩行ロボットを制作するための基礎~サーボ編(2)

歩行ロボットを制作したいという方向けに書いてみます。
(私は趣味でロボットつくってるだけの人間です)

前回の記事に引き続き、
https://media.dmm-make.com/item/2433/
今回は、13個以上のサーボを制御するための方法(私がよく活用してるもの)
をひとつご紹介させていただきます。


Adafruitから販売されているサーボドライバーをつかって
サーボの制御をしていこうと思います。


ちなみに下記のAdafruitのサイトでより詳しい説明がなされております。
https://learn.adafruit.com/16-channel-pwm-servo-driver

準備するもの

今回使っていく部品は以下の通りです。(写真に写ってないものも使ってます)

・Arduino UNO
・USB A type - B type(Arduino UNOとPCをつなぐためのケーブル)
・サーボモータ16個
・ジャンパワイヤ数本
・ブレッドボード
・バッテリー(5~6V程度、アルカリ電池4、5本)
・Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface(以下サーボドライバーと呼びます)

サーボモータは4.8V駆動のものならなんでも良いです。
秋月電子、スイッチサイエンス、KKhobby(私が頻繁に利用する場所)などで入手可能です。

Adafruit 16-Channel 12-bit PWM/Servo Driverは、Adafruit(海外)から直接買うか
スイッチサイエンスから入手する必要があります。

部品のつなぎかた

とりあえずサーボ1個で動作テストします。

まず最初にArduino UNOとサーボドライバーの準備をします。

1.Arduino UNOのSCLピンをサーボドライバーのSCLピンにつなぎます。
  同様にSDAピンとSDAピンをつなぎます。

2.Arduino UNOの5VピンをサーボドライバーのVCCピンにつなぎます。
  同様にGNDピンとGNDピンをつなぎます。

3.サーボドライバーのV+に外部から5~6Vいれます。忘れずにGNDも接続。

※多数のサーボを動かすさいにArduinoの5Vピンから電気をもらおうとすると
 壊れる可能性があります。

さて、次にサーボドライバーにサーボをつなげましょう。

4.サーボのコネクタをサーボドライバーの0番コネクタに接続します。

コネクタがない場合は以下の通りに(普通はそんなことないと思いますが)
 サーボの信号線(黄色)をサーボドライバーの0番コネクタのPWMピンに
 同じく電源(赤色)をV+ピンに
 GND(黒色)をGNDピンに

これで部品の準備は一通り完了です。

実際につなぐと上の画像のようになります。
右側の黒い箱は電池ボックスです。(エネループ4本直列、5V程度)

プログラム

プログラムですが、テスト用にこんな感じに書きます。

下記Adafruitのサイトからサーボドライバーのライブラリをインストールする必要があります。
https://learn.adafruit.com/16-channel-pwm-servo-driver/using-the-adafruit-library

Adafruitのサンプルプログラムをそのまま使っても良いですが、
上記の画像のようにシンプルにまとめてみました。
(プログラムをテキストで載せようとしたら載せられなかった)

サーボの動作角度を10~170度にしていますが、
サーボの動作角ぎりぎりで動かすのがあまり好きではないからです。
それだけです。

http://youtu.be/9msQ6ITMzbM?list=UUmbgjDz6TKce9dJLWpNb4cQ

実際に動かすとこんな感じです。

16個動かしてみた。

先ほどのプログラムをちょっといじって16個動かしてみました。
バッテリーがエネループ4本直列だと電力不足に陥ったため、
5本直列で動かしています。

そして、なんやかんやあってできたものが以下の動画になります。

http://youtu.be/SDWGoyX2UmA

余談

このサーボドライバーは最大で62個繋げることができ、
900個以上のサーボを制御することができる。

らしいです。


ですが歩行ロボットを制作する場合は、1枚のサーボドライバーで事足りると思います。

Arduinoボード単体で12個、サーボドライバーで16個の制御ができますので、
合計28個まで制御が可能です。(私はまだそこまで試してませんが)

(かの有名なキロボやロビといった2足歩行ロボットは自由度20)


サーボドライバーなしで多くのサーボを制御するにはどうすればいいのかというと
Arduino Megaというボードがあります。
最大48個のサーボ制御が可能らしいですが、ボードがでかくて歩行ロボットに
採用するには難しいかもしれません。


私のおすすめは、Arduino Pro miniとサーボドライバーのセットで使うのが
コンパクトにできて良いかと思います。

参考

参考にしてくれた記事

記事が登録されていません。
この記事を参考にして、新しく記事を投稿しよう!

違反について