Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję

Raspberry Pi czy Arduino – którą platformę wybrać?

Podstawy 31.10.2017 Tomasz, Damian

Częstym problemem początkujących jest wybór platformy sprzętowej, na której będą realizowali swoje projekty.

Na fali popularności Raspberry Pi oraz Arduino coraz więcej osób próbuje sił w majsterkowaniu. W artykule tym porównamy obie platformy tak, aby rozjaśnić obraz w głowie początkujących.

Już na wstępie warto podkreślić, że tak naprawdę ciężko wykonać bezpośrednie porównanie, bo Raspberry Pi oraz Arduino to zupełnie różne platformy. Główną i najważniejszą różnicę między nimi stanowi to, że:

  • Raspberry Pi jest w pełni funkcjonalnym komputerem z systemem operacyjnym,
  • Arduino jest zestawem uruchomieniowym z prostym mikrokontrolerem.

Obie platformy zaprojektowano jako urządzenia do nauki, dla osób, które zaczynają przygodę z elektroniką i programowaniem. Później okazało się, że sprawdzają się w tym doskonale, a ich zastosowania wykracza znacznie poza tematy edukacyjne.

Łatwy start i ogromna społeczność,
to jeden z głównych powód popularności obu platform!

Historia Raspberry Pi

Raspberry Pi zostało stworzone w Wielkiej Brytanii. Jego twórca, Eben Upton wraz z kolegami z Uniwersytetu Cambridge, był zawiedziony malejącymi umiejętnościami studentów na zajęciach. Raspberry Pi zostało zaprojektowane jako tani, programowalny komputer dla programistów i majsterkowiczów. Pierwszy prototyp popularnej maliny został stworzony w 2006 roku, jednak w sprzedaży pojawił się dopiero w kwietniu 2012.

Historia Arduino

Arduino narodziło się we Włoszech. Jego nazwa pochodzi od baru, w którym twórca, Massimo Banzi – wykładowca na Interaction Design Institute Ivrea oraz współzałożyciele po raz pierwszy wpadli na pomysł prostego urządzenia prototypowego dla studentów.

Specyfikacja techniczna

Poniższa tabela przedstawia podstawowe różnice w specyfikacji Raspberry Pi oraz Arduino. W dalszej części artykułu zamieszczona jest druga tabela, która porównuje obie platformy pod względem możliwych zastosowań. Do dalszych rozważań wybraliśmy obecnie najpopularniejsze modele, czyli Raspberry Pi 3 oraz Arduino UNO.

Jak widać wymiary obu urządzeń są zbliżone, jednak to jedna z nielicznych cech wspólnych. Raspberry Pi jest niezależnym komputerem z systemem operacyjnym. Bez problemu wspiera wielozadaniowość, posiada 4 pory USB i może być podłączony do internetu. Co najważniejsze może funkcjonować jako komputer osobisty (oczywiście nie ma tyle mocy ile zwykły PC).

Porównując same parametry na pierwszy rzut oka może to trochę wyglądać jak porównywanie Dawida z Goliatem. Jednak prostota Arduino sprawia, że jest ono wygodniejsze w typowo sprzętowych projektach. Arduino posiada możliwości analogowe, których domyślnie brak w Raspberry Pi. Jego elastyczność pozwala pracować z prawie każdym typem czujnika, a w sieci można znaleźć tysiące poradników jak podłączyć różne moduły do Arduino.

Do Raspberry Pi nie podłączymy bezpośrednio czujników analogowych – w tym wypadku przyda się tani układ pośredni. Cyfrowe sensory obsłużymy jednak bez żadnego problemu. Z drugiej strony, RPi, to ogrom korzyści wynikających z systemu Linux. Popularna malinka wspiera wielozadaniowość, można na niej uruchomić wiele programów równocześnie. Na przykład, może działać jako serwer drukarki i serwer VPN w tym samym czasie.

Porównanie wydajności/zastosowań

Poniżej zamieszczone są przykładowe zastosowania ze wskazaniem na „lepszą platformę”. Oczywiście w każdym przypadku mogą pojawić się wyjątki – tutaj zawarte zostały jednak te najpopularniejsze rozwiązania. Zachęcam do dyskusji w komentarzach!

Raspberry Pi ma wyraźną przewagę w rozwiązaniach wymagających rozbudowanego oprogramowania i dużej mocy obliczeniowej (np. analiza obrazu z kamery). Arduino przyspiesza tworzenie prostych projektów, które nie wymagają zaawansowanego oprogramowania oraz dobrej łączności z Internetem.

Powyższa tabela, to tylko przykłady, nie zgadzasz się? Daj znać w komentarzu, jakie masz swoje doświadczenia z takimi projektami. Zachęcamy do dyskusji!

Jak wygląda start? Co trzeba się nauczyć?

