2017年1月11日水曜日

部活で始めるArduino② 「サーボモータ入門編」

サーボモータ入門編

今回はarduinoでサーボモータを動かしてみましょう。

arduinoは単体だとLEDを光らせることくらいしかできないのですが、ピンを使って様々なものと接続することで多くのことができるようになります。

今回はロボットを作ったり動く工作をするのに使われるサーボモータをarduinoで制御してみましょう。



今回はとりあえず動かすことが目的なので
・小さいサーボモータ
・3ピン制御
・簡単プログラム
で行きたいと思います。

まずサーボモータを入手します。
今回私が使用したサーボモータはSG90(¥420)です。一番小さいお手頃なやつです。アマゾンで2日
で届きました。



arduinoとサーボモータのほかに前回使ったUSBケーブルB型、サーボモータと接続するためのジャンパ線(針金でも可)を用意します。


あと前回の投稿を参考にarduinoとPCを接続してプログラムが書き込める状態にしておいてください。PCによっては繋ぐたびにドライバの更新が必要になる場合があります(私の学校のPCがそうでした)。

作業を始めるまえに注意です。サーボモータは普通のモータとちょっと違うので以下のことに気を付けてください。

・手で無理に回さないこと
・製品ごとに決められている角度以上に回さないこと(できれば±3°180°なら3°~177°で運用する)

では早速作業を始めましょう。
まずarduinoとサーボモータを接続します。サーボモータはコードの色ごとに役割が決まっています。

こげ茶→GND(電池でいうマイナス)
→IN(電源、電池でいうプラス)
→制御(デジタル信号で角度の指示を出す)

今回はこげ茶はarduinoのGNDに、赤は5Vに、黄はデジタル出力の9番(プログラムによってはほかの場所でも可)に接続します。
ジャンパ線を互いの端子の穴に深く差し込みます。



接続している間はサーボモータからキュイキュイという音が聞こえるかもしれませんがサーボモータが現在の角度を保とうと微妙に動かしているためで問題はありません。

次は実際にサーボモータを45°から135°に動かしてみます。
以下のプログラムをPCのarduinoIDEに入力して書き込んでください。
(ちなみに//と入れた場所は「その場所からその行の終わりまで無効」ということを表す文法です。無効になるのでそのままコピーして貼り付けてもらって大丈夫です。)

#include<Servo.h>       //サーボモータのライブラリをインクルード
Servo servo1;            //servo1というServoオブジェクトを作る

//最初に一度だけ実行
void setup() {
    servo1.attach(9);   //servo1が刺さっているのは9番ピン
}

//setupの後無限ループ
void loop() {
    servo1.write(45);    //servo1を45°にする信号を出す
    delay(1000);          //1000ms(ミリ秒)=1秒待つ
    servo1.write(135);  //servo1を135°にする信号を出す
    delay(2000);         //2000ms(ミリ秒)=2秒待つ
                             //「{」のところに戻る
}


サーボモータが45°から135°の間を往復しましたか?
失敗した方はこれまでの手順をよく読んで再挑戦してみてください。

arduinoのプログラムはスケッチと呼ばれ、C言語とほぼ同じ文法で書くことができます。
が、ちょっと使うためだけにプログラミング勉強するのは…。という方もいると思います。
そのうち「当てはめるだけでスケッチが書ける表」みたいなのを作るかもしれません。

次回は「サーボモータ応用編」か「シリアル通信編」になります。
この記事がArduinoに挑む方の助けになれば幸いです。

0 件のコメント:

コメントを投稿