さ~ぼも~た SG90
さ~ぼも~た SG90
の ぐるぐる回転する型
# ==== 【Gemini】様
ラズパイピコでのリベンジ・プログラム
前回のコードを少し改造して、
連続回転型専用の動きをさせてみましょう。
```python
import machine
import utime
# サーボの信号ピン (GP15)
servo = machine.PWM(machine.Pin(15))
servo.freq(50)
def set_servo(val):
# 連続回転型の場合: 90が停止、0と180が最大速
duty = int((val / 180) * (8192 - 1638) + 1638)
servo.duty_u16(duty)
print("連続回転型サーボ・テスト開始")
try:
while True:
print("右回転!")
set_servo(0)
utime.sleep(2)
print("停止(ブレーキ)")
set_servo(90)
utime.sleep(2)
print("左回転!")
set_servo(180)
utime.sleep(2)
print("ゆっくり回転")
set_servo(85) # 90に近いほど遅くなります
utime.sleep(2)
except KeyboardInterrupt:
servo.deinit()
```
接続の確認(Arduinoの時と同じ色ですが念のため)
* 茶色: GND
* 赤色: VBUS (5V)
* オレンジ: GP15 (20番ピン)
これが動いたらどうなる?
もしこれで「右に回って、止まって、左に回る」ができたら、いよいよ「スリップリング」がなくても、センサーを首振りさせるレーダーが作れます!
* 右に1秒回して、距離を測る。
* 左に1秒回して、距離を測る。
これで、正面だけでなく左右の障害物も検知できる「自律走行車」の目のような仕組みになります。
どうでしょう、今度は「意図した通り(回れ・止まれ)」に動いてくれそうですか?もし、90を指定しても「ゆっくり回ってしまう」場合は、個体差なので88とか92とかで調整すればピタッと止まりますよ!
# ==============================
