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:23] – [Projekt: LED mit Python] torsten.roehlproject:python_led [2026/02/23 11:55] (aktuell) torsten.roehl
Zeile 21: 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-AnsteuerungDadurch 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 ÜbersichtlichkeitEinzelne 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. +
- +
  
 Folgende Programmstruktur wird verwendet. Folgende Programmstruktur wird verwendet.
  
-  * ''gpio_led'' – Projektordner im Verzeichnis ''~/devel/projects/''+  * ''course_led_advanced'' – Projektordner im Verzeichnis ''~/devel/projects/''
       * ''src''      – Ordner für den Quellcode (engl. source)       * ''src''      – Ordner für den Quellcode (engl. source)
           * ''core''     – Unterordner in ''src''           * ''core''     – Unterordner in ''src''
  
 <code bash> <code bash>
-gpio_led/+course_led_advanced/
 └── src └── src
     ├── core     ├── core
     │   ├── hardware.py         │   ├── hardware.py    
     │   └── __init__.py     │   └── __init__.py
-    └── ledcontrol.py+    └── led_advanced.py
 </code> </code>
  
Zeile 50: Zeile 45:
  
 <code bash> <code bash>
-cd ~/devel/projects/gpio_led/src/core+cd ~/devel/projects/course_led_advanced/src/core
 touch __init__.py touch __init__.py
 </code> </code>
Zeile 62: Zeile 57:
  
 ===== Hardware ===== ===== Hardware =====
-FIXME  TODO FEHLT NOCH 
  
 +<note>
 +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) ===== ===== Quellcode (Sourcecode) =====
-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 **Sourcecode** besteht aus zwei Dateien: das eigentliche Programm **%%led_advanced.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 112: Zeile 113:
  
  
-=== ledcontrol.py ===+=== led_advanced.py ===
  
-<code python ledcontrol.py>+<code python led_advanced.py>
 #!/usr/bin/env python3 #!/usr/bin/env python3
  
Zeile 144: Zeile 145:
     finally:     finally:
         print("\rGood Bye :-)")         print("\rGood Bye :-)")
-        hardware.cleanup()       # +        hardware.cleanup()       # optional
  
 if __name__ == "__main__": if __name__ == "__main__":
Zeile 165: Zeile 166:
  
 <code bash> <code bash>
-cd ~/devel/projects/gpio_led/src +cd ~/devel/projects/course_led_advanced/src 
-./ledcontrol.py+./led_advanced.py
 </code> </code>
  
-Bei erfolgreichem Start erscheint die Eingabeaufforderung von ''ledcontrol.py'':+Bei erfolgreichem Start erscheint die Eingabeaufforderung von ''led_advanced.py'':
  
 <code>[R]ed  [Y]ellow  [G]reen  [x] Exit > </code> <code>[R]ed  [Y]ellow  [G]reen  [x] Exit > </code>
project/python_led.1771435416.txt.gz · Zuletzt geändert: von torsten.roehl