MicroPython vs CircuitPython – porównanie dwóch klonów Pythona dla mikrokontrolerów

Wprowadzenie historyczne

Python, jako język wysokiego poziomu, szybko zyskał popularność w świecie embedded. Jednak klasyczny interpreter Pythona był zbyt ciężki dla mikrokontrolerów.

  • MicroPython powstał w 2013 roku dzięki Damienowi George’owi jako lekka implementacja Pythona 3, zoptymalizowana pod mikrokontrolery (STM32, ESP32, RP2040).
  • CircuitPython to fork MicroPythona rozwijany przez Adafruit od 2017 roku. Jego celem było uproszczenie pracy początkującym i integracja z bogatą ofertą płytek Adafruit.

Oba projekty są aktywnie rozwijane, ale mają różne filozofie: MicroPython stawia na wydajność i szerokie wsparcie sprzętowe, CircuitPython na prostotę i edukację.

Tabela porównawcza MicroPython i CircuitPython

Cecha / AspektMicroPythonCircuitPython
TwórcaDamien George (2013)Adafruit (2017, fork MicroPythona)
CelWydajność, szerokie wsparcie sprzętoweProstota, edukacja, integracja z Adafruit
SprzętESP32, STM32, RP2040, Pyboard, wiele innychGłównie płytki Adafruit (Feather, Metro, CPX)
BibliotekiMinimalistyczne, niskopoziomoweRozbudowane, przyjazne dla początkujących
WorkflowREPL, ręczne resetowanie, narzędzia typu rshellAuto‑reload po zapisie pliku, USB jako dysk
WydajnośćSzybszy, bliżej “czystego” PythonaWolniejszy, ale prostszy w użyciu
SpołecznośćGlobalna, technicznaSilna społeczność Adafruit, edukacyjna
Najlepsze zastosowaniaIoT, robotyka, projekty wymagające wydajnościNauka, prototypowanie, szybkie demo

Przykłady kodu – Blink (miganie diodą)

MicroPython (ESP32 / RP2040)

python

from machine import Pin
import time

led = Pin(2, Pin.OUT)  # GPIO2 jako LED

while True:
    led.value(1)   # włącz
    time.sleep(0.5)
    led.value(0)   # wyłącz
    time.sleep(0.5)

CircuitPython (Adafruit Feather / CPX)

python

import board
import digitalio
import time

led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True   # włącz
    time.sleep(0.5)
    led.value = False  # wyłącz
    time.sleep(0.5)

Różnica: CircuitPython używa modułu board i digitalio, które są bardziej opisowe i przyjazne dla początkujących.

Instalacja na Linux Ubuntu

Instalacja MicroPython

  1. Zainstaluj narzędzie esptool:
    • sudo apt install python3-pip
    • pip3 install esptool
  2. Pobierz firmware MicroPython dla swojej płytki (np. ESP32) z micropython.org/download.
  3. Wgraj firmware:
    • esptool.py --chip esp32 erase_flash
    • esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-xxxx.bin
  4. Po restarcie możesz połączyć się przez screen lub picocom:
    • screen /dev/ttyUSB0 115200

Instalacja CircuitPython

  1. Pobierz odpowiedni plik .uf2 z circuitpython.org/downloads.
  2. Podłącz płytkę w trybie bootloadera (np. przytrzymując przycisk RESET).
  3. Płytka pojawi się jako dysk USB. Skopiuj plik .uf2 na ten dysk.
  4. Po restarcie płytka pojawi się jako dysk CIRCUITPY – wystarczy edytować code.py.

Podsumowanie

  • MicroPython: większa wydajność, szerokie wsparcie sprzętowe, lepszy dla zaawansowanych projektów.
  • CircuitPython: prostszy workflow, bogate biblioteki Adafruit, idealny dla nauki i szybkiego prototypowania.

Oba klony Pythona świetnie nadają się do eksploracji świata mikrokontrolerów. Wybór zależy od tego, czy cenisz wydajność i elastyczność (MicroPython), czy prostotę i edukacyjny ekosystem (CircuitPython).

Każdy entuzjasta Linuxa w pewnym momencie spotka się z chęcią eksperymentowania z mikrokontrolerami, Internetem Rzeczy (ang. IoT), automatyzacją domu (ang. home automation) i elektronicznymi odkryciami, gadżetami, modułami 😉 Niekiedy zaczyna się ta przygoda od Arduino i 8-bitowego mikrokontrolera t.j. rodzina AVR np. AtMega328 a czasami od ESP32, czyli 32-bitowego mikrokontrolera, z wieloma subsystemami na pokładzie t.j. WiFi, Bluetooth, ADC, DAC, PWM, RTC, itd.

Dobrej zabawy z Linuxem!

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.