W przypadku startu z Arduino konieczne jest poznanie języka programowania zbliżonego do C/C++. Opanowanie podstaw nie powinno zająć wiele czasu. Od rozpakowania zestawu, do pierwszego działającego układu (np. migających diod) minie najwyżej godzina. Dysponując tylko Arduino (bez dodatkowej elektroniki) nie zdziałamy jednak zbyt wiele.

Arduino zapewnia bardzo szybki start, ale z drugiej strony jesteśmy „skazani” na jedną technologię (programowanie w języku Arduino).

W przypadku  Raspberry Pi konieczne jest opanowanie podstaw związanych z instalacją systemu operacyjnego, korzystania z Linuxa itd. Po wstępnej konfiguracji dostajemy „prawdziwy” komputer na którym możemy zainstalować różne programy. Dzięki temu mamy większy wybór technologii, w których będziemy pracować. Na Rasberry Pi można wykonać wiele projektów, które nie wymagają podłączania dodatkowej elektroniki (np. serwer www, serwer druku, VPN).

Wybierając RPi możemy programować np.: w Pythonie, C/C++, JS lub PHP.

Którą platformę wybrać? Od czego zacząć?

Nie da się wskazać jednoznacznie, lepszej platformy, ponieważ są one zupełnie różne. W każdym projekcie lepiej może sprawdzić się coś innego. Zdecydowanie najlepiej poznać zarówno Arduino, jak i Raspberry Pi, a następnie dobierać je pod konkretne zastosowania.

Raspberry Pi, to miniaturowy komputer, więc ogólnie rzecz ujmując
daje zdecydowanie większe możliwości. Realizacja prostych projektów sprzętowych z użyciem tej platformy może być jednak czasami odrobinę trudniejsze.

Wszyscy, którzy chcą nauczyć się elektroniki zdecydowanie powinni poznać Raspberry Pi oraz Arduino. Obie platformy się uzupełniają, co więcej – można je również łączyć! Na Arduino szybciej uruchomimy program do sterowania silnikami, sterowania diodami oraz odczytywania czujników. Raspberry Pi będzie jednak niezastąpione przy kierowaniu całością, zapisywaniu danych, przesyłaniu ich do Internetu, tworzeniu wykresów etc.

Podsumowując – co jeśli jednak muszę wybrać?

Każdy wybór będzie dobry! Najlepiej poznać obie platformy. Możliwości są nieograniczone. Oba urządzenia wspierane są przez ogromną społeczność pasjonatów, dzięki czemu wiele rozwiązań oraz inspiracji można znaleźć w Internecie. Na Forbocie dostępne są kursy podstaw elektroniki, programowania Arduino oraz Raspberry Pi, dzięki którym każdy może poznać te platformy.

Reasumując: na Arduino z łatwością wykonamy proste projekty elektronicznie. Na Raspberry Pi zrobimy dokładnie to samo oraz znacznie, znacznie więcej. Trzeba jednak pamiętać, że w związku z potęgą RPi wykonanie tych najprostszych projektów może być trochę trudniejsze (np. przez konieczność instalacji systemu operacyjnego i jego konfiguracji).

Nadal nie wiesz? Opisz, co chcesz robić w komentarzu,
a doradzimy odpowiednią platformę!

Powiadomienia o nowych, darmowych artykułach!

Komentarze

SOYER

19:03, 31.10.2017

#1

Super, dziękuję za ten artykuł!. Ja jako początkujący zacznę od Arduino, poznam, nauczę się, później na pewno kurs RPi! Z Waszą pomocą dam radę!

W Arduino na pewno będzie mi brakować prostego kontaktu z internetem, ale myślę, że w którymś z odcinków kursu RPi nauczycie jak łączyć Arduino z RPi i jak wykorzystywać takie połączenia. :-D

Treker
Administrator

23:19, 31.10.2017

#2

Miło słyszeć, że artykuł jest przydatny :) Nie wie czy w tym kursie, ale na pewno kiedyś zajmiemy się łączeniem Arduino i RPi, bo to niezwykle ciekawe zagadnienie!

pk

10:15, 01.11.2017

#3

Z mojego elektronicznego doświadczenia z RPi często korzystają zapaleni informatycy, a od Arduino zaczynają studenci mechanicy (AiR, Mechatronika).

Swoją drogą połączenie dwóch platform jest ciekawe w aplikacji cyfrowego domu (RPi jako serwer, Arduino w rozproszonych czujnikach).

Treker
Administrator

11:26, 01.11.2017

#4

pk, witam na forum :)

Słuszna uwaga, sporo informatyków sięga po Raspberry Pi. Wydaje mi się. że dzieje się tak, ponieważ na RPi dzięki Linuxowi można zdziałać wiele informatycznych projektów bez dodawania elektroniki. Można zacząć od robienie serwerów www, VPN, baz danych, a dopiero z czasem przejść do zabawy w dodawanie elektroniki :)

