ラズパイとサーボモーターで応援ロボット(三三七拍子)を作ろう!

三三七拍子で応援をしてくれるロボットを作りましょう!材料はラズパイ、サーボーモータ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)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です