Micropython Kurs 2023: Difference between revisions

From Attraktor Wiki
Jump to navigation Jump to search
 
(81 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Microphyton Kurs 2023]]
[[Category:Microphyton Kurs 2023]]


Diese Seite ist meine persönliche Planungsseite und die Unterlage für den Microphyton Kurd 2023.
Diese Seite ist meine persönliche Planungsseite und die Unterlage für den Microphyton Kurs 2023/24.


== Über diese Seite==
Dieses hier ist die Startseite zum Micropythonkurs 2023. Sie führt zu allen Seiten, die diesen Kurs betreffen.
Die Seiten erfüllen zwei Aufgaben. Zum Einen dienen sie mir zur Erstellung des Kurses, zum Anderen dienen sie als Vorlage für die Durchführung des Kurses.
Deshalb ist alles auf diesen Seiten in Bewegung. Manche Seiten sind fertiggestellt, andere noch in einem sehr frühen Entwicklungsstand und enthalten nur Notizen und Links.
Der Zustand einer Seite, die im Kurs behandelt wurde, wird nicht mehr verändert. Es sei denn es wird ein Fehler korrigiert.
Mit Hilfe dieser Seiten kann man sich über den Stoff, der im Kurs behandelt wird informieren und ggf. auch auf ihnen nachschlagen.


== Ü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.
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.
<br>
<br>
Bisher habe ich keine Möglichkeit gefunden das zu korrigieren.
Bisher habe ich keine Möglichkeit gefunden das zu korrigieren.
<br>
<br>
https://www.mediawiki.org/wiki/Extension:Replace_Text/de
Vielleicht gibt es hier eine Lösung: (Notiz für mich)
* https://www.mediawiki.org/wiki/Extension:Replace_Text/de
<br>
<br>


== Über diesen Kurs ==
== Über diesen Kurs ==


<pre style="color: red">Achtung, der Kurs wird kostenplichtig sein (69 € je Teil). Die Hardware (Raspberrry Pi Pico W) wird gestellt. Weiter Informationen folgen. </pre>
* Dieser Kurs richtet sich an Python Anfänger.
* Dieser Kurs richtet sich an Phyton Anfänger.
* Er gibt einen Einblick in die grundlegenden Eigenschaften von Python/Micropython.
* Er gibt einen Einblick in die grundlegenden Eigenschaften von Phyton/Microphyton.
** Im 1.Teil werden wir uns mit der Programmiersprache Phyton/Microphyton beschäftigen.
** Im 1.Teil werden wir uns mit der Programmiersprache Phyton/Microphyton beschäfftigen.
*** Dieser Teil enthält weitgehend natives Micropython, nichts ESP32/M5Stack/Raspberry Pi Pico spezifisches.
** Im 2.Teil werden wir auch die Hardware einsetzen.
** Im 2.Teil werden wir unsere Kenntnisse in Micropython vertiefen und lernen die periphere Hardware des Pico einzusetzen.
* Die Teilnehmer sollen überwiegend eigene Erfahrungen im Umgang mit Microphyton machen.
* Die Teilnehmer sollen überwiegend eigene Erfahrungen im Umgang mit Micropython machen.
** Deshalb ist es wichtig die erforderliche Hardware ab dem 1. Tag funktionsfähig dabei zu haben.
** Deshalb ist es wichtig die erforderliche Hardware ab dem 1. Tag funktionsfähig zur Verfügung steht.
*** Aus diesem Grund wird ein mit Micropython versehener Rasperry Pi Pico W für jedem Teilnehmer bereitgestellt. In den Kursgeführen enthalten.
** Die Themen werden vorgestellt und dann von den Teilnehmern ausprobiert.
** 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.
* 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.
* Es muss eine ganze Menge Stoff vermittelt werden, um dieses Ziel zu erreichen.
** Deshalb ist eine aktive Teilnahme der Teilnehmer erforderlich.
** Deshalb ist eine aktive Teilnahme der Teilnehmer erforderlich.
* Der Kurs besteht aus 2 Teilen:
** Nur durch zuhören kann man nicht programmieren lernen!
** 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.
* Es geht bei diesem Kurs nicht darum schnell irgendwelche Effekte zu erzielen, sondern darum eine Programmiersprache zu erlernen.
* 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.
** Deshalb werden wir im ersten Teil keine LED's blinken lassen, sondern uns intensiv mit dem beschäftigen, 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.
** Im 2.Teil können wir dann auch eine LED blinken lassen. Wir wissen dann aber wie und warum da was funktioniert.
<br>
<br>
Line 37: Line 44:
<br>
<br>
=== Technische Vorraussetzungen===
=== Technische Vorraussetzungen===
*Es ist ein Microcontroller Board mit RP2040/W, ESP32/S3 oder M5Stick/Stack erforderlich.
* Es ist ein Microcontroller Board mit RP2040 W und installiertem Micropython erforderlich. Es wird vom Attraktor zur Verfügung gestellt.
*Es wird Laptop mit Windows benötigt.
* Es wird Laptop mit Windows benötigt.
*Als IDE kommt Thonny 4.1.2 oder neuer zum Einsatz.
* Als IDE kommt Thonny 4.1.2 oder neuer zum Einsatz.
** Thonny installieren.
* Jeder Teilnehmer muss einen Laptop mit installiertem Thonny ab dem 1. Abend dabei haben.
** Microphyton installieren.
 
