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:12] 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 0: Environment anlegen =====
  
  
  
 <WRAP center round box 80%> <WRAP center round box 80%>
-**Aufgabe**+**Aufgabe: Anlegen einer Python-Environment** 
 + 
 +Lege eine Umgebung 
 +  * ''~/devel/example/example_env'' an.  
 +Hierfür muss der Ordner ''~/devel/example'' bereits vorhanden sein. 
 + 
 +</WRAP>
  
-Lege eine Umgebung ''~/devel/example/example_env'' an. Hierfür muss der Ordner ''~/devel/example'' bereits vorhanden sein. 
 <note tip> <note tip>
 Das Anlegen und Managen einer Umgebung ist hier Das Anlegen und Managen einer Umgebung ist hier
 [[python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen|Python ENV]] [[python_python-umgebung_env_einrichten_vorbereitungen_fuer_projekte_schaffen|Python ENV]]
-ausführlich beschrieben. Wechsle anschließend in die Umgebung, um die Examples zu bearbeiten!+ausführlich beschrieben.
 </note> </note>
-</WRAP> 
  
 +Wechsle anschließend in die Umgebung, um die Examples zu bearbeiten!
  
 +===== Example 1: "Schnell, schneller, am schnellsten"  =====
  
 +<code python>
 +#!/usr/bin/env python3
  
-===== Example 1: todo =====+# Testet die Reaktionszeit 
 +# @author: Max Mustermann 
 +# @version: 1.0 
 +# @usage   ./reaction.py
  
-===== Example 2: todo ===== 
  
 +import time
 +import random
  
 +def main():
 +    print("Reaktionstest")
 +    print("Drücke ENTER, sobald >>> JETZT <<< erscheint.")
 +    print("Bereit...")
 +    input()
  
 +    wartezeit = random.uniform(2, 6)
 +    time.sleep(wartezeit)
  
-====== Raspberry-Pi-Kursprojekt: GPIO-App mit wachsender Architektur ====== +    print("JETZT!")
- +
-  * erst reines Python +
-  * dann Dauerprozess +
-  * dann Web-API +
-  * dann Apache davor +
-  * EIN Projekt, keine Neuentwicklung +
- +
-**ENV:** gpio_projects   +
-**Projektpfad:** ~/devel/gpio_projects   +
- +
- +
- +
-==== 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 ==== +===== Example 2todo =====
- +
-<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 +
-  * Projekt ~/devel/gpio_projects +
-  * kein raspi_gpio_env mehr +
-  * konsistent für alle Phasen+
  
  
projekt/python_erste_skripte.1770574378.txt.gz · Zuletzt geändert: von torsten.roehl