I wrote a simple program that control GPIO in LXDE. Currently you can control GPIO 4,17,18,21,22,23,24,25 high/low just simply press the button.

Video:
http://www.youtube.com/watch?v=15m4-KmMlJM
I am new to Raspberry Pi hardware and Python/Tkinter. I wrote it under Raspbian, it should works for other distributions. But remember this program must run as root.
It still under development, and need your kindly comment and suggestions.
Thank you in advance.
- Code: Select all
from Tkinter import *
import RPi.GPIO as GPIO
import time
GPIO.setmode( GPIO.BCM )
GPIO.setup( 4, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(21, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)
class App:
io4=0
io17=0
io18=0
io21=0
io22=0
io23=0
io24=0
io25=0
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.p1 = Button(frame, text="3V3 Power", fg="yellow", command=self.reserved)
self.p1.pack(side=LEFT)
self.p1.grid(row=0,column=0)
self.p2 = Button(frame, text="5V Power", fg="red", command=self.reserved)
self.p2.pack(side=LEFT)
self.p2.grid(row=0,column=1)
self.p3 = Button(frame, text="GPIO 0", fg="blue", command=self.reserved)
self.p3.pack(side=LEFT)
self.p3.grid(row=1,column=0)
self.p4 = Button(frame, text="5V Power", fg="red",command=self.reserved)
self.p4.pack(side=LEFT)
self.p4.grid(row=1,column=1)
self.p5 = Button(frame, text="GPIO 1", fg="blue",command=self.reserved)
self.p5.pack(side=LEFT)
self.p5.grid(row=2,column=0)
self.p6 = Button(frame, text="Ground", command=self.reserved)
self.p6.pack(side=LEFT)
self.p6.grid(row=2,column=1)
self.p7 = Button(frame, text="GPIO 4",fg="green", command=self.gpio4)
self.p7.pack(side=LEFT)
self.p7.grid(row=3,column=0)
self.p8 = Button(frame, text="GPIO 14",fg="yellow", command=self.reserved)
self.p8.pack(side=LEFT)
self.p8.grid(row=3,column=1)
self.p9 = Button(frame, text="Ground", command=self.reserved)
self.p9.pack(side=LEFT)
self.p9.grid(row=4,column=0)
self.p10 = Button(frame, text="GPIO 15",fg="yellow", command=self.reserved)
self.p10.pack(side=LEFT)
self.p10.grid(row=4,column=1)
self.p11 = Button(frame, text="GPIO 17",fg="green", command=self.reserved)
self.p11.pack(side=LEFT)
self.p11.grid(row=5,column=0)
self.p12 = Button(frame, text="GPIO 18",fg="green", command=self.reserved)
self.p12.pack(side=LEFT)
self.p12.grid(row=5,column=1)
self.p13 = Button(frame, text="GPIO 21",fg="green", command=self.reserved)
self.p13.pack(side=LEFT)
self.p13.grid(row=6,column=0)
self.p14 = Button(frame, text="Ground", command=self.reserved)
self.p14.pack(side=LEFT)
self.p14.grid(row=6,column=1)
self.p15 = Button(frame, text="GPIO 22",fg="green", command=self.gpio22)
self.p15.pack(side=LEFT)
self.p15.grid(row=7,column=0)
self.p16 = Button(frame, text="GPIO 23",fg="green", command=self.gpio23)
self.p16.pack(side=LEFT)
self.p16.grid(row=7,column=1)
self.p17 = Button(frame, text="3V3 Power",fg="yellow", command=self.reserved)
self.p17.pack(side=LEFT)
self.p17.grid(row=8,column=0)
self.p18 = Button(frame, text="GPIO 24",fg="green", command=self.gpio24)
self.p18.pack(side=LEFT)
self.p18.grid(row=8,column=1)
self.p19 = Button(frame, text="GPIO 10", fg="purple",command=self.reserved)
self.p19.pack(side=LEFT)
self.p19.grid(row=9,column=0)
self.p20 = Button(frame, text="Ground", command=self.reserved)
self.p20.pack(side=LEFT)
self.p20.grid(row=9,column=1)
self.p21 = Button(frame, text="GPIO 9", fg="purple",command=self.reserved)
self.p21.pack(side=LEFT)
self.p21.grid(row=10,column=0)
self.p22 = Button(frame, text="GPIO 25", fg="green",command=self.gpio25)
self.p22.pack(side=LEFT)
self.p22.grid(row=10,column=1)
self.p23 = Button(frame, text="GPIO 11", fg="purple",command=self.reserved)
self.p23.pack(side=LEFT)
self.p23.grid(row=11,column=0)
self.p24 = Button(frame, text="GPIO 8", fg="purple",command=self.reserved)
self.p24.pack(side=LEFT)
self.p24.grid(row=11,column=1)
self.p25 = Button(frame, text="Ground", command=self.reserved)
self.p25.pack(side=LEFT)
self.p25.grid(row=12,column=0)
self.p26 = Button(frame, text="GPIO 7", fg="purple",command=self.reserved)
self.p26.pack(side=LEFT)
self.p26.grid(row=12,column=1)
def gpio4(self):
if self.io4==0:
GPIO.output(4, GPIO.HIGH)
self.io4=1
else:
GPIO.output(4, GPIO.LOW)
self.io4=0
return
def gpio17(self):
if self.io17==0:
GPIO.output(17, GPIO.HIGH)
self.io17=1
else:
GPIO.output(17, GPIO.LOW)
self.io17=0
return
def gpio18(self):
if self.io18==0:
GPIO.output(18, GPIO.HIGH)
self.io18=1
else:
GPIO.output(18, GPIO.LOW)
self.io18=0
return
def gpio21(self):
if self.io21==0:
GPIO.output(21, GPIO.HIGH)
self.io21=1
else:
GPIO.output(21, GPIO.LOW)
self.io21=0
return
def gpio22(self):
if self.io22==0:
GPIO.output(22, GPIO.HIGH)
self.io22=1
else:
GPIO.output(22, GPIO.LOW)
self.io22=0
return
def gpio23(self):
if self.io23==0:
GPIO.output(23, GPIO.HIGH)
self.io23=1
else:
GPIO.output(23, GPIO.LOW)
self.io23=0
return
def gpio24(self):
if self.io24==0:
GPIO.output(24, GPIO.HIGH)
self.io24=1
else:
GPIO.output(24, GPIO.LOW)
self.io24=0
return
def gpio25(self):
if self.io25==0:
GPIO.output(25, GPIO.HIGH)
self.io25=1
else:
GPIO.output(25, GPIO.LOW)
self.io25=0
return
def reserved(self):
return
root = Tk()
app = App(root)
root.mainloop()