三三七拍子で応援をしてくれるロボットを作りましょう!材料はラズパイ、サーボーモータ2つ(TOWER PRO SG90/MIUZEI MS18)、LED2つ、ブレッドボード+接続キット、ジャンパーケーブルです。
3つのGPIO端子を使います。GPIO23/GPIO24をそれぞれ2つのサーボーモータ制御線につなぎ、GPIO20にLEDのアノード端子(長い方)をつなぎます。
最後にPythonでのプログラムを載せておきます。
最後にPythonでのプログラムを載せておきます。
import pigpio
import time
import RPi.GPIO as GPIO pi=pigpio.pi()
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(20,GPIO.OUT)
SERVO_PIN=23
def SERVO_R(x):
return pi.set_servo_pulsewidth(23, x*1900/180+500)
def SERVO_L(x):
return pi.set_servo_pulsewidth(24, 2400-x*1900/180)
GPIO.output(20, True)
SERVO_R(90)
SERVO_L(90)
time.sleep(2)
GPIO.output(20, False)
# 1110_1110
GPIO.output(20, True)
SERVO_L(60)
time.sleep(0.5)
GPIO.output(20, False)
SERVO_L(30)
time.sleep(0.5)
GPIO.output(20, True)
SERVO_L(0)
time.sleep(1)
GPIO.output(20, True)
SERVO_R(60)
time.sleep(0.5)
GPIO.output(20, False)
SERVO_R(30)
time.sleep(0.5)
GPIO.output(20, True)
SERVO_R(0)
time.sleep(1)
# 11111110
GPIO.output(20, 1)
SERVO_R(25)
SERVO_L(25)
time.sleep(0.5)
GPIO.output(20, 0)
SERVO_R(50)
SERVO_L(50)
time.sleep(0.5)
GPIO.output(20, 1)
SERVO_R(75)
SERVO_L(75)
time.sleep(0.5)
GPIO.output(20, 0)
SERVO_R(100)
SERVO_L(100)
time.sleep(0.5)
GPIO.output(20, 1)
SERVO_R(125)
SERVO_L(125)
time.sleep(0.5)
GPIO.output(20, 0)
SERVO_R(150)
SERVO_L(150)
time.sleep(0.5)
GPIO.output(20, 1)
SERVO_R(180)
SERVO_L(180)
time.sleep(1)
GPIO.output(20, 0)
# 1110_1110
GPIO.output(20, True)
SERVO_L(120)
time.sleep(0.5)
GPIO.output(20, False)
SERVO_L(60)
time.sleep(0.5)
GPIO.output(20, True)
SERVO_L(0)
time.sleep(1)
GPIO.output(20, True)
SERVO_R(120)
time.sleep(0.5)
GPIO.output(20, False)
SERVO_R(60)
time.sleep(0.5)
GPIO.output(20, True)
SERVO_R(0)
time.sleep(1)
# 11111110
GPIO.output(20, 1)
SERVO_R(25)
SERVO_L(25)
time.sleep(0.5)
GPIO.output(20, 0)
SERVO_R(50)
SERVO_L(50)
time.sleep(0.5)
GPIO.output(20, 1)
SERVO_R(75)
SERVO_L(75)
time.sleep(0.5)
GPIO.output(20, 0)
SERVO_R(100)
SERVO_L(100)
time.sleep(0.5)
GPIO.output(20, 1)
SERVO_R(125)
SERVO_L(125)
time.sleep(0.5)
GPIO.output(20, 0)
SERVO_R(150)
SERVO_L(150)
time.sleep(0.5)
GPIO.output(20, 1)
SERVO_R(180)
SERVO_L(180)
time.sleep(1)
GPIO.output(20, 0)
# 1_1_1
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(1)
GPIO.output(20, False)
SERVO_L(180)
SERVO_R(180)
SERVO_L(180)
time.sleep(1)
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(1)
GPIO.output(20, False)
SERVO_R(10)
SERVO_L(10)
time.sleep(0.1)
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(0.1)
GPIO.output(20, False)
SERVO_R(10)
SERVO_L(10)
time.sleep(0.1)
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(0.1)
GPIO.output(20, False)
SERVO_R(10)
SERVO_L(10)
time.sleep(0.1)
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(0.1)
GPIO.output(20, False)
SERVO_R(10)
SERVO_L(10)
time.sleep(0.1)
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(0.1)
GPIO.output(20, False)
SERVO_R(10)
SERVO_L(10)
time.sleep(0.1)
GPIO.output(20, True)
SERVO_R(0)
SERVO_L(0)
time.sleep(5)
GPIO.output(20, False)