Historia Arduino

Jeśli spotkaliście się kiedyś z płytkami drukowanymi w kolorze niebieskim, na których znajduje się mikrokontroler i kilka złączy funkcyjnych, to najpewniej była to płytka z serii Arduino – mała, wszechstronna platforma sprzętowo-programowa na licencji open source, która szturmem zdobyła uznanie na rynku systemów wbudowanych i po dziś dzień cieszy się rosnącą popularnością, zarówno pośród amatorów, jak i zawodowców. W tym artykule przedstawiono historię Arduino – płytki, która stała się kamieniem węgielnym pod niezliczoną ilość projektów programowalnych urządzeń elektronicznych oraz narzędziem dydaktycznym na uczelniach technicznych. Zacznijmy od początku!

Arduino – założenia projektu, pierwszy prototyp i wdrożenie na rynek

Początki rozwoju platformy Arduino sięgają roku 2003. W pierwotnym założeniu Arduino powstało jako prototyp platformy edukacyjnej do nauki programowania i elektroniki z użyciem mikrokontrolerów – układów scalonych zawierających procesor, pamięci oraz zestaw portów wejścia/wyjścia. Protoplastą pierwszych płytek Arduino, była platforma Wiring, zaprojektowana przez Hernando Barragána. Poza uczniami i studentami szkół technicznych inną grupą nabywców, z myślą o których zaprojektowano Wiring, byli i po dziś dzień są także domorośli konstruktorzy (również nieposiadający doświadczenia z elektroniką i programowaniem), a także zawodowi inżynierowie. Tymczasem, na Politechnice w Massachusetts, Benjamin Fry i Casey Rears tworzą środowisko Processing przeznaczone do programowania płytki Wiring, stanowiące podwaliny pod późniejsze Arduino IDE. Processing umożliwia tworzenie aplikacji za pomocą prostego w obsłudze wizualnego języka programowania, pełniącego funkcję narzędzia do prototypowania. Następnie, zespół projektantów z Instytutu Projektowania Interakcji w Ivrei, pod kierownictwem Massimo Banziego podjął prace nad przeprojektowaniem platformy Wiring tak, aby umożliwiała proste zaprogramowanie mikrokontrolerów, mogła funkcjonować bez pomocy zewnętrznego komputera oraz była dostępna w przystępnej cenie dla każdego. Kolejne prototypy zostały wyposażone w port USB, zastępując w ten sposób port szeregowy RS-232, który był trudniejszy w obsłudze i mniej praktyczny.

Arduino IDE – dedykowane środowisko programistyczne

Każdy mikrokontroler, zanim zostanie użyty w nawet najprostszej aplikacji (np. zaświecenie pojedynczej diody LED), wymaga wgrania niezbędnego programu do pamięci. Tak samo jest w przypadku płytek Arduino, z myślą o których producent utworzył Arduino IDE – zintegrowane środowisko programistyczne, którego plik instalacyjny można darmowo pobrać ze strony internetowej arduino.cc. Arduino IDE jest zgodne z systemami Windows, Mac OS X, a także Linux. Projekt tego środowiska również został przemyślany pod kątem początkujących użytkowników i zawiera trzy elementy główne, tj. kompilator, edytor kodu oraz konsolę komunikatów z debuggerem. W sekcji kompilatora użytkownik ma do dyspozycji narzędzie umożliwiające weryfikację prawidłowości napisanego szkicu kodu programu, a także funkcje tworzenia nowych szkiców, wczytywania uprzednio utworzonych i edytowanych plików, a także ich zapisywania. Za pomocą kompilatora, użytkownik wykonuje także proces wgrywania kodu programu do pamięci mikrokontrolera umieszczonego na płytce Arduino. Inną użyteczną funkcją kompilatora jest także okno monitora portu szeregowego, umożliwiające śledzenie informacji przesyłanych między Arduino a komputerem. Następna sekcji w postaci edytora kodu, jest obszarem, w którym użytkownik tworzy kod źródłowy programu. Arduino korzysta z języka programowania bazującego na składni języków C/C++, który zawiera szereg niezbędnych uproszczeń i funkcji, dzięki którym zaprogramowane jest znacznie uproszczone w stosunku do tradycyjnych języków programowania, a dodatkowo umożliwia korzystanie z bibliotek dedykowanych pod ściśle określoną aplikację, np. obsługę wyświetlacza ciekłokrystalicznego, co dodatkowo pozwala na zaoszczędzenie ogromnej ilości czasu w procesie prototypowania. Natomiast bardziej doświadczeni użytkownicy, którzy już wcześniej mieli styczność z programowaniem mikrokontrolerów w takich językach jak Assembler, mogą uzyskać głębszy wgląd do mechanizmu kodowania składni języka Arduino. Trzeci najbardziej istotny element środowiska Arduino IDE to konsola komunikatów z funkcją debuggera. Jej zadaniem jest wyświetlanie komunikatów, które obejmują także błędy w kodzie źródłowym, umożliwiając w ten sposób użytkownikowi szybkie naprawienie nieprawidłowo działającego kodu programu.
image

