На сегодняшний день Arduino является, пожалуй, самой популярной аппаратной платформой для обучения, прототипирования и создания разного рода проектов начального уровня. В отличие от PIC микроконтроллеров, Arduino имеет простой язык программирования высокого уровня и прозрачный способ загрузки программ. Благодаря своей простоте и дешевизне, эта платформа быстро завоевала сотни тысяч поклонников по всему миру. Именно Arduino дала старт стремительному проникновению идеи микроконтроллерного управления в массы.
Традиционно, в основе большинства Arduino лежит микроконтроллер с архитектурой AVR. По сути, это тот же RISC (Advanced Virtual RISC), но немного измененный. Единственная компания, которая выпускает такие чипы - это Atmel.
Самые простые версии Arduino представляют собой платы с уже распаянным микроконтроллером Atmel (реже ARM Cortex), регулятором напряжения и всей необходимой обвязкой. Все выводы платформы выведены на края платы, и как правило уже оборудованы разъемами.
Оригинальные платы Arduino производит только компания Smart Projects. На текущий момент имеется 15 версий Arduino, различающихся по объему оперативной памяти, flash-памяти, тактовой частоте и наличию USB интерфейса. К наиболее известным можно отнести:
Arduino Nano 3.0
Arduino Uno R3
Arduino Duemilanove
Arduino Mega2560 R3
Arduino Diecimila
Например, Arduino Uno базируется на микроконтроллере ATmega328. Имеет 15 GPIO портов, включая 6 ШИМ. Микроконтроллер снабжен 32Кб Flash-памяти и 2Кб RAM. Тактовая частота процессора 16МГц.
Версия же Nano отличается только количеством аналоговых входов (их 6 вместо 8) и типом USB-serial интерфейса. При этом, Nano гораздо компактнее чем Uno. Ниже представлена таблица сравнения 14 из 15 версий Arduino.
Для программирования Arduino не требуется внешний программатор, так как в микроконтроллере уже зашит загрузчик (BootLoader). Загрузка программы в Arduino осуществляется посредством последовательного порта (RS232), либо при помощи USB интерфейса. Таким образом, чтобы запрограммировать Arduino, достаточно подключить плату к персональному компьютеру через USB порт.
Программирование осуществляется на языке Processing/Wiring, который имеет синтаксис схожий с С++. Типичная программа на таком языке выглядит следующим образом.
Пример программы для Arduino
int thermoPin = A7;
int ledPin = 2;
int th_raw, th;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
th_raw = analogRead(thermoPin);
th = (th_raw/1024.0)*3.3*1000.0/10.0;
Serial.println( th );
delay(500);
}
Для написания программ используется свободно-распространяемый редактор Arduino IDE.
Поскольку "Arduino" является зарегистрированным товарным знаком, сторонние производители вносящие изменения в архитектуру платформы используют другие обозначения для своих продуктов. Клоны совместимы с Arduino программно и аппаратно, что означает они могут использовать программы написанные для Arduino и использовать соответствующие дополнительные модули (Shields). Список клонов достаточно велик и постоянно растет: серия Freeduino (SB, Max Serial, Through-Hole), CraftDuino, Seeeduino, Roboduino, и т.п.
Имеются также специализированные платформы на основе Arduino архитектуры:
DFRobotShop Rover - платформа для роверов, включающая H-мост;
ArduPilot - автопилот для самолетов, квадрокоптеров, лодок с поддержкой GPS и стабилизации на основе акселерометра и гироскопа;
Lightuino - платформа для управления LED-ос;
и т.п.