今日も微速転進

ここではないどこかへ

Voice Kit とサーボモーター その1


スポンサーリンク

最終的な目標は音声でVoice Kit につないだカメラの首振りなどの制御。

まずは下準備としてラズパイからサーボをコントロールする。

f:id:atuyosi:20180115222935j:plain:w480

やりたいこと

  • Voice HAT (Voice Kitの拡張ボード)のカメラマウント用のサーボモーターをつなぐ
  • Pythonからサーボモーターの制御

用意するもの

  • ラズパイ本体(Raspberry Pi model 3B)
  • microSD
  • Google AIY Voice Kit
  • サーボモーター制御のカメラマウント


※ マーケットプレイス注意

なお、Voice Kit付属のプラスチックスペーサーは取り外しが不便なので下記で代用しています。

ピンヘッダの取り付け

Voice HAT accessory board(Voice Kit付属のメイン拡張基盤)にはサーボモーターやDCモーター、ステレオスピーカー化するためのはんだ付け用のパターンが用意されています。逆いうと自分でピンヘッダなり必要な端子をはんだ付けする必要があるということ……。

今回はサーボモーターを2個つなげることができれば良いので、3ピンのピンヘッダを2つ取り付けることにします。

f:id:atuyosi:20180115222434p:plain:w320

電子部品ショップにレッツゴーするか秋葉原詣でに行くか、あるいは通販でピンヘッダを入手します。

寺町通のマルツに行って確保してきました*1。10個入りで21円(税抜き)。交通費に比較してなんと微妙な価格でしょう……。

f:id:atuyosi:20180115222536j:plain:w320

f:id:atuyosi:20180115222830j:plain:w320

配線

f:id:atuyosi:20180117020103j:plain:w320

f:id:atuyosi:20180115223517j:plain:w320

取り付けたピンヘッダにつなぐ。オレンジ色の線が制御信号で、Voice Hat の端側に来るように接続する。

内部でどのGPIOピンにつながっているかは付属の冊子の最後の方の配線図で判断できる。

動作テスト

Voice Kit付属の小冊子に記載されているコードをちょっとだけ改造。

from gpiozero import Servo
from time import sleep

servo_0 = Servo(26)
servo_1 = Servo(6)

#servo_1.mid()
servo_1.max()

while True:
    servo_0.min()
    servo_1.max()
    sleep(1)
    servo_0.mid()
    servo_1.mid()
    sleep(1)
    servo_0.max()
    servo_1.min()
    sleep(1)
    servo_0.mid()
    servo_1.mid()
    sleep(1)

Servo()関数に、サーボモーターの信号線のつながっているGPIO番号を指定する。 一番上側がGPIO 26、その下がGPIO 06。

停止させるときはCtrl-C。

動作の様子

gif にしたらファイルサイズがちょっと残念な感じだったので省略。ちゃんと動きました。

まとめ

次はカメラマウントにセットして、任意の角度で可動させたい。

流石にそろそろ出発準備しないとまずいのでどこまでいけるかちょっと微妙だけど。

*1:Pi Zero Wと一緒に……

広告