Dlaczego Arduino jest tak popularne?

Prawdopodobnie jeżeli zaczynałeś swą przygodę z elektroniką (mikrokontrolerami) dość niedawno (do około 3 lat temu) to musiałeś usłyszeć o Arduino. Bardzo możliwe, że w większości słyszałeś same dobre opinie, co prawdopodobnie przekonało Cię do rozpoczęcia nauki na tej płytce.

Ale dlaczego tak jest? Co zdecydowało o niepodważalnym sukcesie małej płytki z mikrokontrolerem ATmega, nazwanej Arduino? Przecież ATmega sama w sobie na rynku jest i była już od wielu, wielu lat.

Jeżeli zaczynamy naszą „zabawę” z mikrokontrolerami ATmega musimy kupić układ, kwarc, pare rezystorów oraz programator. Potem wszystko połączyć w całość, podłączyć do komputera oraz znaleźć odpowiadające nam środowisko, w którym przez dłuższy czas nie będziemy wiedzieli co robimy. Ustawić jakies czarodziejskie „Fuse Bity” i przejść do programowania… Tutaj zaczyna się kolejna zabawa ponieważ w podstawowej wersji możemy wybrać albo Bascom albo czysty język C. Obie wersje dla początkującego mogą być wręcz przerażające.

W przypadku Arduino wystarczy kupić płytkę, podłączyć ja do komputera, zainstalować gotowe środowisko paroma kliknięciami. Kod piszemy w C z biblioteką, która ułatwia wszystko i możemy pisać programy korzystając z bardzo prostych gotowych funkcji. Dostajemy także wiele bibliotek tworzonych przez społeczność. Gdy już napiszemy kod wystarczy go wgrać jednym kliknięciem.

Co do skryptów oraz programowania to prosty kod migający diodą w języku C wygląda tak:

A w Arduino, tak:

Widać różnicę, nie?

Co prawda kod w czystym C jest troszkę mniej obszerny jednak dla początkujących może wydawać się o wiele bardziej skomplikowany niż ten z Arduino.

Więc moim zdaniem głównym aspektem, który zadecydował o sukcesie Arduino jest to, że ta płytka ma po prostu niski próg wejścia oraz ogromne community.  A Wy co o tym sądzicie? Macie może jakieś swoje teorie?

  • Ds3

    Akurat po tym przykładzie widać bardzo dobrze, że C jest dużo bardziej przejrzystym językiem. Od razu widać, że sterujemy portem PB5 mikrokontrolera. A nie jakimś portem 13 w mikrokontrolerze 8 bitowym 😉 Tak naprawdę pokazałeś wersje zoptymalizowaną. Bo można to zrobić tak samo jak w Arduino:
    PORTB |= (1<<PB5);
    _delay_ms(1000);
    PORTB &= ~(1<<PB5);
    _delay_ms(1000);