Mira&Luna's nursery lab

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

 「VarSpeedServo.h」ライブラリを使って、サーボモータのスピードをコントロールします(∂, ∂🎀/

Mira

Arduinoで「VarSpeedServo.h」というライブラリを使った、サーボモータ速度調整の方法の紹介🍇

◆ サーボモータ
f:id:miraluna:20190609183242j:plain

サーボモータマイコンなどを使って、プログラムした角度まで自在に回転させることができるモーターです。
Nursery lab でも何回か記事にして紹介してきたパーツです。

🥕基本的なサーボモータの動かし方 ↓
miraluna.hatenablog.com
🍅つまみを回すと、同じようにサーボモータが動く ↓
miraluna.hatenablog.com
🍒ライブラリを使わないで動かす。速度制御もする ↓
miraluna.hatenablog.com
ちなみにあだ名は「ペンギン」よ。

この記事では Arduinoサーボモータの速度を制御するための、ライブラリを使った方法を紹介します。 リンク→「ライブラリとは?


.ライブラリをダウンロードする。
今回使うライブラリはフィリップ・ファン・アレン(pvanallen)さんが作成して、GitHubというサイトで公開してくださっているものです。Thank you so much, Mr.pvanallen.
こちらのリンクから移動できます。→ 🍅ここだよ🍅
移動すると英語ばっかりのサイトですね。そこに「Code」か「Clone」か「Download」と書かれた緑色のボックスがあると思います(Sign up じゃないほう)。そこからダウンロード方法を選んでダウンロードします。私は Download Zip という Zipファイルをダウンロードして展開(解凍)する方法でやっています(だから他の方法はよく分かりません)。

.ダウンロードしたファイルを移動させる。
ダウンロードして展開したファイルをダウンロードファイルなどにそのまま置いておいたのでは、Arduinoが見つけることができないんです。Arduinoには「本(ライブラリ)」を置いておく本棚のようなフォルダ「libraries」が用意されています。
場所は(Windowsなら)「ドキュメント」→「Arduino」に「libraries」があると思います。展開したライブラリファイルは、この「libraries」の中に入れておきましょう。

.プログラムにインクルードする。
ライブラリを本棚である「libraries」に入れたら、動かしたいプログラムを書きます。そのときにArduinoに本を持たせて、「この本(ライブラリ)のルールに従うのよ」と言いつけるのが、インクルードです。
どうするかというと、プログラムの初めにライブラリ名を以下のように書くだけです。

#include <VarSpeedServo.h>

↑「『VarSpeedServo.h』という本に従うのよ」という言いつけの1行。
これでArduinoは<VarSpeedServo.h>のライブラリを使うことができます。


ダウンロードしたファイルの中にはサンプルスケッチ(スケッチとはArduinoのプログラムのこと)が入っているので、実際に使ってみましょう。

🍐 配線をする。
f:id:miraluna:20201121183117j:plain
Arduinoサーボモータをつなぎます。配線は3本。+電源(5vでも3.3vでも)と、GND線と、通信線。通信線はサンプルスケッチが「9番ピン」を指定していたので、Digitalピンの「9」につなぎます。線の色は、オレンジが+で、茶色がGNDで、黄色が信号線。詳しく見たい方は🍎こちらの記事へ🍎

配線が完了したら、Arduino IDE を開きましょう。
Arduino IDE がない方は→「Arduino IDE のダウンロード方法


◆ サンプルスケッチ
f:id:miraluna:20201121183132p:plain
このスケッチは、サーボモータを0°から180°の位置まで繰り返し回転させ続けるプログラムです。「0°から180°の位置」について知りたい方は、この記事の上の方にあるリンク「Arduinoを使ってサーボモーターを制御してみよう。」を読んでみてね。
プログラムの中に赤い丸と青い丸が付いていますね。これが速度です。
赤い丸の数字は180°の位置まで移動するときの速度。
青い丸の数字は 0°の位置まで移動するときの速度。
数字が大きいほど速くて、たぶん255が最大じゃないかな。今は両方とも30で、同じ速さね。


◆ サンプルスケッチを修正
f:id:miraluna:20201121183137p:plain
それではこの数値を変えてみましょう。
180°まで移動するとき(往路)は「10」の速度に、
0°まで移動するとき(復路)は「200」の速度にしてみます。

すると往路はゆっくりだけど、復路は速く回転します。


🍕動作実験の動画🍆

サーボモーターの速度調整のしかた(∂. ∂🎀/


これでサーボモータのスピードをコントロールすることができるようになりました。(∂. <🎀y やったね。

みなさんもArduinoサーボモータを制御して、楽しい電子工作してみませんか?
紹介はTinyミラchenでした。
f:id:miraluna:20201009182910j:plain:w200