wallysalami/tkgpio
wallysalami/tkgpio has 99 GitHub stars and 19 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-12 11:53 UTC. Last push 2025-03-13.
Comment ces chiffres sont mesurés
A Python library to simulate electronic devices connected to the GPIO on a Raspberry Pi, using TkInter.
Progression mesurée des étoiles
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Historique en cours
- in 1 month
- Historique en cours
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
Originaltkgpio
A Python library to simulate electronic devices connected to the GPIO on a Raspberry Pi, using TkInter.

About
Due to the Coronavirus outbreak in 2020, students enrolled in my Microcontroller course could not use the laboratory. So I decided to build a Raspberry Pi circuit simulator, to make remote class activities possible. And it works pretty well!
The main goal here is to enable students to use the same APIs that control physical devices connected to the GPIO, but interacting with a GUI instead. I'm not worried about creating a realistic electronic simulation.
Since we were already using Python to program on Raspberry Pi, I've built the interface with TkInter. Some libraries (like gpiozero) allowed me to easily mock the devices in the GUI. In other cases, I had to reimplement the API inside the library – but since I can temporaraly add folders to Python's PATH, import commands keep working exactly as the original ones.
TkGPIO currently supports the following devices:
- Some gpiozero components (more coming soon)
- LED / PWMLED
- (Active) Buzzer
- DC Motor
- Servomotor
- Push Button
- Toggle Switch
- Distance Sensor (HC-SR04)
- Light Sensor (LDR)
- Motion Sensor (HC-SR501)
- Potentiometer (via MCP3xxx chip)
- LCD display (reimplementing Adafruit_CharLCD API)
- Only
messageandclearmethods are supported for now (more coming soon)
- Only
- Infrared emmitter (reimplementing py_irsend API)
- Infrared receiver (reimplementing python-lirc API)
TkGPIO also supports labels with text, border and background color.
Usage
This is a simple example to create and control 2 LEDs and 1 Button.

from tkgpio import TkCircuit
# initialize the circuit inside the GUI
configuration = {
"width": 300,
"height": 200,
"leds": [
{"x": 50, "y": 40, "name": "LED 1", "pin": 21},
{"x": 100, "y": 40, "name": "LED 2", "pin": 22}
],
"buttons": [
{"x": 50, "y": 130, "name": "Press to toggle LED 2", "pin": 11},
]
}
circuit = TkCircuit(configuration)
@circuit.run
def main ():
# now just write the code you would use on a real Raspberry Pi
from gpiozero import LED, Button
from time import sleep
led1 = LED(21)
led1.blink()
def button_pressed():
print("button pressed!")
led2.toggle()
led2 = LED(22)
button = Button(11)
button.when_pressed = button_pressed
while True:
sleep(0.1)
You could also initialize the circuit in a function inside a separate Python file, to hide it from students.
Check more sample code files in docs/examples.
Instalation
Use PyPI to install TkGPIO in your computer.
pip install tkgpio
By default, buzzers will flash on the window but will not play any sound. To enable that, install numpy and sounddevice, or install tkgpio using the command
pip install 'tkgpio[sound]'
Explorer des projets similaires
sindresorhus/awesome
😎 Listes Awesome sur toutes sortes de sujets intéressants [NOTE : les pull requests sont temporairement désactivées jusqu’à ce que j’aie l’occasion de rattraper celles qui existent déjà]
535,788 étoilesEbookFoundation/free-programming-books
:books: Livres de programmation librement disponibles
401,489 étoilesnilbuild/developer-roadmap
Feuilles de route interactives, guides et autres contenus éducatifs pour aider les développeurs à progresser dans leur carrière.
371,905 étoilesvinta/awesome-python
La liste de référence qui répond à « Je veux faire X en Python : quel outil dois-je utiliser ? ».
334,260 étoiles