SSブログ

Arduinoでサーボモータを使って見よう [Arduino入門編]

こんばんは~
最近はガンプラやビールの紹介ばかりだったので、
久しぶりに真面目に書きます。

今回は「サーボモータ」の制御です。
サーボモータとはコレです。
servo.jpg

普通のモータはArduinoから電気を流すと高速で回り続けると思います。
それに対してサーボモータは普通のモータとは違って、
Arduino側から角度を指定して動作させます。

文章ではわかりづらいと思うので写真を使って説明。

まずサーボモータは基本的にはサーボホーンというものを取り付けて使います。
下の写真にある十字架みたいなものがそれです。
servo_ungle1.jpg

この状態からサーボモータに45°と命令を出すと以下のように
指定角度まで回転して止まります。
servo_ungle.jpg

このように自分な好きな角度に移動させて止められるので、
ロボットの各関節やセンサーの向きを変えるのに使用されます。

それでは実際に使っていきます。
Arduinoへの接続は以下です。

servo_kairo.jpg

サーボモータの配線はJRCタイプとフタバタイプという2つがあるのですが、
色で判断して以下でつなぎます。

 赤(VCC):Arduinoの5.0Vへ
 黒or茶色(GND):ArduinoのGNDへ
 白or橙:Arduinoのデジタルピンへ

ソース説明とサンプルは以下です。

1.ライブラリインクルードと変数定義
 Arduinoではサーボモータを簡単に使用できるように、
 専用のライブラリが用意されています。
 そこで「Servo.h 」と書いてをインクルードし、
 変数名を「Servo」でグローバル域にサーボメンバを定義します。

2.初期化
 次にsetup()関数でattachというライブラリを使って、
 サーボを初期化します。これでサーボモーターが使用可能になります。
 ライブラリの引数には自分が接続したArduinoのピン番号を指定します。

3.サーボモータの制御
 後はwrite関数をコールする事で好きな角度に
 サーボモーターを回す事ができます。

4.注意点1:角度
 サーボに指定する角度ですが分度器をイメージしてください。
 つまり正面は90°、左は0°、右は180°となります。
 正面が0°と勘違いしやすいの注意です。

5.注意2:角度指定後のdelay()
 サーボに角度を指定して回転させた後は少しdelayを入れましょう。
 これは完全に指定角度に移動させるため待ち時間です。
 

#include 

// サーボ変数をグローバルに定義
Servo servo;
 
void setup() 
{ 
  // デジタル5番ピンにサーボを接続し初期配置
  servo.attach(5);
  servo.write(90); 
  delay(1000);
} 
 
void loop() 
{ 
  // サーボの角度を10°->170°->90°へと順に移動
  servo.write(10);
  delay(1500);

  servo.write(170);
  delay(1500);

  servo.write(90);
  delay(1500);
}



これでサーボモーターが制御できるようになりました[exclamation×2]
僕が作るロボットでは今のところ正面につける超音波センサーから
距離を求める時に使用します。

この流れで次回は超音波センサーの使い方を説明していきたいと思います[わーい(嬉しい顔)]



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。