*<s>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.</s>
=== Thonny installieren===
**Ggf. können Laptops mit installiertem Thonny vom Attraktor zur Verfügung gestellt werden.
* Thonny herunterladen:
** https://thonny.org/
* Thonny installieren.
** Die Installation von Thonny ist ganz einfach. Einfach die heruntergeladene Datei starten. Thonny kann alles andere selbst.


=== Anmeldung===
=== Anmeldung===
Die Anmeldung erfolgt über '''meetup'''.<br>
Die Anmeldung erfolgt über '''meetup'''.<br>
<s>Wer am Kurs telnehmen möchte melde sich bitte per Email (peter@attraktor.org) bis zu 12.9.23 bei mir an.</s>
https://www.meetup.com/attraktor/events/296003198/<br>
<br>
Die Teilnahme am Kurs ist kostenpflichtig: jeder Kursteil kostet € 69.- für Attraktormitglieder € 10.-


== Zeitraum ==
== Inhalte ==
Teil 1: 19.09.2023 - 10.10.2023<br>
https://medium.com/@pythonfundamentals
Teil 2: 07.11.2023 - 28.11.2023
<br>
Anzahl: 2x 4 Abende von 18:30 - 21:30 Uhr


== Inhalte ==
=== Teil 1===
=== Teil 1===
Die Themen des ersten Teils sind weitgehend Hardwareunabhängig und meist auch nicht Microphyton spezifisch.
Dienstags: 31.10.23 - 28.11.23<br>
 
Jeweils 18.00 Uhr bis 21.00 Uhr<br>
==== 1. Abend==== 
Die Themen des ersten Teils sind weitgehend hardwareunabhängig und meist auch nicht Microphyton spezifisch.<br>
Di. 19.09.2023<br>
In der Kursgebühr ist ein Rasperry Pi Pico WH und ein USB-Kabel enthalten.<br>
[[1. Lektion: Mit Phyton und Thonny vertraut machen - REPL]] OK<br>
[[Micropython Kurs 2023 - Teil 1]]<br>
[[2. Lektion: Erste Schritte]] OK<br>
[[3. Lektion: Datentypen]] OK<br>
[[4. Lektion: Mit Phyton rechnen]] OK<br>
 
==== 2. Abend====
Di. 26.09.2023<br>
[[5. Lektion: Variablen Vielfalt]]<br>
 
