Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekt:python_erste_skripte

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekt:python_erste_skripte [2026/02/08 18:06] torsten.roehlprojekt:python_erste_skripte [2026/02/08 18:45] (aktuell) torsten.roehl
Zeile 4: Zeile 4:
 [[python| ☚ zurück]] [[python| ☚ zurück]]
  
 +//In diesem Abschnitt geht es darum zu lernen, wie man Python-Skripte erstellt und startet. Dabei soll eine Python-Environment genutzt werden. Nach dem Durcharbeiten dieser Seite kann mit den eigentlichen Projekten begonnen werden.//
  
-wie man Skripte startet +  * Anlegen und Nutzen einer **env** 
-  wie man ein env nutzt +  * Erstellen und Ausführen von Python-Skripten 
-  * wie Module eingebunden werden +  * Einbinden und Gebrauch von Modulen 
-  * dass Python praktisch einsetzbar ist +  * Projektstruktur und Arbeiten mit mehreren Dateien
-  * Vorbereitung für spätere GPIO-Projekte+
  
  
  
-===== Environment example_env ===== 
  
-===== Example 1todo =====+===== Example 0Environment anlegen =====
  
-===== Example 2: todo ===== 
  
  
 +<WRAP center round box 80%>
 +**Aufgabe: Anlegen einer Python-Environment**
  
 +Lege eine Umgebung
 +  * ''~/devel/example/example_env'' an. 
 +Hierfür muss der Ordner ''~/devel/example'' bereits vorhanden sein.
  
-====== Raspberry-Pi-Kursprojekt: GPIO-App mit wachsender Architektur ======+</WRAP>
  
-  * erst reines Python +<note tip> 
-  * dann Dauerprozess +Das Anlegen und Managen einer Umgebung ist hier 
-  * dann Web-API +[[python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen|Python ENV]] 
-  * dann Apache davor +ausführlich beschrieben. 
-  * EIN Projekt, keine Neuentwicklung+</note>
  
-**ENV:** gpio_projects   +Wechsle anschließend in die Umgebung, um die Examples zu bearbeiten!
-**Projektpfad:** ~/devel/gpio_projects  +
  
 +===== Example 1: "Schnell, schneller, am schnellsten"  =====
  
 +<code python>
 +#!/usr/bin/env python3
  
-==== 3) Projektstruktur Phase ====+# Testet die Reaktionszeit 
 +# @author: Max Mustermann 
 +# @version: 1.0 
 +# @usage:    ./reaction.py
  
-<code> 
-gpio_projects/ 
- ├── gpio_hw.py 
- ├── logic.py 
- ├── main.py 
- └── gpio_projects/        # ENV 
  
-(gpio_env) pi@raspi88:~/devel/gpio_projects $ tree -L 1    +import time 
-+import random
-├── gpio_env +
-├── gpio_hw.py +
-├── logic.py +
-└── main.py+
  
 +def main():
 +    print("Reaktionstest")
 +    print("Drücke ENTER, sobald >>> JETZT <<< erscheint.")
 +    print("Bereit...")
 +    input()
  
 +    wartezeit = random.uniform(2, 6)
 +    time.sleep(wartezeit)
  
-</code>+    print("JETZT!")
  
-----+    start = time.time() 
 +    input() 
 +    ende = time.time()
  
-==== 4gpio_hw.py ====+    reaktion ende - start 
 +    print(f"Deine Reaktionszeit: {reaktion:.3f} Sekunden")
  
-<code python  gpio_hw.py> +if __name__ == "__main__"
-import RPi.GPIO as GPIO +    main()
- +
-PIN 17 +
- +
-GPIO.setmode(GPIO.BCM) +
-GPIO.setup(PIN, GPIO.OUT) +
- +
-def on(): +
-    GPIO.output(PIN, GPIO.HIGH) +
- +
-def off(): +
-    GPIO.output(PIN, GPIO.LOW) +
- +
-def status(): +
-    return GPIO.input(PIN) +
- +
-def cleanup()+
-    GPIO.cleanup()+
 </code> </code>
  
----- 
  
-==== 5) logic.py ==== +===== Example 2todo =====
- +
-<code python logic.py> +
-import gpio_hw +
- +
-def turn_on(): +
-    gpio_hw.on() +
-    return "on" +
- +
-def turn_off(): +
-    gpio_hw.off() +
-    return "off" +
- +
-def get_status(): +
-    return "on" if gpio_hw.status() else "off" +
-</code> +
- +
----- +
- +
-==== 6) main.py ==== +
- +
-<code python  main.py> +
-import logic +
-import gpio_hw +
- +
-print("GPIO CLI gestartet (CTRL+C beendet)"+
- +
-try: +
-    while True: +
-        cmd = input("on / off / status > ").strip() +
-        if cmd == "on": +
-            print(logic.turn_on()) +
-        elif cmd == "off": +
-            print(logic.turn_off()) +
-        elif cmd == "status": +
-            print(logic.get_status()) +
-except KeyboardInterrupt: +
-    pass +
-finally: +
-    gpio_hw.cleanup() +
-</code> +
- +
----- +
- +
-==== 7) Start Phase 1 ==== +
- +
-<code bash> +
-cd ~/devel/gpio_projects +
-source gpio_projects/bin/activate +
-python3 main.py +
-</code> +
- +
----- +
- +
-===== PHASE 3 – Web später ===== +
- +
-<code bash> +
-pip install fastapi uvicorn +
-</code> +
- +
----- +
- +
-===== systemd später mit dieser ENV ===== +
- +
-<code> +
-ExecStart=/home/pi/devel/gpio_projects/gpio_projects/bin/uvicorn api:app --host 127.0.0.1 --port 8000 +
-</code> +
- +
----- +
- +
-===== Ergebnis ===== +
- +
-  * ENV gpio_projects +
-  * Projekt ~/devel/gpio_projects +
-  * kein raspi_gpio_env mehr +
-  * konsistent für alle Phasen+
  
  
projekt/python_erste_skripte.1770574003.txt.gz · Zuletzt geändert: von torsten.roehl