Создаем свой первый Arduino проект и выбираем плату
Arduino – это плата используемая для создания устройств способных взаимодействовать с окружающей средой и воспринимать различные данные из нее при помощи различных датчиков и управляющих устройств, таких как двигатели и т.д. Также это платформа с открытым исходным кодом, основанная на микроконтроллерах. Термин «открытый исходный код» означает, что все ресурсы платы, включая CAD файлы и т.д., находятся в свободном доступе для всех пользователей. Поэтому каждый может изменить их исходя из своих потребностей. Платы Arduino были разработаны для того, чтобы предоставить любому интересующемуся пользователю недорогой и легкий способ создания микроконтроллерных устройств, взаимодействующих с окружающей физической средой.
Следует выделить 2 сегмента:
- Аппаратную часть – саму плату;
- Программную часть – которая включает в себя Arduino IDE (простое и легкое в освоении программное обеспечение для написания программ Arduino).
Простота и легкость в освоении Arduino сделали данную платформу невероятно популярной по всему миру.
Arduino или чтототам-duino
Благодаря открытости Arduino, ее устройство известно и допускает свободную модификацию. Поэтому любой производитель плат может выпускать аналог платы Arduino, вносить изменения в саму плату, не говоря уже о свободной комплектации наборов (kits).
Поскольку Arduino — это бренд производителя, аналоги имеют другие, но обычно созвучные с Arduino названия — Freduino, Freeduino, DCcduino, Xdruino, Funduino, Robotale и множество других. Более того, бренд вообще может быть не указан, а будет присутствовать надпись типа for Arduino. Оригинальные Arduino производятся в Италии, большинство аналогов — в Китае. Есть и российские разработки.
Визуально большинство этих плат выглядит одинаково (на Arduino присутствует фирменный логотип) и даже имеют одинаковый синий цвет (исключения есть, но немного, Funduino, например, красного цвета). Также платы-аналоги Arduino обычно в своем названии имеют такие же приставки, как и сама Arduino, например, DCcduino UNO соответствует Arduino UNO (что такое UNO — ниже).
Безымянный аналог Arduino UNO
Аналоги обычно не уступают по качеству, зато сильно выигрывают в цене (об этом ниже).
Все инструкции, все методические разработки, уроки и т.п., ориентированные на Arduino, в полной мере подходят и для аналогов. Поэтому, если имидж для вас ничто, то смело берите другие -duinы!
Плата Ардуино Нано имеет 14 цифровых контактов, которые помечаются буквой D (цифровой, digital). Контакты используются как входы и выходы, у каждого имеется подтягивающий резистор.
Аналоговые пины обозначаются буквой А и используются как входы. У них отсутствую подтягивающие резисторы, они измеряют поданное на них напряжение и возвращают значение при помощи функции analogRead().
На некоторых цифровых пинах можно увидеть значок
. Такие контакты можно использовать в качестве выходов ШИМ. Ардуино нано оснащена шестью такими контактами – это пины D3, D5, D6, D9, D10, D11. Для работы с ШИМ выводами используется функция analogWrite().
Описание пинов Ардуино Нано
- Цифровые входы/выходы: D0-D13.
- Аналоговые входы/выходы: A0-A7 (10-разрядный АЦП).
- ШИМ: пины 3, 5, 6, 9, 10, 11.
- UART : D0 и D1 (TX и RX соответственно).
- I2C: SDA – A4, SCL -A5.
- SPI: MOSI – 11, MISO – 12, SCK – 13, SS(10).
Пробежимся по пинам:
- 0 – TX (передача данных UART), D0.
- 1 – RX (прием данных UART), D1. RX и TX могут использоваться для связи по последовательному интерфейсу или как обычные порты данных.
- 3, 29 – сброс.
- 4, 29 – земля.
- 5 – D2, прерывание INT0.
- 6 – D3, прерывание INT1 / ШИМ / AIN0.
- 7 – A4, счетчик T0 / шина I2C SDA / AIN1. AIN0 и AIN1 – входы для быстродействующего аналогового компаратора.
- 8 – A5, счетчик T1 / шина I2C SCL / ШИМ.
- 9 – 16 – порты D6-D13, из которых D6 (9й), D9 (12й), D10 (13й) и D11 (14й) используются как выходы ШИМ. D13 (16й пин) – светодиод. Также D10 – SS, D11 – MOSI, D12 – MISO, D13 – SCK используются для связи по интерфейсу SPI.
- 18 – AREF, это опорное напряжение для АЦП микроконтроллера.
- 19 – 26: аналоговые входы A0… A7. Разрядность АЦП 10 бит. A4 (SDA), A5 (SCL) – используются для связи по шине I2C. Для создания используется специальная библиотека Wire.
Микроконтроллеры обладают большими функциональными возможностями, но у них есть один недостаток – это ограниченное, по сраyвению с Arduino Mega, число выводов. Поэтому на этапе составления схемы устройства следует продумать, каким образом можно максимально упростить проект, чтобы сократить число нужных для подключения контактов.
Подготовка к работе
Перед тем как писать программы, нужно настроить плату, установить на нее прошивку, а также установить на компьютер необходимые программы.
Все примеры проверялись и тестировались на следующем оборудовании:
- плата NodeMCU ESP8266-12E;
- драйвер моторов L293D;
- I2C-дисплей 0,96″ 128 × 64;
- Adafruit NeoPixel Ring 16.
Прошивка контроллера
Для прошивки платы нам понадобится Python. Точнее, даже не он сам, а утилита esptool, распространяемая с помощью pip. Если у тебя установлен Python (неважно, какой версии), открой терминал (командную строку) и набери:
После установки esptool надо сделать две вещи. Первое — скачать с официального сайта версию прошивки для ESP8266. И второе — определить адрес платы при подключении к компьютеру. Самый простой способ — подключиться к компьютеру, открыть Arduino IDE и посмотреть адрес в списке портов.
Для облегчения восприятия адрес платы в примере будет /dev/ttyUSB0 , а файл прошивки переименован в esp8266.bin и лежит на рабочем столе.
Открываем терминал (командную строку) и переходим на рабочий стол:
Форматируем флеш-память платы:
Если при форматировании возникли ошибки, значит, нужно включить режим прошивки вручную. Зажимаем на плате кнопки reset и flash. Затем отпускаем reset и, не отпуская flash, пытаемся отформатироваться еще раз.
И загружаем прошивку на плату:
Visuino
Visuino — это бесплатная графическая среда, работающая на базе совместимых с Arduino промышленных контроллеров (ПЛК) Controllino. Она дает возможность создания сложных систем автоматизации и решений IoT (Internet of Things, интернета вещей), причем сделать это можно, просто перемещая и соединяя визуальные блоки. Программная среда автоматически генерирует код для промышленных контроллеров.
Итак, что надо сделать. Выбираем компоненты (модули) с панели компонентов и перемещаем их в область проектирования. Затем их необходимо соединить и настроить свойства. Это делается с помощью инспектора объектов.
К плюсам Visuino относится большой набор компонентов для математических и логических функций, сервоприводов, дисплеев, интернета и пр.
Когда ПЛК запрограммирован, графическая среда подсказывает доступный способ подключения к контроллеру. Это может быть последовательный порт, Ethernet, Wi-Fi или GSM.
Наконец ваш проект готов: все контроллеры прописаны, все работает. Теперь, нажав на логотип Arduino, расположенный на верхней панели, вы заставите Visuino создать коды для Arduino и открыть среду его разработки (Arduino IDE), через которую уже можно скомпилировать код и загрузить его в ПЛК.
Совет. Если установленная плата не соответствует вашему Arduino, вы можете изменить ее с помощью команды «Select Board» (Выбрать панель).
Варианты прошивки Ардуино
Прошивка с помощью Arduino IDE
Прошить плату при помощи среды разработки Arduino IDE можно в несколько шагов. В первую очередь нужно скачать и установить саму программу Arduino IDE. Также дополнительно нужно скачать и установить драйвер CH341. Плату Ардуино нужно подключить к компьютеру и подождать несколько минут, пока Windows ее опознает и запомнит.
После этого нужно загрузить программу Arduino IDE и выбрать нужную плату: Инструменты – Плата. Также нужно выбрать порт, к которому она подключена: Инструменты – Порт. Готовая прошивка открывается двойным кликом, чтобы ее загрузить на плату, нужно нажать кнопку «Загрузить» вверху панели инструментов.
В некоторых ситуациях может возникнуть ошибка из-за наличия кириллицы (русских букв) в пути к папке с кодами. Для этого файл со скетчами лучше создать и сохранить в корне диска с английским наименованием.
Прошивка с помощью программатора
Одни из самых простых способов прошивки платы – при помощи программатора. Заливка будет производиться в несколько этапов.
В первую очередь нужно подключить программатор к плате и к компьютеру. Если программатор не опознается компьютером, нужно скачать и установить драйверы.
После этого нужно выбрать плату, для которой нужно прошить загрузчик. Это делается в меню Сервис >> Плата.
Затем нужно выбрать программатор, к которому подключен контроллер. В данном случае используется USBasp.
Последний шаг – нажать на «записать загрузчик» в меню Сервис.
После этого начнется загрузка. Завершение произойдет примерно через 10 секунд.
Прошивка Arduino через Arduino
Для того чтобы прошить одну плату с помощью другой, нужно взять 2 Ардуино, провода и USB. В первую очередь нужно настроить плату, которая будет выступать в качестве программатора. Ее нужно подключить к компьютеру, открыть среду разработки Arduino IDE и найти в примерах специальный скетч ArduinoISP. Нужно выбрать этот пример и прошить плату.
Теперь можно подключать вторую плату, которую нужно прошить, к первой. После этого нужно зайти в меню Инструменты и выставить там прошиваемую плату и тип программатора.
Можно начать прошивать устройство. Как только прошивка будет открыта или написана, нужно перейти в меню Скетч >> загрузить через программатор. Для заливания прошивки не подходит стандартная кнопка загрузки, так как в этом случае прошивка будет загружена на первую плату, на которой уже имеется прошивка.
Arduino Micro – очередная миниатюрная плата, ее габариты сопоставимы со стандартным USB-накопитель.
Используемый микроконтроллер ATmega32u4 имеет все те же 32 кб оперативки + 2,5 SRAM. Цифровыми и аналоговыми пинами плата не обделена (20 цифровых +7 аналоговых). Отлично подойдет для миниатюрных проектов.
Плату можно запрограммировать, как клавиатуру и мышь, подключив в проект соответствующие библиотеки, и использовать внешние кнопки.
Шаг шестой: Поехали!
- МК — готов к работе, потому что в нём есть скетч с готовым сценарием (программой на языке Си, загруженной в МК при помощи стандартной среды разработки IDE — да, я люблю всё усложнять =)
- Собираем: компоненты и МК ставим их (или сажаем) на шилд.
- Подключаем питание. Вот на этом этапе можно было бы всё сжечь, будь у вас хлебная доска. А так — просто следите, чтобы было не больше пяти вольт. Для этого просто подключите Ардуину по USB в комп и забудьте на время, что я только что сказала про «какие-то» вольты.
- PROFIT.
Troubleshooting
Если вы всё делали правильно, то у вас всё уже давно что-то работает и сюда вы не дочитали (а покажите в комментариях, пожалуйста?). Но иногда бывает такой день, что что-нибудь невнимательно прочитаешь и привет. Основные ошибки:
1. Сожгли микроконтроллер. Вам не горозит — шилд обычно имеет все резисторы, понижает ток и напряжение докуда ей надо и всё норм. Нет, ну конечно если вы в шилд 220 вольт дадите то да, а так нет.
Что делать? делайте выводы. Шутка. Купите новый. А из этого спаяйте себе серёжки:
2. Вместо того, чтобы загрузить в МК скетч, «нажали не туда» и покалечили ему прошивку. Это примерно как снести BIOS в компьютере — вы получите груду мёртвого железа, на которое невозможно установить ось, пока не вернёшь BIOS как было.
Что делать? Ну, во-первых, это трудно сделать. Во-вторых, если да, то не всё потеряно: читайте форумы и официальный сайт, или ждите нашего нового поста. Всё, что вам нужно, это прошить МК ещё раз. It’s not rocket science!
3. Скетч не заливается. Об этом читайте выше и не сдавайтесь! Замените вашу версию IDE или ваш МК. Попробуйте перезапускать IDEкомпьютер, переподключать к разным разъемам USB.
Вот, вроде и всё. Всего три проблемы, которые мы вам только что рассказали, как миновать. В остальном просто соберите всё аккуратненько без люфтов, отходящих контактов и ошибочной копипасты скетча. Всё, теперь вы специалист в программировании микроконтроллеров!
Простая электросхема с использованием беспаечной монтажной платы
Основы работы с беспаечной монтажной платой мы рассмотрели. Давайте рассмотрим пример простой электрической цепи, в которой будем использовать breadboard.
Ниже приведен список узлов, которые понадобятся для нашей цепи. Если у вас нет именно этих деталей, можете заменить их на аналогичные. Не забывайте: одну и ту же электрическую цепь можно собрать, используя разные компоненты.
- Breadboard
- Регулятор/стабилизатор напряжения
- Блок питания
- Светодиоды
- Резисторы на 330 Ом 1/6 Вт
- Коннекторы
- Тактовые кнопки (квадрат 12 мм)
Собираем электрическую цепь
Фотография собранной электрической цепи с использованием беспаечной монтажной платы приведена ниже. В проекте используются две кнопки, резисторы и светодиоды. Обратите внимание, что две аналогичные цепи собраны по разному.
Красная плата слева – стабилизатор напряжения, который обеспечивает питание 5 В на рельсах макетки.
Схема собирается следующим образом:
- К позитивной ноге (аноду) светодиода подключается питание 5 В от соответствующей рельсы breadboard ‘а.
- Отрицательная нога (катод) светодиода, подключена к резистору 330 Ом.
- Резистор подключен к тактовой кнопке.
- Когда кнопка нажата, цепь замыкается с землей и светодиод зажигается.
Электрическая схема проекта
При прототипировании важно разбираться в электрических схемах. Давайте кратко рассмотрим электрическую схему нашей небольшой электрической цепи.
Электрическая схема – это схематическое изображение, в котором используются универсальные обозначения для отдельных электрических компонентов и отображается последовательность их подключения. Подобные элекрические схемы можно получить, используя программу Fritzing.
. К слову, рекомендуем уделить этой программе отдельное внимание. Особенно если вы хотите поделиться своими проектами с другими людьми.
Электрическая схема нашего проекта показана на рисунке ниже. Питание 5 В изображено стрелкой в верхней части схемы. 5 В подключается к светодиоду (треугольник и горизонтальная линия со стрелками). После этого светодиод подключается к резистору (R1). После этого установлена кнопка (S1), которая замыкает цепь. И в конце цепи – земля (Gnd – горизонтальная линия снизу).
Наверняка возникает вопрос: а зачем нам электрические схемы, если можно просто создать принципиальную схему подключения с использованием того же Fritzing? Например, как на подобном рисунке:
Как уже упоминалось выше, собрать одну и ту же схему можно по-разному, а вот электрическая принципиальная схема останется одинаковой. То есть, практическая имплементация может отличаться, что дает вам пространство для фантазии и более общее понимание процессов, которые происходят в вашем проекте.