==== 3. Abend====
Di. 03.10.2023<br>
[[6. Lektion: Entscheidungen]]<br>
[[7. Lektion: Wiederholungen]]<br>
[[8. Lektion: Funktionen]]<br>
 
 
==== 4. Abend====
Di. 10.10.2023<br>
[[9. Lektion: Was ist programmieren?]]<br>
[[10. Lektion: Scripte schreiben]]<br>
[[11. Lektion: Module]]<br>
[[12. Lektion: Standardmodule von Microphyton]]<br>
[[13. Lektion: Externe Module finden]]<br>
 
 
=== *** Herbstferien Pause ***===
<br>


=== Teil 2===
=== Teil 2===
Hier werden wir das im 1. Teil gelernte vertiefen und den Umgang mit der Microcontroller spezifischen Hardware lernen.
Dienstags: 16.1.24 - 13.2.24<br>
 
Jeweils 18.00 - 21.00 Uhr<br>
==== 5. Abend====
Im 2. Teil geht es um den Einsatz der Microcontroller internen Hardware.<br>
07.11.2023
In der Kursgebühr ist eine Experimentierplatine enthalten mit der alle Experimente des 2.Teiles durchgeführt werden können. Für den Raspberry Pico WH sind Steckleisten vorhanden.<br>
<br>
[[Micropython Kurs 2023 - Teil 2]]<br>
===== Auffrischung und Vertiefung des 1. Teils =====
Anmeldung: https://www.meetup.com/attraktor/events/298161947/
[[14. Lektion: Variablen_vielfalt.extend()]]<br>
<!--
[[15. Lektion: Stringbearbeitung]]<br>
=== Teil 3===
[[16. Lektion: Funktionen.extend()]]<br>
Dienstags: 23.4.24 - 14.5.24<br>
[[17. Lektion: Fehlerbehandlung]]<br>
jeweils 18.00 - 21.00 Uhr<br>
https://medium.com/@bobbykboseoffice/10-essential-phyton-coding-conventions-aaf5c3761622
Dieser Teil ist noch in der Planung. Wenn er stattfindet, werden wir uns mit OOP beschäftigen.
<br>
<br>
[[Micropython Kurs 2023 - Teil 3]]<br>
-->


==== 6. Abend====
== Material zum Kurs==
14.11.2023
Hier werden Links zum Kursmaterial stehen.
 
===== Erster Hardware Kontakt=====
 
[[18. Lektion: Pin's]]<br>
[[19. Lektion: Neopixel]]<br>
* 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]]<br>
[[21. Lektion: UART]]<br>
[[22. Lektion: SPI]]<br>
[[23. Lektion: I2C]]<br>
* TCA9548a
** https://github.com/mcauser/microphyton-tca9548a
[[24. Lektion: ADC]]<br>
** 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]]<br>
[[26. Lektion: Puls Weiten Modulation (PWM)]]<br>
[[27. Lektion: Watch Dog Timer (WDT)]]<br>
[[28. Lektion: Interrupts]]<br>
[[29. Lektion: Timer]]<br>
 
==== 7. Abend====
21.11.2023
<br>
 
[[30. Lektion: Das Filesystem]]
 
 
 
===== Wlan=====
 
===== NTP/RTC=====
Die RTC des ESP32 soll sehr ungenau sein.
 
<pre>
MicroPython v1.20.0 on 2023-04-26; ESP32S3 module with ESP32S3
 
Type "help()" for more information.
 
>>> import network
>>> import ntptime
>>> from machine import RTC
 
# WLAN einrichten
 
>>> wlan = network.WLAN(network.STA_IF)
>>> wlan.active(True)
True
>>> wlan.connect('SSID', 'PW')
>>> wlan.isconnected()
False
>>> wlan.isconnected()
True
>>> wlan.ifconfig()
('192.168.5.109', '255.255.255.0', '192.168.5.1', '192.168.5.1')
 
# Die RTC mit NTP einstellen
 
>>> ntptime.settime()
 
# Die RTC einrichten
 
>>> rtc = RTC()
 
