これまでArduinoやESPだけしか触ってきませんでしたが、Micropythonで動くので学生受けもよさそうかな…と思ってRaspberry Pi Picoに手を出してみることにしました。
とりあえずサーボです。「Raspberry pi Pico servo/サーボ」などと検索すれば1つ動かすサンプルはいくつも出てくるのですが、スレッドで2つ動かしたいので適当に書いてみます。

from machine import PWM, Pin
from time import sleep
import _thread
servo_1 = PWM(Pin(0))
servo_1.freq(50)
servo_2 = PWM(Pin(1))
servo_2.freq(50)
angle_0 = int(2.5 / 20 * 65536)
angle_90 = int(1.5 / 20 * 65536)
angle_180 = int(0.5 / 20 * 65536)
def Move_1():
while True:
servo_1.duty_u16(angle_0)
sleep(0.5)
servo_1.duty_u16(angle_90)
sleep(0.5)
servo_1.duty_u16(angle_180)
sleep(0.5)
def Move_2():
while True:
servo_2.duty_u16(angle_0)
sleep(1)
servo_2.duty_u16(angle_90)
sleep(1)
servo_2.duty_u16(angle_180)
sleep(1)
_thread.start_new_thread(Move_1, ())
Move_2()
無事それっぽいリズムを刻む動きをしてくれました。
最初、2つともスレッドにしていて少しハマりました。
(最終行を「_thread.start_new_thread(Move_2, ())」と書いていた)
PicoはPWMを2系統しか出せないようなので、3つ以上のサーボを動かすには別途コントローラが必要ですね。
コメントを残す