Up テストプログラム 作成: 2021-05-09
更新: 2021-05-11


    $ vi servo_angle.py
    #!/usr/bin/env python import RPi.GPIO as GPIO # Set the GPIO pins by physical pin number GPIO.setmode(GPIO.BOARD) Servo_pin = 16 # Set the GPIO pins by BCM pin number # GPIO.setmode(GPIO.BCM) # Servo_pin = 23 GPIO.setup(Servo_pin, GPIO.OUT) # PWM (Pulse Width Modulation) の設定 # SG90 の周波数は50Hz (周期20ms) Servo = GPIO.PWM(Servo_pin, 50) from time import sleep # 指定角度 (単位 : 度) にサーボを定位 def servo_angle(degree): # 角度 degree に対応する Duty比 duty duty = 9.5 * degree / 180 + 7.25 # デューティ比を変更 Servo.ChangeDutyCycle(duty) #0.3秒間待つ sleep(0.3) import sys # exit プロセス def destroy(): #サーボモータをストップ servo_angle(0) Servo.stop() #GPIOをクリーンアップ GPIO.cleanup() #プログラムを終了 sys.exit() # 角度 0° (デューティ比 7.25) からスタート deg = 0 Servo.start(7.25) sleep(0.3) # while文で無限ループ while True: try: servo_angle(deg) sleep(0.3) if deg < 90 : deg += 30 else : deg = -90 # Ctrl + C で,プログラム終了 except KeyboardInterrupt: destroy()

    $ vi servo_angle.py $ chmod +x servo_angle.py $ ./servo_angle.py