>>> rtc.datetime()
(2023, 9, 5, 1, 15, 39, 56, 427762)
>>> rtc.datetime()
(2023, 9, 5, 1, 16, 14, 5, 837765)
>>> rtc.datetime()
(2023, 9, 5, 1, 16, 21, 42, 597764)
>>> dir(ntptime)
['__class__', '__name__', '__dict__', '__file__', 'socket', 'struct', 'time', 'timeout', 'utime', '__version__', 'host', 'settime']
>>> ntptime.time()
747246194
>>> rtc.datetime()
(2023, 9, 5, 1, 16, 23, 49, 897771)
>>> ntptime.time()
747246234
>>> ntptime.utime
<module 'utime'>
>>> rtc.datetime()
(2023, 9, 5, 1, 16, 24, 29, 867765)
>>> ntptime.time()
747246276
>>> import time
>>> dir(time)
['__class__', '__name__', '__dict__', 'gmtime', 'localtime', 'mktime', 'sleep', 'sleep_ms', 'sleep_us', 'ticks_add', 'ticks_cpu', 'ticks_diff', 'ticks_ms', 'ticks_us', 'time', 'time_ns']
>>> time.gmtime()
(2023, 9, 5, 16, 25, 39, 1, 248)
>>> time.localtime()
(2023, 9, 5, 16, 25, 57, 1, 248)
>>> time.mktime(rtc.datetime())
747191787
>>> ntptime.time()
747246461
>>> time.mktime(rtc.datetime())
747191787
>>> ntptime.time()
747246472
>>> time.mktime(rtc.datetime())
747191788
>>> ntptime.time()
747246489
>>>
</pre>
 
===== Datum und Uhrzeit=====
 
===== Links:=====
 
==== 8. Abend====
28.11.2023
<br>
* Display anschließen
** https://github.com/TimAEllis/ssd1306-py/blob/master/ssd1306.py
** https://www.grzesina.de/az/blog_robotcar/ssd1306.py
 
<br>
* Webserver
** Raspberry Pi Pico
*** MicroWebSrv
**** https://github.com/jczic/MicroWebSrv
**** https://forums.raspberrypi.com/viewtopic.php?t=338692
*** Andere Links mit Sockets:
**** http://www.doctormonk.com/2022/09/a-better-web-server-for-raspberry-pi.html
**** https://microdot.readthedocs.io/en/latest/intro.html
**** https://wellys.com/posts/rp2040_microphyton_webserver/
**** https://github.com/miguelgrinberg/microdot
 
===== Kritik=====
 
<br>
$ jupyter notebook<br>
<br>
<br>


<br>
Derzeit ist das Mediwiki vom Attraktor noch nicht bereit .py-Dateien, auch gepackt entgegen zu nehmen.


== Material zum Kurs==
<!--
Die folgenden Dateien sind im Wiki als .txt gespeichert. Mit einen Klick darauf werden sie angezeigt, aber nicht herunter geladen.<br>
Die folgenden Dateien sind im Wiki als .txt gespeichert. Mit einen Klick darauf werden sie angezeigt, aber nicht herunter geladen.<br>
Es ist folgendermaßen zu verfahren:
Es ist folgendermaßen zu verfahren:
Line 283: Line 115:
===== 9. Lektion=====
===== 9. Lektion=====
[[Media:Karel.txt|Karel.txt]]<br>
[[Media:Karel.txt|Karel.txt]]<br>
-->
== Tips für Linuxuser== 
Vielen Dank an Andreas und Geoffrey für ihre Unterstützung bei diesem Thema.<br>
<br>
In Linux ist es nicht immer ganz einfach sich mit dem Pico zu verbinden. Dazu sind 2 Schritte nötig:
=== Den Gerätenamen des Pico ermitteln===


