Micropython Kurs 2023
Diese Seite ist meine persönliche Planungsseite und die Unterlage für den Microphyton Kurd 2023.
Über diese Seite
Auf dieser Seite ist > M i c r o p y t h o n < häufig falsch geschrieben als Microphyton. Ich habe den Fehler auf einer der ersten Seiten gemacht. Nun glaubt Mediwiki es müsse das richtig geschriebene Wort durch das Falsche ersetzen.
Bisher habe ich keine Möglichkeit gefunden das zu korrigieren.
https://www.mediawiki.org/wiki/Extension:Replace_Text/de
Über diesen Kurs
- Dieser Kurs richtet sich an Phyton Anfänger.
- Er gibt einen Einblick in die grundlegenden Eigenschaften von Phyton/Microphyton.
- Im 1.Teil werden wir uns mit der Programmiersprache Phyton/Microphyton beschäfftigen.
- Im 2.Teil werden wir auch die Hardware einsetzen.
- Die Teilnehmer sollen überwiegend eigene Erfahrungen im Umgang mit Microphyton machen.
- Deshalb ist es wichtig die erforderliche Hardware ab dem 1. Tag funktionsfähig dabei zu haben.
- Die Themen werden vorgestellt und dann von den Teilnehmern ausprobiert.
- Am Ende des 1.Teils sollten die Teilnehmer in der Lage sein kleine Programme in Microphyton zu entwickeln.
- Es muss eine ganze Menge Stoff vermittelt werden, um dieses Ziel zu erreichen.
- Deshalb ist eine aktive Teilnahme der Teilnehmer erforderlich.
- Der Kurs besteht aus 2 Teilen:
- Einführung mit viel Praxis im 1.Teil
- Im 1.Teil weitgehend natives Microphyton, nichts M5Stack/Raspberry Pi Pico spezifisches.
- Vertiefung und Microcontroller spezifisches im 2.Teil
- Im 2.Teil wird auch M5Stack/Raspberry Pi Pico spezifisches behandelt.
- Einführung mit viel Praxis im 1.Teil
- Es geht bei diesem Kurs nicht darum schnell irgendwelche Effekte zu erzielen, sondern darum eine Programmiersprache zu erlernen.
- Deshalb werden wir im ersten Teil keine LED's blinken lassen, sondern uns intensiv mit dem beschäfftigen, was Microphyton uns zu bieten hat.
- Im 2.Teil können wir dann auch eine LED blinken lassen. Wir wissen dann aber wie und warum da was funktioniert.
Was der Kurs Euch inhaltlich bietet könnt Ihr weiter unten unter Inhalte sehen.
Technische Vorraussetzungen
- Es ist ein Microcontroller Board mit RP2040/W, ESP32/S3 oder M5Stick/Stack erforderlich.
- Es wird Laptop mit Windows benötigt.
- Als IDE kommt Thonny 4.1.2 oder neuer zum Einsatz.
- Thonny installieren.
- Microphyton installieren.
- Wer Probleme mit der Installion von Thonny auf dem PC und/oder Microphyton auf dem Microcontroller hat, muss am vorherigen Dienstag, den 12.9.23 oder Donnerstag, den 14.9.23 ab 18:00 Uhr zum Attraktor kommen damit wir dort Thonny und/oder Microphyton installieren können.
- Ggf. können Laptops mit installiertem Thonny vom Attraktor zur Verfügung gestellt werden.
Anmeldung
Wer am Kurs telnehmen möchte melde sich bitte per Email (peter@attraktor.org) bis zu 12.9.23 bei mir an.
Zeitraum
Teil 1: 19.09.2023 - 10.10.2023
Teil 2: 07.11.2023 - 28.11.2023
Anzahl: 2x 4 Abende von 18:30 - 21:30 Uhr
Inhalte
Teil 1
Die Themen des ersten Teils sind weitgehend Hardwareunabhängig und meist auch nicht Microphyton spezifisch.
1. Abend
Di. 19.09.2023
1. Lektion: Mit Phyton und Thonny vertraut machen - REPL
2. Lektion: Erste Schritte
3. Lektion: Datentypen
4. Lektion: Mit Phyton rechnen
2. Abend
Di. 26.09.2023
5. Lektion: Variablen Vielfalt
3. Abend
Di. 03.10.2023
6. Lektion: Entscheidungen
7. Lektion: Wiederholungen
8. Lektion: Funktionen
4. Abend
Di. 10.10.2023
9. Lektion: Was ist programmieren?
10. Lektion: Scripte schreiben
11. Lektion: Module
12. Lektion: Standardmodule von Microphyton
13. Lektion: Externe Module finden
Teil 2
5. Abend
07.11.2023
Auffrischung und Ergänzung des 1. Teils
14. Lektion: Variablen_vielfalt.extend()
15. Lektion: Stringbearbeitung
16. Lektion: Funktionen.extend()
17. Lektion: Fehlerbehandlung
https://medium.com/@bobbykboseoffice/10-essential-phyton-coding-conventions-aaf5c3761622
6. Abend
14.11.2023
Erster Hardware Kontakt
18. Lektion: Pin's
19. Lektion: Neopixel
- Problem Stromversorgung!
- https://www.exp-tech.de/zubehoer/neopixel/leds/5902/adafruit-neopixel-diffused-5mm-through-hole-led-5-pack?c=1215
- https://www.exp-tech.de/zubehoer/neopixel/leds/5310/breadboard-friendly-rgb-smart-neopixel-pack-of-4?c=1215
- https://www.berrybase.de/adressierbare-ws2812-rgb-led-pth-5mm-diffus-5er-pack?c=2428
- https://www.berrybase.de/adressierbare-ws2812-rgb-led-pth-5mm-klar-5er-pack?c=2428
- https://www.berrybase.de/neopixel-breakout-board-mit-1-ws2812-5050-rgb-led?c=2447
- https://www.berrybase.de/neopixel-rgbw-mini-button-pcb-10er-pack?c=2447
20. Lektion: Onewire
21. Lektion: UART
22. Lektion: SPI
23. Lektion: I2C
- ADC des Raspberry Pi Pico
- ADC des ESP32
- ADC ADS1115
- https://www.ti.com/lit/ds/symlink/ads1115.pdf?ts=1693292712477&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252Fde-de%252FADS1115
- https://www.az-delivery.de/products/analog-digitalwandler-ads1115-mit-i2c-interface?variant=19034185039968
- https://www.berrybase.de/ads1115-4-kanal-16-bit-ad-wandler-breakout-board
- https://github.com/wollewald/ADS1115_mpy
- https://github.com/robert-hh/ads1x15
- https://pypi.org/project/ADS1115-mic-py/
- https://www.grzesina.de/az/blog_robotcar/ads1115rc.py
- https://how2electronics.com/ads1115-16-bit-adc-module-with-raspberry-pi-pico/
25. Lektion: DAC
26. Lektion: Puls Weiten Modulation (PWM)
27. Lektion: Watch Dog Timer (WDT)
28. Lektion: Interrupts
29. Lektion: Timer
7. Abend
21.11.2023
Das Filesystem
Die Funktionen zum Umgang mit dem Filesystem befinden sich im Modul os:
- os.chdir(path)
- wechselt das aktuelle Verzeichnis
- os.getcwd()
- Zeigt das aktuelle Verzeichnis an
- os.ilistdir([dir])
- Diese Funktion gibt einen Iterator zurück, der dann Tupel liefert, die den Einträgen in dem Verzeichnis entsprechen, das sie auflistet. Ohne Argument listet sie das aktuelle Verzeichnis auf, andernfalls das durch dir angegebene Verzeichnis.
Die Tupel haben die Form (Name, Typ, Inode[, Größe]):
- name ist eine Zeichenkette (oder Bytes, wenn dir ein Bytes-Objekt ist) und ist der Name des Eintrags;
- type ist eine ganze Zahl, die den Typ des Eintrags angibt, mit 0x4000 für Verzeichnisse und 0x8000 für normale Dateien;
- inode ist eine ganze Zahl, die dem Inode der Datei entspricht und bei Dateisystemen, die keinen solchen Begriff haben, 0 sein kann.
Einige Plattformen können ein 4-Tupel zurückgeben, das die Größe des Eintrags enthält. Bei Dateieinträgen ist size eine Ganzzahl, die die Größe der Datei angibt, oder -1, wenn sie unbekannt ist.
Für Verzeichniseinträge ist ihre Bedeutung derzeit nicht definiert.
- os.listdir([dir])
- Wenn kein Argument angegeben wird, wird das aktuelle Verzeichnis aufgelistet. Andernfalls wird das angegebene Verzeichnis aufgelistet.
- os.mkdir(path)
- erzeugt ein neues Verzeichnis.
- os.remove(path)
- Entfernt eine Datei.
- os.rmdir(path)
- Entfernt ein Verzeichnis.
- os.rename(old_path, new_path)
- Ändert den Namen einer Datei.
- Json
Kontextmanager
- with
Wlan
NTP
RTC
Datum und Uhrzeit
Links:
8. Abend
28.11.2023
- Display anschließen
- Webserver
- Raspberry Pi Pico
- MicroWebSrv
- Andere Links mit Sockets:
- Raspberry Pi Pico
Kritik
$ jupyter notebook
Material zum Kurs
Die folgenden Dateien sind im Wiki als .txt gespeichert. Mit einen Klick darauf werden sie angezeigt, aber nicht herunter geladen.
Es ist folgendermaßen zu verfahren:
- Datei mit Linksklick Ziel speichern unter herrunterladen.
- Dateinamenerweiterung von .txt in .py ändern.
- Die erscheinende Warnung weg klicken.
6. Lektion
Zahlenraten.py
https://www.python-lernen.de/uebung-zahlenraten.htm
https://www.freecodecamp.org/news/python-program-examples-simple-code-examples-for-beginners/
https://profound.academy/python-introduction/zYwMdQXFuKPpQa5RyFMJ
7. Lektion
Tannenbaum_1.py
Tannenbaum_2.py
Mediawiki - MEMS-Typen ändern
https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads/de
https://www.mediawiki.org/wiki/Manual:$wgProhibitedFileExtensions
9. Lektion
Material für den Kurs
Hier findet Ihr eine Liste der erforderlichen Hardware:
- Für alle Hardwarebezogenen Lektionen:
- Steckbrett
- Kabel
- 18. Lektion: Pin's
- LED
- Widerstand 330 Ohm
- Taster
- Widerstand 10kOhm
- 19. Lektion: Neopixel
- Neopixel LED - Nur EINE LED!
SSD1306 Display
ToDo
- 1.Lektion
- Wo ist das Programm Begrüßung.py?
- 2.Lektion
- Variablenbeschreibungen für die Übung!
- 3.Lektion
- 4.Lektion
- 5.Lektion
- 6.Lektion
- 7.Lektion
- 8.Lektion
- 9.Lektion
- 10.Lektion
- 11.Lektion
- 12.Lektion
- Modules von ESP32 und Raspberry Pi Pico W einbauen
- 13.Lektion
- 14.Lektion
- 15.Lektion
- 16.Lektion
- 17.Lektion
- 18.Lektion
- 19.Lektion
- 20.Lektion
- 21.Lektion
- 22.Lektion
- 23.Lektion
- 24.Lektion
- 25.Lektion
- 26.Lektion
- 27.Lektion
- 28.Lektion
- 29.Lektion
- 30.Lektion
Links zur Vorbereitung
https://www.youtube.com/watch?v=nwIgxrXP-X4
https://techexplorations.com/
https://www.youtube.com/watch?v=362fjQdpFlc
https://www.youtube.com/watch?v=RBpK8C3N-Y8
https://www.youtube.com/watch?v=rfscVS0vtbw
https://www.youtube.com/watch?v=eWRfhZUzrAc
https://randomnerdtutorials.com/raspberry-pi-pico-outputs-inputs-microphyton/
https://randomnerdtutorials.com/getting-started-raspberry-pi-pico-w/#install-thonny-ide
100-days-of-phyton
[]
[]
[]