Ардуино(на фото) – семейство печатных плат на основе микроконтроллеров Atmega.
Микроконтроллер – это по сути посредник между цифровым миром и событиями в нашем окружении.
Почти все бытовые приборы, имеющие кнопки и экранчики (даже просто светодиодные) управляются микроконтроллерами.
Они трудятся в стиральных машинах, микроволновках, хлебопечках, робопылесосах, гиробордах, квадрокоптерах и электровелосипедах.
А внутри автомобиля Логан я насчитал их до десятка!
Ардуино(есть еще STM, ESP – в общем, я делал проекты на всех трех платформах) отличается от упоминаемых выше микроконтроллеров удобством подключения внешних элементов, простотой программирования (синтаксис языка Си) и широкой поддержкой группами разработчиков в интернет.
На фото – беспаечная макетная плата для моделирования и творчества – вставляя проводники и радиодетали в отверстия мы образуем связи(контакты) между ними.
Таким образом, если еще несколько десятилетий тому язык программирования бэйсик в шутку называли инструментом для домохозяек, то сейчас освоение робототехники начинают в 10-12 лет именно с Ардуино.
И если по определенным причинам повторить приведенные на этом(и не только) сайте конструкции Вам тяжело – без проблем помогут друзья/дети/внуки.
Данная статья создавалась для того, чтобы одна и та-же информация не кочевала из публикацию в публикацию и для ознакомления с миром микроконтроллеров Atmega.
Ну и естественно объем материалов был расширен для наглядности и простоты восприятия.
На фото – Arduino Pro Mini – одна из самых маленьких плат, хотя если чесно, мкроконтроллер может работать сам по себе, подвешенный на нескольких проводниках в воздухе.
Не верите?
На фото – прототип сигнализатора необходимости полива комнатных цветов, хотя поставив реле можно управлять и подающим воду насосом.
Да, отверстия по краям платы (Про Мини) – это пины(порты) ввода-вывода, они могут выпольнять как простые задачи (прочитать состояние двери – открыто/закрыто, включить выключить свет, измерить напряжение), так и управлять экранами, сервоприводами, другими усройствами.
Просто для этого потребуется больше одного пина(контакта ввода-вывода).
К примеру, подключение духстрочного LCD-экранчика на 16 сммволов в строке (такие были в пэйджерах Motorola) требует 6 пинов.
Но обычно обмен информацией происходит по двум проводам/пинам (помимо питания).
В нашем распоряжении их 21(на чипе Atmega 328), на Atmega 2560 – целых 70!
Еще, прежде чем начать, поясню почему в своих конструкциях использую Arduino Pro Mini 8MHz 3.3В.
- Энергопотребление – около 3мА – это в 10 раз меньше, чем у обычной версии Uno.
Данный факт обусловлен как вдвое меньшей рабочей частотой, так и сниженным напряжением питания.
Кроме того, отсутствует такой “лишний” потребитель как преобразователь USB-TTL (необходим только для записи программы).
Подобные вещи позволяют отказаться от использования режима сна для экономии батареи, дополнительных модулей часов реального времени и преобразователей питания.
Что выливается в простоту конструкции и неоднозначность отзывовов по поводу применяемых решений.
Надо сказать, в индикаторе полива удалось снизить показатель потребления еще на порядок, но эту уже выходит за рамки Ардуино
Для сравнения – спящая плата Pro Mini 5V 16MHz потребляет столько-же, как работающий контроллер Atmega328P на частоте 1MHz с питанием 2V. -
В отличии от Arduino Uno можно напрямую работать с GSM-модулями без риска их сжечь, да и для питания требуется одна литиевая батарея без дополнительных преобразователей напряжения.
Ну и наконец, в разы меньшая стоимость.
Единственный минус – необходимость использовать USB-TTL преобразователь для программирования:
Я использую модель на чипе CH340 (на фото под Ардуино)
Кроме того, нам понадобятся 4 провода Dupont 20см мама-мама для соединения данных плат.
При этом, земля/минус/gnd преобразователя соединяется с землей Arduino, плюс/Vcc – соответственно.
А вот сигнальные проводники (TxD, RxD) соединяются перекрестно – TX ардуино к RX преобразователя и наоборот.
Это обусловлено спецификацией последовательного протокола RS232 – TxD – канал передачи, RxD – приема.
По сути все как в телефоне – говорим мы в микрофон, а звук выходит из динамика.
С этим разобрались, но как написанная нами на компьютере программа(скетч) попадает в микроконтроллер?
Для этого существует интегрированная среда разработки (англ. Integrated development environment — IDE).
Если по-простому – это инструмент, обьединяющий редактор кода, проверяющий корректность его написания и делающий загрузку в микроконтроллер.
Для каждого семейства контроллеров используется своя среда, у нас соответсвенно Arduino IDE
Скачать и установить/распаковать программу можно(и нужно) с официального сайта Arduino IDE
Пункт software-downloads-Windows ZIP file for non admin install (на фото отмечен красной стрелкой)
Распаковать лучше в корень на диск D: (C:)
Теперь нам нужно добавить необходимые библиотеки(драйверы)
для работы ардуино с различным оборудованием.
Содержимое распаковывается с заменой файлов в каталог D:(C:)\arduino-“номерВашейверсии”\libraries
Просто версий библиотек для одного и того-же оборудования много, отличаются команды и синтаксис, поэтому выкладываю тот набор, которым пользуюсь сам(необходимо только для повторения конструкций с данного сайта).
Ну и конечно-же драйвер для USB-TTL с того-же github – из распакованного архива просто запускается установка файлом SETUP.
Вот теперь можно запустить и настроить среду разработки: D:(C:)\arduino-“номерВашейверсии”\arduino
При первом запуске Arduino IDE, Windows может запросить параметры безопасности/доступа – отмечаем галочками оба пункта, нажимаем “Разрешить доступ”
После запуска окно программы будет иметь примерно следующий вид:
Для нас тут важным является основное(белое) поле редактирования программ(скетчей) – сюда они копируются , тут мы их правим и дополняем.
Кроме того, красной цифрой один я обозначил кнопку компилляции/проверки программы(галочка).
В самом низу – черная информационная полоса для отображения статуса операций и наличии ошибок.
Однако их отсутствие далеко не всегда означает что собранная нами конструкция заработает – есть еще ошибки сборки и банально плохой контакт.
Поэтому, если планируется пользоваться конструкциями за пределами отапливаемых помещений, рекомедую прочесть инструктаж по работе с паяльником.
Над желтой двойкой – кнопка загрузки программы в микроконтроллер(стрелка вправо).
Да, специфика платы Pro Mini(вернее многих USB-TTL преобразователей) такова, что кроме этой кнопки необходимо еще нажать reset(желтая/красная кнопка) на Ардуино после появления надписи “Загружаем” в окне диагностики внизу.
Либо просто подать питание на микроконтроллер – работает не менее успешно – проверено!
Ах да, еще на снимке экрана раскрыта ветка выбора типа микроконтроллера и его частоты(Инструменты)
В нашем случае -выбираем плату “Arduino Pro or Pro Mini” , процессор Atmega 328 3.3V 8 MHz
Без этого программа будет работать некорректно , либо как правило вообще не будет работать.
Вот в общем необходимый минимум для того,чтобы приступить к сборке весов или умного улья (да и вообще любых конструкций на Ардуино).
Да, сам преобразователь USB-TTL является отнюдь не бесполезной “в быту” вещью с его помощью к примеру можно осущестить диагностику/настройку газового оборудования 4 поколения.
Но это уже совсем другая история.