== Material für den Kurs==
Meistens erhält der Pico den Gerätenamen /dev/ttyACM0, wenn es noch keine anderen Geräte mit den Gerätenamen /dev/ttyACM* gibt. Sonst wird die Zahl am Ende erhöht, z.B. /dev/ttyACM1.<br>
Hier findet Ihr eine Liste der erforderlichen Hardware:
Mit '''ls''' kann man prüfen welche Geräte vorhanden sind:
* Für alle Hardwarebezogenen Lektionen:
<pre>
** Steckbrett
# Pico nicht angeschlossen
** Kabel
 
* 18. Lektion: Pin's
peter@oldi:~$ ls -all /dev/ttyACM*
** LED
ls: Zugriff auf '/dev/ttyACM*' nicht möglich: Datei oder Verzeichnis nicht gefunden
** Widerstand 330 Ohm
 
** Taster
# Pico angeschlossen
** Widerstand 10kOhm
 
* 19. Lektion: Neopixel
peter@oldi:~$ ls -all /dev/ttyACM*
** Neopixel LED - Nur EINE LED!
crw-rw---- 1 root dialout 166, 0 Dez 16 11:55 /dev/ttyACM0
<br>
 
SSD1306 Display
</pre>
 
Leider ist es unter Linux nicht unbedingt einfach zu bestimmen, welches Gerät unter welchem Namen unter <code>/dev</code> erscheint. Eine Möglichkeit wäre, <code>dmesg</code> aufzurufen:
 
<pre>
# Nach dem Einstecken des Picos aufrufen
# Für dmesg ist sudo meistens erforderlich
$ sudo dmesg
[...]
[944704.804798] usb 1-1.1.3.3: new full-speed USB device number 82 using xhci_hcd
[944704.922582] usb 1-1.1.3.3: New USB device found, idVendor=2e8a, idProduct=000a, bcdDevice= 1.00
[944704.922603] usb 1-1.1.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[944704.922610] usb 1-1.1.3.3: Product: Pico
[944704.922616] usb 1-1.1.3.3: Manufacturer: Raspberry Pi
[944704.922622] usb 1-1.1.3.3: SerialNumber: DF6018F2676E5438
[944704.935735] cdc_acm 1-1.1.3.3:1.0: ttyACM0: USB ACM device
[...]
</pre>
 
Da sieht man ttyACM0 in der letzten Zeile.
 
=== Dem User den Zugriff auf den Pico ermöglichen===


== ToDo==
Wenn die Gruppe als '''dialout''' erscheint, dann reicht der Aufruf von <code>usermod</code>, so wie dargestellt. Aber <u>wichtig</u>: nach dem Aufruf von <code>usermod</code> '''ausloggen''' und '''wieder einloggen'''.
* 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


