Mira&Luna's nursery lab

旅乙女と発明娘の子供部屋

Arduinoを使ってサーボモーターを制御してみよう。

f:id:miraluna:20180806220931j:plain:w150 Mira

Arduinoサーボモータを制御します。

サーボモーターというのはモーターの回転軸を好きな位置(角度)へ回転させることができるモーター。ロボットの腕を動かしたりするのに使われたりするわね。

◆ マイクロサーボモーター「SG90」
f:id:miraluna:20190609183245j:plain

サーボモーターを使うのは初めてだから、安くて小さくて定番ぽいのを買いました。うまく使えるか、わからないもの。

Tower Proというメーカーの「マイクロサーボ 9g SG90」というパーツ。
ロボットみたいでわくわくする。

それじゃあArduinoにつないでみましょう。

◆ サーボモーター配線
f:id:miraluna:20190609183244j:plain:w400

サーボモーターには 3本のリード線がついていて、これをArduinoにジャンパーワイヤなどで接続します。

オレンジ(赤)が+。つまりArduinoの5vにつなぐ。
茶色がー。ArduinoのGNDにつなぐ。
黄色が信号線。6番ピンにつなぐ。

黄色の信号線はプログラム次第でつなぐピンを決められるわ。ただし、このサーボはPWMという制御方法をとるの。ArduinoにあるPWM制御のためのピンには「~」のマークがついていると思う。(私のはArduino UNO R3じゃなくてマルツさんのMaruduino UNO R3だから表記が同じじゃないかも。)~印がついているピンは 3,5,6,9,10,11の6つ。このどれかを選びましょう。
今回私は 6番ピンにつなぎました。

◆ 可動域
f:id:miraluna:20190612184059j:plain:w300

このサーボモーターが回転できる範囲は上の写真の 0°から 180°まで。
本体との位置関係はプロペラ(くちばし)を取り付ける角度で変えることができるわ。

スケッチ(プログラム)では角度を指定することで、モーターを回転させることができるの。

🎀スケッチ🎀

#include <Servo.h>//サーボのためのライブラリ
Servo penguin;//penguinという名前をつけたの
void setup() {
penguin.attach(6);//PWMにつなぐ。[~]マークの3,5,6,9,10,11。今回は6pin
}

void loop() {
penguin.write(0);//0度の位置まで回転
delay(400);//回転のため0.4秒待つ
penguin.write(120);//120度の位置まで回転...以下略
delay(300);
penguin.write(60);
delay(200);
penguin.write(180);
delay(300);
}

Arduino IDEにはあらかじめサーボモーターを制御するためのライブラリ<Servo.h>が用意されているの。だからそれをインクルードする(スケッチに「#<Servo.h>」を書く)だけで簡単にサーボモーターをコントロールできるのよ。

書き方は
サーボモーターに名前をつけてあげて「Servo penguin;」、
Arduinoに接続するピンを決める「penguin.attach(6);」。
③そしたら回転させたい位置を0から180の間で指定する「penguin.write(90)」。

コツは回転のための時間分、「delay()」で待ってあげることね。delay(1000)が1秒。データシートでは 60°回転するのに 0.1秒必要で、切り返しにも少しの間が必要だって書いてある。私がやった限りでは、90度の回転に0.4秒以上待ってあげるのがいいみたい。1秒とか2秒とか、長く待っても大丈夫。
上のスケッチはなるべく間を開けずに、0°、120°、60°、180度の位置へと回転するというもの。回転というよりも、ワイパーのように左右に動くことになるわ。それを繰り返すの。
さあ、ちゃんと動くかどうか試運転してみよう。

◆ サーボモーターの試運転
f:id:miraluna:20190609183243j:plain

🎀試運転の動画🎀


Arduinoでサーボモーターを制御して遊ぼう


wwwwwwwwww
     wwwwwwwwww
  www

可笑しい⊂(>.<🎀⊃www
          ほんとペンギンみたい。  かわいい。

そんなわけでペンギンの...サーボモーターのArduinoによる制御でした。

またね。


 ↓ ボリュームでコントロールするサーボモータ
miraluna.hatenablog.com

 ↓ ライブラリを使わずに、回転速度制御ができるスケッチ
miraluna.hatenablog.com