組み込み

ラズベリーパイに正式対応したServoblasterでサーボモータを制御する方法

どうも、プロコアラです。

ラズパイからモーターを制御する方法を解説します。

カメラの向きを制御したりする際に必要です。

僕の場合は赤ちゃんモニタをラズパイで作っているので、モーターを制御してカメラの向きを変えれば、赤ちゃんがハイハイで動き出した時に対応できますね。

概要

ラズパイをServoblasterというソフトウェアでサーボモーターを制御します。

Servoblasterは擬似的にPWM制御するソフトウェアで、最大で8個のサーボモーターを制御することができます。

ラズパイにはPWMのためのGPIOピンが1ピンしか用意されていないため、タイヤの制御など複数のサーボモーターを制御したい場合にもオススメです。

 

使用するもの

今回の使用したものはこちらです。

ラズパイ持ってないよという方は、こちらの記事を参考にしてください

ラズパイとは?プログラミングや電子工作にもオススメな格安PC こんにちは、エンジニアブロガーのプロコアラです。 [word_balloon id="2" position="L...

 

準備

それでは、準備をしていきましょう。

Servoblasterのインストール

ラズベリーパイに正式対応したServoblasterをインストールしましょう。

git clone git://github.com/richardghirst/PiBits.git
cd PiBits/ServoBlaster/user
make
sudo make install

 

サーボモーターを接続

今回は、サーボモーター4と5を使用します。
GPIO番号とサーボモーター番号を読み替える必要があります。

 

サーボ番号 0 1 2 3 4 5 6 7
GPIO番号 4 17 18 21 or 27 22 23 24 25
ピン番号 7 11 12 13 15 16 18 22

 

ラズベリーパイを以下のように配線します。

電源(5V) サーボモーターA/B 電源(赤色)
GPIO22(サーボ番号4) サーボモーターA 制御信号(オレンジ色)
GPIO23(サーボ番号5) サーボモーターB 制御信号(オレンジ色)
GND(ピン番号6) サーボモーターA/B GND(茶色)

モーターを回すと電源にノイズが入ってくるため、ラズベリーパイから取らずに別電源から取ります。
本当は制御信号に10kΩの抵抗を入れたりしたほうがベターみたいですね。

スクリーンショット 2016-04-26 21.28.44

 

実行

以下のようにコマンドで制御できます。

# モーター番号4 0度回転
echo 4=0% > /dev/servoblaster

# モーター番号4 90度回転
echo 4=50% > /dev/servoblaster

# モーター番号5 180度回転
echo 4=100% > /dev/servoblaster

 

 

まとめ

Servoblaster 簡単ですね!

8個までサーボモータを制御できるということで
ロボットの関節制御とかに良さそうですね。

では!(^^)/

 

ABOUT ME
律野桜哉
RPAコンサルタントのプロコアラです。長年のエンジニア経験を活かしてして外資系コンサルファームでRPAコンサルしてます。 転職ノウハウ、プログラミング、英語の勉強方法など分かりやすいように解説していきます。