Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:python_led

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
project:python_led [2026/02/18 17:07] – [Testen des Programms] torsten.roehlproject:python_led [2026/02/20 09:56] (aktuell) torsten.roehl
Zeile 3: Zeile 3:
 [[projekt:python_projekt_gpio| ☚ zurück]] [[projekt:python_projekt_gpio| ☚ zurück]]
  
 +//
 +In diesem Projekt wird das bisherige LED-Programm neu strukturiert und in mehrere Dateien aufgeteilt. Dabei wird die Hardware-Ansteuerung von der eigentlichen Programmlogik getrennt. Ziel ist es, mehrere LEDs gezielt und übersichtlich über die Konsole steuern zu können.
 +//
  
  
-===== Hauptprogramm =====+ 
 +===== Programmstruktur =====
  
 <note important> <note important>
-**Akiviere in die Environment**+**Aktiviere die Python-Environment**
  
 Die Programmierung erfolgt nun immer mit der gewählten Umgebung! Die Programmierung erfolgt nun immer mit der gewählten Umgebung!
Zeile 17: Zeile 21:
 </note> </note>
  
-Für das eigentliche Projekt wird der Code nun strukturiert aufgebaut. +Die Aufteilung in mehrere Dateien sorgt für eine klare Trennung zwischen Programmlogik und Hardware-Ansteuerung. Dadurch bleibt der Code übersichtlich und besser nachvollziehbar.
-Ziel ist es, mehrere LEDs (R, G, Y) flexibel ansteuern zu können, ohne bei jeder Änderung den Quellcode neu anpassen oder Hardcodierungen verändern zu müssen.+
  
-Die Umstrukturierung sorgt außerdem für eine bessere Übersichtlichkeit. Einzelne Komponenten können dadurch unabhängig voneinander erweitert oder in anderen Projekten weiterverwendet werden, wie später im Projekt mit FastAPI und Apache2 gezeigt wird. 
-==== Programmstruktur ==== 
 Folgende Programmstruktur wird verwendet. Folgende Programmstruktur wird verwendet.
  
Zeile 44: Zeile 45:
  
 <code bash> <code bash>
 +cd ~/devel/projects/gpio_led/src/core
 touch __init__.py touch __init__.py
 </code> </code>
Zeile 54: Zeile 56:
  
  
-===== Projekt: LED mit Python ===== +===== Hardware ===== 
-==== Hardware ==== + 
-==== Quellcode (Sourcecode) ==== +<note> 
-Der **Sourcecode** besteht aus drei Dateien: das eigentliche Programm **%%ledcontrol.py%%** sowie die Dateien im Hintergrund (im Verzeichnis **%%core%%**), die für die Programmlogik und die Hardware-Ansteuerung benötigt werden. Im Kurs wird das Programm ausführlich erklärt. Diese Dateien enthalten noch keinen Header – dies sollte geändert werden.+Der Aufbau und die verwendete Hardware wurden im vorherigen [[projekt:python_projekt_gpio|GPIO-Projekt]] beschrieben. Im Kurs wird die Hardware als //Modul-Breakout// zur Verfügung gestellt, sodass die Verdrahtung auf ein Minimum reduziert wird und der Raspberry Pi keinen Schaden nehmen kann. 
 +</note> 
 +===== Quellcode (Sourcecode) ===== 
 +Der **Sourcecode** besteht aus zwei Dateien: das eigentliche Programm **%%ledcontrol.py%%** sowie die Dateien im Hintergrund (im Verzeichnis **%%core%%**), die für die Programmlogik und die Hardware-Ansteuerung benötigt werden. Im Kurs wird das Programm ausführlich erklärt. Diese Dateien enthalten noch keinen Header – dies sollte geändert werden.
 === hardware.py === === hardware.py ===
  
 <code python hardware.py> <code python hardware.py>
 import RPi.GPIO as GPIO import RPi.GPIO as GPIO
 +
 +# -----------------------------
 +# API-Funktionen GPIO LED Ampel
 +# -----------------------------
  
 # ADJUST AREA START # ADJUST AREA START
Zeile 120: Zeile 129:
             if cmd in ("r", "y", "g"):             if cmd in ("r", "y", "g"):
                 mode = input("[1] ON   [0] OFF > ").strip()                 mode = input("[1] ON   [0] OFF > ").strip()
-                value = int(mode)+                value = 1 if mode == "1" else 0              
  
                 if cmd == "r":                 if cmd == "r":
Zeile 136: Zeile 145:
     finally:     finally:
         print("\rGood Bye :-)")         print("\rGood Bye :-)")
-        hardware.cleanup()       # +        hardware.cleanup()       # optional
  
 if __name__ == "__main__": if __name__ == "__main__":
Zeile 157: Zeile 166:
  
 <code bash> <code bash>
-cd ~/devel/gpio_led/src+cd ~/devel/projects/gpio_led/src
 ./ledcontrol.py ./ledcontrol.py
 </code> </code>
Zeile 167: Zeile 176:
 === Verhalten bei Eingaben testen === === Verhalten bei Eingaben testen ===
  
-  * **on** → die LED wird eingeschaltet und „on“ ausgegeben. +  LED wählen (R/Y/G) 
-  * **off** → die LED wird ausgeschaltet und „off“ ausgegeben. +  - nun (1/0) entweder anschalten oder ausschalten 
-  * **status** → der aktuelle Zustand wird angezeigt. +  - x beendet das Programm 
-  * unbekannte Eingabe → das Programm bleibt aktiv und fordert erneut zur Eingabe auf.+ 
  
 Wenn das Verhalten wie beschrieben ist, läuft das Programm korrekt und die Einrichtung war erfolgreich. Wenn das Verhalten wie beschrieben ist, läuft das Programm korrekt und die Einrichtung war erfolgreich.
project/python_led.1771434444.txt.gz · Zuletzt geändert: von torsten.roehl