Raspberry pi 2で3つのサーボモータをpythonコードで動かしたいです。他のライブラリを使用せずに動かす方法はないでしょうか?
ロボットの両手2つと首に一つのサーボを搭載して動かそうと思っています。一つずつ順番にサーボモータを動かすことはできるのですが同時に動かそうとするとうまく動きません。両手を上げるなどの動作が必要なのでできれば3つ最低限2つは同時に動かせるようにしたいです。RaspiのGPIO pinはGPIO 19, 13 12です。
////////////////現在のpython サーボ制御コード////////////////////////
#! /usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # use GPIO Number
SV1 =12
GPIO.setup(SV1, GPIO.OUT)
servo = GPIO.PWM(SV1, 50) # set 20 ms / 50 Hz
angle = 90.0 # set angle
new_duty =(1.0 + angle/180.0)/20.0*100.0 # calculate duty
print(new_duty)
servo.start(new_duty)
print("angle 0 deg")
time.sleep(0.5)
servo.stop() # stop servo
///////////////動作しない2つ制御のコード////////////////////////
#! /usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # use GPIO Number
SV1 =12
SV2 =19
GPIO.setup(SV1, GPIO.OUT)
GPIO.setup(SV2, GPIO.OUT)
servo = GPIO.PWM(SV1, 50) # set 20 ms / 50 Hz
servo2 = GPIO.PWM(SV2, 50)
angle = 90.0 # set angle
new_duty =(1.0 + angle/180.0)/20.0*100.0 # calculate duty
print(new_duty)
servo.start(new_duty)
print("angle 0 deg")
angle = 90.0 # set angle
new_duty =(1.0 + angle/180.0)/20.0*100.0 # calculate duty
print(new_duty)
servo2.start(new_duty)
print("angle 0 deg")
time.sleep(0.5)
servo.stop() # stop servo
servo2.stop()
回答3件
あなたの回答
tips
プレビュー