Arduino
Arduino IDE с примером простой программы. |
|
| Тип | |
|---|---|
| Разработчик |
Arduino Software |
| Написана на | |
| Операционная система | |
| Последняя версия | |
| Лицензия | |
| Сайт | |
| Arduino Software на Викискладе | |
Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой набор смонтированных печатных плат, продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Ардуино.
Arduino может использоваться как для создания автономных объектов автоматики, так и подключаться к программному обеспечению на компьютере через стандартные проводные и беспроводные интерфейсы.
В концепцию Ардуино не входит корпусной или монтажный конструктив. Разработчик выбирает метод установки и механической защиты плат самостоятельно. Сторонними производителями выпускаются наборы робототехнической электромеханики, ориентированной на работу совместно с платами Ардуино.[2]
Проект Arduino был удостоен почётного упоминания при вручении призов Prix Ars Electronica 2006 в категории Digital Communities.[3][4]
Содержание
Аппаратная часть[править | править вики-текст]
Под торговой маркой Ардуино выпускается несколько плат с микроконтроллером (англ. boards) и платы расширения (так называемые шилды[5] — варваризм от англ. shields). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).
Конструктив[править | править вики-текст]
Ардуино и Ардуино-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Ардуино посредством установленных на них штыревых разъёмов. Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки. Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.
Микроконтроллер[править | править вики-текст]
В линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие. Есть также плата на процессоре ARM Cortex M3 AT91SAM3X8E с частотой тактирования 84 МГц.[6] В микроконтроллер предварительно прошивается загрузчик (BootLoader), поэтому внешний программатор не нужен. Тем не менее большинство плат имеет штыревой разьем для внутрисхемного программирования (ICSP).
Периферия[править | править вики-текст]
Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакого буферизирования, защиты, конвертации уровней или подтяжек, как правило, нет. Микроконтроллеры питаются от 5В или 3,3В, в зависимости от модели платы. Соответственно порты имеют такой же размах допустимых входных и выходных напряжений. Программисту доступны некоторые специальные возможности портов ввода-вывода микроконтроллеров, например широтно-импульсная модуляция (ШИМ), аналогово-цифровой преобразователь (АЦП), интерфейсы UART, SPI, I2C. Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.
Помимо портов на платах микроконтроллеров иногда устанавливается периферия в виде интерфейсов USB или Ethernet. Опциональный набор внешней периферии на модулях расширения включает в себя[7]:
- USB Device (чаще всего как виртуальный COM порт через FTDI FT232, имеются также версии с эмуляцией USB HID Class клавиатур и мышек).
- Проводной и беспроводной Ethernet как на основной плате так и на платах расширения.[8]
- Модуль GSM и другие беспроводные интерфейсы[9].
- USB Host[10].
- SD card.
- Модуль управления низковольтным мотором на базе L298. Поддерживаются шаговый и коллекторный двигатели с напряжением до 12В и током до 2А на канал. Могут подключаться также реле, электромагниты и т. п. Модуль не имеет гальванической развязки.
- Графический ЖКИ индикатор.
- Модуль с макетным полем.
Сторонние производители выпускают широкую гамму датчиков и исполнительных устройств, подключаемых к Ардуино. Например, гироскопы, компасы, манометры, гигрометры, термометры, релейные модули, индикаторы, клавиатуры и т. п.
Некоторые модели микроконтроллерных плат[править | править вики-текст]
См. также Список Arduino-совместимых плат.
Некоторые модели микроконтроллерных плат:[11]
- 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.
Концепция программирования[править | править вики-текст]
Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную с сайта Ардуино. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.
Язык программирования[править | править вики-текст]
Язык программирования Ардуино является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
- Программы, написанные программистом Ардуино называются наброски (или иногда скетчи - варваризм от англ. sketch) и сохраняются в файлах с расширением 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 на русский язык[12][13].
Загрузка программы в микроконтроллер[править | править вики-текст]
Закачка программы в микроконтроллер Ардуино происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе Atmel AVR Application Note AN109. Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется отдельный переходник.
Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.
Альтернативные IDE[править | править вики-текст]
- Visualmicro — плагин к Microsoft Visual Studio для работы с Ардуино.
- Fritzing — простая Ардуино-ориентированная система проектирования и документирования схемотехники.
Графические языки программирования[править | править вики-текст]
Открытые архитектура и код[править | править вики-текст]
Документация, прошивки и чертежи Arduino распространяются под лицензией Creative Commons Attribution ShareAlike 2.5 и доступны на официальном сайте Arduino. Рисунок печатной платы для некоторых версий Arduino также доступен.[11] Исходный код для интегрированной среды разработки и библиотек опубликован и доступен под лицензией GPLv2.[14]
Клоны[править | править вики-текст]
Несмотря на то, что документация на аппаратную часть и программный код опубликованы под лицензией «copyleft», разработчики выразили желание, чтобы название «Arduino» (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения. В официальном документе об использовании названия Arduino подчеркивается, что проект открыт для всех желающих работать над официальным продуктом.[15]
Результатом защиты названия стало ответвление от версии платы Arduino Diecimila, сделанное группой пользователей, что привело к выпуску эквивалентной платы, названной Freeduino. Название Freeduino не является торговой маркой и может использоваться в любых целях.[16]
Некоторые программно и аппаратно совместимые продукты избегают названия «Arduino», используя в вариантах собственного названия только «duino». Они были коммерчески выпущены другими производителями.
Команда разработчиков[править | править вики-текст]
Ядро команды разработчиков Arduino составляют: Массимо Банци (Massimo Banzi), Девид Куартиллье (David Cuartielles), Том Иго (Tom Igoe), Джанлука Мартино (Gianluca Martino), Девид Меллис (David Mellis) и Николас Замбетти (Nicholas Zambetti).
См. также[править | править вики-текст]
- Mbed[17] — проект онлайн компилятора, ориентированный на платформу ARM Cortex-M. Как и Arduino, упрощает для программиста работу с низким уровнем аппаратуры и предлагает набор библиотек для работы со сложной периферией. Процессорные платы для платформы делают различные производители под своими торговыми марками. Например, Nucleo[18] от ST Microelectronics конструктивно совместим с платами расширения Arduino, а платы Mbed и LPCXpresso от NXP конструктивно похожи на Arduino Nano.
- Simplecortex — проект, аналогичный Arduino, но с собственным процессором и IDE. Совместим с Arduino по платам расширения.
- pcDuino[19] — набор плат с процессором Allwinner A1X под управлением ОС Linux или Android, совместимых с периферийными платами Ардуино.
- Intel Galileo — Arduino-совместимая плата на Intel x86 архитектуре (процессор Intel Quark X1000 400 МГц). Плата совместима с периферийными платами Ардуино. Программное обеспечение включает ОС Linux, поверх которой работает приложение, позволяющее загружать и исполнять скетчи Ардуино. Для работы с платой предназначена специальная сборка Arduino IDE for Intel Galileo.[20]
Примечания[править | править вики-текст]
- ↑ Arduino Software Release Notes
- ↑ Робототехнические конструкторы под управлением Ардуино
- ↑ Arduino на Prix Ars Electronica 2006
- ↑ Ars Electronica Archiv / ANERKENNUNG (нем.). Проверено 18 февраля 2009. Архивировано из первоисточника 12 марта 2012.
- ↑ Александрович, 2014, с. 29-33
- ↑ Официально выпускаемые платы с микроконтроллерами
- ↑ Официальная линейка изделий под маркой Ардуино
- ↑ Arduino Ethernet Shield
- ↑ XBee Shield
- ↑ USB Host Shield
- ↑ 1 2 Hardware. Проверено 26 декабря 2008. Архивировано из первоисточника 12 марта 2012.
- ↑ РадиоЛокН Hi-Tech — Arduino Russian
- ↑ Справочник по API ARDUINO для Android
- ↑ Страница загрузки программного обеспечения Arduino. Software. Arduino. Архивировано из первоисточника 12 марта 2012.
- ↑ Arduino — Policy
- ↑ Freeduino Open Designs. Проверено 3 марта 2008. Архивировано из первоисточника 12 марта 2012.
- ↑ Mbed
- ↑ STM32 MCU Nucleo - STMicroelectronics
- ↑ pcDuino
- ↑ Intel Galileo
Литература[править | править вики-текст]
- Александрович П. В. Проекты с использованием контроллера Arduino. — БХВ-Петербург, 2014. — 400 p. — ISBN 9785977533379.
Ссылки[править | править вики-текст]
| Arduino на Викискладе? |
| В Википедии есть проект «Компьютерные технологии» |
| В Википедии есть проект «Свободное программное обеспечение» |
- Arduino (англ.). — Официальный сайт. Проверено 23 июля 2010. Архивировано из первоисточника 12 марта 2012.
- Arduino Russian (рус.). — Неполная русская документация по языку и библиотекам. Проверено 23 июля 2010. Архивировано из первоисточника 15 мая 2012.
- 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.
Для улучшения этой статьи желательно?:
|
|
|||||||||||||||||||

