Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Fibaro Fibaro
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kiedy zastosować Arduino a kiedy Raspberry Pi?

kmmepl 02 Cze 2017 14:43 6846 14
  • Kiedy zastosować Arduino a kiedy Raspberry Pi?
    Arduino i Raspberry Pi to najpopularniejsze platformy prototypowe wśród studentów, hobbistów i profesjonalistów. Doświadczeni elektronicy znają obie płytki i różnice występujące między nimi, jednakże nowicjusze często bywają zdezorientowani i zadają pytania typu:
    • którą platformę wybrać do ich projektu,
    • która jest łatwiejsza do nauki,
    • która posiada więcej możliwości.

    Dlatego więc w dzisiejszym artykule (skierowanym głównie dla nowicjuszy systemów wbudowanych) opisane zostaną wszystkie różnice pomiędzy Arduino i Raspberry Pi.

    Raspberry Pi

    Kiedy zastosować Arduino a kiedy Raspberry Pi?


    Raspberry Pi jest to w pełni funkcjonalny komputer składający się z pojedynczego obwodu drukowanego. Pracuje on na specjalnie zaprojektowanym systemie operacyjnym opartym na linuksie o nazwie Raspbian. Jest to oficjalny system operacyjny stworzony przez twórców Raspberry Pi, którego używa większość użytkowników tej platformy. Ponadto istnieją również inne systemy stworzone przez osoby trzecie takie jak: Firefox OS, Android, RISC OS, Ubuntu Mate, jak również istnieje również możliwość zainstalowania Windowsa w wersji 10.

    Jak każdy komputer, Rpi posiada własną pamięć, procesor, port USB, wyjście audio, wyjście HDMI i jako, iż oparty jest na linuksie to większość oprogramowania dedykowana dla tego systemu jest na nim dostępna. Raspberry Pi dostępne jest w kilku generacjach: Raspberry Pi, Raspberry Pi 2, Raspberry Pi 3 (wraz z różnymi modelami dla każdej z generacji). Wydania te różnią się parametrami zainstalowanych komponentów jednak ogólna idea działania jest taka sama.

    Arduino

    Kiedy zastosować Arduino a kiedy Raspberry Pi?


    Arduino to platforma rozwojowa oparta na prostym mikrokontrolerze, który nie dorównuje mocy obliczeniowej procesora zainstalowanego na Raspberry Pi. Jednakże dla wielu prostych projektów wydajność tego procesora wystarcza w zupełności. W odróżnieniu od Raspberry Pi, Arduino nie posiada systemu operacyjnego co znacznie upraszcza proces programowania. Tak samo jak w przypadku Raspberry Pi, Arduino również posiada kilka odmian różniących się typem zainstalowanego mikroprocesora, wspomniane odmiany to: Arduino UNO, Arduino PRO, Arduino MEGA, Arduino DUE itd.






    Różnice

    W celu zrozumienia różnic pomiędzy platformą Arduino a Raspberry Pi, zostaną opisane zalety i wady obu urządzeń. Na początku rozważona zostanie kwestia zalet Arduino nad Raspberry Pi:


    Zalety Arduino nad Raspberry Pi


    Prostota:
    Ze względu na prostotę użytkowania, Arduino bez wątpienia wygrywa z Raspberry Pi. Za pomocą kilku linijek kodu i prostego oprogramowania, można odczytywać wartości z różnych czujników lub przycisków oraz manipulować różnymi obiektami tj. wentylatory, silniki, grzałki itd. Podczas gdy w Raspberry Pi, należy włożyć znacznie więcej pracy do najprostszych rzeczy typu odczyt wartości analogowej z czujnika. Trzeba instalować biblioteki i oprogramowanie, należy posiadać znajomość budowy systemu operacyjnego Linux i jego poleceń.

    Wytrzymałosć:
    Raspberry Pi pracuje na systemie operacyjnym, więc do niezawodnego działania musi zostać odpowiednio zamknięty przed wyłączeniem zasilania. W przeciwnym wypadku system operacyjny wraz z aplikacjami mogą ulec uszkodzeniu. Podczas gdy Arduino może być włączane i wyłączane w każdym momencie bez ryzyka jego uszkodzenia i po przywróceniu zasilania, wykonuje kod bez żadnych przeszkód.

    Pobór mocy:
    Raspberry Pi to potężne urządzenie, które potrzebuje prądu o wartości około 500mA i napięciu 5V. Z kolei Arduino pobiera około 100mA. Podane wartości mogą się różnić w zależności od programu i konfiguracji danej platformy, jednak bez wątpienia Arduino posiada znacznie mniejszy pobór prądu, który może być kluczowy dla bateryjnie zasilanych projektów.

    Cena:
    Z powodu znacznie prostszej budowy Arduino jest znacznie tańsze od jego rywala. W zależności od modelu, cena Raspberry Pi jest około dwukrotnie większa od Arduino.


    Zalety Raspberry Pi nad Arduino:


    Po przeczytaniu wszystkich zalet Arduino nad Rpi, można zacząć uważać, że Arduino to lepsza platforma. Jednak to, czy dana płytka jest lepsza, głównie zależy od wymagań projektu. Poniżej przedstawiono zalety jakie posiada Raspberry Pi nad Arduino.

    Moc obliczeniowa:
    Jest to główna zaleta jaką posiada Raspberry Pi. Malinka jest zdolna do wykonywania zadań w czasie porównywalnym do komputerów klasy PC. Cecha ta jest szczególnie przydatna w skomplikowanych projektach zawierających robotykę lub strony internetowe. Rpi może również zostać przekonwertowany na serwer www,, vpn, system zarządzani bazą danych itd. Raspberry Pi jest około 40krotnie szybsze od Arduino dzięki czemu można na nim wysyłać maila, słuchać muzyki, grać w gry, przeglądać internet. Posiada również różne porty typu USB czy Ethernet i nie wymaga zewnętrznych akcesoriów to wykonywania większości funkcji.

    Sieć:
    Czynności sieciowe w Raspberry Pi są znacznie łatwiejsze od jego konkurenta. Posiada on wbudowany port ethernetowy przez który istnieje możliwość podłączenia się w sposób przewodowy do sieci. Można również połączyć się bezprzewodowo przy pomocy tanich modułów Wi-Fi z interfejsem USB. W przypadku Arduino trzeba zakupić zewnętrze urządzenia, które należy odpowiednio zaprogramować przy pomocy relatywnie skomplikowanego kodu.


    Podsumowanie:


    Niektórzy ludzie uznają platformę Arduino jako najlepszą dla początkująch jednakże zdaniem autora, nowicjusz poradzi sobie z każdą z nich. Wybór pomiędzy platformami powinien głównie zależeć od charakterystyki projektu.

    Należy wybrać Arduino jeśli:
    • posiadamy znajomość elektroniki lub skupiamy się na poznawaniu tej dziedziny,
    • wykonujemy relatywnie prosty projekt bez funkcji sieciowych,
    • konstrukcja, którą tworzymy nie wymaga rozwiniętego interfejsu użytkownika,
    • nie interesujemy się ściśle komputerowymi zagadnieniami.


    Należy wybrać Raspberry Pi jeśli:
    • zajmujemy się złożonym projektem z wykorzystaniem sieci,
    • konstrukcja którą wykonujemy wymaga skomplikowanego interfejsu użytkownika typu server VPN lub WWW,,
    • nie interesujemy się ściśle elektronicznymi zagadnieniami,
    • posiadamy dobrą znajomość Linuxa.

    Arduino spisuje się najlepiej w zadaniach powtarzalnych np. otwieranie drzwi czy włączanie świateł, a Raspberry Pi nadaje się do bardziej rozbudowanych projektów typu stacja pogody (link do projektu) lub samochodowy system multimedialny (link do projektu). Rpi posiada ogromny potencjał w świecie Internetu rzeczy (IoT), w którym urządzenia bezpośrednio wymieniają informacje pomiędzy nimi i sterują wieloma elementami przy braku ludzkiej interwencji.


    źródło: https://circuitdigest.com/article/arduino-vs-raspberryp-pi-difference-between-the-two


    Fajne!
  • Fibaro
  • #2 02 Cze 2017 16:48
    elektryku5
    Poziom 37  

    Najprościej zadać sobie pytanie czy w danym projekcie potrzebny jest system operacyjny.

  • #3 02 Cze 2017 17:14
    drobok
    Poziom 24  

    Każdy kto to czyta powinien zadać sobie pytanie, czy chcę coś więcej czy tylko zapalić diodę i skorzystać z nieintuicyjnej wolnej, i źle zoptymalizowanej biblioteki arduino.

    Wszystko co zrobisz na arduino zrobisz na r-pi, zrobisz to szybciej i czasem i bez żadnej linijki kodu. Pomijając wbudowane sterowniki łatwo uzyskać wynik pisząc w bashu, c++, czy np pythonie. W arduino jesteś skazany na w/w bibliotekę. Ba, r-pi nie wymaga komputera do programowania - wystarczy wrzucić system na kartę microsd i mamy centrum multimedialne z goldpinem.

    Jedyna wada r-pi to cena, oraz pobór mocy. Jednak jeśli chcesz zrobić coś na baterię (lub coś taniego) arduino też się nie nadaje. W takim wypadku warto użyć AVR (np attiny / atmega / xmega itd), lub stm32 który jest najtańszy (pomijając najtańsze (bo ograniczone) attiny), posiada największe możliwości. W tym wypadku pisze się w c - wygodnie i przejrzyście, jest masa bibliotek więc jeśli ktoś chce może z nich zapożyczać.

  • Fibaro
  • #4 02 Cze 2017 17:41
    tronics
    Poziom 35  

    Nie zgodzę się z tezą, że Arduino jest "prostsze". Wkładasz microSD do RPi, odpala się raspbian, załączasz pythona i sobie machasz GPIO. Jak jest najprościen na arduino? Odpalasz PC, otwierasz IDE, tworzysz szkic, podłączasz arduino przez USB, ładujesz przez bootloader, coś nie działa... zmieniasz skrypt, ładujesz przez bootloader... Jak dla mnie wcale to nie jest łatwiej. Jeśli chodzi o czujniki itp. pewna część z nich jest obsługiwana przez dodatkowe (aczkolwiek będące w sumie standardowym "wyposażeniem") biblioteki, np. WiringPi. Resztę można zazwyczaj bardzo prosto dopisać. Jak ktoś się przyzwyczai do podania obsługi "na tacy" to zawsze będzie uzależniony od społeczności. Oczywiście do poważnych zastosowań jednak Raspberry samodzielnie nie wystarczy. Przykładem niech będzie inteligentny budynek... ustawiasz sobie poziom oświetlenia (LED), co gdzie załączone, jaka temperatura na głowicach, zanik zasilania, system na microsd uszkodzony, raspbian nie wstaje i nie steruje przekaźnikami. Tragedia! A teraz wystarczy, że RPi będzie tylko supervisorem dla Arduino i będzie zapewniać obsługę inteligentnych sekwencji (np. światła i czujniki ruchu), tryb "nikogo nie ma w domu, ale światła się zapalają", obsługę przez sieć (lan/wan/gsm). Padnie? Trudno... arduino wstanie, wczyta ostatnie ustawienia, obsłuży przełączniki manualne i z ograniczoną funkcjonalnością (brak podglądu na www i obsługi przez sieć) ale będzie to działało.
    Ja nie mam nic do ludzi strzelających z armaty do muchy (rpi do prostych rzeczy) - bo to po prostu będzie marnotrawstwem lecz zadziała, ale porywanie się z packą na smoka (arduino do kamerki, lcd, www) jest akurat mało rozsądne, a nie brakuje tych co i tak się w to ładują. A w tym momencie 10x szybciej, 10x łatwiej jednak będzie RPi.

  • Fibaro
  • #5 02 Cze 2017 18:18
    Simon79
    Poziom 16  

    Mam i jedno i drugie, ale nie przyszło mi do głowy porównywać arduino z malinką. To dwa różne światy. Arduino to taki zestaw do nauki programowania w c/c++ 8-bitowego mikrokontrolera Atmel AVR . Ktoś wpadł na ciekawy pomysł, miał dobry marketing i się potoczyło....
    Raspberry Pi to komputer z systemem operacyjnym na karcie (na upartego można użyć AVR DOS w arduino, ale to nie to samo ) o wiele większych możliwościach, nawet jeśli chodzi o PI zero.
    Moim zdaniem to nie jest kwestia prostsze/trudniejsze, ani lepsze/gorsze. Można migać diodą na raspberry i zrobić serwer na arduino, ale czy nie nie lepiej na odwrót :)
    Do projektów do których wykorzystywałem atmegę czy attiny, wybieram arduino, do bardziej zaawansowanych rzeczy - raspberry.

  • #6 02 Cze 2017 21:18
    elektryku5
    Poziom 37  

    tronics napisał:
    A teraz wystarczy, że RPi będzie tylko supervisorem dla Arduino i będzie zapewniać obsługę inteligentnych sekwencji (np. światła i czujniki ruchu)


    Zmniejsza to też koszty, bo można zamontować w różnych miejscach moduły wykonawcze na AVR i np ENC28J60 lub po WiFi od razu ESP8266 (nawet bez dodatkowego mikrokontrolera).

    Same uC lepiej też programować w czystym C, przynajmniej środowisko nie narzuca konkretnych modeli, a bibliotek w Internecie jest na prawdę sporo.

  • #7 02 Cze 2017 22:59
    kamil12451
    Poziom 9  

    drobok napisał:
    W arduino jesteś skazany na w/w bibliotekę.

    Nie, nie jesteś skazany. Można programować w czystym C na AVR lub nawet w ASM. Sam nieraz robiłem wstawki z czystego C (np ustawianie odpowiednich rejestrów do obsługi PCINT itp) i jakoś wszystko śmigało elegancko. Możliwość manipulowania uC w zwykłym C korzystając z dokumentacji oraz korzystanie z prostoty Arduino. Na początku zacząłem przygodę od czystego C na AVR, przechodząc na Arduino zdziwiłem sie że tu wszystko po prostu działa i jest mega proste. Ale korzystając ze swojego doświadczenia łączę obie te "technologie".

    A porównanie Arduino do Malinki.. cóż, to jak porównanie auta miejskiego do supersamochodu z mocnymsilnikiem. Taki sportowy wóz do miasta niby się nadaje, jednak chyba wolałbym coś mniejszego o mniejszej mocy. A na tor supersamochód. Wszystko zależy od potrzeb

  • #8 03 Cze 2017 11:14
    siewcu
    Poziom 32  

    kmmepl napisał:
    grać w gry

    To ja poproszę o informację w co można grać na RPi. Mocy obliczeniowej niby ma "dużo", ale jakoś nie słyszałem o żadnych grach... Poza podstawowymi w przeglądarce, a z tego co słyszałem od znajomych, to i nawet nie wszystkie działają płynnie.

  • #9 03 Cze 2017 13:17
    pyton
    Poziom 21  

    Witam

    Dziwnie nie którzy piszą być może przez brak wiedzy/nie doczytali czegoś...

    Arduino IDE to tylko uproszczone C można pisać w tym "środowisku" w czystym C i nie będzie problemu... wszystko będzie się kompilowało. (wszystko i tak idzie w DEV C++)

    Nikt nie powiedział że trzeba korzystać z bibliotek... można je tworzyć samemu...

    Można tworzyć jakiś mini Webserver na Arduino ale fakt ze to stosunkowo głupi pomysł - mimo że sam tak teraz robię.... (Arduino Mega + ESP8266 + TFT + LCD + czujniki itd)
    Samo ESP8266 ma w sobie procka 80MHz.... na którym można postawić jakiś programik...

    Druga sprawa: Arduino jest wiele rodzajów np: mamy wersję DUE z AT91 SAM3X8E rdzeń 32-bit 84MHz - to już dość szybki sprzęt a koszt w okolicach 60zł z Chin...

    Podsumowując:

    Proste sterowniki wykonał bym na uC (Arduino) po za tym uczymy się tam podstaw C później możemy przejść na czyste C jak już się oswoimy z "Arduino IDE"
    Przecież to zwykły AVR na płytce z już gotowym zasilaczem i resztą "minimalną" do działania...

    A Malinka... to już jest kombajn z systemem operacyjnym... na którym można więcej... ale czy do mierzenia temperatury warto zastosować aż taki sprzęt? Druga sprawa że tu też C się przyda... W końcu na RPI stosuje się tylko skrypty z Pythona do obsługi GIPO? Więc C też będzie funkcjonalne.

    Niech mnie ktoś poprawi jeśli źle myślę... Sam kilka miesięcy temu stałem nad takim wyborem i wybrałem Arduino... z tym że programowanie zaczynałem od prostego migania diodą, bo żadnej wiedzy nie miałem...

    Pozdrawiam

  • #10 03 Cze 2017 15:10
    tronics
    Poziom 35  

    Kolego pyton - to wszystko prawda co kolega napisał, ale kto instaluje arduino ide po to by pisać close to metal (czyli na rejestrach)? To już choćby eclipse z pluginem avr będzie do tego lepsze. Ludzie nie po to biorą się za arduino. W 99% to jest właśnie prostota wykonania projektów ze względu na ogrom gotowców. ESP8266? W 5 minut masz zrobiony projekt odczytujący temp. z n czujników DS18B20 i wysyłający do Thingspeaka. Ślicznie. Nie pamiętam dokładnie jakie zużycie pamięci, ale spore. No cóż... w albo owies, albo siano. Albo pisać szybko, łatwo i przyjemnie przerośniętą kobyłę; albo pisać program szybki, zwarty ale kosztem czasu własnego.
    @siewcu - większość tego co działa na opengl es w obsługiwanej przez rpi wersji (i ARM), do tego jak ktoś chce to np. emulatory (retropie). Jest tego trochę i z pewnością nie chodzi o gry przeglądarkowe.

  • #11 04 Cze 2017 00:33
    kamil12451
    Poziom 9  

    Kolego tronics, jeśli już mowa o środowiskach to moim zdaniem Arduino IDE to badziew jakich mało (jedyna zaleta że jest dość lekki, wbudowane przykłady i robi wykresy z seriala), eclipse próbowałem i coś zawsze nie trybiło, a Visual Studio.. Prosty dodatek i wszystko zaczyna działać pięknie. Ale ja może przyzwyczajony jestem do uzupełniania składni itp z innych środowisk programistycznych.

  • #12 04 Cze 2017 11:31
    Marek_Ertew
    Poziom 15  

    Dlaczego Arduino i inne uC a nie komputer klasy rPi?

    1. Czas startu.
    Arduino (bootloader) startuje szybciej niż rPi (OS). Jeśli zastosujemy uC bez bootloadera albo z bootloaderem aktywowanym stanem logicznym, start będzie jeszcze szybszy. W laboratoriach i warunkach przemysłowych nie ma to dużego znaczenia, ale w urządzeniach mających kontakt z użytkownikiem zaświecenie pierwszej kontrolki / pierwszego napisu na wyświetlaczu po kilkunastu sekundach od włączenia może być nie do przyjęcia.

    2. Czas reakcji.
    rPi jest szybsze w obliczeniach ale czy system przerwań i czas odpowiedzi OS będzie krótszy niż samo wejście w przerwanie na wielokrotnie wolniejszym AVR? Owszem, sytuacje kiedy czas czas reakcji poniżej 1ms jest potrzebny to rzadkość, a uC przegra przy większej złożoności algorytmu, ale proste odcięcie zasilania po wykryciu usterki przeprowadzi znacznie szybciej i nie musimy się bać o zawieszenie OS.

    3. Porty I/O.
    Arduino może podać na wyjścia napięcie 5V (zależnie od napięcia zasilania) i prąd do 40mA. rPi tylko 3v3 i max 16mA. Czasem ma to znaczenie, czasem nie. Wszystko zależy od współpracujących peryferiów i tego czy chcemy stosować dodatkowe bufory.

  • #14 04 Cze 2017 17:04
    etet
    Poziom 14  

    Marek_Ertew napisał:
    1. Czas startu.
    Arduino (bootloader) startuje szybciej niż rPi (OS). Jeśli zastosujemy uC bez bootloadera albo z bootloaderem aktywowanym stanem logicznym, start będzie jeszcze szybszy. W laboratoriach i warunkach przemysłowych nie ma to dużego znaczenia, ale w urządzeniach mających kontakt z użytkownikiem zaświecenie pierwszej kontrolki / pierwszego napisu na wyświetlaczu po kilkunastu sekundach od włączenia może być nie do przyjęcia.

    2. Czas reakcji.
    rPi jest szybsze w obliczeniach ale czy system przerwań i czas odpowiedzi OS będzie krótszy niż samo wejście w przerwanie na wielokrotnie wolniejszym AVR? Owszem, sytuacje kiedy czas czas reakcji poniżej 1ms jest potrzebny to rzadkość, a uC przegra przy większej złożoności algorytmu, ale proste odcięcie zasilania po wykryciu usterki przeprowadzi znacznie szybciej i nie musimy się bać o zawieszenie OS.


    Trzeba pamiętać, że pod Raspberry można pisać aplikacje bare matal lub używać systemów nielinuksowych. Wtedy start jest oczywiście bez porównania szybszy (np pół sekundy). Jest trochę materiałów na ten temat i coś tam udało mi się stworzyć.

    Ale ogólnie to porównanie beznadziejne. Tylko z drugiej strony ciężko się dziwić skoro nawet doświadczeni ludzie mają takie głupie podejście. Pytam np czy jest coś o kilka % szybszego od najzwyklejszego arduino uno a oni mi piszą, że mam wziąć rasperry. I to najlepiej od razy 4 rdzeniowe bo przecież teraz wszystko jest super dostępne. I co z tego, że to koszt, wielki zasilacz, zmarnowana energia, bootowanie przez 40 sekund, ogólnie zmarnowane zasoby. Ale jest linux i można aplikacje pisać w pythonie. No super.

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo