Strona główna / Robotyka / Arduino czy Raspberry Pi – różnice, kompatybilność i od czego zacząć

Arduino czy Raspberry Pi – różnice, kompatybilność i od czego zacząć

Porównanie płytek Arduino i Raspberry Pi w jednym obrazie

Arduino to prosta platforma do sterowania elektroniką w czasie rzeczywistym, świetna dla początkujących i projektów z czujnikami. Raspberry Pi jest miniaturowym komputerem z systemem operacyjnym, odpowiednim do programowania, multimediów i obsługi sieci. Urządzenia można łączyć, wykorzystując Raspberry Pi jako centrum zarządzania, a Arduino do kontroli podzespołów. Na początek można wybrać Arduino, jeśli uczysz się elektroniki, lub Raspberry Pi, jeśli interesuje Cię programowanie.

Arduino i Raspberry Pi to dwie powszechne platformy do budowy urządzeń elektronicznych, automatyki i prototypów IoT, ale wykorzystuje się je w odmienny sposób. Arduino daje efekt przy sterowaniu czujnikami, silnikami, przekaźnikami oraz diodami, jednak Raspberry Pi oferuje środowisko zbliżone do komputera stacjonarnego. Tekst jest przeznaczony dla osób rozpoczynających naukę elektroniki, programowania i robotyki, a także dla konstruktorów, którzy chcą dobrać właściwą płytkę do konkretnego projektu. Znaczenie mają: sposób wykonywania programu, liczba i rodzaj interfejsów, wymagania energetyczne, system operacyjny oraz poziomy napięć na pinach GPIO.

Zestaw Raspberry Pi 4 z akcesoriami do projektów DIY

Różnice sprzętowe i zastosowania obu platform

Arduino jest mikrokontrolerem. Po uruchomieniu natychmiast wykonuje wgrany firmware, działa przewidywalnie i pobiera niewiele energii. Nie potrzebuje systemu operacyjnego ani karty pamięci, dlatego dobrze kontroluje układy czasu rzeczywistego. Typowe zastosowania obejmują termostaty, sterowniki oświetlenia, proste roboty, stacje pomiarowe i automatykę.

Raspberry Pi to jednopłytkowy komputer z procesorem wielordzeniowym, pamięcią RAM, systemem Linux i możliwością instalowania aplikacji.

Może obsługiwać serwer WWW, bazę danych, kamerę, interfejs graficzny, komunikację sieciową oraz analizę obrazu. Uruchamianie systemu trwa dłużej, a przerwanie zasilania może uszkodzić dane na karcie microSD. Pi zużywa też więcej energii i wymaga stabilnego zasilacza.

Różnice między mikrokontrolerem a komputerem jednopłytkowym widoczne na schemacie
Cecha Arduino Uno Raspberry Pi 4/5
Typ układu Mikrokontroler Komputer jednopłytkowy
System Brak Linux lub inny system
Programowanie C/C++ w Arduino IDE Python, C/C++, JavaScript i inne
Sieć i multimedia Zwykle przez dodatkowe moduły Wbudowane lub łatwo dostępne
Pobór energii Niski Wyższy

Kompatybilność, napięcia i współpraca

Obie platformy korzystają z powszechnych magistral: GPIO, UART, I²C i SPI.

Nie znaczy to jednak pełnej zamienności modułów. Raspberry Pi najczęściej pracuje z logiką 3,3 V, a wiele płytek Arduino wykorzystuje 5 V. Bezpośrednie dobranie sygnałów może uszkodzić porty Raspberry Pi, dlatego stosuje się konwerter poziomów logicznych. Należy także sprawdzić masę, wydajność prądową, sposób zasilania oraz dokumentację konkretnego modułu.

Arduino można połączyć z Raspberry Pi przez USB, UART, I²C lub SPI.

W takim układzie Arduino reaguje szybko na sygnały z czujników i steruje elementami wykonawczymi, a Raspberry Pi realizuje komunikację sieciową, panel użytkownika albo zapis danych. Shieldy Arduino i nakładki HAT dla Raspberry Pi nie są automatycznie kompatybilne mechanicznie ani elektrycznie.

Przy pierwszym projekcie najlepiej ograniczyć liczbę nowych elementów:

  • Arduino Uno, jeśli celem jest nauka podstaw elektroniki i programowania mikrokontrolerów.
  • Raspberry Pi, gdy potrzebne są Linux, sieć, kamera, pliki lub aplikacje użytkowe.
  • Zestaw z płytką stykową, przewodami, diodami LED, rezystorami i jednym czujnikiem.
  • Multimetr oraz dokumentacja pinów, napięć i biblioteki używanego modułu.

Pierwsze ćwiczenia powinny obejmować odczyt przycisku, pomiar temperatury, sterowanie diodą i komunikację szeregową.

Dopiero później należy dodawać silniki, przekaźniki i moduły bezprzewodowe.

