Micropython v1.21.0, uasyncio oraz Raspberry Pi Pico

Rysunek przedstawia obraz stworzony przez Bing Microsoft. Prompt: Synchronizacja, Salvadore Dali.
Rysunek przedstawia obraz stworzony przez Bing Microsoft. Prompt: Stwórz obraz o nazwie “Synchronizacja” w stylu Salvadore Dali.

Według ChatGPT:

uasyncio to implementacja asynchronicznego we/wy (I/O) dla MicroPython, zoptymalizowana dla mikrokontrolerów, takich jak te stosowane w mikroprocesorach, w tym na przykład w mikrokontrolerze Raspberry Pi Pico z układem RP2040.

Oto kilka korzyści z korzystania z uasyncio na mikroprocesorach:

  1. Wielozadaniowość: Pozwala na łatwe równoległe wykonywanie wielu zadań (np. obsługa czujników, komunikacja bezprzewodowa, sterowanie urządzeniami), bez konieczności używania wielu wątków lub procesów. To jest istotne na mikrokontrolerach, które często mają ograniczone zasoby.
  2. Niski pobór energii: Asynchroniczność umożliwia mikrokontrolerom wejście w stan uśpienia, gdy nie wykonują żadnej pracy, co może znacząco obniżyć zużycie energii. Zamiast czekać na zakończenie operacji wejścia/wyjścia, mikrokontroler może przejść w stan uśpienia i obudzić się, gdy operacja zostanie ukończona.
  3. Obsługa zdarzeń czasowych: uasyncio dostarcza narzędzia do obsługi zdarzeń czasowych, takich jak oczekiwanie na upływ określonego czasu lub cykliczne uruchamianie funkcji w określonych odstępach czasu. To jest przydatne w przypadku planowania i synchronizacji różnych operacji.
  4. Elastyczność w obszarze komunikacji: Asynchroniczność ułatwia obsługę komunikacji, takiej jak komunikacja bezprzewodowa, odbieranie danych z czujników, czy obsługa przerwań. Działa to wydajniej niż synchroniczna obsługa tych operacji, zwłaszcza gdy czas odpowiedzi jest niepewny.
  5. Optymalizacje dla mikrokontrolerów: uasyncio zostało zoptymalizowane pod kątem mikrokontrolerów, co oznacza, że jest bardziej efektywne w wykorzystywaniu dostępnych zasobów, takich jak pamięć i moc obliczeniowa, które są często ograniczone na tego typu platformach.

W skrócie, uasyncio pomaga w efektywnym zarządzaniu czasem i zasobami mikrokontrolerów, umożliwiając programistom łatwiejsze i bardziej wydajne tworzenie aplikacji na tych platformach. [Tyle ChatGPT]

Oto prosty program włączający niezależne zadania co 3, 8 i 12 sekund. Program włącza/wyłącza wbudowaną diodę w Raspberry Pi Pico

import uasyncio as asyncio
from machine import Pin
async def task1(led):
while True:
print("Zadanie 1 wykonuje się co 3 sekundy")
led.toggle()
await asyncio.sleep(3)
async def task2(led):
while True:
print("Zadanie 2 wykonuje się co 8 sekund")
led.toggle()
await asyncio.sleep(8)
async def task3(led):
while True:
print("Zadanie 3 wykonuje się co 12 sekund")
# led.toggle()
await asyncio.sleep(12)
async def main():
# Inicjalizacja diody LED na pinie GP25 jako wyjście
led = Pin(25, Pin.OUT)
# Uruchomienie obu zadań niezależnie
task1_handler = asyncio.create_task(task1(led))
task2_handler = asyncio.create_task(task2(led))
task3_handler = asyncio.create_task(task3(led))
# Oczekiwanie na zakończenie obu zadań
await asyncio.gather(task1_handler, task2_handler, task3_handler)
# Utworzenie pętli asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Najnowsza instalacja MicroPython w Raspberry Pico (2023 r)

Należy pamiętać, aby przed instalacją nowego oprogramowania odłączyć Raspberry od USB. Następnie wciskamy przycisk BOOTSEL na płytce i podłączamy Raspberry Pico do portu USB komputera za pomocą kabla. Dopiero wtedy zwalniamy przycisk BOOTSEL. Otwieramy program Thonny, dalej Install or update MicroPython. Wybieramy opcje tak jak pokazuję poniżej i wciskamy Zainstaluj. Odłączamy płytkę.

Jeden komentarz

  1. Pingback:Raspberry Pi Pico, czy to dobra płytka dla MicroPython-a? - Arduino dla strasznych lamerów

Dodaj komentarz