- Ang MicroPython ay gumagana sa maraming modernong Arduino-class boards (ESP32, RP2040, STM32, Renesas RA), ngunit hindi makatotohanang gumagana sa mga klasikong AVR-based Uno device.
- Pinapadali ng opisyal na firmware, mga port, at pang-araw-araw na build mula sa MicroPython GitHub at server ang pag-flash ng mga compatible na Arduino at NodeMCU board.
- Ang isang mayamang MicroPython Package Index ay nagbibigay ng mga nasubukang driver para sa mga sensor, display, IO expander, at mga module na partikular sa Arduino tulad ng Modulinos at Nicla Sense Env.
- Ang pagsasama-sama ng MicroPython at Arduino hardware ay nagbibigay-daan sa mabilis at REPL-driven na prototyping, kasama ang cloud integration sa pamamagitan ng Arduino IoT Cloud Python client.
Kung komportable ka na sa "regular" na Python at ngayon mo lang natagpuan ang MicroPython, hindi ka nag-iisa.Maraming developer ang nakakagawa ng eksaktong parehong pagtuklas kapag sinimulan nilang pag-aralan ang mga microcontroller tulad ng Arduino, ESP32 o Raspberry Pi Pico. Sa unang tingin, ang syntax ay halos kapareho ng CPython, ngunit biglang may mga bagong module, mga klase na partikular sa hardware at ibang paraan ng pag-flash at pagpapatakbo ng code sa mga board.
Pinagsasama-sama ng gabay na ito ang mahahalagang impormasyon mula sa mga nangungunang mapagkukunang Ingles tungkol sa MicroPython at Arduino at hinahalo ito sa praktikal at totoong konteksto.Makikita mo kung saan matatagpuan ang opisyal na MicroPython code, kung aling mga Arduino-compatible board ang maaaring aktwal na magpatakbo ng MicroPython, kung anong uri ng mga driver at library ang available, at kung paano magsimula kung mayroon kang Arduino-style board tulad ng ESP-based NodeMCU, Nano ESP32, Nano RP2040 Connect o Portenta.
Ano ang MicroPython at paano ito nauugnay sa Arduino
Ang MicroPython ay isang lean implementation ng wikang Python na idinisenyo upang direktang tumakbo sa mga microcontroller.Sa halip na tumakbo sa isang buong desktop OS, ang MicroPython ay gumagana sa maliliit na chips na may limitadong RAM at flash memory, na nagbibigay sa iyo ng Python prompt mismo sa device. Ang language core ay nananatiling halos kapareho ng CPython, kaya ang iyong kasalukuyang kaalaman sa Python ay kadalasang nagpapatuloy, ngunit makakakuha ka ng mga karagdagang module tulad ng makina, network or tayo para makipag-usap sa mga pin, sensor, bus at storage.
Ang ugnayan sa Arduino ay kadalasang tungkol sa hardware at mga API, hindi tungkol sa tradisyonal na kapaligirang "C++ sketch" ng Arduino.Tinatarget ng MicroPython ang mga partikular na board at chip (port) tulad ng ESP32, ESP8266, RP2040, nRF51/nRF52, STM32, SAMD, Renesas RA, at iba pa. Maraming modernong board na may tatak na Arduino ang ginawa gamit mismo ang mga MCU na iyon, na siyang dahilan kung bakit tugma ang mga ito sa MicroPython.
Ang klasikong Arduino Uno, na batay sa ATmega328P 8-bit AVR, ay walang opisyal na MicroPython port.Masyado itong limitado sa flash at RAM, at ang MicroPython VM ay hindi idinisenyo para sa isang maliit na chip. Kaya naman makakakita ka ng mga tanong ng komunidad tulad ng “Paano ko patatakbuhin ang MicroPython sa Arduino Uno?” at ang maikli at tapat na sagot ay: karaniwan ay hindi mo magagawa, at kung gagawin mo man, ito ay magiging lubhang limitado at hindi opisyal na sinusuportahan.
Kung saan talaga nagtatagpo ang Arduino at MicroPython ay sa mga mas bagong "Arduino" board na gumagamit ng 32-bit MCU na may sapat na resources.Mga board tulad ng Arduino Nano-ESP32, Arduino Nano RP2040 Connect, Arduino Nano 33 BLE Sense, Arduino Giga, Kapangyarihan H7, Portenta C33, Nicla Vision, Nicla Sense Env at Opta WiFi nakapatong sa mga chips tulad ng ESP32, RP2040, STM32H7, Renesas RA6M5, at mga katulad na pamilya. Ang mga MCU na iyon ay may mga opisyal o aktibong binuong MicroPython port.
Opisyal na pinagmulan, pagbuo, at suportadong mga port ng MicroPython
Ang MicroPython ay binuo nang hayagan gamit ang Git para sa pagkontrol ng bersyon, at ang canonical repository ay nasa GitHub sa github.com/micropython/micropythonAng repositoryong iyon ang naglalaman ng buong interpreter source, mga core library, at mga port para sa iba't ibang pamilya ng microcontroller. Kung sakaling kailanganin mong siyasatin ang mga internal o bumuo ng sarili mong firmware image, doon ka dapat pumunta.
Ang proyekto ay nagbibigay ng kumpletong distribusyon ng source-code ng pinakabagong stable na bersyon bilang mga nada-download na archive.Pinagsasama ng mga release na ito ang interpreter, mga library, at mga port sa isang snapshot na maaari mong i-compile nang mag-isa. Para sa mga taong gustong mamuhay nang mas malapit sa edge, may mga pang-araw-araw na mga snapshot ng repositoryo ng GitHub makukuha mula sa MicroPython server. Karaniwang wala sa mga snapshot na iyon ang mga Git submodule ngunit sinusubaybayan ang kasalukuyang estado ng pag-unlad, na kapaki-pakinabang kung sinusubukan mo ang mga bagong tampok o nagsusumite ng mga patch.
Bukod sa source code, nag-aalok ang MicroPython ng mga awtomatikong binuong firmware image para sa malawak na hanay ng mga board at arkitektura.Ang mga firmware na ito ay ginagawa araw-araw para sa iba't ibang port, kabilang ang:
- alif
- cc3200
- esp32 (may mga variant tulad ng esp32c2, esp32c3, esp32c5, esp32c6, esp32p4, esp32s2, esp32s3)
- esp8266
- mimxrt (i.MX RT)
- nrf (nRF51, nRF52, nRF91)
- renesas-ra (RA4M1, RA4W1, RA6M1, RA6M2, RA6M5, atbp.)
- rp2 (RP2040, RP2350)
- samd (SAMD21, SAMD51)
- stm32 (STM32F0, F4, F411, F7, G0, G4, H5, H7, L0, L1, L4, U5, WB, WL)
Ang mga pang-araw-araw na build na iyon ay karaniwang naka-grupo at maaaring i-filter ayon sa mga feature, vendor, at MCU para mabilis mong mahanap ang firmware image na tumutugma sa iyong board.Kasama sa mga feature filter ang mga kakayahan tulad ng Audio Codec, Trigo, Pag-charge ng baterya, CAN, Camera, DAC, display, Dual-core, Sensor ng Kapaligiran, Ethernet, Panlabas na Flash, Panlabas na RAM, Balahibo, IMU, JST‑PH/JST‑SH, LoRa, mikropono, Poe, RGB LED, SDcard, Ligtas na Elemento, USB/USB‑C, WiFi, microSD, at mikroBUSMayroon ding vendor filter kung saan maaari mong, halimbawa, paliitin ang mga resulta sa Mga board na may tatak na Arduino.
Maraming Arduino boards ang tahasang nakalista o di-tuwirang sakop sa pamamagitan ng kanilang mga MCU.Kabilang sa mga pangalan ng Arduino na konektado sa mga MicroPython build ay makikita mo:
- Giga
- Arduino Nano 33 BLE Sense
- Arduino Nano-ESP32
- Arduino Nano RP2040 Connect
- Arduino Nicla Vision
- Arduino Nicla Sense Env (ipinaglilingkuran sa pamamagitan ng isang partikular na aklatan)
- Arduino Opta WiFi
- Arduino Portenta C33
- Arduino Portenta H7 (madalas tinutukoy bilang variant na envie_m7)
Dahil ang mga imahe ng firmware ay binuo sa bawat port at board, ang iyong unang hakbang ay palaging tukuyin ang eksaktong MCU at variant na ginagamit ng iyong Arduino board.Halimbawa, ang isang Arduino Nano ESP32 ay naka-map sa esp32 port, habang ang isang Nano RP2040 Connect ay gumagamit ng rp2 daungan. Ang isang Portenta H7 ay nahulog sa ilalim ng stm32 pamilyang may mataas na kalidad, at ang isang Portenta C33 ay nakasandal sa renesas-ra port. Ang pagtutugma ng mga ito ay tinitiyak na mai-flash mo ang tamang MicroPython binary.
Gumagana ba ang MicroPython sa lahat ng Arduino boards?
Isa ito sa mga pinakakaraniwang tanong mula sa mga taong nakatuklas sa MicroPython pagkatapos gumamit ng Arduino ecosystem.Ang maikling bersyon ay: Hindi sinusuportahan ng MicroPython ang lahat ng Arduino board, ngunit sinusuportahan nito ang maraming mas bago na gumagamit ng 32-bit na mga MCU na may sapat na memorya at flash.
Ang mga board kung saan hindi talaga praktikal na opsyon ang MicroPython ay ang mga old-school AVR Arduino tulad ng Uno, Nano (klasiko), Mega o Leonardo.Ang mga board na iyon ay umaasa sa 8-bit AVR microcontroller na may limitadong resources. Bagama't may mga experimental port at ultra-minimal forks sa komunidad, ang opisyal na proyektong MicroPython ay nakatuon sa mas may kakayahang 32-bit na arkitektura, kaya hindi mo dapat asahan ang isang pinakintab at opisyal na pinapanatiling MicroPython firmware para sa Uno.
Sa kabaligtaran, ang NodeMCU at mga katulad na ESP8266/ESP32 development board ay mahusay na tugma para sa MicroPython at aktibong sinusuportahan.Karaniwang gumagamit ang NodeMCU ng ESP8266 or ESP32 chip, na parehong may matatag at sikat na mga MicroPython port. Ang pag-flash ng MicroPython sa isang NodeMCU ay nagbibigay sa iyo ng isang napaka-friendly na paraan upang makagawa ng WiFi-enabled na IoT development gamit ang Python syntax sa halip na ang Arduino C++ dialect.
Para sa hardware na may tatak na Arduino, tumuon sa mga modelong gumagamit muli ng parehong mga MCU gaya ng mga pangunahing MicroPython board.Kabilang dito ang isang malawak na pamilya:
- Arduino Nano-ESP32 — Nakabatay sa ESP32; gumagamit ng esp32 port.
- Arduino Nano RP2040 Connect — batay sa Raspberry Pi RP2040; gumagamit ng rp2 port.
- Arduino Nano 33 BLE Sense — Nordic nRF52; sinusuportahan sa pamamagitan ng nrf port.
- Arduino Giga — high-end na STM32H7 MCU; sakop sa pamamagitan ng stm32 port.
- Arduino Portenta H7 — STM32H7 dual-core; sinusuportahan sa pamamagitan ng stm32.
- Arduino Portenta C33 — Renesas RA microcontroller; nakatali sa renesas‑ra port.
- Arduino Nicla Vision at mga kaugnay na Nicla board — na binuo sa paligid ng mga sinusuportahang MCU at naka-address gamit ang mga espesyal na MicroPython driver.
- Arduino Opta WiFi — nakatuon sa industriya, ngunit itinayo sa mga sinusuportahang bahagi ng STM32.
Kung magkatabi mong hawak ang isang Arduino Uno at isang NodeMCU, ang NodeMCU lang talaga ang pangunahing kandidato para sa MicroPython.Gamit ang Uno, mas praktikal na manatili sa Arduino C++ o mag-upgrade sa isang moderno at MicroPython-friendly na board na akma pa rin sa ecosystem ng Arduino, tulad ng Nano ESP32 o Nano RP2040 Connect.
Kailangan mo ba ng bagong IDE o mga karagdagang tool para sa MicroPython?
Ang pag-develop ng MicroPython ay iba sa pag-compile ng mga sketch ng Arduino, ngunit hindi mo naman kailangan ng isang mabigat na bagong IDEDahil ang MicroPython ay nagpapatakbo ng isang interpreter sa board, karaniwan kang gumagamit ng mga plaintext na .py file at isang serial REPL sa halip na mga na-compile na .hex o .bin sketch.
Ang mga mahahalagang kinakailangan ay isang paraan upang mag-flash ng firmware sa board at isang tool upang mag-upload ng mga Python file at makipag-usap sa REPL.Para sa pag-flash, karaniwan kang umaasa sa mga tool ng vendor o mga command-line utility tulad ng esptool.py (para sa ESP8266/ESP32), o gamitin mo ang suporta sa bootloader ng board (UF2 para sa RP2040, DFU para sa STM32, atbp.). Maraming web page at dokumento ng MicroPython ang nagbibigay sa iyo ng mga konkretong tagubilin sa pag-flash bawat port.
Para sa pag-edit at paglilipat ng file, maaari mong patuloy na gamitin ang iyong paboritong code editor at magdagdag lamang ng MicroPython‑aware helper.Kasama sa mga karaniwang opsyon ang:
- Thonny — isang simpleng Python IDE na may built-in na suporta sa MicroPython, serial REPL at pamamahala ng file.
- Mu Editor — editor na madaling gamitin para sa mga baguhan na marunong ng MicroPython at CircuitPython.
- VS Code na may mga extension — maaari mong gamitin ang regular na suporta sa Python kasama ng mga add-on na humahawak sa MicroPython upload/REPL.
- ampy / rshell / mpremote — mga command-line tool para mag-upload ng mga script, maglista ng mga file, at makipag-ugnayan sa REPL sa device.
Sa ilang board na may tatak na Arduino, makakahanap ka rin ng mga integration path na nagbibigay-daan sa iyong manatiling malapit sa mundo ng Arduino habang nagsusulat pa rin ng MicroPython code.Ang ilang partikular na kagamitan at aklatan ay nagbibigay-daan sa iyo na buuin ang iyong mga programang MicroPython gamit ang istilo ng Arduino setup () at loop (), at ilantad ang mga pamilyar na function tulad ng digitalWrite or analogRead sa likod ng mga eksena. Nagbibigay-daan ito sa mga matagal nang gumagamit ng Arduino na maging mas parang nasa bahay lang, kahit na ang pinagbabatayan nilang runtime ay MicroPython.
Sa pagsasagawa, ang paglipat sa MicroPython ay karaniwang nangangahulugan ng paghinto mo sa paggamit ng klasikong Arduino IDE para sa mga proyektong iyon at paglipat sa isang workflow na nakatuon sa Python.Gayunpaman, ang iyong mental na modelo ng "board + pins + libraries + examples" ay nananatiling buo, at pagkatapos ng isa o dalawang araw ng pag-aayos, ang kombinasyon ng MicroPython editor + REPL ay magiging natural na parang.
Pagsisimula: mula sa Arduino Uno at NodeMCU hanggang sa MicroPython
Kung ang layunin mo ay patakbuhin ang MicroPython sa isang Arduino Uno, malamang na magkaroon ka ng malaking problema.Masyadong malaki ang interpreter para sa ATmega328P ng Uno, at ang opisyal na proyekto ay walang maintenance port. Maaari kang makakita ng mga experimental fork o mga derivatives na lubhang pinasimple, ngunit hindi ito gagana tulad ng isang normal na MicroPython environment, at maraming library ang hindi magkakasya. Para sa karamihan ng mga tao, ang praktikal na hakbang ay ang tanggapin na ang Uno ay isang "klasikong Arduino C++" board at pumili ng ibang device para sa mga eksperimento sa MicroPython.
Gayunpaman, gamit ang isang NodeMCU (ESP8266 o ESP32 variant), maaari mong sundan ang isang direktang ruta patungo sa MicroPython.Ang eksaktong mga hakbang ay bahagyang naiiba depende sa chip, ngunit ang pangkalahatang daloy ay:
- 1. I-download ang naaangkop na firmware ng MicroPython para sa iyong esp8266 o esp32 port mula sa pahina ng mga download ng MicroPython o sa daily builds server. Siguraduhing tumutugma ang build sa laki ng iyong flash at pamilya ng board.
- 2. Burahin at i-flash ang board paggamit esptool.py (o katumbas) mula sa iyong computer. Binubura nito ang kasalukuyang firmware (kadalasang mga sketch ng NodeMCU Lua o Arduino) at sa halip ay ini-install ang MicroPython.
- 3. Ikonekta ang isang serial terminal o REPL tool (tulad ng Thonny, Mu, mpremote o isang generic serial console) sa tamang baud rate. Dapat mong makita ang pamilyar na >>> Python prompt kung maayos ang lahat.
- 4. Gumawa at mag-upload ng mga script pinangalanan boot.py at main.py, o anumang iba pang mga module na gusto mong i-import. Awtomatikong tatakbo ang mga ito o magiging available para sa interactive na pag-import.
Ganito rin ang padron sa maraming board na may tatak na Arduino na angkop para sa MicroPython, na ang tanging tunay na pagkakaiba ay ang eksaktong pag-flash ng tooling at bootloader behavior.Halimbawa, ang isang Arduino na nakabase sa RP2040 ay gagamit ng UF2 bootloader (i-drag-and-drop ang isang .uf2 file), habang ang isang Portenta H7 ay aasa sa mga mekanismo ng pag-boot ng STM32 o mga utility ng tagagawa. Kapag na-flash na, ang panig ng Python ay halos magkapareho: makina.Pin para sa GPIO, makina.I2C para sa mga sensor, at iba pa.
Isang karagdagang kaginhawahan na makukuha sa Arduino ecosystem ay ang MicroPython helper library na nagbibigay-daan sa iyong magsulat ng code sa istilo na parang sketch.Ang library na ito ay nagbibigay ng mga Arduino-ish API at maging isang MicroPython implementation ng setup () at loop ()Maaari kang, halimbawa, magsulat ng isang bagay na may konseptong katulad ng isang Arduino sketch, ngunit sa ilalim ng hood ay tumatakbo ito sa isang MicroPython runtime na may Python syntax at semantics. Ginagawa nitong mas maayos ang transition para sa mga taong matagal nang nakasanayan ang Arduino.
Mga pakete at library ng MicroPython para sa mga board na tugma sa Arduino
Isa sa mga pinakamalakas na katangian ng MicroPython sa mga Arduino-class board ay ang lumalaking ecosystem ng mga hardware driver at helper library.Ang komunidad ng MicroPython ay nagpapanatili ng isang Indeks ng Pakete ng MicroPython na naglilista ng mga magagamit muli na module na maaaring i-install o kopyahin sa mga sinusuportahang board, kabilang ang marami na may tahasang beripikasyon sa mga produktong Arduino.
Inilalarawan ng mga alituntunin sa kontribusyon para sa indeks na ito kung paano magsumite ng mga bagong pakete, idokumento ang mga ito nang maayos, at i-tag ang mga ito gamit ang mga kaugnay na tampok.Tinitiyak nito na kapag naghanap ka ng sensor o display, mabilis kang makakahanap ng driver na kilalang gumagana sa mga partikular na microcontroller port o kahit sa mga partikular na Arduino board.
Sa mga available na library, ang ilan ay partikular na nakatuon sa hardware ng Arduino, habang ang iba ay mga generic na driver na nagkataong maganda ang paggana sa mga board na may tatak na Arduino.Halimbawa, mayroong isang MicroPython library para kontrolin ang Arduino Modulinos, na mga modular add-on na mahigpit na isinasama sa hardware ng Arduino. Ang isa pang kapansin-pansing pakete ay isang Aklatan ng MicroPython para sa Arduino Nicla Sense Env, na nakatuon sa mga kakayahan ng lupong iyon sa pagtukoy ng kapaligiran.
Mayroon ding natatanging katulong na nagpapadali sa pagsulat ng code gamit ang mga pattern na istilo ng Arduino tulad ng setup/loop at mga pamilyar na API habang nananatili sa MicroPython.Epektibong tinutugunan ng paketeng ito ang konseptwal na agwat sa pagitan ng mga "Arduino sketch" at mga modyul na Python, na nagbibigay-daan sa mga gumagamit na mapanatili ang memorya ng kalamnan tulad ng pagtawag digitalWrite habang aktwal na ginagamit ang runtime at REPL ng MicroPython.
Bukod sa mga library na may lasang Arduino, ang ecosystem ay naglalaman ng mahabang listahan ng mga sensor, display, storage at utility driver na sumusuporta sa MicroPython sa mga karaniwang MCU at board.Marami sa mga ito ay nasubukan na sa mga board tulad ng arduino:esp32:nano_nora, Iba't-ibang esp32s3 mga aparato, at mga high-end na mbed_portenta mga variant. Kadalasang tinutukoy ng mga tala ng beripikasyon ang bersyon ng MicroPython at board ID na ginamit, kaya alam mong hindi teoretikal ang library.
Mga kilalang driver at utility ng MicroPython na maaari mong gamitin
Ang MicroPython Package Index ay naglalaman ng maraming uri ng mga driver na sumasaklaw sa mga environmental sensor, display controller, IO expanders, storage, communication protocol, at marami pang iba.Kung gumagawa ka ng mga proyekto sa mga compatible na Arduino board, mataas ang posibilidad na mayroong handa nang gamiting driver para sa hardware na gusto mo.
Ang mga sensor sa kapaligiran at gas ay mahusay na kinakatawanMakakakita ka ng driver ng MicroPython para sa BME280 sensor (madalas na tinutukoy kasama ng mga Pycom device bilang target) at isa pa para sa BME680 breakout, pakikipag-ugnayan I²CHinahawakan ng mga driver na ito ang temperatura, humidity, presyon at mga pagbasa ng gas, na nagbibigay-daan sa iyong ikonekta ang isang board tulad ng Nano ESP32 o Nano RP2040. Kumonekta sa mga environmental sensor gamit lamang ang ilang linya ng Python.
Ang kontrol sa display ay pantay na sakopMay mga Python driver para sa Holtek HT16K33 controller, na nagpapagana sa mga device tulad ng Adafruit 0.8‑inch 8×16 LED Matrix FeatherWing o ilang Raspberry Pi Pico display. Sinusuportahan ng mga driver na ito ang parehong CircuitPython at micropython sa pamamagitan ng I²C, na ginagawa silang maraming gamit at magagamit muli sa iba't ibang ecosystem. Makakakuha ka rin ng mga driver ng MicroPython para sa mga display controller tulad ng SH1106 at SH1107, ginagamit sa iba't ibang OLED panel, pati na rin sa mga pakete para sa HD44780mga character LCD na nakabatay sa - (mga modelong 1602 at 2004) na pinapagana sa I²C.
Para sa analog-to-digital na conversion at IO expansion, maraming magagaling na pakete ang magagamit.Mayroong MicroPython driver para sa ADS1x15 serye ng mga ADC, malawakang ginagamit upang magdagdag ng mga higher-resolution na analog input. Sinusuportahan ng isa pang library ang MCP23017 16-bit I/O Expander na may I2C interface, na nagbibigay-daan sa iyong lubos na dagdagan ang bilang ng mga digital pin na ipinapakita ng iyong Arduino-class board, lahat ay kinokontrol mula sa MicroPython.
Saklaw ng iba't ibang pakete ng LED driver ang visual feedback at mga displayMakakakita ka ng MicroPython library para sa MAX7219 8×8 LED matrix driver na gumagamit ng SPI at frame buffer, pati na rin ang isang driver para sa mga quad na 7-segment na LED display batay sa TM1637 chip. Mayroon ding library para sa Mga bar graph na LED na may 10-segment gamit ang MY9221 driver, at hiwalay na mga module ng MicroPython para sa mga addressable LED tulad ng WS2812B at SK6812 (madalas na kilala bilang mga neopixel) sa Raspberry Pi Pico. Ang lahat ng ito ay mahusay na tumutugma sa mga board na may tatak na Arduino na may parehong pamilya ng MCU.
Ang mga real-time na orasan at mga kaso ng paggamit ng data logging ay sinusuportahan sa pamamagitan ng mga nakalaang moduleIsang drayber ang tumatarget sa DS3231 RTC na sinamahan ng AT24C32 EEPROM, na ginagawang madali ang pagpapanatili ng tumpak na oras at pag-iimbak ng configuration o maliliit na log sa iba't ibang power cycle. Kasama ang mga feature ng SDCard at microSD na available sa mga partikular na port, maaari kang bumuo ng mga seryosong setup ng data logging gamit lamang ang mga MicroPython script.
Ang non-contact temperature sensing at capacitive input ay madali rin dahil sa mga naka-focus na driver.Mayroong MicroPython library para sa Melexis MLX90614 IR temperature sensor, na nagbibigay-daan sa malayuang pagsukat ng temperatura, at isa pa para sa MPR121 capacitive touch keypad at mga breakout board, na kapaki-pakinabang para sa mga touch-based na user interface. Parehong maayos na nakakapag-integrate sa I²C at maaaring gamitin sa mga MicroPython board na compatible sa Arduino.
Para sa biometric at audio-related hardware, makakahanap ka ng mga espesyalisadong MicroPython port.Mayroong pakete para sa MAX30102 sensor, isang sikat na pulse oximeter/heart‑rate module na orihinal na sinusuportahan ng driver ng SparkFun, na ngayon ay inangkop sa MicroPython. Ang mga audio playback module ay sakop ng isang Implementasyon ng MicroPython ng kontrol ng DFPlayer sa UART, na ginagawang naa-access ang pag-playback ng MP3 nang walang mahirap na code.
Ang mga timing, motion, at input device ay may kanya-kanyang matatag na implementasyonIsang driver ng MicroPython para sa mga rotary encoder Gumagamit ng mga GPIO interrupt at debouncing upang magbigay ng tumpak at hindi nakakainis na mga pagbasa sa mga board tulad ng Pyboard, Raspberry Pi Pico, ESP8266 at ESP32. Ang kontrol ng servo sa Raspberry Pi Pico ay tinutugunan sa pamamagitan ng mga driver na gumagamit ng PDM (Modulasyon ng Densidad ng Pulso) o mas simpleng mga wrapper na nakabatay sa PWM, at may maliliit na helper class na nakatuon sa pagkontrol sa 9g servos mula sa MicroPython.
Ang komunikasyong infrared ay pinangangasiwaan ng isang pares ng mga nonblocking driver para sa mga receiver at blaster.Ang isang library ay nakatuon sa pagtanggap ng mga IR remote control code, habang ang isa naman ay humahawak sa IR transmission para sa mga "blaster" application. Parehong idinisenyo para sa nonblocking operation upang komportable silang tumakbo kasama ng iba pang mga gawain sa MicroPython.
Para sa thermal printing at display output, mayroong MicroPython port ng Adafruit's Python Thermal Printer library.Binibigyang-daan ka ng package na ito na magpatakbo ng mga thermal receipt printer mula sa mga board tulad ng ESP32 o RP2040, muli gamit ang MicroPython bilang controlling environment.
Bukod sa mga hardware driver, may mga utility na nagpapasimple sa mga proyektong IoT na pinapagana ng Arduino.Isang namumukod-tangi ay ang Kliyente ng Python para sa Arduino IoT Cloud na gumagana sa parehong CPython at MicroPython. Ang paketeng ito, na naka-host sa GitHub sa ilalim ng organisasyong Arduino at lisensyado sa ilalim ng Mozilla Public License 2.0, ay nagbibigay-daan sa mga device ng MicroPython na kumonekta sa Arduino IoT Cloud para sa telemetry, mga dashboard at remote control. Na-verify na ito sa arduino:mbed_portenta:envie_m7 platform na nagpapatakbo ng MicroPython, na nagpapakita na ang mga high-end na Arduino board ay maaaring maayos na maisama sa mga cloud service ng Arduino mula sa isang Python runtime.
Ang ilang display at input library ay dinisenyo sa simula batay sa Pycom flavor ng MicroPython ngunit maayos pa rin itong naaangkop sa maraming Arduino-class boards.Halimbawa, mayroong isang I2C LCD character-screen interface package na iniayon sa Pycom, at isang MicroPython port ng ucPack library, na parehong maaaring gamiting muli o iakma para sa iba pang mga MicroPython port kapag tumutugma ang pinagbabatayang bus at pin configuration.
Bakit sulit na tuklasin ang MicroPython sa hardware na klase ng Arduino
Kapag pinagsama mo ang dynamic at high-level na pakiramdam ng MicroPython sa napakaraming uri ng hardware na compatible sa Arduino, makakakuha ka ng isang napaka-flexible na prototyping platform.Sa halip na patuloy na mag-recompile ng mga sketch, maaari kang mag-iterate nang interactive: buksan ang REPL, i-poke ang mga pin, basahin ang mga sensor, i-tweak ang logic at tingnan ang agarang feedback. Iyon lamang ay maaaring lubos na mabawasan ang oras ng pag-develop para sa mga proyekto sa libangan, mabilisang demo o kahit na mga propesyonal na prototype.
Ang ecosystem ng mga pakete ng MicroPython, na may tahasang suporta at beripikasyon sa mga Arduino board, ay nangangahulugan na bihira kang magsimula mula sa simula gamit ang mga raw register o complex C driver.Ang mga library para sa mga sensor tulad ng BME280/BME680, mga display na pinapagana ng HT16K33, SH1106 o HD44780, mga IO expander tulad ng MCP23017, at mga bahagi ng imprastraktura tulad ng mga kliyente at host ng ModBus TCP/RTU ay pawang tumutulong sa iyong tumayo sa balikat ng komunidad.
Kasabay nito, ang Arduino universe ay nag-aambag sa mga integrasyon sa cloud at mahusay na pagkakadisenyo ng mga disenyo ng board.. Ang nakatuon Kliyente ng Arduino IoT Cloud Python ay isang magandang halimbawa kung paano nagsasalubong ang dalawang ecosystem: maaari kang magsulat ng MicroPython code sa isang Portenta-class board, ngunit magagamit mo pa rin ang mga dashboard at IoT tooling ng Arduino. Ang mga high-end board tulad ng Giga o Portenta H7 ay pinagsasama ang mga dual-core MCU, Ethernet, WiFi, BLE, USB-C at higit pa sa iisang bubong, na lahat ay maaaring gamitin mula sa MicroPython firmware.
Siyempre, may mga kompromisoAng ilang mga aplikasyon na may mababang antas ng kritikal na tiyempo ay maaaring mas mainam pa ring isulat sa C/C++ bilang mga klasikong sketch ng Arduino, at ang mga board na may limitadong mapagkukunan tulad ng orihinal na Uno ay sadyang hindi angkop sa MicroPython. Ngunit para sa isang malaking kategorya ng mga proyekto na kinasasangkutan ng mga sensor, display, koneksyon at katamtamang mga pangangailangan sa real-time, ang MicroPython sa katugmang hardware ng Arduino ay isang mabilis, madaling lapitan at nakakagulat na makapangyarihang kumbinasyon.
Para sa sinumang galing sa karaniwang Python, ang paglipat sa MicroPython sa mga modernong board na may klaseng Arduino tulad ng mga ESP32-based Nano, RP2040 Connect, o mga Portenta device ay nag-aalok ng maayos na pagpasok sa embedded development habang ginagamit muli ang iyong mga kasanayan sa wika, ginagamit ang isang mayamang package index, at sinasamantala ang matibay at mahusay na dokumentadong hardware na siyang nagpasikat sa Arduino noong una pa lamang..