Вы решили попробовать свои силы с ардуино или пока просто присматриваетесь к этой платформе? Тогда Вы пришли на нужную страницу!
Прежде чем мы напишем нашу первую программу (скетч) для Ардуино и соберем первую схему, давайте сначала быстренько пробежимся по «экосистеме» Ардуино.
Кто уже знаком с экосистемой Ардуино, знает из чего она состоит и готов уже написать первую программу, тот смело может переходить к следующему уроку .
Экосистема Ардуино
Конечно, главное в экосистеме Ардуино – это, конечно же, сама плата Ардуино. Она может выглядеть по-разному.
Но сюда же входят:
- Среда программирования – Arduino IDE
- Базовая программная библиотека Ардуино
- Внешние программные библиотеки
- Шилды – платы расширения
- Различные модули и компоненты
Коротко обо всем по порядку…
Плата Ардуино
- Легенда гласит, что название платы происходит от местечка в Италии, где, считается, и зародилась первая версия платы в 2003-2005 году.
- Теперь существует огромное количество различных плат Ардуино, отличающихся друг от друга своими возможностями, габаритами и конечно же ценой.
- Среди них есть как официальные модели, так и множество различных клонов, производимых главным образом в Китае.
- Официальные модели лицензированы проектом Ардуино, что гарантирует их полную совместимость,
- Производители клонов не могут дать гарантии полной совместимости, хотя в большинстве своем они все прекрасно работают и составляют, пожалуй, самую многочисленную группу плат на руках мейкеров.
- Вообще, Ардуино – это открытая платформа, и потому плату можно свободно репродуцировать и даже изготовить самому, хоть даже из спортивного интереса.
- Любители есть. Как видите, есть даже наборы Ардуино DIY (сделай ардуино сам). Единственное, чего нельзя делать, это официально называть свой клон «Ардуино» .
- Лично я покупаю свои платы в Китае, и они прекрасно работают, хоть и являются клонами.
Микроконтроллер
Многие ошибочно называют плату ардуино микроконтроллером. Ядром платы Ардуино действительно является микроконтроллер – Atmega. На него-то и записывается программа. А все остальное на плате – это т.н. обвязка микроконтроллера, упрощающая работу с ним и дающая быстрый старт в разработке нового устройства, точнее, его прототипа.
Кстати, в конечной версии устройства, предполагающего хоть какое-то серийное производство, сама плата Ардуино обычно не используется: микроконтроллер и все необходимые компоненты обычно размещаются на одной плате. Так выходит гораздо компактнее и дешевле в производстве.
Ну, а мы же, простые мейкеры, кустари и домашние умельцы, в своих проектах чаще используем Ардуино как готовый модуль в составе нашего устройства.
Какую же плату купить?
Как я говорил ранее, на сегодняшний день существуют десятки модификаций Ардуино:
- С интегрированными сенсорами и кнопками
- С дополнительной памятью и портами ввода-вывода, для больших проектов
- С поддержкой Ethernet и WiFi
(Что актуально в проектах «Интернет вещей»,) - Есть платы со встроенным GSM
- плата, предлагаемая для сборки 3D-принтеров и сложных роботов
- для обработки видео и распознавания звука
- для проектов c применением Android
- Есть специальная плата для отладки проектов. Ее используют продвинутые мейкеры. Ведь отладка сложных проектов Ардуино – весьма непростой процесс.
- Наконец, есть миниатюрные версии, для создания носимых устройств, например умной одежды.
Для изучения Ардуино подойдет любая из этих плат. Но я рекомендую начать с платы начального уровня – UNO или Nano.
Если вы новичок в Ардуино, приобретайте именно их. А недостающую функциональность… после компенсируете дополнительными модулями.
Uno или Nano?
Пожалуй, главное отличие между эими платами– это размер.
Я лично предпочитаю Nano, потому что эта плата, как минимум:
- компактнее, что важно при сборке конечного продукта,
- может быть размещена прямо на макетной плате, и у вас будет на порядок меньше лапши из проводов,
- кроме того Nano имеет гораздо более распространённый разъем питания – mini-usb,
- а также клоны Nano существенно дешевле своего большого брата.
Есть небольшие отличия в расположении пинов, но кол-во портов ввода-вывода у них совершенно одинаковое.
К преимуществам UNO можно отнести:
- наличие шилдов (недешевое удовольствие, откровенно говоря)
- простота ремонта,
- возможность замены микроконтроллера, который рассчитан, хоть и на значительное, но все-таки ограничеенное число прошивок.
Однако на практике, данные преимущества в нашей время мало актуальны. Клоны UNO R3, как правило, имеют припаенный микроконтроллер, а их стоимость такова, что ремонт имеет сомнительную эономическую целесообразность.
Arduino IDE
Теперь о программировании Ардуино.
Arduino IDE – это инструмент, в котором вы (пишите программу для Ардуино, загружаете на плату (т.е. «прошиваете» контроллер на плате) и отлаживаете программу.
«IDE» расшифровывается как «Integrated Development Environment» – Интегрированная среда разработки. Но я ее буду называть и не по-английски, и не по-русски, а просто ИДЕ.
С помощью этой среды вы также взаимодействуете с платой через последовательный порт: получаете отладочную информацию и даже можете управлять платой.
Альтернативные IDE
Справедливости ради, надо отметить, что Arduino IDE – далеко не единственная среда программирования Ардуино, и уж точно далеко не самая лучшая.
Надо сказать, программу для Ардуино можно писать практически в любом текстовом редакторе, хоть в Nodepad++, хоть VIM – гиковском редакторе программистов.
Правда, вам потребуется настроить скрипты прошивки, в чем новичкам разобраться будет совсем непросто.
Многие профессионалы Ардуино предпочитают даже продвинутые среды профессиональных программистов, например, Microsoft Visual Studio. Но это недешевое удовольствие, особенно если вы занимаетесь коммерческой деятельностью.
В ходе этого курса, мы будем использовать только Arduino IDE. Потому что она бесплатна, проста для начинающих и наиболее распространена.
Скачать ее можно с официального сайта https://www.arduino.cc/
Но я в одном из будущих видео планирую сделать обзор альтернативных сред разработки, где, в том числе, я покажу как веду разработку лично я.
Скетч
Программа для Ардуино называется «скетч», что переводится с английского как «эскиз», «набросок».
Этим как бы подчеркивается, что все что вы делаете с Ардуино – это создаете прототип будущего изделия … в итеративной форме, подвергая свою программу по кругу испытанию и доработке, пока не получите готовую версию устройства.
Язык программирования для Ардуино – это Си, точнее С++. Поэтому знание C++ приветствуются для прохождения данного курса, хоть и не обязательно, поскольку мы будет постигать основы этого языка по ходу данного курса.
Пример скетчка Вы можете видеть ниже:
// инициализация платы и компонентов
void setup() {
// инициализировать пин 13 на вывод:
pinMode(13, OUTPUT);
}
// главный цикл программы
void loop() {
digitalWrite(13, HIGH); // зажечь LED
delay(1000); // задержка в 1 сек.
digitalWrite(13, LOW); // погасить LED
delay(1000); // задержка в 1 сек.
}
Кстати, а вы знакомы с программированием? Пожалуйста, напишите в комментариях умеете ли вы уже программировать и на каких языках.
Базовая библиотека
Arduino IDE дает базис для разработки: определяет структуру программы, допустимые типы данных, дает набор встроенных констант, функций и объектов.
Например, если нужно получить значение с аналогового входа №1, вы вызываете функцию analogRead(1), а если вам надо подать 5V на цифровой вывод №7, надо вызывать функцию digitalWrite(7, HIGH).
Вот так просто!
Внешние библиотеки
Вместе с Arduino IDE поставляется набор библиотек. Часть из них разработана проектом Ардуино, но их относительно немного. .Другие разработаны контрибьюторами и одобрены Ардуино.
Но главный кладезь библиотек Ардуино – это конечно, Интернет…
И, пожалуй, большинство контрибьюторов ведут свои проекты на github – популярном ресурсе для хранения проектов с открытым кодом.
Вы можете и сами разработать библиотеку и выложить ее в открытый а то и платный доступ.
Двери в сообщество всегда открыты.
Шилды
Иногда определенная функциональность становится настолько популярной и востребованной, что многие производители создают готовое решение в виде отдельной платы, которая устанавливается прямо в плату Ардуино без каких-либо проводов.
Такие компоненты называется Shields – шилды.
Использование шилдов, обычно хорошо окупается. Ведь вам уже не нужно тратить кучу времени на решение проблем, которые давно решены другими.
Есть, например, шилд, покрывающий практически любую потребность в управлении двигателями при разработке робота или гоночного автомобиля.
А если надо подключить много USB-устройств, вам поможет шилд “USB Host”.
Если требуется собрать небольшую схему из радиоэлементов, вы можете разместить ее прямо на плате Ардуино, используя «PROTO SHIELD».
На рынке представлено множество шилдов – как от Ардуино, так и других производителей.
Шилды легко вставляются в плату, а также друг в друга, и в итоге может получиться целый «пирог» из шилдов.
Однако, нагромождение более чем из 2х шилдов довольно редки, и собираются, скорее, лишь для прикола и красивой фотографии, нежели ради реального дела.
Компоненты и модули
В любом проекте обязательно потребуются компоненты и модули.
Это маленькие кирпичики устройства, которые вставляются в макетную плату и подключаются к Ардуино с помощью проводов-перемычек.
К таким устройствам относятся:
- обычные радиоэлементы, такие как резисторы, кондекнсаторы, диоды и т.п.,
- различные датчики: освещенности, температуры, движения, влажности, цвета, вибраций и т.д.
Они могут быть как в виде отдельных элементов, так и готовых модулей – с расширенной функциональностью и различным способом подключения.
- Многие сложные задачи решаются с помощью микросхем
Например, (сдвиговые регистры, позволяют подключать к Ардуино больше устройств, а модули памяти потребуются, когда вам не хватит памяти Ардуино для хранения большего объема данных.
- Дисплеи
Для устройства могут потребоваться дисплеи – светодиодные и жидкокристаллические, с различными характеристиками и различнм способом подключения.
•Шаговые моторы, сервоприводы, соленоиды
и многие другие компоненты. Всех не перечислить.
Заключение
На этом всё для первого урока.
Теперь Вы знаете что такое Ардуино, какие платы бывают и из чего состоит «экосистема» Ардуино.
На следующем занятии мы перейдем от слов к делу, и напишем нашу первую программу, традиционно называемую «Hello World!» (т.е. «Привет, Мир!»).
Обязательно пройдите тест к этому уроку!