Ардуино
— это плата с процессором, которая позволяет собрать любое устройство/гаджет. Благодаря Arduino своими руками можно собрать даже свой собственный «умный дом».
Arduino — это эффективная аппаратно-программная платформа для проектирования и создания новых устройств, разработанная компанией Arduino Software и представляет собой плату с контактами для подключения дополнительных компонентов. Технические характеристики устройства зависят от модели используемого микроконтроллера. Это касается совместимости с дополнительными компонентами. Последнее обновление программной части 1.8.0 было выпущено 20 декабря 2016 года
.
Бесплатная программная интегрированная среда разработки создана на базе языков программирования C/C++ и обладает одноимённым с самим устройством название. Наличие Ардуино-совместимых плат расширяет пользовательские возможности разработки с применением аппаратных и программных компонентов.
После того как вы приобрели плату Ардуино и решили что-то сделать — изучите наш полезный и подробный материал Ардуино Нано для начинающих, где мы подробно описали все основные шаги по работе с платой и установке необходимого программного обеспечения. Также вы можете сразу перейти к Урокам или посмотреть лучшие Публикации.
Что можно создать при помощи Ардуино?
На базе Arduino можно создаются автономные и подключаемые к компьютеру проекты. Миллионы возможных комбинаций элементов программы ограничиваются только человеческой фантазией. Устройство способно получать и обрабатывать данные об окружающем мире, используя присоединяемые и программируемые датчики.
Вы можете запрограммировать систему быстро среагировать на определённое изменение, управлять светом, движущимися элементами, моторчиками и разнообразными приводами. Система подходит для домашнего и промышленного использования.
Рынок дополнительных плат постоянно обновляется, появляются новые инновационные разработки. Этому способствует полностью открытая архитектура системы. Программный код записывается на саму плату, благодаря встроенному в процессор программатору. Однако, проект может выполняться с компьютера, используя проводные или беспроводные источники передачи данных.
При их отсутствии можно приобрести дополнительный модуль, добавляющий новые функции. Большая открытая база готовых проектов и чертежей CAD открывает пользователю возможности для углублённого изучения среды, порождая новые идеи для создания собственного устройства.
Преимущества работы с Arduino
Как уже было сказано ранее, Ардуино обладает открытой архитектурой, что позволяет сторонним разработчикам полностью копировать систему. Несмотря на высокую конкуренцию, Ардуино — самое популярное аппаратно-программное средство. Это достигается благодаря простоте с многофункциональностью. Рассмотрим преимущество системы над сторонними аналогами:
- плата обладает встроенным программатором, что позволяет использовать систему без дополнительного подключения дешифратора и компилятора;
- программная часть построена на базе C/C++, что делает её простой в использовании и изучении;
- наличие библиотеки готовых проектов и чертежей CAD, доступных для свободного использования;
- для сбора устройства не требуется пайка, компоненты соединяются при помощи специальной макетной доски, перемычек и проводов;
- возможность автономной работы расширяет сферу применения устройства;
- наличие версии для работы с популярной мобильной операционной системой Android;
- большое количество дополнительных модулей как от разработчика, так и от сторонних производителей.
Создание проекта с Arduino — одно удовольствие. Дружелюбная система, наличие готовых проектов и видеоуроков и простая среда разработки позволяют реализовать даже ваши самые невероятные задумки.
Работа с Arduino IDE: что и зачем
Для работы платы и вашего будущего проекта необходимо написать и загрузить на Arduino скетч. Скетч (sketch) — программа, написанная специально для Adruno. Для выполнения данного пункта вам понадобятся:
- ардуино;
- USB-кабель Type-A;
- устройство, работающее на ОС Windows.
Скачайте Arduino IDE — бесплатную среду разработки для Ардуино с официального сайта производителя. Вместе с программой автоматически установятся драйвера для определения девайса при подключении к USB-порту. Если же Ардуино не определится — произведите ручную установку необходимых компонентов.
На схеме должен загореться зелёный светодиод при подключении к USB. Запустите приложение и приступайте к созданию собственного скетча. Проверка работоспособности и совместимости Arduino с ПО можно проверить при помощи встроенного скетча «LED». Запуск данного процесса должен вызвать мигание светодиода.
В меню Tool — Board выберите используемую плату. Далее следует загрузка скетча в Arduino при помощи кнопки «Upload». Успешное завершение данной операции подтверждается миганием светодиода оранжевого цвета на плате. Для подробного изучения Arduino IDE создано множество англоязычных и отечественных ресурсов, где рассказывается что такое Ардуино и как с ним работать.
Среда разработки оснащена стандартным менеджером добавления библиотек в виде исходного кода на языке C++. Данная возможность расширяет применение компонентов, добавляя новый функционал.
Платы и модули, раскрывающие функционал Arduino
Платы Ардуино различаются в частоте процессора, объемах памяти и поддерживаемых архитектурах. Можно выделить следующие модели:
- Arduino Uno
. Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих; - Arduino Yun
. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами; - Arduino ADK
. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона; - Arduino Due
. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти. - Arduino Nano
. Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.
Это далеко не вся линейка плат. Существуют и другие модификации, созданные для выполнения разнообразных целей. Перед приобретением платы нужно заранее продумать будущий проект и выявить требующиеся технические характеристики. Полностью раскрыть потенциал Arduino позволяют дополнительные модули, подключающиеся к PIN-слотам центральной платы. Наиболее интересные и популярные модули расширения, они же шилды:
- 3D-джойстик
. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота; - Bluetooth-модуль
. Даёт возможность управления механизмом или обменом данными через Bluetooth; - EasyVR Shield 3.0
. Разработка, служащая для распознавания голосовых команд; - Espruino Pico
. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы; - GPRS Shield
. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные; - Motor Shield
. Подключаемый модуль, позволяющий программно управлять двумя моторчиками; - Power Bank
. Аккумулятор для переносных компактных модулей на 2000 МАч.
Рассмотрев список выше, вы уже представили множество вариантов применения дополнительных модулей. Это далеко не весь список, а лишь популярные и распространённые устройства. Существуют разнообразные подключаемые картридеры, акселерометры, передатчики и модули для разнообразных сфер жизнедеятельности. Andruino начинает эффективно применяться даже в медицине.
Шилды присоединяются друг к другу методом постройки башни. Нужные платы кладутся друг на друга, что положительно сказывается на компактности устройства и отсутствию потребности в дополнительных проводах и пайке.
С чего начать?
Рекомендуем вам начать с самых простых проектов для начинающих в Ардуино:
Мы узнали что такое Ардуино и сферы его применения. Разработка систем зависит от вашей фантазии, а дополнительные компоненты способствуют достижению поставленной цели.
Небольшая цена, доступность модулей и открытая база данных помогут в реализации задумки. Готовый проект может быть как автономным, так и переносным. Наличие портативных аккумуляторов и беспроводных источников передачи данных способствуют созданию расширенной сети из группы плат и компьютеров.
Доступный язык программирования обладает возможностью установки дополнительных компонентов и библиотек. Модули добавляют возможность работы с Java. Покупайте комплект Ардуино для начинающих и реализовывайте ваши задумки! Ваша фантазия безгранична, а Arduino позволит её воплотить.
Сайт Ардуино+ (arduinoplus.ru) создан для того, чтобы помочь начинающим и профессиональным любителям радиоэлектроники в создании проектов различной сложности. Огромное количество библиотек, распиновка разных плат и устройств, библиотеки сенсоров и датчиков. Всё это включает в себя не только информацию про платы Ардуино, но и про многие-многие микроконтроллеры и устройства.
Александр Ланский
Arduino — это электронная платформа с открытым исходным кодом, которая позволяет взаимодействовать с окружающим миром. Благодаря ей можно создать всё, что придёт в голову — от простых электронных игрушек и автоматизации быта до электронной начинки боевого робота для состязаний, управляемого силой мысли (без шуток).
1
Из чего состоит Arduino?
На аппаратном
уровне это серия смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR.
Платы имеют на борту всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Чтобы сделать свой проект более интерактивным, можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).
На программном
уровне платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя.
Существует также s4a.cat — сервис, базирующийся на Scratch, позволяющий более наглядно вести разработку на Arduino. Он подойдёт для обучения детей, а также если вы разово хотите создать простое устройство без изучения языка программирования Arduino и различных документаций. Для остальных же случаев лучше придерживаться традиционного процесса разработки.
2
Нужно ли уметь паять?
Знания в области электромонтажа приветствуются, но совсем не обязательны. Простые устройства на базе Arduino часто выполняются в виде макета. Для этого используется беспаечная макетная плата (англ. breadboard), на которой происходит коммутация модулей с платой Arduino с помощью перемычек.
Макетная плата на 400 отверстий (имеются шины питания по бокам). Источник
Также существуют наборы, в которые входят сразу плата Arduino (оригинальная или от стороннего производителя), макетная плата, перемычки и различные радиоэлементы, датчики, модули. Например, такой:
Набор для изучения Arduino. Источник
3
Какие бывают платы
По производителю
Существуют как официальные версии плат Arduino, так и платы от сторонних производителей. Оригинальные платы отличаются высоким качеством продукта, но и цена тоже выше. Они производятся только в Италии и США, о чём свидетельствует надпись на самой плате.
На примере самой популярной платы Arduino UNO:
- Оригинальная плата.
Поставляется только в фирменной коробке, имеет логотип компании, на портах платы — маркировка. Цена от производителя 20 €.Оригинальная плата Arduino UNO. Источник
- Плата от стороннего производителя.
Качество хуже, однако цена начинается от 150 рублей. Качество платы может отразиться на её работоспособности в дальнейшем. Хоть это и редкость, но плата и вовсе может не работать «из коробки» — всё зависит от добросовестности изготовителя и продавца. Для работы с подобными платами требуется драйвер CH340, который находится в свободном доступе. Во всём остальном процесс разработки идентичен процессу разработки на оригинальных платах.Плата Arduino UNO от стороннего производителя. Источник
По назначению
У платы UNO достаточно портов для реализации большинства проектов. Однако иногда возможностей UNO может быть недостаточно, а иногда — избыточно. По этой причине как оригинальный, так и сторонние производители выпускают большое количество плат, различающихся характеристиками микроконтроллера, количеством портов и функциональным назначением.
Различные платы Arduino. Источник
Самые популярные из них:
- Arduino Nano — различие с UNO только в конструктивном исполнении. Nano меньше.
- Arduino Mega — плата на базе мощного микроконтроллера. Имеет большое количество портов.
- Arduino Micro — имеет встроенную поддержку USB-соединения, а потому может использоваться как HID-устройство (клавиатура, мышь, MIDI-устройство).
- Arduino Ethernet — имеет возможность подключения к сети через Ethernet-провод. На плате также расположен слот для microSD карточки.
- Arduino Mini — по характеристикам немного уступает UNO. Преимуществом платы является её миниатюрное исполнение.
- Arduino Due — плата на базе 32-разрядного ARM микроконтроллера. Имеет преимущество в производительности по сравнению с остальными.
- Arduino LilyPad — форм-фактор позволяет использовать плату в предметах одежды и текстиля.
- Arduino Yún — «нужно было ставить линукс…». Имеет поддержку дистрибутива Linux, встроенную поддержку Ethernet и Wi-Fi, слот для microSD. Как и Micro, имеет встроенную поддержку USB-соединения.
4
Установка ПО
После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE, которую можно найти на официальном сайте, а также, по необходимости, драйвер CH340.
Недавно открылась облачная платформа Arduino Create, которая покрывает большинство этапов разработки (от идеи до сборки). Вам не нужно ничего устанавливать на свой компьютер, всё необходимое платформа берёт на себя. В первую очередь — онлайн редактор кода.
В Arduino Create имеется доступ к обучающим материалам, проектам. Вы сможете общаться с профессионалами и помогать новичкам.
Среда разработки Arduino IDE
5
Особенности программирования на платформе Arduino
Термины
Программный код для Arduino принято называть скетчами (англ. sketches). У скетчей есть два основных метода: setup()
и loop()
. Первый метод автоматически вызывается после включения/сброса микроконтроллера. В нём происходит инициализация портов и различных модулей, систем. Метод loop()
вызывается в бесконечном цикле на протяжении всей работы микроконтроллера.
Порты — неотъемлемая часть любого микроконтроллера. Через них происходит взаимодействие микроконтроллера с внешними устройствами. С программной стороны порты называются пинами. Любой пин может работать в режиме входа (для дальнейшего считывания напряжения с него) или в режиме выхода (для дальнейшей установки напряжения на нём).
Любой пин работает с двумя логическими состояниями: LOW
и HIGH
, что эквивалентно логическому нулю и единице соответственно. У некоторых портов есть встроенный АЦП, что позволяет считывать аналоговый сигнал со входа (например, значение переменного резистора). Также некоторые пины могут работать в режиме ШИМ (англ. PWM), что позволяет устанавливать аналоговое напряжение на выходе. Обычно функциональные возможности пина указываются на маркировке самой платы.
Основные функции
Для базовой работы с платой в библиотеке Arduino есть следующие функции:
pinMode(PIN, type)
— указывает назначение конкретного пина PIN (значениеtype
INPUT
— вход,OUTPUT
— выход);digitalWrite(PIN, state)
— устанавливает логическое состояние на выходеPIN
(state
LOW
— 0,HIGH
— 1);digitalRead(PIN)
— возвращает логическое состояние со входа PIN (LOW
— 0,HIGH
— 1);analogWrite(PIN, state)
— устанавливает аналоговое напряжение на выходеPIN
(state
в пределах от 0 до 255);analogRead(PIN)
— возвращает значение аналогового уровня сигнала со входаPIN
(пределы зависят от разрядности встроенного АЦП. Обычно разрядность составляет 10 бит, следовательно, возвращаемое значение лежит в пределах от 0 до 1023);delay(ms)
— приостанавливает исполнение скетча на заданное количество миллисекунд;millis()
— возвращает количество миллисекунд после момента запуска микроконтроллера.
В остальном процесс программирования на Arduino такой же, как на стандартном C++.
6
Пишем первую программу
Вместо всем привычных Hello World
’ов в Arduino принято запускать скетч Blink, который можно найти в Файл
→Примеры
→01.Basics
→Blink
. Там же можно найти множество других учебных скетчей на разные темы.
Почти на всех платах размещён светодиод, номер пина которого содержится в переменной LED_BUILTIN
. Его можно использовать в отладочных целях. В следующем скетче будет рассмотрен пример управления таким светодиодом.
Рассмотрим скетч Blink:
// Эта функция запускается при старте микроконтроллера void setup() { // Назначаем пин выходом. На пине LED_BUILTIN находится встроенный светодиод, размещённый на плате pinMode(LED_BUILTIN, OUTPUT); } // Эта функция вызывается циклически void loop() { digitalWrite(LED_BUILTIN, HIGH); // Включаем светодиод (подаём на него логическую 1 — напряжение питания микроконтроллера) delay(1000); // Ждём секунду digitalWrite(LED_BUILTIN, LOW); // Выключаем светодиод (подаём на него логический 0 — напряжение земли) delay(1000); // Ждём секунду }
Прошивка
После написания необходимо «залить» скетч на микроконтроллер. Как уже говорилось, платформа Arduino берёт весь процесс прошивки микроконтроллера на себя — вам лишь необходимо подключить плату к компьютеру.
Перед прошивкой микроконтроллера нужно выбрать вашу плату из списка в IDE. Делается это во вкладке Инструменты
→Плата
. Большинство существующих плат уже там есть, но при необходимости можно добавлять другие через Менеджер Плат.
После этого нужно подключить плату Arduino к любому USB-порту вашего компьютера и выбрать соответствующий порт во вкладке Инструменты
→Порт
.
Теперь можно приступать к прошивке микроконтроллера. Для этого достаточно нажать кнопку Загрузка
, либо зайти на вкладку Скетч
→Загрузка
. После нажатия начнётся компиляция кода, и в случае отсутствия ошибок компиляции начнётся прошивка микроконтроллера. Если все этапы выполнены правильно, на плате замигает светодиод с периодом и интервалом в 1 сек.
7
Обмен данными с компьютером
У всех плат Arduino есть возможность обмена информацией с компьютером. Обмен происходит по USB-кабелю — никаких дополнительных «плюшек» не требуется. Нам нужен класс Serial
, который содержит все необходимые функции. Перед работой с классом необходимо инициализировать последовательный порт, указав при этом скорость передачи данных (по умолчанию она равна 9600). Для отправки текстовых данных в классе Serial
существуют небезызвестные методы print()
и println()
. Рассмотрим следующий скетч:
void setup() { Serial.begin(9600); // Инициализируем последовательный порт на скорости 9600 бод } void loop() { Serial.println("T for Tproger"); // Отправляем сообщение по последовательному порту и переводим на новую строку delay(1000); // Ждём секунду }
В Arduino IDE есть Монитор
порта. Запустить его можно через Инструменты
→Монитор
порта. После его открытия убедитесь, что Монитор работает на той же скорости, которую вы указали при инициализации последовательного порта в скетче. Это можно сделать в нижней панели Монитора
. Если всё правильно настроено, то ежесекундно в Мониторе должна появляться новая строка «T for Tproger
». Обмен данными с компьютером можно использовать для отладки вашего устройства.
Информацию на стороне компьютера можно не только получать, но и отправлять. Для этого рассмотрим следующий скетч:
void setup() { Serial.begin(9600); // Инициализируем последовательный порт на скорости 9600 pinMode(LED_BUILTIN, OUTPUT); // Инициализируем порт со светодиодом как выход } void loop() { if (Serial.available() > 0) // Если в буфере есть байт для чтения, то... switch (Serial.read()) { // Считываем байт с буфера case '1': digitalWrite(LED_BUILTIN, HIGH); // Если байт равен '1' — включаем светодиод break; case '0': digitalWrite(LED_BUILTIN, LOW); // Если байт равен '0' — выключаем светодиод break; case 'T': Serial.println("proger"); // Если байт равен 'T' — отправляем по серийному порту текст "proger" } }
Прошиваем микроконтроллер и возвращаемся в Монитор порта. Вводим в верхнее поле 1 и нажимаем Отправить. После этого на плате должен загореться светодиод. Выключаем светодиод, отправив с Монитора . Если же отправить символ T
, в ответ мы должны получить строку «proger
».
Таким способом можно пересылать информацию с компьютера на Arduino и обратно. Подобным образом можно реализовать связь между двумя Arduino.
8
А как подключать модули?
Для работы с датчиками и модулями их изготовители создают специальные библиотеки. Они служат для простой интеграции модулей в вашу систему. Подключение библиотеки возможно с zip файла или с помощью Менеджера Библиотек
.
Однако большое количество датчиков являются бинарными, т. е. считывать информацию с них можно простой функцией digitalRead()
.
9
Что изучить дальше?
- Синтаксис библиотеки Arduino.
- Для более сложных архитектур может пригодиться ООП.
- Примеры проектов.
- Работа на макетной плате.
- Основные модули и датчики.
Не смешно? А здесь смешно: @ithumor
Arduino Software | |
---|---|
Arduino IDE с примером простой программы. |
|
Тип | Интегрированная среда разработки |
Автор | Массимо Банци [d] |
Разработчик | Arduino Software |
Написана на | C++ |
Операционная система | Кроссплатформенная |
Последняя версия | 1.8.9[1] (15 марта2019 года) |
Лицензия | LGPL или GPL |
Сайт | arduino.cc |
Медиафайлы на Викискладе |
Arduino
— торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей.
Программная
часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная
часть представляет собой набор смонтированных печатных плат, продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.
Arduino может использоваться как для создания автономных объектов автоматики, так и подключаться к программному обеспечению на компьютере через стандартные проводные и беспроводные интерфейсы.
Частый способ применения Arduino
Конструктив
Под торговой маркой Arduino выпускается несколько плат с микроконтроллером (англ. boards
) и платы расширения (так называемые шилды
[2]
— транслитерация с англ. shields
). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).
В концепцию Arduino не входит корпусной или монтажный конструктив. Разработчик выбирает метод установки и механической защиты плат самостоятельно либо с помощью сторонних компаний. Сторонними производителями также выпускаются наборы робототехнической электромеханики, ориентированной на работу совместно с платами Arduino[3]
. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с Ардуино.
Классический
Классический конструктив Arduino с платами расширения
Классические Arduino и Arduino-совместимые платы спроектированы для монтажа в стопки через штыревые линейки. Таким образом базовую микропроцессорную плату дополняют необходимой периферией и внешними подключениями.
Существует набор плат стандартной длины («Uno», «Pro», «Leonardo») и платы с расширенным набором штыревых линеек («Mega», «Due»). Платы расширения стандартной длины могут устанавливаться и в расширенные процессорные платы.
Миниатюрные конструктивы
Arduino
Плата «Nano» установленная в беспаечную макетную плату.
Выпускаются отдельные платы уменьшенных габаритов (например, «Nano», «Micro») в габарите DIP корпусов микросхем. К ним нет плат расширения, они предназначены для установки в макетные платы.
Позже выпущена линейка Arduino «MKR» в похожем конструктиве. К ним есть небольшой набор плат расширения периферии.
Сторонние проекты
Помимо стандартных конструктивов Ардуино сторонние разработчики создали множество миниатюрных клонов, сохранив только архитектурную и программную совместимость. Среди этих клонов выделяется линейка продуктов Microduino
[4]
[5]
. Линейка содержит полноценный набор конструктивно совместимых процессорных модулей, модулей связи, сенсоров и исполнительных устройств, практически не уступая ассортименту классических модулей Arduino. Как и Arduino, сборка плат производится в стопки. Линейка оформлена в двух оригинальных конструктивах:
- бескорпусной с соединениями на миниатюрных цанговых штыревых линейках (торговая марка «Microduino Upin27 Series»). Габарит плат 25*28 мм.
- В стиле конструкторов Лего с электрическими соединениями на подпружиненных контактах и механической фиксацией, совместимой с конструкторами Лего (торговая марка «Microduino mCookie Series»).
Плата Femtoduino
Самый миниатюрный клон был выпущен под торговой маркой Femtoduino
[6]
. Его размеры всего 15*20 мм, включая разъем micro USB, стабилизатор напряжения и полный комплект ввода-вывода Arduino Uno. Той же компанией выпущен самый «нафаршированный» миниатюрный клон под торговой маркой IMUduino
. Это клон Arduino Leonardo с поддержкой USB Host (клавиатура и мышь), Bluetooth 4 Low Energy, шестиосный гироскоп/акселерометр, трехосный магнитометр (компас), барометр. Размер устройства 16*40 мм. К сожалению, проект на данный момент не предлагает совместимых по цоколевке плат расширения.
Промышленные конструктивы
Возможность применения продукции Arduino в ответственной промышленной автоматике является предметом жарких дискуссий. Однако ничто не мешает оснащать изделиями на основе ардуино объекты малой автоматизации или сбора данных. Для облегчения решения таких задач ряд сторонних компаний выпускает конструктивно законченные модули, оснащенные традиционными для автоматики клеммными колодками, корпусами для монтажа на DIN-рейку, электрически защищенными или гальванически изолированными средствами ввода-вывода.
Сама компания Arduino не выпускает такую продукцию, однако в своем магазине продает изделия компании Industrial Shields
. Также известна продукция компании Archiduino
. Решения обеих компаний основаны на процессорах AVR. Компании предлагают набор корпусов на DIN-рейку, в которые разработчик может установить ряд периферийных модулей. Компания Industruino
предлагает изделия как с AVR так и с SAMD21.
Микроконтроллер
Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика
(англ. bootloader
). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.
На случай затирания загрузчика или покупки микроконтроллера без загрузчика разработчики предоставляют возможность прошить загрузчик в микроконтроллер самостоятельно. Для этого в Arduino IDE встроена поддержка нескольких популярных дешевых программаторов, а большинство плат Arduino имеет штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG или SWD[en]
для ARM).
В Arduino IDE встроена возможность создания своих программно-аппаратных платформ. Этой возможностью пользуются сторонние компании, добавляющие в Arduino IDE свои наборы плат и компиляторов-загрузчиков к ним.
AVR
В классической линейке устройств Arduino в основном применяются микроконтроллерыAtmelAVR. Типичные процессорные платы:
- ATmega2560
(16 МГц, 256к Flash, 8к RAM, 54 порта, из них до 15 с ШИМ и 16 АЦП). Платы «Mega». - ATmega32U4
(16 МГц, 32к Flash, 2,5к RAM, 20 портов, из них до 7 с ШИМ и 12 АЦП). Платы «Leonardo», «Micro», «Yun» и др. - ATmega328
(16 МГц, 32к Flash, 2к RAM, 14 портов, из них до 6 с ШИМ и 8 АЦП). Платы «Uno», «Mini», «Nano», «Pro» и др.
В некоторых платах состав доступных портов и частота тактирования могут отличаться.
ARM
Постепенно в линейке плат стали появляться процессоры ARM. Первоначально это был AT91SAM3X8E
на плате классического конструктива («Due»). Позже появилась линейка плат Arduino «MKR» в конструктиве DIP, оснащенная контроллером SAMD21
(Cortex-M0, 48 MHz, 256к Flash, 32к RAM).
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
[7]
— Arduino-совместимые платы на Intel x86 архитектуре. Платы механически и электрически совместимы с периферийными платами Ардуино. Платы функционируют под собственной ОС Linux, поверх которой работает приложение, позволяющее загружать и исполнять скетчи Arduino.[8]
Некоторые модели микроконтроллерных плат
- См. также Список Arduino-совместимых плат.
Некоторые модели микроконтроллерных плат:[9]
Список популярных микроконтроллерных плат проекта Ардуино
- Serial Arduino, программируется через последовательное соединение (разъём DB-9), используется ATmega8.
- Arduino Extreme, с USB-интерфейсом для программирования, используется ATmega8.
- Arduino Nano 3.0, миниатюрная версия (1.85 см х 4.3 см), с питанием от USB и поверхностным монтажом ATmega328.
- Arduino Mini, ещё миниатюрнее Arduino (1.8 см х 3.3 см), использующая поверхностный монтаж ATmega328. Не содержит конвертера USB-UART.
- 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 | 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 | Нет | ||
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 | ATmega8U2ATmega16U2 | 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 | ATmega8U2ATmega16U2 | 68,6 × 53.3 |
Периферия
Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакого буферизирования, защиты, конвертации уровней, как правило, нет. Микроконтроллеры питаются от 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. Например, гироскопы, компасы, манометры, гигрометры, термометры, релейные модули, индикаторы, клавиатуры и т. п.
Концепция программирования
Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную на сайте Arduino (распространяется по условиям GPLv2)[14]
[15]
. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.
Используется комплект библиотек Arduino (по лицензии LGPL)[15]
[16]
Язык программирования
Язык программирования Arduino является стандартным C++ (используются компиляторы семейства GNU Compiler Collection) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
- Программы, написанные программистом Arduino, называются наброски
(или иногда скетчи
— транслитерация от англ. sketch
) и сохраняются в файлах с расширением *.ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++. - Обязательную в C++ функцию
main()
препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия. - Программист должен написать две обязательные для Arduino функции
setup()
иloop()
. Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле. - В текст своей программы (скетча) программист не
обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать. - Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки, и они вносятся в список компиляции.
- Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.
Так выглядит полный текст простейшей программы (скетча) мигания светодиодом, подключенного к 13 выводу («пину») Arduino, с периодом 2 секунды[17]
:
void setup () { pinMode ( 13 , OUTPUT ); // Назначение порта 13 выходом } void loop () { digitalWrite ( 13 , HIGH ); // Установка порта 13 в 1 delay ( 2000 ); // Цикл задержки на 2000 миллисекунд digitalWrite ( 13 , LOW ); // Установка порта 13 в 0 delay ( 2000 ); // Цикл задержки на 2000 миллисекунд }
Все используемые в этом примере функции являются библиотечными. В комплекте Arduino IDE имеется множество встроенных примеров программ. Существует перевод документации по Arduino на русский язык[18]
[19]
.
Загрузка программы в микроконтроллер
Закачка программы в микроконтроллер Arduino происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик создан на основе Atmel AVR Application Note AN109. Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется отдельный переходник.
Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.
Альтернативные IDE
Популярность, открытость и простота платформы Arduino вызвала большой вал сторонних программных решений. В основном это решения вокруг интеграции компилятора и бутлоадера Arduino в имеющиеся оболочки для программистов (IDE). Большой список этих инструментов имеется здесь. Среди них можно выделить как профессиональные инструменты вроде Eclipse[20]
[21]
, MicrosoftVisual Studio[22]
, Atmel Studio так и инструменты для детей вроде Scratch for Arduino.
Графические языки программирования
- 6LoWPAN
- ANT+
- Bluetooth LE
- DASH7
- IEEE 802.15.4
- Internet 0
- Межмашинное взаимодействие
- RFID
- Умная пыль
- Tera-play
- XBee
- LPWAN
- NB-Fi
- LoRa
- NB IoT
- Sigfox
- XNB
- ZigBee
- Thread
- Arduino
- Contiki
- Electric Imp
- .Net Gadgeteer
- ioBridge
- TinyOS
- Wiring
- Xively
- Ambient device
- CeNSE
- Connected car
- Домашняя автоматизация
- HomeOS
- Смарт-холодильник
- Nabaztag
- Умный город
- Smart TV
- Делая планету разумнее
- Кевин Эштон
- Адам Данкелс
- Стефано Марцано
- Дональд Норман
- Роланд Пипер
- Йозеф Прайсхубер-Пфюгль
- Джон Сили Браун
- Брюс Стерлинг
- Марк Вейсер
- Ambient Devices
- AmbieSense
- Ebbits project
- Альянс IPSO
Эта страница в последний раз была отредактирована 28 сентября 2019 в 15:09.