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:00] 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+
  
  
  
  
 +===== Example 0: Environment anlegen =====
  
-====== Raspberry-Pi-Kursprojekt: GPIO-App mit wachsender Architektur ====== 
  
-  * erst reines Python 
-  * dann Dauerprozess 
-  * dann Web-API 
-  * dann Apache davor 
-  * EIN Projekt, keine Neuentwicklung 
  
-**ENV:** gpio_projects   +<WRAP center round box 80%> 
-**Projektpfad:** ~/devel/gpio_projects  +**AufgabeAnlegen einer Python-Environment**
  
 +Lege eine Umgebung
 +  * ''~/devel/example/example_env'' an. 
 +Hierfür muss der Ordner ''~/devel/example'' bereits vorhanden sein.
  
 +</WRAP>
  
-===== PHASE 1 – Reines Python + GPIO =====+<note tip> 
 +Das Anlegen und Managen einer Umgebung ist hier 
 +[[python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen|Python ENV]] 
 +ausführlich beschrieben. 
 +</note>
  
 +Wechsle anschließend in die Umgebung, um die Examples zu bearbeiten!
  
 +===== Example 1: "Schnell, schneller, am schnellsten"  =====
  
-==== 0) System vorbereiten ====+<code python> 
 +#!/usr/bin/env python3
  
-<code bash> +# Testet die Reaktionszeit 
-sudo apt update +# @author: Max Mustermann 
-sudo apt install -y python3 python3-pip python3-venv +# @version: 1.0 
-</code>+# @usage:    ./reaction.py
  
----- 
  
-==== 1) Projektordner anlegen ====+import time 
 +import random
  
-<code bash> +def main(): 
-mkdir -p ~/devel/gpio_projects +    print("Reaktionstest") 
-cd ~/devel/gpio_projects +    print("Drücke ENTER, sobald >>> JETZT <<< erscheint."
-</code>+    print("Bereit..."
 +    input()
  
-----+    wartezeit = random.uniform(2, 6) 
 +    time.sleep(wartezeit)
  
-==== 2) Virtuelle Umgebung anlegen (NAME: gpio_projects) ==== +    print("JETZT!")
- +
-<code bash> +
-python3 -m venv gpio_projects +
-source gpio_projects/bin/activate +
- +
-pip install RPi.GPIO +
-</code> +
- +
----- +
- +
-==== 3) Projektstruktur Phase 1 ==== +
- +
-<code> +
-gpio_projects/ +
- ├── gpio_hw.py +
- ├── logic.py +
- ├── main.py +
- └── gpio_projects/        # ENV +
- +
-(gpio_envpi@raspi88:~/devel/gpio_projects $ tree -L 1    +
-+
-├── gpio_env +
-├── gpio_hw.py +
-├── logic.py +
-└── main.py+
  
 +    start = time.time()
 +    input()
 +    ende = time.time()
  
 +    reaktion = ende - start
 +    print(f"Deine Reaktionszeit: {reaktion:.3f} Sekunden")
  
 +if __name__ == "__main__":
 +    main()
 </code> </code>
  
----- 
- 
-==== 4) gpio_hw.py ==== 
- 
-<code python  gpio_hw.py> 
-import RPi.GPIO as GPIO 
- 
-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> 
- 
----- 
- 
-==== 5) logic.py ==== 
- 
-<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 +===== Example 2: todo =====
-  * Projekt ~/devel/gpio_projects +
-  * kein raspi_gpio_env mehr +
-  * konsistent für alle Phasen+
  
  
projekt/python_erste_skripte.1770573637.txt.gz · Zuletzt geändert: von torsten.roehl