Architektura sprzętowa i model wykonywania programu

Arduino i Raspberry Pi reprezentują dwa odmienne podejścia do elektroniki obliczeniowej. Typowa płytka Arduino, na przykład Uno, wykorzystuje mikrokontroler AVR ATmega328P z jednostką 8-bitową, niewielką pamięcią RAM i pamięcią programu Flash. Układ wykonuje jeden główny program, bez systemu operacyjnego i rozbudowanej warstwy usług. Po uruchomieniu zasilania mikrokontroler niemal natychmiast przechodzi do obsługi instrukcji zapisanych w pamięci.

Raspberry Pi jest jednak pełnoprawnym komputerem jednopłytkowym. Modele takie jak Raspberry Pi 4 lub 5 korzystają z wielordzeniowych procesorów ARM, mają większą pamięć RAM, interfejsy sieciowe, kontrolery USB i możliwość uruchamiania systemu Linux.

Program działa w środowisku wielozadaniowym, obok sterowników, usług systemowych i procesów. Arduino steruje sprzętem , a Raspberry Pi zarządza sprzętem za pośrednictwem systemu operacyjnego. Różnica dotyczy także niezawodności czasowej. Mikrokontroler może reagować na zmianę stanu wejścia z bardzo przewidywalnym opóźnieniem, dlatego dobrze daje efekt przy sterowaniu silnikami, odczycie enkoderów i generowaniu sygnałów PWM. Raspberry Pi oferuje większe możliwości obliczeniowe, lecz Linux nie gwarantuje ścisłego czasu reakcji. Proces może zostać chwilowo wstrzymany przez scheduler, zapis na kartę pamięci albo działanie innej usługi.

Dwa typowe układy Arduino - Uno i Nano obok siebie

Ważne są także poziomy napięć.

Arduino Uno najczęściej pracuje z logiką 5 V, jednak większość GPIO Raspberry Pi toleruje wyłącznie 3,3 V. Bezpośrednie dobranie niektórych sygnałów może więc uszkodzić komputer jednopłytkowy.

Jak różni się programowanie?

W Arduino kod jest najczęściej pisany w C lub C++, kompilowany na komputerze i wgrywany do mikrokontrolera przez USB. Struktura programu opiera się na funkcjach setup i loop. Biblioteki upraszczają obsługę czujników, wyświetlaczy oraz komunikacji szeregowej. Program pozostaje aktywny tak długo, jak długo układ otrzymuje zasilanie. Na Raspberry Pi można używać Pythona, C, C++, JavaScriptu i wielu innych języków. Kod uruchamia się w systemie, korzystając z plików, procesów, sieci oraz bibliotek instalowanych menedżerem pakietów. Pi może równocześnie obsługiwać serwer WWW, bazę danych, kamerę i komunikację MQTT.

Wydajność a zastosowania praktyczne

Pod względem mocy obliczeniowej Raspberry Pi zdecydowanie przewyższa klasyczne Arduino.

Wielordzeniowy procesor, setki megabajtów lub gigabajty RAM-u oraz akceleracja multimediów pozwalają analizować obraz, przetwarzać dźwięk, uruchamiać modele uczenia maszynowego i komunikować się z usługami internetowymi. Arduino nie jest przeznaczone do takich zadań; jego atutem pozostaje prostota, niski pobór energii i szybka reakcja na sygnały.

Podłączanie czujników temperatury do Arduino Uno

Arduino daje efekt jako sterownik urządzenia: odczytuje temperaturę, steruje przekaźnikiem lub reguluje położenie serwomechanizmu. Raspberry Pi lepiej pełni funkcję centrum systemu: gromadzi dane, prezentuje interfejs graficzny, zapisuje pomiary i komunikuje się z siecią. W rozbudowanych projektach oba układy mogą współpracować. Arduino odpowiada wtedy za deterministyczną obsługę elektroniki, a Raspberry Pi za analizę danych, wizualizację i komunikację. Kompatybilność zależy od poziomów napięć, interfejsów komunikacyjnych, dostępnych bibliotek oraz sposobu zarządzania urządzeniem przez system.

Kompatybilność Arduino i Raspberry Pi z czujnikami oraz modułami

Arduino działa najczęściej jako mikrokontroler wykonujący jeden program zapisany w pamięci. Raspberry Pi jest komputerem jednopłytkowym, który uruchamia system operacyjny, obsługuje procesy i komunikuje się z urządzeniami przez piny GPIO.

Obie platformy współpracują z modułami I2C, SPI i UART, lecz wymagają odmiennej konfiguracji programowej.

System Linux na Raspberry Pi z zainstalowanymi aplikacjami

