Урок №1. Экосистема Ардуино

Вы решили попробовать свои силы с ардуино или пока просто присматриваетесь к этой платформе? Тогда Вы пришли на нужную страницу!

Прежде чем мы напишем нашу первую программу (скетч) для Ардуино и соберем первую схему, давайте сначала быстренько пробежимся по «экосистеме» Ардуино.

Кто уже знаком с экосистемой Ардуино, знает из чего она состоит и готов уже написать первую программу, тот смело может переходить к следующему уроку .


Экосистема Ардуино

Конечно, главное в экосистеме Ардуино – это, конечно же, сама плата Ардуино. Она может выглядеть по-разному.

Но сюда же входят:

  • Среда программирования – 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!» (т.е. «Привет, Мир!»).

Обязательно пройдите тест к этому уроку!

Видео-версия урока

Добавить комментарий