YouTube
7.サーボモータ
このレッスンでは、サーボモータを使って、以下のような内容を学んでいきます。
- 繰り返し構文:for
- ライブラリの読み出し
- シリアルモニター(グラフ)
特にfor文は汎用性が高く、何をするにしても必ずと言っていいほど登場するプログラムなので、必ず抑えておいてください。
使用したコード
動画内で使用したコードです。ご自由にご使用ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //サーボモータ制御用のライブラリをインポート #include <Servo.h> //サーボモータのオブジェクトを作成 Servo myservo; void setup() { myservo.attach(9); Serial.begin(9600); } void loop() { //0〜180度まで1度ずつ回転 for (int angle = 0; angle <= 180; angle++) { myservo.write(angle); delay(30); Serial.println(angle); } delay(1000); } |
サーボモータについて
サーボモータとは回転角度や速度を制御できるモータのことで、ロボットの関節や踏切の開閉など、ある決まった角度の範囲で精度良く物を動かしたい時に広く使われています。
構造は以下のように、通常のブラシ付きDCモータに加え、いくつかのギヤと、制御基板、回転量を検知するポテンショメータという部品からできています。
Arduinoなどのコントローラから回転角度の指示が来ると、DCブラシモータが回転します。
その回転量をポテンショメータで検知し、指示された角度に来たらモータを停止する仕組みになっています。
今回作るもの
以下の画像は今回作成した回路で、5秒おきに180度回転するように動作させています。
それではこの回路を作っていきましょう。
使う材料の準備
以下の画像は、今回作成する回路図になります。
サーボモータの電源は、Arduinoの5V出力端子から供給しています。
回路図
次に回路図にならって、ブレッドボード図を作成したのが以下の画像です。
今回使用しているタイプも含めて、多くのサーボモータはオレンジ、赤、茶色の3本の線が出ています。
回路を組む
それではこの図にならって、回路を組んでみたのがこちらです。
プログラムの作成
それではコーディングを行っていきます。
Arduino IDEを起動して、ファイル→新規ファイルをクリックし、この画面にあるプログラムを入力してください。
ここではまず、最初の行で「include」というコードを使って、Servo.hというサーボモータ制御用のライブラリをインポートしています。
ArduinoにはこのServo.hを始め、いくつかのライブラリがデフォルトで用意されています。
ちなみに今回使うservo.hには、以下のような6個の機能が用意されているので使う前に軽く目を通しておいて下さい。
そして読み出したライブラリを使えるようにするために、下準備として以下の部分でオブジェクトを作成しています。
オブジェクトというのは少し概念が難しいですが、実際にその機能を使えるようにするために、設計図の状態から現実世界に呼び出したものを言います。
Setup関数内では、servoライブラリの中にあるattachという機能を使い、9ピンを信号用のピンに割り当てています。
また今回はシリアルプロッタという機能を使って値をモニタするために、シリアルモニタ機能と同様にSerial.begin関数を使用しています。
次にloop関数内では、for文を使って繰り返し行う処理を書いています。
for文では波括弧の中で囲まれた部分を、{}内の条件が成立している限り繰り返すようにプログラムが動作します。
{}の中は、初期化処理、条件式、増分という3つのセクションに分かれています。
今回の場合で言うと、サーボモータの回転角度を表したangleという変数に最初に0を代入し、180に到達するまでは1ずつ追加していきながら処理を繰り返すという動きになります。
そしてその処理の部分では、servoライブラリのwriteという関数を使って各angleの角度になるように回転させています。
その後30msの時間待機すると共に、現在のangleの値をシリアルプロッタで見れるようにしています。
これは簡単に言うと、0〜180度までを1度ずつ回転させていることになります。
180度まで回転させた後は、1秒待機した後でまた0度から同じ動作を繰り返します。
ボードに書き込む
最後にファイルを保存し、ツールバーの「マイコンボードに書き込む」のボタンを押して書き込みます。
またメニューバーのツールからシリアルプロッタを起動すると、以下の画像のように0から180まで徐々に増加し、180に到達した時点でまた0からスタートという動作を繰り返している様子が分かると思います。
まとめ
ということで今回は、このような内容を学んできました。
- 繰り返し構文;for
- ライブラリの読み出し
- シリアルモニター(グラフ)
当サイトでは、最低限身につけるべき知識やツールの解説など、電子工作を 0 から体系的に学べる動画や記事を投稿しています。