Arduino

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Arduino Software
Arduino Logo.svg
Arduino IDE - v0011 Alpha.png
Arduino IDE с примером простой программы.
Тип

Интегрированная среда разработки

Разработчик

Arduino Software

Написана на

Java

Операционная система

Кроссплатформенная

Последняя версия

1.5[1] (21 мая 2012 года)

Лицензия

LGPL или GPL license

Сайт

arduino.cc

Arduino Software на Викискладе

Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой набор печатных плат, продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Ардуино.

Arduino может использоваться как для создания автономных объектов автоматики, так и подключаться к программному обеспечению на компьютере через стандартные проводные и беспроводные интерфейсы.

В концепцию Ардуино не входит корпусной или монтажный конструктив. Разработчик выбирает метод установки и механической защиты плат самостоятельно. Сторонними производителями выпускаются наборы робототехнической электромеханики, ориентированной на работу совместно с платами Ардуино.[2]

Проект Arduino был удостоен почётного упоминания при вручении призов Prix Ars Electronica 2006 в категории Digital Communities.[3][4]

Аппаратная часть[править | править вики-текст]

List of Arduino CPU boards, supported by Arduino IDE v1.0.6
Стандартный конструктив Ардуино с платами расширения
Плата Arduino Diecimila

Под торговой маркой Ардуино выпускается несколько плат с микроконтроллером (англ. boards) и периферийные платы (англ. shields). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).

Конструктив[править | править вики-текст]

Ардуино и Ардуино-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Ардуино посредством установленных на них штыревых разъёмов. Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки. Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.

Микроконтроллер[править | править вики-текст]

В линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие. Есть также плата на процессоре ARM Cortex M3 AT91SAM3X8E с частотой тактирования 84 МГц.[5] В микроконтроллер предварительно прошивается загрузчик (BootLoader), поэтому внешний программатор не нужен. Тем не менее большинство плат имеет штыревой разьем для внутрисхемного программирования (ICSP).

Периферия[править | править вики-текст]

Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакого буферизирования, защиты, конвертации уровней или подтяжек, как правило, нет. Микроконтроллеры питаются от 5В или 3,3В, в зависимости от модели платы. Соответственно порты имеют такой же размах допустимых входных и выходных напряжений. Программисту доступны некоторые специальные возможности портов ввода-вывода микроконтроллеров, например широтно-импульсная модуляция (ШИМ), аналогово-цифровой преобразователь (АЦП), интерфейсы UART, SPI, I2C. Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.

Помимо портов на платах микроконтроллеров иногда устанавливается периферия в виде интерфейсов USB или Ethernet. Опциональный набор внешней периферии на модулях расширения включает в себя[6]:

  • USB Device (чаще всего как виртуальный COM порт через FTDI FT232, имеются также версии с эмуляцией USB HID Class клавиатур и мышек).
  • Проводной и беспроводной Ethernet как на основной плате так и на платах расширения.[7]
  • Модуль GSM и другие беспроводные интерфейсы[8].
  • USB Host[9].
  • SD card.
  • Модуль управления низковольтным мотором на базе L298. Поддерживаются шаговый и коллекторный двигатели с напряжением до 12В и током до 2А на канал. Могут подключаться также реле, электромагниты и т. п. Модуль не имеет гальваноразвязки.
  • Графический ЖКИ индикатор.
  • Модуль с макетным полем.

Сторонние производители выпускают широкую гамму датчиков и исполнительных устройств, подключаемых к Ардуино. Например, гироскопы, компасы, манометры, гигрометры, термометры, релейные модули, индикаторы, клавиатуры и т. п.

Некоторые модели микроконтроллерных плат[править | править вики-текст]

См. также List of Arduino boards and compatible systems (англ.)русск..

Оригинальные платы Arduino производит Smart Projects. Некоторые модели микроконтроллерных плат:[10]

Концепция программирования[править | править вики-текст]

Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную с сайта Ардуино. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.

Язык программирования[править | править вики-текст]

