import RPi.GPIO as GPIO import time import sys import tkinter as tk GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # SERVO servoOut = 18 GPIO.setup(servoOut, GPIO.OUT) # PWM servo = GPIO.PWM(servoOut, 50) #GPIO.PWM set servo.start(0) #duty 0-100% # GUI root = tk.Tk() root.geometry('400x200') root.title('サーボモーター・テスト') val = tk.IntVar() val.set(0) label = tk.Label(root, text='角度 = %d' % val.get()) label.place(x=175, y=120) # angle to duty convert def servo_angle(angle): duty = round(2.5 + (12.0 - 2.5) * (angle + 90) / 180, 1) # print(duty) servo.ChangeDutyCycle(duty) time.sleep(0.3) # slider change def sbar(scl): angleData = int(90 / 50 * int(scl) - 90) # print(angleData) label.config(text='角度 = %d' % int(angleData)) servo_angle(angleData) sld = tk.Scale(root, label=' スライダー', orient='h', from_=0, to=100, showvalue=False, variable=val, command=sbar) sld.place(x=150, y=50) sbar(0) root.mainloop() servo.stop() GPIO.cleanup() sys.exit()