Слайдеры Tkinter и Raspberry Pi 4 GPIO - PullRequest
0 голосов
/ 10 апреля 2020

Я Python новичок, но очень заинтересован в изучении дизайна пользовательского интерфейса с помощью Tkinter и управления материалами на экране через официальный сенсорный экран. Basi c и веселые проекты - лучший способ сделать это. Поэтому я решил поставить 3 ползунка на экране, каждый из которых представляет собой цвет, красный, зеленый и синий. И я пытаюсь осветить свой светодиодный модуль RGB, основываясь на отзывах этих трех ползунков. Поэтому они должны взаимодействовать с выводами GPIO.

enter image description here

Но я не знаю, как передать значение ползунков в качестве номера сигнала ШИМ '0-255 'к выводам GPIO.

from Tkinter import *
import tkFont
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)


win = Tk()

myFont = tkFont.Font(family = 'Helvetica', size = 36, weight = 'bold')

def exitProgram():
        GPIO.cleanup()
    win.quit()  

def setColor():
    val = int(red_scaleget())
    GPIO.output(17,val)
    val2 = int(green_scaleget())
    GPIO.output(27,val2)
    val3 = int(blue_scaleget())
    GPIO.output(22,val3)


win.title("RGB COLOR CHANGER")
win.geometry('800x480')

exitButton  = Button(win, text = "Exit", font = myFont, command = exitProgram, height =2 , width = 6)
exitButton.pack(side = BOTTOM)

w = Label(win, text="RED")
w.place(x=375, y=5)

w = Label(win, text="BLUE")
w.place(x=381, y=90)

w = Label(win, text="GREEN")
w.place(x=378, y=190)


red_scale = Scale(win, from_=0, to=255,orient=HORIZONTAL,length=700,bg='red',command = setColor)
red_scale.place(x=50, y=30)

green_scale= Scale(win, from_=0, to=255,orient=HORIZONTAL,length=700,bg='green',command = setColor)
green_scale.place(x=50,y=120)

blue_scale= Scale(win, from_=0, to=255,orient=HORIZONTAL,length=700,bg='blue',command = setColor)
blue_scale.place(x=50, y=220)



mainloop()

Хотя GUI работает без ошибок, я не вижу никаких изменений на моем RGB-светодиоде, и когда я проверяю терминал linux, где я запускал фитон-код , я вижу эту ошибку:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1550, in __call__
    return self.func(*args)
TypeError: setColor() takes no arguments (1 given)

Может кто-нибудь сказать мне, что здесь происходит и как я могу получить значение из ползунков и передать его мои контакты GPIO в качестве сигнала ШИМ?

...