Blog (15)
Komentarze (117)
Recenzje (0)
@redsplRaspberry Pi, Arduino czy może "gołe" Atmele?

Raspberry Pi, Arduino czy może "gołe" Atmele?

01.04.2017 01:53, aktualizacja: 02.04.2017 19:04

W ostatnich latach rynek małych urządzeń przeznaczonych dla hobbystów znacznie się powiększył. Jeszcze 15 lat temu nie istniało ani Arduino ani coraz popularniejsze dzisiaj Raspberry Pi, a jeśli jako domorosły elektronik chcieliśmy zbudować jakiś układ zdolny do jakichkolwiek obliczeń, byliśmy zmuszeni do użycia mikrokontrolerów takich jak Atmel-AVR czy PIC. W dzisiejszym wpisie chciałbym opisać do czego nadają się niektóre z wyżej wypisanych urządzeń i dlaczego Raspberry Pi nie jest zawsze najlepszym rozwiązaniem.

Najtańszym rozwiązaniem z powyższych jest Atmel-AVR. Są to małe chipy opartę o architekturę RISC. AVR są bardzo energooszczędne oraz tanie(najtańsze mikrokontrolery z serii ATmega kosztują już po 3‑4zł), mają dużo wyprowadzeń GPIO (pomijając serię ATtiny która jest zaprojektowana aby była jak najmniejsza, przez co nie może mieć bardzo dużej ilości wyprowadzeń). Mają one jednak małą pojemność(pamięć flash w najlepszym urządzeniu ma wielkość 384KB) i mało pamięci RAM. Dużym problemem dla niektórych będzie też konieczność posiadania zewnętrznego programatora. AVR są bardzo dobrym rozwiązaniem dla hobbystów z małym budżetem, ale nie tylko - o tym za chwilę.

ATmega8 w obudowie PDIP | Źródło: Wikimedia Commons, autor: Pengo
ATmega8 w obudowie PDIP | Źródło: Wikimedia Commons, autor: Pengo

AVRy mają pewien duży problem - urządzenia peryferyjne często nie mają gotowych bibliotek, przez co więcej trzeba napisać w swojej własnej aplikacji; Problemem jest też brak lub szczątkowa kompatybilność kodu między poszczególnymi mikroprocesorami - przykładowo, ATmega16 nie jest kompatybilna z większością kodu z ATmegi 8 przez zmienione rejestry i małe poprawki w architekturze procesora. Pare powyższych problemów prawie całkowicie rozwiązał projekt Arduino - płytki z wbudowanym programatorem opartej o ATmegę. Kompatybilność kodu została rozwiązana przez małą liczbę modeli płytek, a sam kod można pisać o wiele łatwiej dzięki rozszerzonemu o biblioteki Arduino językowi C++. Arduino nie jest tak tanie jak AVRy, ale oryginał można dostać już w granicach 100zł, nie wspominając nawet o klonach które potrafią być nawet 5 razy tańsze.

Arduino UNO, prawdopodobnie najpopularniejszy model Arduino | Źródło: Wikimedia Commons, autor:  JotaCartas
Arduino UNO, prawdopodobnie najpopularniejszy model Arduino | Źródło: Wikimedia Commons, autor: JotaCartas

Jako ostatni do gry wchodzi Raspberry Pi - najdroższe rozwiązanie z powyższych które oprócz pełnego linuxa ładowanego z karty SD/µSD nie ma zbyt wiele więcej do zaoferowania. Owszem, jest to rozwiązanie łatwiejsze w użyciu, ma wbudowaną karte sieciową oraz USB dzięki czemu możemy łatwiej komunikować się z jeszcze większą gamą urządzeń, nie mówiąc nawet o tym, że najłatwiej się dla niego programuje(dla AVR/Arduino właściwie robimy cały system operacyjny, a na Raspberry możemy jedynie piszemy programy), ale czy na pewno jest to konieczne? Mam na myśli boom na raspberry pi z ostatnich paru lat - o ile nie jestem przeciwnikiem urządzenia, to jednak jestem za przemyśleniem każdego zastosowania przynajmniej dwa razy. Zmierzam do bolesnego faktu - o ile łatwo jest użyć rpi bo robią to wszyscy, o tyle warto czasami nawet tylko dla ćwiczenia spróbować wykonać jakiś projekt na AVRze - niektóre projekty po prostu nie wykorzystają pełnego potencjału Malinki, przez co efektywnie będziemy wuyrzucać kasę w błoto. To samo zjawisko można było zaobserwować na nieco mniejszą skalę pare lat temu z Arduino.

tl;dr - co wybrać?

To zależy - jeśli wiesz dokładnie co chcesz zrobić, warto przemyśleć czy na pewno twój projekt będzie korzystał z pełnego potencjału danego urządzenia. Przykładowo, jeśli chcemy zamrugać diodką i nie planujemy rozbudowy(tak, wiem, surrealistyczny przykład) to Raspberry Pi będzie się marnować, to samo z Arduino oraz nawet z ATmegą - do takiego zastosowania wystarczy nawet prosty NE555, czyli chip z zegarem. Za to jeśli w planach mamy mały system CCTV to zabieranie się za to zarówno na AVR jak i na Arduino jest nierealne, a Raspberry Pi będzie dobrze wykorzystane.

Przykładowy układ z mrugającą diodą oparty o NE555 | Źródło: Wikimedia Commons, autor: MrStanleZ
Przykładowy układ z mrugającą diodą oparty o NE555 | Źródło: Wikimedia Commons, autor: MrStanleZ

Jeśli za to nie wiesz co będziesz chciał wykonać i chcesz zakupić coś do eksperymentów, to wybór należy do Ciebie - ja rekomendowałbym Malinę, ale jest to kwestia preferencji. Przy wyborze warto również pamiętać, że z rpi nauczysz się innych rzeczy niż z ATmegą czy Arduino - dobrze wykorzystany AVR może zachęcić do nauki C lub C++ a Raspberry można tak na prawdę używać nie mając żadnej wiedzy o programowaniu.

Dziękuje za przeczytanie wpisu i zapraszam do krytyki w komentarzach.

Wybrane dla Ciebie
Komentarze (10)