Arduino
| Тип | |
|---|---|
| Разработчик |
Arduino Software |
| Написана на | |
| Операционная система | |
| Последняя версия |
|
| Лицензия | |
| Сайт | |
Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой набор смонтированных печатных плат, продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.
Arduino может использоваться как для создания автономных объектов автоматики, так и подключаться к программному обеспечению на компьютере через стандартные проводные и беспроводные интерфейсы.
С 2008 года в компании-разработчике начался раскол, выразившийся в существовании двух независимых ветвей развития и продаж под одной торговой маркой: одна на сайте arduino.cc, другая на arduino.org. Докризисные изделия на обоих сайтах продаются под одинаковыми названиями. Набор новых изделий на сайтах различается. Также существует две ветви Arduino IDE, поддерживающие разный набор плат и библиотек. Одинаковые названия и пересекающиеся номера версий IDE вносят путаницу. Тем не менее, говоря об Ардуино, обычно подразумевают первоначальную ветвь проекта на сайте arduino.cc.
Содержание
Аппаратная часть[править | править вики-текст]
Под торговой маркой Arduino выпускается несколько плат с микроконтроллером (англ. boards) и платы расширения (так называемые шилды[2] — варваризм от англ. shields). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).
Конструктив[править | править вики-текст]
Arduino и Arduino-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Arduino посредством установленных на них штыревых разъёмов. Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки. Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.
В концепцию Arduino не входит корпусной или монтажный конструктив. Разработчик выбирает метод установки и механической защиты плат самостоятельно. Сторонними производителями выпускаются наборы робототехнической электромеханики, ориентированной на работу совместно с платами Arduino.[3]
Миниатюрные клоны Arduino[править | править вики-текст]
Помимо стандартных конструктивов Ардуино сторонние разработчики создали множество миниатюрных клонов, сохранив только архитектурную и программную совместимость. Среди этих клонов выделяется линейка продуктов Microduino[4][5]. Линейка содержит полноценный набор конструктивно совместимых процессорных модулей, модулей связи, сенсоров и исполнительных устройств, практически не уступая ассортименту классических модулей Arduino. Как и Arduino, сборка плат производится в стопки. Линейка оформлена в двух оригинальных конструктивах:
- бескорпусной с соединениями на миниатюрных цанговых штыревых линейках (торговая марка «Microduino Upin27 Series»). Габарит плат 25*28 мм.
- В стиле конструкторов Лего с электрическими соединениями на подпружиненных контактах и механической фиксацией, совместимой с конструкторами Лего (торговая марка «Microduino mCookie Series»).
Самый миниатюрный клон был выпущен под торговой маркой Femtoduino[6]. Его размеры всего 15*20 мм, включая разъем micro USB, стабилизатор напряжения и полный комплект ввода-вывода Arduino UNO. Той же компанией выпущен самый нафаршированный миниатюрный клон под торговой маркой IMUduino. Это клон Arduino Leonardo с поддержкой USB Host (клавиатура и мышь), Bluetooth 4 Low Energy, шестиосный гироскоп/акселерометр, трехосный магнитометр (компас), барометр. Размер устройства 16*40 мм. К сожалению, проект на данный момент не предлагает совместимых по цоколевке плат расширения.
Микроконтроллер[править | править вики-текст]
Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика (bootloader). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.
На случай затирания загрузчика или покупки микроконтроллера без загрузчика разработчики предоставляют возможность прошить загрузчик в микроконтроллер самостоятельно. Для этого в Arduino IDE встроена поддержка нескольких популярных дешевых программаторов, а большинство плат Arduino имеет штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).
В Arduino IDE от компании, базирующейся на сайте arduino.cc, встроена возможность создания своих программно-аппаратных платформ. Этой возможностью пользуются сторонние компании, добавляющие в Arduino IDE свои наборы плат и компиляторов-загрузчиков к ним. Компания на сайте arduino.org не поддерживает такую возможность.
AVR[править | править вики-текст]
В линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие.
ARM Cortex M[править | править вики-текст]
Есть также платы на процессоре ARM Cortex M.[7]
ESP8266[править | править вики-текст]
Сторонние разработчики портировали в Arduino поддержку популярного Wi-Fi микроконтроллера ESP8266. Теперь компилировать и загружать прошивку для ESP8266 со своими скетчами и поддержкой Wi-Fi можно прямо из Arduino IDE, получая одноплатную схему с поддержкой сети Wi-Fi. Подробное русскоязычное описание процесса установки и доступного API здесь, пример работы здесь.
Intel x86[править | править вики-текст]
В рамках сотрудничества со сторонними производителями в Arduino IDE была включена поддержка некоторых аппаратных средств Intel x86. Intel Galileo (процессор Intel Quark X1000 400 МГц), Intel Edison и Arduino 101[8] — Arduino-совместимые платы на Intel x86 архитектуре. Платы механически и электрически совместимы с периферийными платами Ардуино. Платы функционируют под собственной ОС Linux, поверх которой работает приложение, позволяющее загружать и исполнять скетчи Arduino.[9]
Периферия[править | править вики-текст]
Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакого буферизирования, защиты, конвертации уровней или подтяжек, как правило, нет. Микроконтроллеры питаются от 5В или 3,3В, в зависимости от модели платы. Соответственно порты имеют такой же размах допустимых входных и выходных напряжений. Программисту доступны некоторые специальные возможности портов ввода-вывода микроконтроллеров, например широтно-импульсная модуляция (ШИМ), аналогово-цифровой преобразователь (АЦП), интерфейсы UART, SPI, I2C. Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.
Помимо портов на платах микроконтроллеров иногда устанавливается периферия в виде интерфейсов USB или Ethernet. Опциональный набор внешней периферии на модулях расширения включает в себя[10]:
- USB Device (чаще всего как виртуальный COM порт через FTDI FT232, имеются также версии с эмуляцией USB HID Class клавиатур и мышек).
- Проводной и беспроводной Ethernet как на основной плате так и на платах расширения.[11]
- Модуль GSM и другие беспроводные интерфейсы[12].
- USB Host[13].
- SD card.
- Модуль управления низковольтным мотором на базе L298. Поддерживаются шаговый и коллекторный двигатели с напряжением до 12В и током до 2А на канал. Могут подключаться также реле, электромагниты и т. п. Модуль не имеет гальванической развязки.
- Графический ЖКИ индикатор.
- Модуль с макетным полем.
Сторонние производители выпускают широкую гамму датчиков и исполнительных устройств, подключаемых к Arduino. Например, гироскопы, компасы, манометры, гигрометры, термометры, релейные модули, индикаторы, клавиатуры и т. п.
Некоторые модели микроконтроллерных плат[править | править вики-текст]
- См. также Список Arduino-совместимых плат.
Некоторые модели микроконтроллерных плат:[14]
- Serial Arduino, программируется через последовательное соединение (разъём DB-9), используется ATmega8.
- Arduino Extreme, с USB-интерфейсом для программирования, используется ATmega8.
- Arduino Mini, миниатюрная версия Arduino, использующая поверхностный монтаж ATmega328. Не содержит конвертера USB-UART.
- Arduino Nano 3.0, ещё миниатюрнее, с питанием от USB и поверхностным монтажом ATmega328.
- LilyPad Arduino, минималистичный дизайн для носимых применений с поверхностным монтажом ATmega168 (в новых версиях ATmega328).
- Arduino NG, с USB-интерфейсом для программирования, используется ATmega8.
- Arduino NG plus, с USB-интерфейсом для программирования, используется ATmega168.
- Arduino BT, с Bluetooth-интерфейсом для программирования, используется ATmega168 (в новых версиях ATmega328).
- Arduino Diecimila, использует USB-интерфейс и Atmega168 в DIP28 корпусе.
- Arduino Duemilanove («2009»), на основе ATmega168 (в новых версиях ATmega328), с автоматическим выбором питания от USB или внешнего источника.
- Arduino Mega («2009»), на основе ATmega1280.
- Arduino Mega2560 R3 («2011»), на основе ATmega2560. Используется конвертер USB-UART на базе ATmega16U2.
- Arduino Uno R3 (2011), на основе ATmega328. Используется конвертер USB-UART на базе ATmega16U2.
- Arduino Ethernet (2011), на основе ATmega328. Конвертера USB-UART нет. Ethernet чип — W5100, также содержит модуль MicroSD.
- Arduino Mega ADK for Android (2011), на основе ATmega2560. Содержит USB-хост для соединения с телефонами на базе ОС Android (м/с MAX3421e). Конвертер USB-UART на базе ATmega8U2.
| Arduino | МК | Напряжение питания | Флеш-память, КБ |
EEPROM, КБ |
SRAM, КБ |
Двоичные входы/выходы |
…c ШИМ |
Аналоговые входы |
USB-интерфейс | Прочие интерфейсы |
Размеры, мм |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Due | Atmel SAM3X8E ARM Cortex-M3 | 3.3 В | 512 | Нет | 256 | 54 | 12 | 12 + 2ЦАП | ATmega16U2 | CAN, JTAG, I2C | 101,6 × 53.3 |
| ADK | ATmega2560 | 5 В | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 | MAX3421E USB хост |
101,6 × 53.3 |
| BT (Bluetooth) | ATmega328 | 5 В | 32 | 1 | 2 | 14 | 4 | 6 | Нет | Bluegiga WT11 Bluetooth | |
| Diecimila | ATmega168 | 5 В | 16 | 0.5 | 1 | 14 | 6 | 6 | FTDI | 68,6 × 53.3 | |
| Duemilanove | ATmega168/328P | 5 В | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 6 | FTDI | 68,6 × 53.3 | |
| Ethernet | ATmega328 | 5 В | 32 | 1 | 2 | 14 | 4 | 6 | Нет | Wiznet Ethernet MicroSD |
|
| Fio | ATmega328P | 3.3 В | 32 | 1 | 2 | 14 | 6 | 8 | Нет | 40,6 × 27.9 | |
| Leonardo | Atmega32u4 | 5 В | 32 | 1 | 2 | 14 | 6 | 12 | Atmega32u4 | 68,6 × 53.3 | |
| LilyPad | ATmega168V или ATmega328V | 2.7-5.5 В | 16 | 0.5 | 1 | 14 | 6 | 6 | Нет | 50 ⌀ | |
| Mega | ATmega1280 | 5 В | 128 | 4 | 8 | 54 | 14 | 16 | FTDI | 101,6 × 53.3 | |
| Mega2560 | ATmega2560 | 5 В | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 ATmega16U2 | 101,6 × 53.3 | |
| Nano | ATmega168 или ATmega328 | 5 В | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 8 | FTDI | 43 × 18 | |
| Uno | ATmega328P | 5 В | 32 | 1 | 2 | 14 | 6 | 6 | ATmega8U2 ATmega16U2 | 68,6 × 53.3 |
Концепция программирования[править | править вики-текст]
Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную на сайте Arduino. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.
Язык программирования[править | править вики-текст]
Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
- Программы, написанные программистом Arduino называются наброски (или иногда скетчи — варваризм от англ. sketch) и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
- Обязательную в C++ функцию
main()препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия. - Программист должен написать две обязательные для Arduino функции
setup()иloop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле. - В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
- Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
- Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.
Простейшая Arduino-программа состоит из двух функций:
setup(): функция вызывается однократно при старте микроконтроллера.loop(): функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.
Одна из простейших схем на Arduino — это подключение внешнего светодиода, управление которым происходит при помощи программы (скетча).
Так выглядит полный текст простейшей программы (скетча) мигания светодиодом, подключенного к 13 выводу Arduino, с периодом 2 секунды[15]:
void setup () {
pinMode (13, OUTPUT); // Назначение 13 вывода Arduino выходом
}
void loop () {
digitalWrite (13, HIGH); // Включение 13 вывода, параметр вызова функции digitalWrite HIGH - признак высокого логического уровня
delay (1000); // Цикл задержки на 1000 мс - 1 секунду
digitalWrite (13, LOW); // Выключение 13 вывода, параметр вызова LOW - признак низкого логического уровня
delay (1000); // Цикл задержки на 1 секунду
}
Все используемые в примере функции являются библиотечными. В комплекте Arduino IDE имеется множество примеров программ. Существует перевод документации по Arduino на русский язык[16][17].
Загрузка программы в микроконтроллер[править | править вики-текст]
Закачка программы в микроконтроллер Arduino происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе Atmel AVR Application Note AN109. Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется отдельный переходник.
Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.
Альтернативные IDE[править | править вики-текст]
Помимо существования двух независимых ветвей оригинальной Arduino IDE (одна на arduino.cc, другая на arduino.org) разработчик может воспользоваться инструментарием, созданным сторонними производителями. Большой список этих инструментов имеется здесь.
- Плагин к Eclipse. Подробности скрещивания есть и на русском.
- Visualmicro — плагин к Microsoft Visual Studio для работы с Ардуино.
- Fritzing — простая Ардуино-ориентированная система проектирования и документирования схемотехники.
- Поддержка Arduino встроена в Atmel AVR Studio начиная с версии 7.[18]
- Поддержка работы с Arduino встроена в IDE C-STEM Studio для языка Ch.
Графические языки программирования[править | править вики-текст]
Интересные проекты[править | править вики-текст]
- Arduinome — MIDI контроллер.
- OBDuino — маршрутный компьютер с подключением к стандартным диагностическим интерфейсам автомобилей.
- Ardupilot — автопилот для беспилотных аппаратов.
Открытые архитектура и код[править | править вики-текст]
Документация, прошивки и чертежи Arduino распространяются под лицензией Creative Commons Attribution ShareAlike 2.5 и доступны на официальном сайте Arduino. Рисунок печатной платы для некоторых версий Arduino также доступен.[14] Исходный код для интегрированной среды разработки и библиотек опубликован и доступен под лицензией GPLv2.[19]
Клоны[править | править вики-текст]
Несмотря на то, что документация на аппаратную часть и программный код опубликованы под лицензией «copyleft», разработчики выразили желание, чтобы название «Arduino» (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения. В официальном документе об использовании названия Arduino подчеркивается, что проект открыт для всех желающих работать над официальным продуктом.[20]
Команда разработчиков[править | править вики-текст]
Ядро команды разработчиков Arduino составляют: Массимо Банци (Massimo Banzi), Девид Куартиллье (David Cuartielles), Том Иго (Tom Igoe), Джанлука Мартино (Gianluca Martino), Девид Меллис (David Mellis) и Николас Замбетти (Nicholas Zambetti).
С 2008 года в компании начался раскол. Джанлука Мартино зарегистрировал другую фирму, на которую сумел оформить авторские права на торговую марку Arduino в некоторых странах. Новая компания создала альтернативную ветвь продаж оригинальных продуктов Ардуино на сайте arduino.org. Первоначальная компания контролирует продажи через сайт arduino.cc.[21][22][23] Набор новых изделий на сайтах различается. Также существует две ветви Arduino IDE, поддерживающие разный набор плат и библиотек. Одинаковые названия и пересекающиеся номера версий IDE вносят путаницу.
Награды[править | править вики-текст]
Проект Arduino был удостоен почётного упоминания при вручении призов Prix Ars Electronica 2006 в категории Digital Communities.[24][25]
См. также[править | править вики-текст]
- Mbed — проект компании ARM, аналогичный Ардуино, для микроконтроллеров на основе ядра ARM Cortex-M. Как и Arduino, содержит простой инструментарий и предлагает набор библиотек для работы с аппаратурой микроконтроллера и внешней сложной периферией. Процессорные платы для платформы делают различные производители под своими торговыми марками. Например, Nucleo[26] от ST Microelectronics конструктивно совместим с платами расширения Arduino, а платы Mbed и LPCXpresso от NXP конструктивно похожи на Arduino Nano.
- Simplecortex — проект, аналогичный Arduino, но с собственным процессором и IDE. Совместим с Arduino по платам расширения.
- pcDuino[27] — набор плат с процессором Allwinner A1X под управлением ОС Linux или Android, совместимых с периферийными платами Ардуино.
Примечания[править | править вики-текст]
- ↑ Arduino Software Release Notes
- ↑ Петин, 2014, с. 29-33.
- ↑ Робототехнические конструкторы под управлением Ардуино
- ↑ Microduino официальный сайт
- ↑ Microduino на русском
- ↑ Femtoduino — самый миниатюрный клон Arduino
- ↑ Официально выпускаемые платы с микроконтроллерами
- ↑ Intel Arduino 101
- ↑ Linux-based Arduino
- ↑ Официальная линейка изделий под маркой Ардуино
- ↑ Arduino Ethernet Shield
- ↑ XBee Shield
- ↑ USB Host Shield
- ↑ 1 2 Hardware. Проверено 26 декабря 2008. Архивировано из первоисточника 12 марта 2012.
- ↑ Мигающий светодиод на Arduino. ledjournal.info. Проверено 21 мая 2016.
- ↑ РадиоЛокН Hi-Tech — Arduino Russian
- ↑ Справочник по API ARDUINO для Android
- ↑ Новая Atmel Studio 7 импортирует код из Arduino IDE в один клик.
- ↑ Страница загрузки программного обеспечения Arduino. Software. Arduino. Архивировано из первоисточника 12 марта 2012.
- ↑ Arduino — Policy
- ↑ Arduino Wars: Group Splits, Competing Products Revealed?. makezine.com. Maker Media, Inc. (6 March 2015). Проверено 21 апреля 2015.
- ↑ Massimo Banzi: Fighting for Arduino. makezine.com. Maker Media, Inc. (19 March 2015). Проверено 21 апреля 2015.
- ↑ Arduino SRL to Distributors: “We’re the REAL Arduino”. Hackaday.com. Hackaday.com (28 March 2015). Проверено 21 апреля 2015.
- ↑ Arduino на Prix Ars Electronica 2006
- ↑ Ars Electronica Archiv / ANERKENNUNG (нем.). Проверено 18 февраля 2009. Архивировано из первоисточника 12 марта 2012.
- ↑ STM32 MCU Nucleo — STMicroelectronics
- ↑ pcDuino
Литература[править | править вики-текст]
- Петин В.А. Проекты с использованием контроллера Arduino. — БХВ-Петербург, 2014. — 400 с. — ISBN 9785977533379.
Ссылки[править | править вики-текст]
| Arduino на Викискладе? |
- arduino.cc — официальный сайт ветви arduino.cc
- arduino.org — официальный сайт ветви arduino.org
- Arduino Russian (рус.). — Неполная русская документация по языку и библиотекам. Проверено 23 июля 2010. Архивировано из первоисточника 15 мая 2012. (переводы с сайта проекта arduino.cc)
- LXF100-101:Arduino (рус.). — Цикл статей по Arduino на wiki.linuxformat.ru. Проверено 23 июля 2010. Архивировано из первоисточника 12 марта 2012.
- Интервью LXF Джанлука Мартино (Gianluca Martino, проект Arduino) (рус.). — О проекте, его развитии. Архивировано из первоисточника 12 марта 2012.
- Arduino Fever (англ.). — Статья про Arduino в журнале Make. Проверено 23 июля 2010. Архивировано из первоисточника 12 марта 2012.
- Tópico: Índice do Arduino passo-a-passo (порт.). — Обучающие материалы по Arduino с исходными кодами и видео.. Проверено 23 июля 2010. Архивировано из первоисточника 12 марта 2012.
|
||||||||||||||||||||||||

