サーボモータの配線

サーボモータの配線

モータを動かすには大きな電流が必要なので
サーボモータの電源を Raspberry Pi からとることはできない

このためサーボモータ専用の電池ボックスなどをつかって電源をとることになる

今回は使用するパーツを
秋月電子通商通販

で購入

使用した部品は

GWSサーボ MICRO/STD/F(フタバ)

電池ボックス 単3×4本用

そして
ハック ラズベリーパイ Raspberry Pi 電子工作入門キット。

使用する単3電池は100均で購入

配線するときの注意点として
Raspberry Pi の 3.3V と
サーボモータ用の+を接続しないこと

これは、Raspberry PI のほうが電圧が低いため
Raspberry Pi に電圧がかかり
Raspbery Pi が物理的に壊れるため

なお、今回購入したサーボモータは
端子がソケットになっていて
ブレッドボードにさせないので
電子工作入門キットに両方ともオスの
ジャンパケーブルがあるので、
これをつかってブレッドボードに接続する

配線は
Raspberry Pi のGND
サーボモータの -
電池ボックスの ー
が同じ横の列

そして
サーボモータの+
電池ボックスの+
が同じ横の列

Raspberry Pi のGND、つまり右から3つめと
GPIO18 つまり右から6つめ
と同じ縦の列にさす

これで配線は完了

次に、電池ボックスの電源をいれてから
ServoBlaster を起動する

起動は

sudo servod

実行結果は

Board revision:                  2
Using hardware:                PWM
Using DMA channel:              14
Idle timeout:             Disabled
Number of servos:                8
Servo cycle time:            20000us
Pulse increment step size:      10us
Minimum width value:            50 (500us)
Maximum width value:           250 (2500us)
Output levels:              Normal

Using P1 pins:               7,11,12,13,15,16,18,22
Using P5 pins:               

Servo mapping:
     0 on P1-7           GPIO-4
     1 on P1-11          GPIO-17
     2 on P1-12          GPIO-18
     3 on P1-13          GPIO-27
     4 on P1-15          GPIO-22
     5 on P1-16          GPIO-23
     6 on P1-18          GPIO-24
     7 on P1-22          GPIO-25

となる

これで次にサーボモータを制御する

サーボモータの制御は
仮想デバイスファイルの
/dev/servoblaster
にパルス幅を書き込む

パルス幅の単位はミリ秒を100倍した値になる

もし 1,2ms のパルス幅を出力するなら
値は120になる

指定できる値は、初期値では
50~250 だけど
-min オプションで下限
-max オプションで上限を変えることができる

サーボモータの制御の構文は

echo サーボ番号=パルス幅  >/dev/servoblaster

となる

サーボ番号は

sudo servod

を実行したときに

Servo mapping:
     0 on P1-7           GPIO-4
     1 on P1-11          GPIO-17
     2 on P1-12          GPIO-18
     3 on P1-13          GPIO-27
     4 on P1-15          GPIO-22
     5 on P1-16          GPIO-23
     6 on P1-18          GPIO-24
     7 on P1-22          GPIO-25

の部分でみることができる

今回なら GPIO 18 は2番になっている

これをつかってパルス幅を 1.2ms にするなら

echo 2=120 > /dev/servoblaster

となる

2回実行してもすでにその角度に動いている後なので
変化しない

簡単な操作なら、スクリプトにすることもできる

Raspberry PiのPWM出力を使ってサーボモーターを動かす!

を参考に角度を動かすなら

vim servo..sh

でファイルを作成して

#!/bin/bash
echo 2=150 >/dev/servoblaster
sleep 0.5

echo 2=60 >/dev/servoblaster
sleep 0.5

echo 2=240 >/dev/servoblaster

で保存

chmod 755 servo.sh 

で権限を与えて

./servo.sh

で実行すると回転を始める

あと ServoBlaster デーモン起動中は
GPIO 4
GPIO 17
GPIO 18
GPIO 27
GPIO 22
GPIO 23
GPIO 24
GPIO 25
は ServoBlaster 専用になる

もし、特定のポートだけServoBlaster にするなら
–p1pins=基盤のピン番号
とする
GPIOポート番号ではないので注意

sudo servod --p1pins=12

とすれば

Servo mapping:
     0 on P1-12          GPIO-18

となり18ポートだけ ServoBlaster 対応になる

ServoBlaster 終了は

sudo killall servod 

で終了となる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です