Buntownik bez powodu, czyli jak się stałem fanem Arduino

Elektroniką się interesuję odkąd moja pamięć sięga. Podobnie jest z informatyką. Na ścisłe połączenie tych dwóch pasji wpadłem w 2009 roku, kiedy zainteresowałem się tematem mikrokontolerów. Oczywiście już wcześniej wiedziałem, że są takie "komputerki" jednoukładowe, które mogą robić cuda, zadowalając się kilkoma kilobajtami pamięci, ale do tej pory moje projekty programistyczne to były aplikacje na "duże" komputery. Jak większość hobbystów, rozpocząłem od popularnej rodziny mikrokontolerów AVR i języka Bascom, a konkretniej od rewelacyjnej książki "Mikrokontolery dla początkujących" Piotra Góreckiego, redaktora "Elektroniki dla Wszystkich" i przygotowanej do książki płytki developerskiej. Nie wiem dlaczego, ale sam Bascom wydał mi się tak uproszczony, że aż skomplikowany. Pragnąłem jak najszybciej przeskoczyć na coś bardziej profesjonalnego. Po zakupieniu układu mikrokontolera i zbudowaniu programatora LPT, poczułem się chwilowo usatysfakcjonowany :-) Pisałem proste programy w C, czasem romansując z asemblerem. Po jakimś czasie programy stawały się bardziej skomplikowane, a praca nad nimi czasochłonna. Oczywiście opierałem się na bibliotekach, nawet samemu pisanych, ale dalej były to zadania czasochłonne.

Coraz bardziej brakowało mi rozwiązania, które pozwoliłoby mi na ekspresowe uruchomienie właśnie wymyślonego układu. W międzyczasie słyszałem coś o Arduino, ale wydawało mi się, że to ma znaczenie tylko edukacyjne, a ja przecież przeskoczyłem ten podstawowy etap zerówki ! :-) No bo jak to, ma zintegrowany programator, jakieś takie duże, jak w ogóle upchać do obudowy, a i GUI takie bardzo cukierkowe aż ocieka Javą. Poza tym, prawdziwi twardziele przecież trawią płytki i programują przez LPT :-) Pomijam fakt, że ubocznym efektem trawienia w żrących chemikaliach były niespieralne ślady na ubraniach, no ale w końcu to jest ta właściwa droga specjalistów.

To powyżej to jakieś 3 litry żrących, gorących i bulgoczących chemikaliów.

Pewnie taka sytuacja trwałaby dalej, gdyby nie przypadek. Mniej więcej w połowie roku zadzwoniła do mnie przyjaciółka, która poprosiła mnie o pomoc jej znajomemu w doborze rozwiązania do prostego obwodu wykonawczego. Po pierwszej rozmowie okazało się, że ma to być oparte na Arduino. Odruchowo, podczas pierwszej rozmowy moje myśli krążyły wokół pomysłu namówienia owego znajomego na rezygnację z Arduino, aby jak "prawdziwy twardziel" wytrawił płytkę i zrobił to tą drogą właściwą. To zdarzenie jednak skłoniło mnie do zrewidowania swojej postawy na temat tej supermodnej i popularnej platformy. Zakupiłem dla celów testowych na popularnym portalu aukcyjnym jedną płytkę UNO, która okazała się bardzo tania, a przy tym przyzwoicie wykonana. Dobra, czas na programowanie. Instalacja środowiska Arduino, właściwie IDE, okazała się wyjątkowo łatwa zarówno pod Linux jak i Windows. Co ciekawe, nawet instalacja sterowników pod Windows odbywa się w sposób automatyczny. Tu akurat spodziewałem się problemów, pamiętając problemy z instalacji sterowników USB pod 64-bitowym Windowsem wcześniej budowanego urządzenia opartego na jakimś AVR. W przypadku Arduino odbyło się to bez problemów. Dobra, teraz GUI. Po uruchomieniu okazało się, że ociężałość środowiska jest tylko iluzoryczna. No i przyszedł moment na programowanie. Jakiś pseudokod miałem już wcześniej napisany w notepadzie podczas dyskusji o algorytmie, bo niebardzo wiedziałem jak to się pisze w tym Arduino. Ok, jak w C, dobra nasza. No i biblioteki, na wszystko są biblioteki ! Sterowanie portami to jedna linia, całkiem intuicyjna. Spędziłem całe 5 (pięć) minut na pisaniu softu. 15 sekund ładowania wsadu do elektroniki i DZIAŁA ! Podłączam diody, przekaźniki - to klika, to pyka, a co najważniejsze działa stabilnie. Biorę się za oscyloskop i mierniki - kilkadziesiąt miliamperów (nawet nad sleep mode nie myślałem). Nie jest to super mało (Dave Jones z EEVBLOG zwykł mawiać, że na miliamperach w dzisiejszych czasach można polecieć na Księżyc) ale w dalszym ciągu na tyle oszczędnie, że bateria wytrzyma co najmniej wiele godzin.

Projekt po oszlifowaniu trafił do właściciela a ja sam pozostałem z głową pełną pomysłów, co zrobić z tak pięknie rozpoczętą znajomością z Arduino :-) Postanowiłem badać temat dalej. Okaząło się, że nie jestem skazany na "duże" UNO na płytce wielkości karty kredytowej. Za cenę czteropaka dobrego piwa udało mi się kupić Arduino Leonardo Micro, które zajmuje mniej miejsca niż paczka zapałek. Co więcej, okazało się, że programując w Arduino wcale nie jestem skazany na płytki, bo w bardzo prosty sposób bootloader Arduino można wgrać na np. Atmegę. No to już było szczytem euforii :-) Poza tym, wykorzystanie komercyjne Arduino także jest możliwe, a projekt jest otwarty i darmowy. Pomijam dostęp do setek bibliotek, których pobieranie jest możliwe nawet z samego IDE Arduino. Pierwszym większym projektem w którym wykorzystałem nowych znajomych (w ilości sztuk dwie) wraz ze starym kumplem Raspberry Pi jest robot Astro (poniżej na zdjęciu), ale o nim opowiem w innym odcinku.

Morał z tej historii jest taki - swoje chwalicie, a cudzego nie znacie ;-) To co kiedyś wymagało wielu godzin tworzenia, teraz można zrealizować bardzo tanim kosztem w ciągu minut. Inna kwestia, jak to się przełoży na powtarzalną jakość, ale dla nas hobbystów nawet działający prototyp jest wystarczającą frajdą.