Итак, вот мой скрипт на питоне:
from Tkinter import *
#import RPi.GPIO as GPIO
#GPIO.setmode(GPIO.BOARD)
#GPIO.setup(12, GPIO.OUT)
#p = GPIO.PWM(12, 50)
#p.start(0)
def cmd():
speed = "Rotor speed= " + str(var.get())
label.config(text = speed)
#dc = int(var.get())
#p.ChangeDutyCycle(dc)
tk = Tk()
var = DoubleVar()
scale = Scale(tk, from_=100, to=0, variable = var)
scale.pack(anchor=CENTER)
button = Button(tk, text="Set speed", command=cmd)
button.pack(anchor=CENTER)
label = Label(tk)
label.pack()
tk.mainloop()
print("Closing the program and cleaning up the GPIO")
#p.stop()
#GPIO.cleanup()
Некоторые части пока закомментированы, потому что я работаю над кодом на своем ПК, а не на Raspberry Pi. Я оставил их для контекста.
Итак, этот код создает очень простой графический интерфейс для моего вертолета. Он отлично работает, но чтобы изменить рабочий цикл моего вывода ШИМ (функция cmd()), мне нужно нажать кнопку.
Я попытался заставить свою программу автоматически проверять значение ползунка, но я просто не могу понять это.
Любые идеи, как я могу изменить этот код, чтобы изменить значение dc вместе с движением ползунка, без необходимости нажимать кнопку, чтобы обновить его?
dc— рабочий цикл на выводе №12. В текущей программе, когда я нажимаю кнопку, она меняетdcна любое значение ползунка. Я пытаюсь автоматически опросить положение ползунка, не нажимая кнопку, чтобы значениеdcвсегда соответствовало значению ползунка. - person M B   schedule 28.03.2017dc = int(var.get())что работает, но не идеально. Я бы предпочел, чтобы значение всегда соответствовало ползунку. - person M B   schedule 28.03.2017