Remove ads
Z Wikipedii, wolnej encyklopedii
Arduino – platforma programistyczna dla systemów wbudowanych oparta na prostym projekcie Open Hardware przeznaczonym dla mikrokontrolerów montowanych w pojedynczym obwodzie drukowanym, z wbudowaną obsługą układów wejścia/wyjścia oraz standaryzowanym językiem programowania[2].
Język programowania Arduino jest oparty na środowisku Wiring i zasadniczo na języku C/C++ (kilka prostych przekształceń kodu wykonywane przed przejściem do avr-gcc
)[3].
Celem projektu Arduino jest przygotowanie narzędzi – ogólnodostępnych, tanich, niewymagających dużych nakładów finansowych, elastycznych i łatwych w użyciu przez hobbystów. Częściowo Arduino stanowi również alternatywę dla osób, które nie mają dostępu do bardziej zaawansowanych kontrolerów, wymagających bardziej skomplikowanych narzędzi[4].
Logo programu | |
Autor | Arduino Software |
---|---|
Pierwsze wydanie | 2005 |
Aktualna wersja stabilna | 1.8.12 (13 lutego 2020; ponad 4 lata temu)[1] |
Język programowania | Java, C, C++ |
System operacyjny | wieloplatformowy |
Rodzaj | Zintegrowane środowisko programistyczne |
Licencja | LGPL lub GPL |
Strona internetowa |
Arduino może być wykorzystany do tworzenia samodzielnych interaktywnych obiektów lub może być podłączony do komputera-hosta. Typowa płyta Arduino zawiera kontroler, cyfrowe i analogowe linie wejścia/wyjścia oraz interfejs UART lub USB dla połączeń z komputerem-hostem. Komputer jest wykorzystywany do programowania kontrolera oraz do interakcji w czasie działania z Arduino. Pomimo tego że płyty Arduino generalnie nie współpracują z siecią, częstym rozwiązaniem jest łączenie jednego lub kilku Arduino z hostem sieciowym, gdzie Arduino używa się w roli sprzętowych kontrolerów, a host przyjmuje rolę sieci lub interfejsu użytkownika. Budowanie interfejsu hosta jest proste, ponieważ oprogramowanie hosta może być pisane w różnych językach. Możliwe jest programowanie interfejsu w kilkunastu językach programowania, m.in. w Javie, ActionScript, C/C++, C#, Perl, VBScript[5].
Programowanie odbywa się najczęściej za pośrednictwem Arduino IDE[6] bazującym na projekcie Processing. Sam język programowania Arduino[7] bazuje na Wiring i przypomina język C. Wewnątrz Arduino IDE kod programu jest pośrednio kompilowany przez avr-gcc
, a następnie wgrywany do podłączonej płyty Arduino. IDE działa wtedy jako emulator terminala szeregowego, pozwalając na interakcję z pracującym Arduino.
Obecnie układy Arduino bazują na mikrokontrolerach Atmel AVR. Nie jest to formalnym wymogiem i może być rozszerzony, o ile sprzęt i narzędzia będą wspierały język Arduino i zostaną zaakceptowane przez Projekt Arduino[2]. Na rynku istnieje wiele klonów inspirowanych oryginalnym Arduino, bądź kompatybilne z jego rozszerzeniami, takimi jak karty rozszerzeń, jednak rozprowadzanych pod innymi nazwami.
Obecnie sprzedawane są wstępnie zmontowane układy Arduino, jednak cały czas jest dostępny schemat sprzętowy dla tych, którzy chcą zbudować Arduino samodzielnie.
W 2008 roku projekt Arduino otrzymał wyróżnienie w kategorii Digital Communities na Prix Ars Electronica[8][9].
Projekt zapoczątkowany został w 2005 roku we Włoszech w celu zbudowania urządzenia kontrolującego studenckie projekty interakcyjne jako tańsza alternatywa dla innych dostępnych wtedy systemów prototypowania. Do października 2008 roku zostało sprzedanych ponad 50 000 sztuk Arduino[10].
Płyta Arduino składa się z 8-bitowego mikrokontrolera Atmel AVR z uzupełniającymi elementami w celu ułatwienia programowania oraz włączenia innych układów. Ważnym aspektem jest standardowy sposób, w jaki wyprowadzone są złącza, pozwalające na podłączenie płyty z mikrokontrolerem do różnych wymiennych modułów dodatkowych (nazywanych shieldami). Oficjalne płyty Arduino wykorzystują układy z serii megaAVR, a konkretnie ATmega8, ATmega168, ATmega328, oraz ATmega1280 i ATmega 2560[11][12][13]. Kilka innych układów jest wykorzystywanych w klonach Arduino. Większość płyt zawiera 5V regulator napięcia, 16 MHz rezonator kwarcowy (w niektórych odmianach rezonator ceramiczny), chociaż niektóre projekty, takie jak LilyPad działają na częstotliwości 8 MHz i rezygnują z regulatora napięcia na płycie ze względu na szczególne ograniczenia wielkości układu. Mikrokontroler Arduino jest wstępnie zaprogramowany z wykorzystaniem programu rozruchowego, co upraszcza przesyłanie programu do pamięci flash układu – w porównaniu do innych urządzeń, gdzie najczęściej potrzebny jest zewnętrzny programator mikrokontrolera.
Na poziomie konceptualnym wszystkie płyty Arduino są programowane za pośrednictwem interfejsu szeregowego RS-232, jednak sprzętowa implementacja jest zależna od konkretnej wersji. Serial Arduino zawierają prosty obwód inwertera do konwersji sygnału pomiędzy RS-232 i TTL. Obecne płyty Arduino są programowane przez USB realizowane przez adapter USB-to-Serial, taki jak układ FTDI FT232. Niektóre warianty Arduino, takie jak Arduino Mini i nieoficjalny Boarduino, używają odłączanego adaptera USB-to-Serial w formie płyty lub kabla, Bluetooth lub innych metod.
Na płycie Arduino większość pinów wejścia/wyjścia mikrokontrolera jest wyprowadzona do wykorzystania przez inne układy. Dla przykładu, Diecimila, obecnie zastąpiona przez Duemilanove, udostępnia 14 cyfrowych pinów wejścia/wyjścia – 6 które mogą wytwarzać sygnały PWM i 6 wejść analogowych. Wszystkie piny są wyprowadzone na wierzchu płyty za pośrednictwem 0,1-calowych żeńskich styków. Na rynku dostępne są płyty nazywane potocznie shieldami, które po podłączeniu za pośrednictwem wyprowadzonych pinów do płyty Arduino rozszerzają możliwości macierzystego układu o jedną lub kilka funkcjonalności, np. obsługa bezprzewodowej transmisji Bluetooth lub IrDA.
Arduino Nano oraz kompatybilne z Arduino – Barebones i Boarduino, mają dodatkowo na spodniej stronie płyty wyprowadzone męskie styki, co pozwala na podłączenie układu do płytki prototypowej.
Arduino IDE jest wieloplatformową aplikacją napisaną w języku Java, wydzieloną z IDE przygotowanego dla języka Processing i projektu Wiring. Środowisko jest zaprojektowane w taki sposób, aby było przyjazne dla hobbystów i osób niezajmujących się tworzeniem oprogramowania. IDE zawiera edytor kodu z takimi funkcjami, jak podświetlanie składni czy automatyczne wcięcia w kodzie, oraz pozwala na kompilację i wysłanie programu do płyty Arduino. Zazwyczaj nie ma potrzeby dodatkowej edycji plików Makefile lub uruchamiania programów z linii poleceń.
Standardowo IDE Arduino zawiera bibliotekę C/C++ o nazwie "Wiring" (z projektu o tej samej nazwie), dzięki czemu wykonywanie podstawowych operacji wejścia/wyjścia staje się znacznie łatwiejsze. Programy dla Arduino są napisane głównie w języku C/C++, jednak użytkownicy muszą zdefiniować jedynie dwie funkcje, aby otrzymać gotowy do uruchomienia program:
Typowy pierwszy program dla mikrokontrolera Arduino ma za zadanie spowodować miganie wbudowanej w układ diody LED. W środowisku Arduino użytkownik może napisać program w następujący sposób:
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // ustawienie pinu 13 jako cyfrowego wyjścia
}
void loop () {
digitalWrite (LED_PIN, HIGH); // włączenie diody LED
delay (1000); // odczekanie sekundy (1000 milisekund)
digitalWrite (LED_PIN, LOW); // wyłączenie diody LED
delay (1000); // odczekanie sekundy
}
Powyższy kod nie jest widziany przez kompilator jako poprawny program, więc gdy użytkownik kliknie na "Upload to I/O board" w oknie IDE kopia kodu jest zapisywana do pliku tymczasowego, gdzie dodatkowo dołączany jest nagłówek include
na początku i prostą funkcją main()
na końcu pliku:
#include "Arduino.h"
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // ustawienie pinu 13 jako cyfrowego wyjścia
}
void loop () {
digitalWrite (LED_PIN, HIGH); // włączenie diody LED
delay (1000); // odczekanie sekundy (1000 milisekund)
digitalWrite (LED_PIN, LOW); // wyłączenie diody LED
delay (1000); // odczekanie sekundy
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}
"Arduino.h" jest głównym nagłówkiem włączającym do programu bibliotekę Wiring, a funkcja main()
wykonuje tylko trzy wywołania: init()
, zdefiniowane przez IDE, oraz setup()
i loop()
zdefiniowane przez użytkownika.
IDE Arduino używa do kompilacji programów zestawu narzędzi GNU Toolchain i biblioteki AVR Libc, natomiast do uploadu programu do płyty Arduino wykorzystywany jest program AVRDude.
Oryginalne układy Arduino produkowane są przez włoską firmę Smart Projects. Niektóre układy z rodziny Arduino zostały zaprojektowane przez amerykańską firmę SparkFun Electronics.
Do tej pory wyprodukowano trzydzieści cztery wersje układów Arduino[14]:
Referencyjny schemat sprzętowy układu Arduino jest rozpowszechniany na licencji Creative Commons Attribution Share-Alike 2.5 i jest dostępny na stronie www projektu Arduino. Dostępne są również dokładne schematy budowy niektórych wersji układów Arduino[14]. Kod źródłowy IDE Arduino i biblioteki sprzętowe dla Arduino są udostępniane i rozpowszechniane na licencji GPLv2[16].
Zarówno Arduino, jak i jego klony, mogą korzystać z płyt rozszerzeń, potocznie nazywanych shieldami, które wpina się w zazwyczaj wyprowadzone złącza głównego układu. Shieldy mogą w ten sposób rozszerzać bazowy układ Arduino o różnorodne funkcje, np. dostarczać interfejs Ethernet lub Bluetooth, kontrolę silników, prototypowanie układów[17].
Przykładowe shieldy:
Od czasu, gdy projekty sprzętu i oprogramowania dla Arduino są dostępne w ramach licencji copyleft, programiści wyrazili pragnienie, aby nazwa "Arduino" (oraz jej pochodne) była używana wyłącznie w odniesieniu do oficjalnych produktów i niewykorzystywana do prac pochodnych bez zezwolenia. Oficjalny dokument dotyczący polityki używania nazwy Arduino podkreśla, że projekt jest otwarty na włączanie prac innych autorów do oficjalnego produktu[18].
W wyniku zastrzeżenia konwencji nazewnictwa Arduino grupa użytkowników Arduino utworzyła fork projektu na bazie układu Arduino Diecimila, wydając ekwiwalent oryginału pod nazwą Freeduino[19]. Nazwa Freeduino nie jest zastrzeżona i może być używana w dowolny sposób[20].
Kilka produktów kompatybilnych z Arduino unika macierzystej nazwy, używając różnych wariantów nazwy 'duino'. Komercyjne wersje tych produktów są sprzedawane przez innych producentów.
Następujące układy są w pełni lub prawie w pełni kompatybilne zarówno ze sprzętem, jak i z oprogramowaniem Arduino, w tym są zgodne z shieldami:
Następujące układy są zgodne z oprogramowaniem dla Arduino, jednak nie są kompatybilne z shieldami. Posiadają inne złącza zasilania i złącza wejścia/wyjścia, takie jak szereg pinów na spodniej stronie płytki do łączenia z płytkami prototypowymi, czy bardziej wyspecjalizowane złącza:
Zespół projektowy Arduino składa się z sześciu osób: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis i Nicholas Zambetti[21].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.