<pre>
sudo usermod -aG dialout NUTZERNAME
</pre>
Nun abmelden, dann wieder anmelden:
<pre>
peter@oldi:~$ groups
peter adm dialout cdrom sudo dip plugdev lpadmin sambashare
</pre>
Jetzt gehöre ich auch der Gruppe dialout an und darf auf /dev/ttyACM0 zugreifen.
Bei mir klappte der Zugriff direkt nach der Installation von Thonny dann noch immer nicht. Hier hat ein Neustart geholfen.
<!--
==Links zur Vorbereitung==
==Links zur Vorbereitung==
Nur für mich:
[https://www.youtube.com/watch?v=nwIgxrXP-X4 https://www.youtube.com/watch?v=nwIgxrXP-X4]<br>
[https://www.youtube.com/watch?v=nwIgxrXP-X4 https://www.youtube.com/watch?v=nwIgxrXP-X4]<br>
[https://techexplorations.com/ https://techexplorations.com/]<br>
[https://techexplorations.com/ https://techexplorations.com/]<br>
Line 344: Line 184:
[https://randomnerdtutorials.com/getting-started-raspberry-pi-pico-w/#install-thonny-ide https://randomnerdtutorials.com/getting-started-raspberry-pi-pico-w/#install-thonny-ide]<br>
[https://randomnerdtutorials.com/getting-started-raspberry-pi-pico-w/#install-thonny-ide https://randomnerdtutorials.com/getting-started-raspberry-pi-pico-w/#install-thonny-ide]<br>
[https://martinxpn.medium.com/100-days-of-phyton-9dd04d0995f1 100-days-of-phyton]<br>
[https://martinxpn.medium.com/100-days-of-phyton-9dd04d0995f1 100-days-of-phyton]<br>
<br>
Zur Überprüfung auf wichtige/interessante Themen:<br>
https://levelup.gitconnected.com/my-personal-collection-of-100-python-one-liners-that-shaped-my-career-d2a41f8f447a[]<br>
[]<br>
[]<br>
[]<br>
[]<br>
[]<br>
* Zwischenlager
[[MPK23-Zwischenlager]]<br>
-->


== Navigation==
== Navigation==
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]

Latest revision as of 12:50, 8 January 2024


Diese Seite ist meine persönliche Planungsseite und die Unterlage für den Microphyton Kurs 2023/24.

Über diese Seite

Dieses hier ist die Startseite zum Micropythonkurs 2023. Sie führt zu allen Seiten, die diesen Kurs betreffen.

Die Seiten erfüllen zwei Aufgaben. Zum Einen dienen sie mir zur Erstellung des Kurses, zum Anderen dienen sie als Vorlage für die Durchführung des Kurses. Deshalb ist alles auf diesen Seiten in Bewegung. Manche Seiten sind fertiggestellt, andere noch in einem sehr frühen Entwicklungsstand und enthalten nur Notizen und Links.

Der Zustand einer Seite, die im Kurs behandelt wurde, wird nicht mehr verändert. Es sei denn es wird ein Fehler korrigiert.

Mit Hilfe dieser Seiten kann man sich über den Stoff, der im Kurs behandelt wird informieren und ggf. auch auf ihnen nachschlagen.

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.
Vielleicht gibt es hier eine Lösung: (Notiz für mich)


Über diesen Kurs

  • Dieser Kurs richtet sich an Python Anfänger.
  • Er gibt einen Einblick in die grundlegenden Eigenschaften von Python/Micropython.
    • Im 1.Teil werden wir uns mit der Programmiersprache Phyton/Microphyton beschäftigen.
      • Dieser Teil enthält weitgehend natives Micropython, nichts ESP32/M5Stack/Raspberry Pi Pico spezifisches.
    • Im 2.Teil werden wir unsere Kenntnisse in Micropython vertiefen und lernen die periphere Hardware des Pico einzusetzen.
  • Die Teilnehmer sollen überwiegend eigene Erfahrungen im Umgang mit Micropython machen.
    • Deshalb ist es wichtig die erforderliche Hardware ab dem 1. Tag funktionsfähig zur Verfügung steht.
      • Aus diesem Grund wird ein mit Micropython versehener Rasperry Pi Pico W für jedem Teilnehmer bereitgestellt. In den Kursgeführen enthalten.
    • 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.
    • Nur durch zuhören kann man nicht programmieren lernen!
  • 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äftigen, 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 und installiertem Micropython erforderlich. Es wird vom Attraktor zur Verfügung gestellt.
  • Es wird Laptop mit Windows benötigt.
  • Als IDE kommt Thonny 4.1.2 oder neuer zum Einsatz.
  • Jeder Teilnehmer muss einen Laptop mit installiertem Thonny ab dem 1. Abend dabei haben.

Thonny installieren

  • Thonny herunterladen:
  • Thonny installieren.
    • Die Installation von Thonny ist ganz einfach. Einfach die heruntergeladene Datei starten. Thonny kann alles andere selbst.

Anmeldung

Die Anmeldung erfolgt über meetup.
https://www.meetup.com/attraktor/events/296003198/
Die Teilnahme am Kurs ist kostenpflichtig: jeder Kursteil kostet € 69.- für Attraktormitglieder € 10.-

Inhalte

https://medium.com/@pythonfundamentals

Teil 1

Dienstags: 31.10.23 - 28.11.23
Jeweils 18.00 Uhr bis 21.00 Uhr
Die Themen des ersten Teils sind weitgehend hardwareunabhängig und meist auch nicht Microphyton spezifisch.
In der Kursgebühr ist ein Rasperry Pi Pico WH und ein USB-Kabel enthalten.
Micropython Kurs 2023 - Teil 1

Teil 2

Dienstags: 16.1.24 - 13.2.24
Jeweils 18.00 - 21.00 Uhr
Im 2. Teil geht es um den Einsatz der Microcontroller internen Hardware.
In der Kursgebühr ist eine Experimentierplatine enthalten mit der alle Experimente des 2.Teiles durchgeführt werden können. Für den Raspberry Pico WH sind Steckleisten vorhanden.
Micropython Kurs 2023 - Teil 2
Anmeldung: https://www.meetup.com/attraktor/events/298161947/

Material zum Kurs

Hier werden Links zum Kursmaterial stehen.

Derzeit ist das Mediwiki vom Attraktor noch nicht bereit .py-Dateien, auch gepackt entgegen zu nehmen.

Tips für Linuxuser

Vielen Dank an Andreas und Geoffrey für ihre Unterstützung bei diesem Thema.

In Linux ist es nicht immer ganz einfach sich mit dem Pico zu verbinden. Dazu sind 2 Schritte nötig:

Den Gerätenamen des Pico ermitteln

Meistens erhält der Pico den Gerätenamen /dev/ttyACM0, wenn es noch keine anderen Geräte mit den Gerätenamen /dev/ttyACM* gibt. Sonst wird die Zahl am Ende erhöht, z.B. /dev/ttyACM1.
Mit ls kann man prüfen welche Geräte vorhanden sind:

# Pico nicht angeschlossen

peter@oldi:~$ ls -all /dev/ttyACM*
ls: Zugriff auf '/dev/ttyACM*' nicht möglich: Datei oder Verzeichnis nicht gefunden

# Pico angeschlossen

peter@oldi:~$ ls -all /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 Dez 16 11:55 /dev/ttyACM0

Leider ist es unter Linux nicht unbedingt einfach zu bestimmen, welches Gerät unter welchem Namen unter /dev erscheint. Eine Möglichkeit wäre, dmesg aufzurufen:

# Nach dem Einstecken des Picos aufrufen
# Für dmesg ist sudo meistens erforderlich
$ sudo dmesg
[...]
[944704.804798] usb 1-1.1.3.3: new full-speed USB device number 82 using xhci_hcd
[944704.922582] usb 1-1.1.3.3: New USB device found, idVendor=2e8a, idProduct=000a, bcdDevice= 1.00
[944704.922603] usb 1-1.1.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[944704.922610] usb 1-1.1.3.3: Product: Pico
[944704.922616] usb 1-1.1.3.3: Manufacturer: Raspberry Pi
[944704.922622] usb 1-1.1.3.3: SerialNumber: DF6018F2676E5438
[944704.935735] cdc_acm 1-1.1.3.3:1.0: ttyACM0: USB ACM device
[...]

Da sieht man ttyACM0 in der letzten Zeile.

Dem User den Zugriff auf den Pico ermöglichen

Wenn die Gruppe als dialout erscheint, dann reicht der Aufruf von usermod, so wie dargestellt. Aber wichtig: nach dem Aufruf von usermod ausloggen und wieder einloggen.

sudo usermod -aG dialout NUTZERNAME

Nun abmelden, dann wieder anmelden:

peter@oldi:~$ groups
peter adm dialout cdrom sudo dip plugdev lpadmin sambashare

Jetzt gehöre ich auch der Gruppe dialout an und darf auf /dev/ttyACM0 zugreifen.

Bei mir klappte der Zugriff direkt nach der Installation von Thonny dann noch immer nicht. Hier hat ein Neustart geholfen.

Navigation

Zur Attraktor Wiki Startseite