misiekns

14:13, 01.11.2017

#5

Witam. Bardzo ciekawy artykuł.

Tworzę projekty w Arduino już od jakiegoś czasu. Od zaawansowanego ramienia robota do prostego sterowania oświetleniem w pokoju. Czasami mam wrażenie, że ograniczam się tym, że wybrałem Arduino. Malinkę używam z zainstalowanym Kodi, jako centrum multimedialne. Czasami mam ochotę zacząć przygodę z raspberry, jednak obawiam się, że nie podołam. Nauka prawie od początku (nowy język, ponieważ do tej pory projekty robiłem w Arduino IDE), porzucenie Arduino, w którym mam już duże doświadczenie i czuje się prawie jak ryba w wodzie. Chciałbym się dalej rozwijać, robić ciekawe projekty, jednak takie przerzucenie się na inną platformę, przystopuje mnie na jakiś czas. Co o tym sądzicie? Warto?

Treker
Administrator

14:30, 01.11.2017

#6

misiekns, witam na forum - ciesze, że tekst się podoba :)

Nie traktuj nauki RPi jako "przystopowania" prac nad projektami - to zdecydowanie pewna inwestycja czasu (na poznanie nowej platformy), która zaowocuje w przyszłości. Szczególnie, że nie musisz porzucać Arduino (wręcz przeciwnie) - można korzystać z dwóch platform jednocześnie. Działaj na Arduino, a w między czasie ucz się Raspberry Pi ;)

loocash

15:16, 01.11.2017

#7

misiekns napisał/a:

Czasami mam wrażenie, że ograniczam się tym, że wybrałem Arduino.

Co byś nie wybrał to się "ograniczysz".

misiekns napisał/a:

Co o tym sądzicie?

Że smęcisz :->

Jak chcesz się rozwijać to musisz próbować nowych rzeczy.

Criss92

23:21, 01.11.2017

#8

Nie zgodzę się z jednym, że w Arduino można korzystać tylko z języka stworzonego dla Arduino. Bez problemu można programować w języku C modyfikując poszczególne bity w rejestrach korzystając z dokumentacji itp, a nawet chyba można programować w asemblerze (rzecz dla hymm... no :D ) Arduino to taka nakładka na język C dla mikrokontrolerów AVR, większość operacji jest umieszczona w wygodnych w użyciu funkcjach i makrach, ale bez problemu można modyfikować poszczególne bity rejestrów, korzystać z przerwań PCINT (których chyba w zwykłym Arduino nie ma) itp :) Po przejściu z AVR na Arduino pomyślałem sobie, kurcze jakie to jest banalne. Zapis konkretnego stanu na wyjście, konkretna funkcja, a nie operacje bitowe z maskowaniem, wygodne biblioteki... Miodzio :) Ale wiedza z AVR się przydaje. A RPI... od 2 lat mówię że sobie to kupię :D

Treker
Administrator

19:57, 02.11.2017

#9

Jeśli chodzi o "skazanie na Arduino", to oczywiście można zacząć programować w C (lub nawet w asm), ale niestety nie robi tego wiele osób (które zaczynały od Arduino). Po drugie raczej przejście z języka Arduino, na samo C nie jest zbyt dużym skokiem technologicznym, tak jak w przypadku RPi, gdzie możemy przechodzić między C/Pythonem/JS/PHP itd. - więcej osób znajdzie coś dla siebie ;)

Criss92 napisał/a:

Ale wiedza z AVR się przydaje. A RPI... od 2 lat mówię że sobie to kupię

Teraz nie masz już wymówki - trzeba działać, bo kurs Raspberry Pi rusza ;)

SOYER

21:38, 02.11.2017

#10

Do mnie oba kursy Arduino dotrą jutro

W międzyczasie zacząłem poznawać podstawy języka c++. Niestety na moim ulubionym Forbocie nic nie znalazłem więc uczę się z Mirosławem Zelentem jeśli Wam coś to mówi. Na razie wydaję się łapać podstawy po kilku lekcjach. UMIEM JUŻ NAPISAĆ JAKIEŚ BANALNE PROGRAMY!!!

Jeszcze miesiąc temu zastanawiałem się czy kupić "Podstawy elektroniki cz.1" Kiedy widziałem proste linijki kodu to maje myśli krążyły wokół słów WTF ;-)

Forbot dziękuję!!

Nie wiem wprawdzie jak C++ się ma do języka używanego w Arduino, ale może dam radę ciągnąć to i to równocześnie.

Chętnie bym się jeszcze pouczył o programowaniu samych kontrolerów np. Atmega, żeby potrafić wykorzystać tanie elementy, a nie od razu Arduino, ale gdzieś czytałem, że Arduino jest dużo "przyjemniejsze" w obsłudze, a mikrokontrolery to raczej wyższa szkoła jazdy. Choć nie wiem ile w tym prawdy.