Язык программирования Ардуино является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.

  • Программы, написанные программистом Ардуино, называются скетчи и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
  • Обязательную в C++ функцию main() препроцессор Ардуино создает сам, вставляя туда необходимые «черновые» действия.
  • Программист должен написать две обязательные для Ардуино функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.
  • В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых библиотек. Эти заголовочные файлы добавит препроцессор Ардуино в соответствии с конфигурацией проекта.
  • Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
  • Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск проблем.

Простейшая Ардуино-программа состоит из двух функций:

  • setup(): функция вызывается однократно при старте микроконтроллера.
  • loop(): функция вызывается после setup() в бесконечном цикле все время работы микроконтроллера.

Так выглядит полный текст простейшей программы (скетча) мигания светодиодом:

#define LED_PIN 13
 
void setup () {
  pinMode (LED_PIN, OUTPUT); // Enable pin 13 for digital output
}
 
void loop () {
  digitalWrite (LED_PIN, HIGH); // Turn on the LED
  delay (1000); // Wait one second (1000 milliseconds)
  digitalWrite (LED_PIN, LOW); // Turn off the LED
  delay (1000); // Wait one second
}

Все используемые в примере функции являются библиотечными. В комплекте Arduino IDE имеется множество примеров программ. Существует перевод документации по Arduino на русский язык[11][12].

Загрузка программы в микроконтроллер[править | править вики-текст]

Закачка программы в микроконтроллер Ардуино происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе Atmel AVR Application Note AN109. Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется отдельный переходник.

Пользователь может самостоятельно запрограммировать загрузчик в чистый кристалл. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешевых программаторов.

Альтернативные IDE[править | править вики-текст]

Fritzing
Язык Minibloq
  • Visualmicro — плагин к Microsoft Visual Studio для работы с Ардуино.
  • Fritzing (англ.)русск. — простая Ардуино-ориентированная система проектирования и документирования схемотехники.

Графические языки программирования[править | править вики-текст]

Открытые архитектура и код[править | править вики-текст]

Документация, прошивки и чертежи Arduino распространяются под лицензией Creative Commons Attribution ShareAlike 2.5 и доступны на официальном сайте Arduino. Рисунок печатной платы для некоторых версий Arduino также доступен.[10] Исходный код для интегрированной среды разработки и библиотек опубликован и доступен под лицензией GPLv2.[13]

Клоны[править | править вики-текст]

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией «copyleft», разработчики выразили желание, чтобы название «Arduino» (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения. В официальном документе об использовании названия Arduino подчеркивается, что проект открыт для всех желающих работать над официальным продуктом.[14]

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila, сделанное группой пользователей, что привело к выпуску эквивалентной платы, названной Freeduino. Название Freeduino не является торговой маркой и может использоваться в любых целях.[15]

Некоторые программно и аппаратно совместимые продукты избегают названия «Arduino», используя в вариантах собственного названия только «duino». Они были коммерчески выпущены другими производителями.

Команда разработчиков[править | править вики-текст]

Ядро команды разработчиков Arduino составляют: Массимо Банци (Massimo Banzi), Девид Куартиллье (David Cuartielles), Том Иго (Tom Igoe), Джанлука Мартино (Gianluca Martino), Девид Меллис (David Mellis) и Николас Замбетти (Nicholas Zambetti).

См. также[править | править вики-текст]

  • Mbed — проект онлайн компилятора, ориентированный на платформу ARM Cortex-M. Как и Arduino, упрощает для программиста работу с низким уровнем аппаратуры и предлагает набор библиотек для работы со сложной периферией. Процессорные платы для платформы делают различные производители под своими брендами. Например, Nucleo[16] от ST Microelectronics конструктивно совместим с платами расширения Arduino, а платы Mbed и LPCXpresso от NXP конструктивно похожи на Arduino Nano.
  • Simplecortex (англ.)русск. — проект, аналогичный Arduino, но с собственным процессором и IDE. Совместим с Arduino по платам расширения.
  • pcDuino — набор плат с процессором Allwinner A1X под управлением ОС Linux или Android, совместимых с периферийными платами Ардуино.

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]