Atunci când s-a anunţat lansarea Raspberry, unii s-au grăbit să anunţe acest dispozitiv ca fiind “ucigaşul lui Arduino” şi să facă nişte comparaţii simple care nu luau în considerare avantajele ambelor platforme.
Majoritatea acestor păreri se bazau pe specificaţii tehnice precum frecvenţa procesorului şi RAM-ul. Astfel un bun punct de pornire este comparaţia hardware-ului.
Microcontroler vs. microprocesor
Arduino implică un microcontroler seria ATmega pe 8 biţi, în vreme ce Raspberry Pi este bazat pe un procesor ARM pe 32 de biţi. Arduino dispune de o frecvenţă de ceas tipică între 8 şi16MHz şi o memorie RAM disponibilă de 2-8kB, iar prin contrast, Raspberry Pi are o frecvenţă de ceas de până la 1GHz şi poate avea până la 512MB de RAM. Mai presus de toate, Pi are un procesor grafic şi ieşiri video, Ethernet ca standard şi porturi gazdă USB. În acest fel învinge Raspberry Pi? Ei bine, depinde de aplicaţie.
Pi oferă un avantaj clar pentru aplicaţii embedded în reţele complexe şi performanţe ridicate, şi pentru acelea care implică comanda unui ecran video sau periferice USB. Dar atunci când consumul energetic este de importanţă crucială, atunci Arduino iese în evidenţă, deoarece consumul său în mod sleep este de ordinul µW, comparativ cu ordinul W consumat de Raspberry Pi în modul de aşteptare, rulând sub Linux. Datorită naturii mai simple a abordării bazate pe microcontroler a Arduino, acesta poate avea un nou avantaj faţă de aplicaţiile Pi, în ceea ce priveşte aplicaţiile ce impun un înalt nivel de siguranţă în funcţionare.
Dezvoltare de software
Arduino este furnizat cu IDE şi biblioteci ce au fost proiectate pentru uşurinţa de utilizare şi pentru a asigura suportul celor care nu sunt programatori, astfel că în câteva minute de la instalare pot fi realizate aplicaţii cu LED-uri care clipesc şi se pot citi senzori de temperatură. Raspberry Pi nu dispune de un IDE oficial, dar “limbajul educaţional” este Python, iar bibliotecile există, permiţând mult mai mult decât ce este posibil cu ajutorul Arduino IDE. Alternativ C/C++ sau aproape orice alt limbaj poate fi utilizat, existând chiar şi biblioteci care încearcă să recreeze sistemul Arduino.
Software-ul Arduino este scris într-un limbaj similar cu C++, compilat pe PC-ul pe care rulează IDE şi apoi descărcat prin USB. Depanarea este posibilă prin IDE. În această vreme Raspberry Pi rulează Linux şi poate găzdui el însuşi compilatoare. Dezvoltarea se poate face ataşând un monitor, tastatură şi mouse, sau prin SSH de la distanţă sau sesiune VNC.
Mulţumită Linux-ului, Raspberry Pi beneficiază de un mediu de dezvoltare mult mai puternic şi mai flexibil. Oricum, numai kernel-ul cuprinde milioane de linii de cod. De aceea, pentru aplicaţii în care simplitatea este cheia, Arduino fără sistem de operare reprezintă o alegere bună.
Ecosisteme
Să spunem că ecosistemul Linux este extins poate fi o afirmaţie modestă. Mulţumită proiectului Debian şi prin Raspbian, cei ce dezvoltă aplicaţii pentru Raspberry Pi pot instala mii de biblioteci, unelte şi aplicaţii printr-o simplă comandă.
Ecosistemul software Arduino este mult mai tânăr şi mai modest, şi reflectă de asemenea faptul că Arduino este realizat în jurul unui microcontroler şi este
proiectat pentru aplicaţii embedded mai mici şi “clasice”.
Atunci când vine vorba despre ecosistemul hardware, Arduino învinge, deoarece există multe variante şi numeroase shield-uri. Însă Raspberry Pi se descurcă de minune în a recupera diferenţa.
Prototipare şi învăţare
Arduino este o platformă de prototipare, designul hardware este de tip open source, iar microcontrolerele ATmega utilizate pot fi asigurate în volume mici, cu capsule cu care se poate lucra uşor. Prin contrast Raspberry Pi nu este la ora actuală un sistem open source, iar cipul său SoC este disponibil numai în volume mari, şi implică tehnologii package-on-package ce necesită unelte speciale.
Raspberry Pi a fost proiectat de la început ca ajutor la învăţarea arhitecturii şi operării sistemelor de calcul, putând fi utilizat cu numeroase limbaje şi framework-uri pentru a învăţa totul de la programe simple la programe cu elemente grafice şi elemente de reţea. Arduino este o platformă accesibilă, dar mult mai restrânsă din punct de vedere al limbajelor suportate şi aplicaţiilor.
Concluzie
Concluzia este că alegerea soluţiei trebuie făcută în funcţie de aplicaţia dată. Acolo unde ambele soluţii sunt valabile, fiecare poate opta în funcţie de modul în care îi place să lucreze. Înţelept este să se evite judecăţi pripite, fiind probabil mai sigur să se spună că există loc suficient pentru ambele tipuri de soluţii!
Postat de Andrew Back / www.designspark.com
Mai multe informaţii la:
Aurocon Compec
compec@compec.ro
www.compec.ro