micropython asyncio in software architektur eingebaut
@@ -34,7 +34,7 @@ Mögliche Optionen:
|
|||||||
|
|
||||||
Auf dem RP2040-Controller wird [MicroPython](https://micropython.org/) eingesetzt. MicroPython
|
Auf dem RP2040-Controller wird [MicroPython](https://micropython.org/) eingesetzt. MicroPython
|
||||||
zusammen mit dem [Raspberry Pi Pico SDK](https://github.com/raspberrypi/pico-sdk) bietet
|
zusammen mit dem [Raspberry Pi Pico SDK](https://github.com/raspberrypi/pico-sdk) bietet
|
||||||
Unterstützung für WLAN und Bluetooth, SD-Karten-zugriff (TODO: Evaluieren).
|
Unterstützung für WLAN und Bluetooth, SD-Karten-Zugriff.
|
||||||
|
|
||||||
Ein MP3-Dekoder sowie ein Treiber für den I2S-DAC laufen außerhalb von MicroPython auf dem zweiten
|
Ein MP3-Dekoder sowie ein Treiber für den I2S-DAC laufen außerhalb von MicroPython auf dem zweiten
|
||||||
Prozessor des RP2040, um die Audioausgabe ohne Aussetzer sicherzustellen. Die Ansteuerung des
|
Prozessor des RP2040, um die Audioausgabe ohne Aussetzer sicherzustellen. Die Ansteuerung des
|
||||||
@@ -53,6 +53,12 @@ Um die als Webanwendung angebotene Benutzeroberfläche des TonBERRY auszuliefern
|
|||||||
die zur Ansteuerung des TonBERRY dient anzubieten wird das
|
die zur Ansteuerung des TonBERRY dient anzubieten wird das
|
||||||
[microdot](https://github.com/miguelgrinberg/microdot) web framework eingesetzt.
|
[microdot](https://github.com/miguelgrinberg/microdot) web framework eingesetzt.
|
||||||
|
|
||||||
|
Um die verschiedenen Aktivitäten "simultan" auszuführen wird das asyncio Modul benutzt.
|
||||||
|
- MBL: Einfacher zu implementieren und meiner Meinung nach auch einfacher zu verstehen als Multithreading mit einem RTOS. Und schöner vom code als eine manuell geschriebene Event-Loop die zwischen den ganzen Aktivitäten multiplext.
|
||||||
|
- (verifizieren) Der TCP/IP stack und microdot unterstützen asyncio bereits
|
||||||
|
- Der SDcard und damit vermutlich auch vfat Treiber müssen um asyncio support erweitert werden. Dem SDcard treiber sollte man an der stelle vermutlich auch DMA support beibringen.
|
||||||
|
- Alles weitere (z.b. Tastendrücke, events vom MP3-Player) können vermutlich recht einfach über interrupt-handler und [ThreadSafeFlag](https://docs.micropython.org/en/latest/library/asyncio.html#class-threadsafeflag) eingebunden werden.
|
||||||
|
|
||||||
Die Webanwendung selber ist eine mit (TODO: Javascript, CSS frameworks evaluieren) implementierte
|
Die Webanwendung selber ist eine mit (TODO: Javascript, CSS frameworks evaluieren) implementierte
|
||||||
Webseite, die modernen Designrichtlinien entspricht und somit sowohl auf Handybildschirmen als auch
|
Webseite, die modernen Designrichtlinien entspricht und somit sowohl auf Handybildschirmen als auch
|
||||||
an Desktop- oder Laptop-PCs benutzbar ist.
|
an Desktop- oder Laptop-PCs benutzbar ist.
|
||||||
|
|||||||
Reference in New Issue
Block a user