Arduino jest platformą do systemów wbudowanych (embedded), opartą na projekcie open hardware/software, przeznaczoną dla mikrokontrolerów ATMEL AVR (chociaż nie ograniczoną wyłącznie do nich), stanowiących cześć pojedynczego obwodu drukowanego (PCB) z wbudowaną obsługą linii wejścia/wyjścia I/O oraz standaryzowanym językiem programowania. Nazwa Arduino nie odnosi się zatem do pojedynczego, określonego urządzenia, lecz do zbioru technologii zdefiniowanych przez grupę Arduino.
O ogromnej i stale rosnącej popularności tej platformy zdecydowało zjawisko podobne do tego, jakie wywołało pojawienie się komputera Apple Macintosh. Ów komputer jako pierwszy zaoferował użytkownikom nieznaną wcześniej łatwość obsługi, co sprawiło, że zainteresowali się nim ludzie nie mający pojęcia dużej wiedzy o systemach operacyjnych, komendach itp. Użytkownicy chcieli po prostu korzystać z komputera nie zagłębiając się w zasady jego działania. Z kolei obecnie ideę łatwości obsługi reprezentują smartphone’y. Podobne podejście w segmencie systemów wbudowanych prezentuje Arduino, oferujące użytkownikom dobrze przemyślaną konstrukcję modułową płytek o łatwej do poszerzenia funkcjonalności (m.in. za pomocą dużej liczby dostępnych płyt rozszerzeń zwanych potocznie shieldami tworzona jest struktura wielopoziomowa – tzw. „kanapka”) oraz dzięki dobrze opracowanemu środowisku projektowemu Arduino IDE. Wystarczy zatem zestawić odpowiednią konfigurację sprzętu i przesłać do niej program, aby otrzymać działające, gotowe urządzenie.
Arduino jest zatem kierowane do ludzi, którzy nie mając dużej wiedzy o systemach wbudowanych, chcieliby móc je zbudować w celu realizacji swoich potrzeb (np. wyobraźmy sobie architekta, który chciałby stworzyć kolorową iluminację fasady zaprojektowanego przez siebie budynku przy pomocy diod LED RGB).
Platforma może być wykorzystana do tworzenia urządzeń samodzielnych lub może być podłączana do komputera-hosta. Co ważne, platforma ta działa w środowiskach Windows, Linux oraz Macintosh OS X. Język programowania Arduino jest oparty na projekcie Wiring (aplikację buduje się definiując sieć połączeń między elementami składowymi) i zasadniczo na języku C/C++.
Typowa płytka Arduino zawiera mikrokontroler z wyprowadzonymi cyfrowymi i analogowymi liniami wejścia/wyjścia, interfejs USB, Ethernet lub szeregowy do połączenia z komputerem-hostem. Komputer wykorzystywany jest do programowania (mikrokontroler na płycie Arduino posiada zaimplementowany bootloader – dzięki temu nie jest wymagany dedykowany programator) oraz do interakcji w czasie działania z Arduino. Ponieważ platforma Arduino jest całkowicie otwarta, poza możliwością zakupu wstępnie zmontowanych płytek, dostępne są również schematy sprzętowe dla osób chcących samodzielnie zbudować swoje własne Arduino.
Przegląd gotowych zestawów Arduino otwiera bazowy Arduino Uno (A000066). Został on zbudowany z wykorzystaniem 8-bitowego mikrokontrolera ATMEGA328. Jego zasoby to 32 kB pamięci programu Flash, 2 kB pamięci danych SRAM i 1 kB pamięci nieulotnej EEPROM. Mikrokontroler taktowany jest zegarem 16 MHz (na płytce zamontowany został generator kwarcowy do tego celu). Płytka oferuje 14 linii wejścia/wyjścia, z których 6 może zostać użytych jako wyjścia PWM (sterowanie urządzeń sygnałami o zmiennym współczynniku wypełnienia). 6 linii z ogólnej liczby 14 może pracować jako analogowe wejścia. Poza tym na płytce otrzymujemy gniazdo USB do podłączenia komputera-hosta, gniazdo zasilające, złącze ICSP (In-Circuit Serial Programming z użyciem programatora zewnętrznego) oraz przycisk Reset. W roli konwertera USB-UART TTL (interfejs szeregowy) użyto wstępnie zaprogramowanego mikrokontrolera ATMEGA16U2.
Przegląd podstawowych parametrów płytek Arduino dostępnych w ofercie TME można znaleźć w poniższej tabelce:
Nazwa zestawu | Mikrokontroler | Ilość linii I/O /w tym wyjść PWM /wejść analogowych | Interfejs | Gniazda | Złącza | Liczba przycis-ków | Uwagi |
Arduino UNO (A000066) | ATMEGA328 (16 MHz, 32 kB Flash, 2 kB SRAM, 1 kB EEPROM) | 14/6/6 | USB | Zasilające, USB, kołkowe | ICSP | 1 | Podstawowy, USB-UART konwerter ATMEGA 16U2, THT |
Arduino Due (A000062) | AT91SAM3X8E (ARM, 84 MHz, 512 kB Flash, 96 kB SRAM) | 54/12/12 | USB OTG (Host/Slave), 4xUART, 2xTWI (SPI/I2C) | Zasilające, USB x2, kołkowe | SPI, JTAG | 2 | SMD |
Arduino Mega 2560 (A000067) | ATMEGA2560 (16MHz, 256 kB Flash, 8 kB SRAM, 4 kB EEPROM) | 54/15/16 | USB, 4x UART | Zasilające, USB, kołkowe | ICSP | 1 | SMD |
Arduino Mini (A000087) | ATMEGA328 (16MHz, 32 kB Flash, 2 kB SRAM, 512 B EEPROM) | 14/6/8 | UART | kołkowe | - | 1 | SMD |
Arduino Micro (A000053) | ATMEGA32U4 (16MHz, 32 kB Flash, 2,5 kB SRAM, 1 kB EEPROM) | 20/7/12 | USB | kołkowe | ICSP | 1 | Konwersja USB-UART ATMEGA32U4, SMD |
Arduino Nano (A000005) | ATMEGA328 | 14/6/8 | USB | USB, kołkowe | ICSP | 1 | Konwerter USB-UART FT232RL, SMD |
Arduino Leonardo (A000057) | ATMEGA32U4 | 20/7/12 | USB | Zasilające, USB, kołkowe | ICSP | 1 | Konwersja USB-UART ATMEGA32U4, SMD |
Arduino YUN (A000008) | ATMEGA32U4 | 20/7/12 | Ethernet, WiFi, USB OTG | MicroSD, USB x2, kołkowe | ICSP | 3 | Procesor Atheros AR9331 (Linux on-board), SMD |
Arduino Esplora (A000095) | ATMEGA32U4 | 20/7/12 | USB | USB, LCD, TinkerKit (płytki rozszerzeń) | ICSP | 5 | Płytka zaprojektowana jako baza pod kontroler do konsoli, zawiera akcelerometr, czujnik oświetlenia i temperatury, LED RGB, potencjometr liniowy, joystick, mikrofon, buzzer, SMD |
Arduino Ethernet (A000068) | ATMEGA328 | 14/4/6 | Ethernet | Zasilające, RJ45, microSD, kołkowe | ICSP | 1 | Kontroler Ethernet-SERIAL Wiz5100, SMD |
Arduino Robot (A000078) | ATMEGA32U4 x2 | TWI (I2C/SPI), UART, USB | Zasilające, USB, kołkowe, MMC/SD, baterii 4x AA | ICSP | 7 | Zbudowany z użyciem 2 okrągłych płyt, wyświetlacz TFT 160x128 1,77”, czujnik podczerwieni |
Ofertę uzupełnia szeroka gama płytek rozszerzeniowych (shield).
Środowisko Arduino IDE zaprojektowane jest w sposób przyjazny dla hobbystów i osób nie mających wiele wspólnego z projektowaniem oprogramowania. Oczywiście jest ono całkowicie bezpłatne i możliwe do pobrania ze strony grupy Arduino (www.arduino.cc). Społeczność użytkowników platformy Arduino jest ogromna i całkowicie otwarta, bardzo łatwo odnaleźć w Internecie filmy, samouczki, kody programów oraz kompletne projekty powstałe z jej wykorzystaniem.
REKLAMA |
REKLAMA |