こないだ作ったヤツにマイクロサーボ SG-90 を追加してみました。
マイクロサーボ(サーボモーターのちっちゃいやつ)
動力としてではなくて、位置を制御するためのモーター。らしい。
ラジコンのステアリングや、ロボットの関節なんかに使われているそうです。
このSG-90、秋月さんとこのデータシートによると、
- 茶→GND
- 赤→電源
- 黄→コントロール
となっているようです。
見事に同系色。
これをブレッドボードに実装してみます。
回路図
メチャクチャか?
コード
モータードライバーとは違って、PWMで「角度」を指定するみたいです。
「-90~+90」を「0~100」で指定するのかと思ったら、計算して求めるみたい。
http://store.techshare.jp/html/page109.html
↑こちらを参考にさせて頂きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO print 'テスト開始' def getDuty(angle): duty = (1.0 + angle / 180.0) / 20.0 * 100.0 print ' angle=[' + str(angle) + '], duty=[' + str(duty) + ']' return duty # GPIOの基本的な設定 GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(16, GPIO.OUT) servo = GPIO.PWM(16, 50) servo.start(0) servo.ChangeDutyCycle(0) time.sleep(1) for var in [-90, -60, -30, 0, 30, 60, 90]: servo.ChangeDutyCycle(getDuty(var)) time.sleep(0.5) servo.ChangeDutyCycle(0) time.sleep(1) # GPIO後処理 servo.stop() GPIO.cleanup() print 'テスト終了' |
動きません
上記のコードで動かしてみましたが動きません。
ジッ、ジッ、と音はしてるようなんですが・・・(ヽ´ω)
調べてみると、USB DIP化キットにリセッタブルヒューズというのが実装されていました。
これは『過電流が流れるとプチッと切れ、回路を保護し自分は昇天』(=いわゆるヒューズが飛ぶ現象)のではなく、
『過電流がかかると内部熱で抵抗値が上昇し、回路を保護する』んだそうです。
プチッといかないので、何度でも蘇るってことです。
で、これが働き始めるのが0.2Aであったため、モバイルバッテリーが2.1Aあっても、
0.2Aしか流れてなかった、ってことなんですね! 勉強になります!!
改めて動かしてみる
続く?
ちょっとガタガタしていますが、
ホーンの取り付け位置と動かしたい範囲の値を決めてしまえば、ステアリングとして使えそうです。
これをどーやって車体のステアリング機構とくっつけるかだよなぁ(ヽ´ω)