Historia Arduino – kalendarium 

  • 1996 – Firma Atmel Corporation wprowadza na rynek mikrokontroler AVR AT90S8515, zaprojektowany w oparciu o zmodyfikowane architektury: harwardzką i RISC.
  • 2001 – Casey Rears i Benjamin Fry z Politechniki w Massachusetts, tworzą Processing – zintegrowane środowisko programistyczne udostępniane na zasadach polityki open source.
  • 2003 – Hernando Barragán z Instytutu Projektowania Interakcji w Ivrei, opracowywuje platformę rozwojową o nazwie Wiring. Krótko po utworzeniu Wiring, Massimno Banzi, David Cuartielles i David Mellis – również pracownicy Instytutu Projektowania Interakcji w Ivrei, rozbudowywują Wiring o topologię zgodną z architekturą procesora Atmel AVR Atmega8. Modyfikacja projektu Wiring zostaje nazwana „Arduino” i będzie jeszcze poddana pewnym modyfikacjom.
  • 2005 – Pierwsza oficjalna wersja płytki Arduino zostaje wdrożona do produkcji.
  • 2006 – Modyfikacja osprzętu płytki Arduino NG240 – mikrokontroler Atmega8 zostaje zastąpiony mikrokontrolerem Atmega168, który charakteryzuje się dwukrotnie większą pamięcią FLASH (16kB).
  • 2008 – Wprowadzenie na rynek płytki Arduino Nano o zredukowanych wymiarach geometrycznych oraz Arduino Duemilanove z bezobsługowym trybem wyboru poziomu napięcia zasilającego.
  • 2009 – Arduino Duemilonove uzyskuje jeszcze lepszy mikrokontroler – Atmega328 z pamięcią FLASH o pojemności 32kB.
  • 2010 – Prezentacja płytki Arduino Uno – przyszłego bestsellera na rynku systemów wbudowanych. Modyfikacji podlega osprzęt komunikacyjny USB oraz opis wyprowadzeń mikrokontrolera na płytce drukowanej, przybierający bardziej przystępną w odczycie formę.
  • 2011 – Na półkach sklepowych pojawia się płytka Arduino Leonardo, wyposażona w mikrokontroler Atmega 32U4 oraz rozbudowaną funkcjonalność portu USB. Sprzedaż oficjalnych płytek Arduino przekracza 300 000 egzemplarzy.
  • 2012 – Wprowadzenie na rynek Due – pierwszej płytki Arduino wyposażonej w 32-bitowy procesor wykonany w architekturze ARM.
  • 2013 – Powstaje Arduino Yún – płytka wyposażona w koprocesor Atheros AR9331 wspierający obsługę systemu operacyjnego Linino OS będącego dystrybucją systemu Linux. W rękach użytkowników znajduje się już ponad 700 000 oryginalnych płytek Arduino.
  • 2015 – W ekipie zarządu Arduino dochodzi do rozłamu wskutek różnic na tle wizji dotyczącej monopolu na produkcję autorskich płytek Arduino naprzeciw koncepcji udostępniania innym producentom oryginalnej licencji na wytwarzanie płytek kompatybilnych z Arduino. Powstaje konkurencyjna marka – Genuino. Pod obiema nazwami do produkcji zostaje wdrożona płytka o nazwie „101”, wyposażona w 32-bitowy mikrokontroler Intel Curie wykonany w architekturze ARC.
  • 2016 – Podczas konferencji w ramach World Maker Faire, Massimo Banzi (szef Arduino LLC) oraz Federico Musto (Arduino SRL) podpisują porozumienie współpracy. Powstaje płytka Arduino MKR1000 wyposażona w 32-bitowy procesor SAMD21 na rdzeniu ARM Cortex-M0 oraz wbudowany moduł łączności bezprzewodowej Wi-Fi.
image

Arduino – sukces, który trwa po dziś dzień

Projekt Arduino jest tworzony przez bardzo liczną społeczność użytkowników z całego Świata, którzy również mają ogromny udział w tworzeniu bibliotek oraz modyfikacji sprzętowych platformy Arduino. Każdy użytkownik może udostępnić swój projekt w sieci, ale także zrealizować aplikację korzystając z projektów innych użytkowników zamieszczanych w internecie. Społeczność Arduino Tworzą wszelkiej maści inżynierowie, artyści, projektanci, nauczyciele, majsterkowicze, pasjonaci techniki i wiele, wiele innych osób. Dzięki temu powstaje wiele ciekawych i praktycznych projektów, które można bez końca rozwijać do bardziej zaawansowanej postaci. Jedynym ograniczeniem jest wyobraźnia konstruktora!