Najważniejsze kryteria zgodności obejmują:

  1. poziom logiczny GPIO: Arduino Uno najczęściej używa 5 V, a Raspberry Pi wyłącznie z 3,3 V;
  2. rodzaj interfejsu: analogowego, cyfrowego, I2C, SPI, UART lub 1-Wire;
  3. zapotrzebowanie prądowe modułu i wydajność zasilacza;
  4. adresowanie urządzeń I2C, szczególnie przy podłączaniu kilku identycznych czujników;
  5. obecność konwertera poziomów logicznych dla układów 5-woltowych;
  6. dostępność bibliotek dla Arduino IDE, MicroPython, C, C++ albo Pythona;
  7. konieczność zastosowania sterownika działającego w wybranym systemie operacyjnym.

Podłączenie sygnału 5 V do GPIO Raspberry Pi może trwale uszkodzić jego układ wejściowy. Arduino Uno ma wbudowane wejścia analogowe, jednak Raspberry Pi nie posiada natywnego przetwornika ADC.

Do pomiaru napięcia analogowego na Pi potrzebny jest dodatkowy moduł, na przykład MCP3008, ADS1115 lub ADS1015.

Platforma GPIO Analogowe wejścia System Typowe zastosowanie
Arduino Uno 5 V Tak Brak systemu operacyjnego Automatyka i pomiary
Arduino Nano 33 IoT 3,3 V Tak Firmware Urządzenia sieciowe
Raspberry Pi 4 3,3 V Nie Raspberry Pi OS, Ubuntu Serwery i multimedia
Raspberry Pi Pico 3,3 V Tak MicroPython lub firmware Sterowanie czasu rzeczywistego

Raspberry Pi OS udostępnia biblioteki GPIO, I2C i SPI, lecz część interfejsów trzeba aktywować w konfiguracji systemu. Arduino wymaga wgrania firmware’u, dlatego reaguje przewidywalnie i szybko, ale nie uruchomi aplikacji linuksowych. Praktyczne rozwiązanie hybrydowe polega na przekazaniu pomiarów z Arduino do Raspberry Pi przez USB, UART albo MQTT. Raspberry Pi może sterować modułami Arduino bez konwertera poziomów logicznych, ale zależy to od napięcia zasilania oraz kierunku transmisji. GPIO Raspberry Pi pracują z poziomami 3,3 V i nie są odporne na 5 V. Typowe Arduino Uno, Nano czy Mega wykorzystują logikę 5 V, dlatego ich wyjście podłączone do wejścia Raspberry Pi może uszkodzić procesor jednoklatkowy. Sygnał wysyłany z Raspberry Pi do wejścia Arduino najczęściej działa poprawnie.

Stan wysoki 3,3 V jest dla wielu układów AVR wystarczający do rozpoznania logicznej jedynki, choć nie jest to gwarantowane dla każdego modułu. Znaczenie mają progi napięciowe konkretnego układu, długość przewodów, zakłócenia oraz częstotliwość transmisji.

Kompatybilność modułów Arduino i Raspberry Pi w jednym widoku

Sterowanie modułami Arduino z Raspberry Pi a napięcia GPIO

Jeżeli komunikacja jest jednokierunkowa i przebiega wyłącznie z Raspberry Pi do modułu Arduino, konwerter może być zbędny. Trzeba połączyć masy obu urządzeń i zasilać moduł zgodnie z jego specyfikacją. Nie wolno jednak podawać napięcia 5 V na pin GPIO Raspberry Pi, nawet chwilowo.

Kiedy dobranie Raspberry Pi z Arduino wymaga ochrony wejść?

Największe ryzyko występuje przy UART, gdy linia TX Arduino wysyła 5 V do wejścia RX Raspberry Pi. Prosty dzielnik rezystorowy, na przykład z rezystorów 1 kΩ i 2 kΩ, obniża sygnał do około 3,3 V.

Przy transmisji dwukierunkowej lepszy będzie dwukierunkowy konwerter poziomów logicznych. Dla I²C należy spojrzeć na rezystory podciągające SDA i SCL. Magistrala ma wyjścia typu otwarty dren, więc podciąganie do 5 V jest niebezpieczne dla Raspberry Pi. Rezystory powinny być podłączone do 3,3 V albo zastosowany powinien zostać specjalizowany konwerter.

Projekty domowe z Arduino i Raspberry Pi - inteligentny ogród i stacja pogodowa

SPI także wymaga analizy kierunku sygnałów. Linie MOSI, SCK i CS z Raspberry Pi zazwyczaj mogą sterować wejściami Arduino, lecz MISO z układu 5 V powinno zostać obniżone napięciowo. Wyjątkiem są płytki Arduino działające natywnie przy 3,3 V, na przykład Arduino Due. W ich przypadku bezpośrednie dobranie jest bezpieczniejsze, pod warunkiem zgodności pinów i zasilania. Dlatego odpowiedź na pytanie, czy Raspberry Pi może sterować modułami Arduino bez konwertera poziomów logicznych, brzmi: tak, lecz tylko po sprawdzeniu parametrów wejść i wyjść. Rezystor szeregowy, dzielnik napięcia lub konwerter chronią GPIO przed kosztowną awarią.