Treker
Administrator

22:05, 02.11.2017

#11

SOYER, super, powodzenia w nauce ;) Jeśli chodzi o Arduino, to zerknij na poniższą serię artykułów - powinna wyjaśnić różnice między Arduino, a zwykłym programowanie mikrokontrolerów:

Arduino, co w środku piszczy – #1 – schemat

Arduino, co w środku piszczy – #2 – proces programowania

Arduino, co w środku… – #3 – źródło wbudowanych(?) funkcji

konradem

19:36, 07.11.2017

#12

W tabelce nie jest ujęty prąd pobierany przez platformy a to też ma jakieś znaczenie chociażby dlatego, że różnica jest dość znaczna. Dodatkowo dodał bym możliwości uruchamiania PWM. A w porównaniu można dopisać, że nie ma sensu odpalać względnie prądożernego Rpi po to aby sterować sobie diodą RGB w lampce nocnej. W komentarzach też widzę, że dla ludzi nie jest oczywiste, że Arduino jako platforma opiera się na zwykłej ATmedze a więc można kupić goły procek w sklepie i wgrać na niego bootloader Arduino, załadować stworzony przez nas wcześniej program i w gotowym projekcie użyć już samego procka (oczywiście z elementami potrzebnymi do jego pracy).

Treker
Administrator

22:20, 07.11.2017

#13

konradem, racja :) Jeśli chodzi o prąd, to trochę specjalnie tego nie poruszałem. Raspberry Pi pobiera więcej prądu, ale można na nim zrobić od razu jakieś większe projekty. Samo Arduino pobiera mniej prądu, ale z drugiej strony, aby coś zrobić i tak trzeba w większości przypadków podłączyć dodatkową elektronikę i tak właściwie to ona decyduje wtedy o poborze prądu całego urządzenia. Nie wiem, czy podanie prądu pobieranego przez same "gołe" platformy jest pomocne dla początkujących(?).

sheep6665

19:59, 19.11.2017

#14

Podstawową zaletą RPi jest linux i wyraźnie wychodzi to w praniu gdy projekt nam się komplikuje, wtedy możliwość jego obsługi i serwisowania jak zwykłego komputera(w tym zdalnie np. przez ssh) może okazać się zbawienna.

Arduino ma inną zaletę której nie wymieniłeś - jego chińskie klony. Po zainstalowaniu sterownika USB(mają trochę inny niż zwykły arduino) działają tak jak najzwyklejsze w świecie Arduino Uno a np. klon nano(fizycznie mniejsze Uno z dwoma wejściami analogowymi więcej) na aliexpressie kosztuje trochę ponad 2 dolce, z kolei mini pro(to samo tylko bez USB) - około 1,5. Zwykłe uno można dostać za $2,5-3 więc ponownie - TANIO. Nawet coś co było kiedyś "gorącym" tematem gdzieniegdzie - kupowanie Uno ze złączem DIP i przekładanie kontrolerów stało się przy tym przestarzałe i nieopłacalne. Jeśli szukasz czegoś co możesz przytwierdzić "na stałe" do projektu i nie żałować, że zmarnowałeś drogą część, to jest to zdecydowanie lepsze rozwiązanie. RPi zero niby istnieje, ale do tak niskich cen mu daleko. Nie wygląda też na to że się to kiedykolwiek zmieni - w końcu "sercem" RPi jest SoC z porządnym procesorem ARM na pokładzie a Arduino - 8 bitowy mikrokontroler.

Wybór sprowadza się do tego, czego oczekujemy od naszego projektu. Jeśli potrzebujemy możliwości jakie daje nam RPi to Arduino polegnie na tym zadaniu niezależnie od tego jak tanie są jego klony.

Treker
Administrator

8:53, 20.11.2017

#15

sheep6665, witam na forum i dziękuję za Twój punkt widzenia! Tematyka klonów nie była tutaj poruszana, ponieważ założyłem, że najsprawiedliwiej będzie jeśli porównamy dwa "oryginały". W przeciwnym wypadku należałoby przedstawić też tańsze "klony" RPi, co byłoby już ciężkie, bo temat jest znacznie bardziej zawiły. Ogólnie platformy "kompatybilne", to dobry temat na zupełnie osobny artykuł.

Po drugie, na forum mamy co kilka dni pytanie o niedziałające klony (problemy z programowaniem/sterownikami), więc przynajmniej na początku dobrze jest kupić płytkę oryginalną, aby nie dodawać sobie zbędnych problemów. Przynajmniej takie jest moje zdanie ;)

Zobacz powyższe komentarze na forum

FORBOT Damian Szymański © 2006 - 2017 Zakaz kopiowania treści oraz grafik bez zgody autora. vPRsLH.