Arduino
Płytki zgodne z Arduino
Działają one z Arduino IDE i bibliotekami:
- Seeeduino (przez Seeed Studio)
- W pełni kompatybilne z Arduino, często bardziej kompaktowe i tańsze.
- Wersje takie jak Seeeduino Lotus zawierają porty Grove umożliwiające łatwą integrację czujników.
- SparkFun RedBoard
- Taki sam układ ATmega328P, jak w Arduino Uno.
- Zaprojektowano dla lepszej kompatybilności i wytrzymałości USB.
- Metro w Adafruit
- Zgodny z Arduino Uno.
- Dostępny w wariantach ATmega328 lub M0/M4 (mocniejszy ARM).
- Elegoo Uno / Mega / Nano
- Tańsze klony płytek Arduino.
- Doskonałe dla początkujących lub do użytku w klasie.
Mocniejsze mikrokontrolery
Oferują one większą moc przetwarzania lub funkcje:
- Raspberry Pi Pico / Pico W
- Zbudowany na bazie układu RP2040 (dwurdzeniowy ARM Cortex-M0+).
- Możliwość programowania w MicroPython, C/C++ lub za pośrednictwem Arduino IDE (z konfiguracją).
- Teensy (przez PJRC)
- Bardzo mocny (Cortex-M4 lub M7); obsługuje dźwięk, sterowanie w czasie rzeczywistym.
- Zgodność z Arduino IDE poprzez dodatek Teensyduino.
- ESP8266 / ESP32 (przez Espressif)
- Wbudowane Wi-Fi (i Bluetooth dla ESP32).
- Zgodny z Arduino IDE i świetny do IoT.
Tablice przemysłowe/edukacyjne
Są one przeznaczone do celów trwałych, edukacyjnych lub rozszerzonego użytku:
- Mikro:bit (BBC)
- ARM Cortex-M0/M4; idealny do zastosowań edukacyjnych.
- Posiada wbudowane czujniki, diody LED, Bluetooth.
- Płytki STM32 Nucleo
- Zbudowany na bazie mikrokontrolerów STM32 ARM Cortex-M.
- Zgodność pinów Arduino + ekosystem STM32Cube.
- Cząstka Foton / Argon
- Skupiamy się na Internecie rzeczy połączonym z chmurą.
- Współpracuje z Particle Cloud i obsługuje rozwój podobny do Arduino.
Raspberry Pi
Bezpośrednie alternatywy dla Raspberry Pi
- Seria Banana Pi (np. BPI-M5, BPI-M2 Pro)
- Oparty na architekturze ARM, o podobnym kształcie i układzie GPIO.
- Często więcej pamięci RAM lub lepsze wejście/wyjście, ale wsparcie programowe może być niewystarczające.
- Seria Orange Pi (np. Orange Pi 5, Orange Pi Zero 2)
- Wydajne płyty główne oparte na architekturze Rockchip/Allwinner.
- Świetne parametry jak za tę cenę, ale mniej dojrzałe wsparcie dla systemu operacyjnego/oprogramowania.
- Seria Rock Pi (autorstwa Radxy) (np. Rock Pi 4, Rock Pi 5)
- Bazujący na procesorze Rockchip RK3399 lub RK3588 (znacznie wydajniejszy niż Pi 4).
- Dobra wydajność i lepsze przyspieszenie AI niż Raspberry Pi.
- Seria Odroid (przez Hardkernel) (np. Odroid-C4, Odroid-N2+, Odroid-XU4)
- ARM Cortex-A73/A55 lub oparty na Exynos.
- Potężny, z dobrym wsparciem dla Linuksa i aktywną społecznością.
- Wolne Płyty Komputerowe (np. Le Potato, Tryt)
- Format zgodny z Raspberry Pi.
- Główne wsparcie jądra Linux; skoncentrowane na oprogramowaniu typu open source.
Bardziej wydajne SBC (Edge AI / zamienniki komputerów stacjonarnych)
- Seria NVIDIA Jetson (np. Jetson Nano, Jetson Orin Nano)
- Zbudowany dla sztucznej inteligencji i przetwarzania obrazu (akceleracja CUDA/GPU).
- Idealny do projektów z zakresu robotyki i uczenia maszynowego.
- BeagleBone Czarny / AI-64
- Bardziej skoncentrowany na sterowaniu w czasie rzeczywistym i wejściach/wyjściach (PRU).
- BeagleBone AI-64 konkuruje mocą z Jetsonem i Pi 5.
- Seria płyt UP (firmy AAEON)
- Komputery jednopłytkowe (SBC) oparte na architekturze Intel x86.
- Nadaje się do zastosowań przemysłowych, komputerów stacjonarnych z systemem Windows/Linux lub rozwiązań AI na brzegu sieci.
Płyty Ultra-Compact (konkurenci Raspberry Pi Zero)
- Seria NanoPi (firmy FriendlyELEC) (np. NanoPi Neo, NanoPi R5S)
- Niewielkie, niedrogie, o różnych poziomach wydajności.
- Świetnie nadaje się do projektów IoT bez interfejsu użytkownika i projektów wbudowanych.
- Seria LattePanda
- Procesor SBC Intel Atom/x86 z opcjonalnym koprocesorem Arduino.
- Unikalne połączenie mocy obliczeniowej komputera PC i wejścia/wyjścia mikrokontrolera.
STM32
Niektóre rodziny mikrokontrolerów, które bezpośrednio konkurują z STM32 (firmy STMicroelectronics), oferują podobne lub lepsze funkcje w zależności od zastosowania:
Konkurenci ARM Cortex-M
- Seria NXP LPC (LPC800 / LPC1100 / LPC54000 itp.)
- Rdzenie ARM Cortex-M0/M3/M4/M33.
- Znany z niskiego poboru mocy i dobrej obsługi USB.
- Solidne wsparcie IDE poprzez MCUXpresso.
- Seria Renesas RA i RX
- RA: ARM Cortex-M (RA2, RA4, RA6 z M23/M33).
- RX: zastrzeżony rdzeń 32-bitowy, wysoka wydajność, niskie zużycie energii.
- Niezawodność przemysłowa i długoterminowa dostępność.
- Seria nRF52/nRF53 firmy Nordic Semiconductor
- ARM Cortex-M4/M33 ze zintegrowanym Bluetooth Low Energy.
- Doskonale nadaje się do bezprzewodowych zastosowań o niskim poborze mocy.
- Texas Instruments MSP432 / Seria Tiva C
- MSP432: ARM Cortex-M4F, przetworniki ADC o niskim poborze mocy i wysokiej precyzji.
- Tiva C: ARM Cortex-M4, ogólnego przeznaczenia.
- Seria Silicon Labs EFM32 Gecko
- Procesor ARM Cortex-M0+/M3/M4.
- Ekstremalnie niska moc (pozyskiwanie mikroenergii).
- Doskonałe do urządzeń zasilanych bateriami.
Układy scalone zorientowane na IoT z Wi-Fi/Bluetooth
- Ekspres ESP32 / ESP32-S3 / ESP32-C6
- Warianty RISC-V/ARM dwurdzeniowe lub jednordzeniowe.
- Wbudowane Wi-Fi + BLE.
- Niski koszt, obsługa Arduino i MicroPython.
- Raspberry Pi RP2040
- Dwurdzeniowy Cortex-M0+ (nie na poziomie STM32 pod względem mocy obliczeniowej).
- PIO (Programmable IO) jest unikalne.
- Popularny ze względu na cenę i wsparcie społeczności.
Układy SoC wyższej klasy (do bardziej wymagających zadań)
- Seria NXP i.MX RT (mikrokontrolery typu „crossover”)
- ARM Cortex-M7 taktowany do 600 MHz.
- Łączy ze sobą mikrokontrolery (MCU) i mikrokontrolery (MPU) (np. STM32H7 i i.MX RT1060).
- Microchip SAM seria E / D / L (dawniej Atmel)
- Warianty ARM Cortex-M0+/M4/M7.
- Dobre środowisko IDE (MPLAB X), dobrze integruje się z urządzeniami peryferyjnymi i TrustZone.
Oprogramowanie używane w systemach wbudowanych
Systemy operacyjne czasu rzeczywistego (RTOS)
Stosuje się je w sytuacjach, w których precyzja pomiaru czasu i niskie opóźnienie mają kluczowe znaczenie (np. w robotyce, medycynie, motoryzacji):
rozszerzenie RTOS | Podstawowe dane | KONKURENCI |
FreeRTOS (przez Amazon) | Lekki, przenośny, z szerokim wsparciem MCU, integracja z AWS | Zephyr, ChibiOS, ThreadX |
Zefir RTOS (przez Linux Foundation) | Skalowalność, natywna obsługa drzewa urządzeń, wbudowana obsługa sieci | FreeRTOS, NuttX |
ChibiOS/RT | Małe wymagania, obsługa HAL w czasie rzeczywistym | FreeRTOS, CMSIS-RTOS |
WątekX (System operacyjny czasu rzeczywistego platformy Azure) | Deterministyczny, obsługiwany przez Microsoft | FreeRTOS, Zephyr |
System operacyjny RIOT | Zaprojektowany dla urządzeń IoT o niskim poborze mocy i małej ilości pamięci | Contiki, TinyOS |
NuttX (przez Apache) | Zgodny z POSIX, obsługuje procesory oparte na MMU | Zephyr, Linux |
Mikrium uC/OS-II / III | System operacyjny czasu rzeczywistego klasy przemysłowej (obecnie część Silicon Labs) | WątekX
|
Wbudowane dystrybucje Linuksa
Stosowany w przypadku mocniejszych procesorów (np. ARM Cortex-A, x86) w aplikacjach takich jak przetwarzanie brzegowe, bramy i urządzenia multimedialne:
Linux Distro | Podstawowe dane | KONKURENCI |
Projekt Yocto | Zbuduj własną dystrybucję Linuksa dla systemów wbudowanych | Buildroot, OpenWRT |
Katalog główny | Lekki, prosty kreator systemów rootfs dla systemu Linux | Yocto, Alpejski |
OpenWRT | Specjalizuje się w sieciach/routerach | DD-WRT, pfSense |
Raspberry Pi OS | Oparty na Debianie; oficjalny dla Raspberry Pi | Armbian, jądro Ubuntu |
Ubuntu Core | Minimalistyczny, oparty na snapach, bezpieczny system operacyjny dla IoT | Yocto, Raspbian |
Bare-Metal / SDK / HAL
Aby uzyskać wyjątkowo niskie opóźnienie i prostotę (bez systemu operacyjnego):
Platforma | Podstawowe dane | KONKURENCI |
CMSIS (ARM) | Standard ARM dla abstrakcji Cortex-M | STM32 HAL, Atmel ASF |
Struktura Arduino | Łatwy wrapper C/C++ dla programowania wbudowanego | PlatformaIO, Energia |
mbed OS (firmy ARM) | C++ RTOS i IoT SDK teraz połączone w Mbed TLS | Zephyr, FreeRTOS |
IDE i łańcuchy narzędzi
Łańcuch narzędzi / IDE | Uwagi | KONKURENCI |
STM32CubeIDE | Zintegrowany z STM32 HAL i FreeRTOS | Keil MDK, wbudowany stół warsztatowy IAR |
Keil MDK (ramię) | Profesjonalny ARM IDE, debugger w czasie rzeczywistym | IAR, MPLAB X |
Wbudowany warsztat IAR | Wysoka wydajność, standard branżowy | Keil, STM32CubeIDE |
PlatformaIO | Nowoczesny, wieloplatformowy interfejs CLI/IDE obsługujący wiele struktur | Arduino IDE, MPLAB X |
MPLAB X IDE (mikroukład) | Do urządzeń PIC, AVR, SAM | Atmel Studio, Keil |
SEGGER Wbudowane Studio | Znany z integracji debugera J-Link | IAR, Keil |
Oprogramowanie zorientowane na IoT
Systemy operacyjne czasu rzeczywistego (RTOS) dla IoT
rozszerzenie RTOS | Idealny przypadek użycia | Najważniejsze |
FreeRTOS (Amazon) | Czujniki IoT oparte na MCU, urządzenia BLE, automatyka domowa | Lekka, modułowa integracja AWS IoT, świetna społeczność |
Zefir RTOS | Przemysłowy IoT, bezpieczne urządzenia, czujniki BLE/Wi-Fi | Skalowalna, natywna obsługa drzewa urządzeń, nowoczesne interfejsy API |
ThreadX (system czasu rzeczywistego platformy Azure) | Urządzenia konsumenckie IoT, urządzenia noszone | Kompaktowy, deterministyczny; wbudowany zestaw SDK Azure IoT |
System operacyjny RIOT | Węzły IoT o ograniczonym zużyciu energii | IPv6/6LoWPAN, open-source, energooszczędny |
Contiki-NG | Sieci czujników bezprzewodowych 6LoWPAN/CoAP | Sprawdzone w badaniach, gotowe na IPv6, świadome zużycia energii |
NuttX | System operacyjny typu POSIX przeznaczony do bardziej złożonych zastosowań MCU | Zgodny z SMP, obsługuje systemy plików i TCP/IP |
Wbudowany system Linux dla Edge IoT i bram
W przypadku urządzeń IoT o większych możliwościach (np. bram, inteligentnych koncentratorów):
Distro | Idealny przypadek użycia | Najważniejsze |
Projekt Yocto | Niestandardowe dystrybucje Linuksa dla przemysłowego Internetu Rzeczy | Dokładna kontrola nad jądrem i pakietami |
Katalog główny | Lekki Linux dla urządzeń brzegowych o ograniczonych możliwościach | Prostszy niż Yocto, szybszy czas budowy |
Ubuntu Core | Bezpieczne bramy i urządzenia IoT aktualizowane przez OTA | Aktualizacje oparte na Snap, bezpieczne dzięki konstrukcji |
OpenWRT | Sieciowe bramy IoT, routery | Doskonałe wsparcie sieciowe, rozszerzalne |
System operacyjny Raspberry Pi / Armbian | Centra IoT oparte na Pi | Łatwiejszy rozwój, duża społeczność, dostęp do GPIO |
SDK / Frameworki / Oprogramowanie pośredniczące
Platforma | Najlepsze dla: | Zakładka Charakterystyka |
Struktura Arduino | Szybkie prototypowanie czujników IoT | Proste, szybkie i szerokie wsparcie sprzętowe |
PlatformaIO | Rozwój IoT na wielu platformach | Obsługuje ESP32, STM32, RP2040 i systemy operacyjne czasu rzeczywistego (RTOS) |
System operacyjny Mbed | Urządzenia IoT ARM Cortex-M | TLS, zestawy SDK w chmurze, warstwy RTOS + HAL |
Espressif IDF (ESP32 SDK) | IoT oparty na Wi-Fi/BLE | Precyzyjna kontrola, zoptymalizowana dla rodziny ESP32 |
TinyGo | Małe urządzenia MCU Go dla IoT | Doskonałe do eksperymentów, kompiluje do ARM Cortex-M |
Integracja z chmurą IoT (opcjonalne oprogramowanie pośredniczące)
Pakiet SDK do chmury | Najlepsze dla: | Uwagi |
AWS IoT Core + FreeRTOS | Urządzenia osadzone połączone z chmurą | Bezpieczne urządzenia OTA, MQTT i urządzenia typu shadow |
Azure IoT + ThreadX / RTOS | Przemysłowy Internet przedmiotów | Ścisła integracja z usługami Azure |
Google Cloud IoT Core (zewnętrzne zestawy SDK) | Prototypowanie z ESP32/RPi | Oficjalnie przestarzałe, ale możliwe do użycia |
ThingsBoard / Node-RED | Lokalne lub niestandardowe pulpity nawigacyjne IoT | Doskonałe do systemów sterowania typu „zrób to sam”/lokalnego |
Rekomendacje według typu urządzenia IoT
Typ urządzenia | Zalecany stos |
Czujnik zasilany baterią | FreeRTOS lub Zephyr + MQTT + PlatformIO |
Inteligentne urządzenie (Wi-Fi) | ESP32 + FreeRTOS lub Espressif IDF |
Urządzenie noszone na ciele / BLE | Zephyr + Nordic nRF52 + NimBLE |
Brama IoT | Raspberry Pi + Ubuntu Core lub Yocto + Node-RED |
Węzeł czujnika przemysłowego | STM32 + ThreadX / Zephyr + MQTT/CoAP |