Arduino: выбор платы, подключение и первая программа
Arduino — это электронная платформа с открытым исходным кодом, которая позволяет взаимодействовать с окружающим миром. Благодаря ей можно создать всё, что придёт в голову — от простых электронных игрушек и автоматизации быта до электронной начинки боевого робота для состязаний, управляемого силой мысли (без шуток).
Из чего состоит Arduino?
На аппаратном уровне это серия смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR. Подробнее о том, чем микроконтроллер отличается от микропроцессора.
Платы имеют на борту всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Чтобы сделать свой проект более интерактивным, можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).
На программном уровне платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя.
Существует также s4a.cat — сервис, базирующийся на Scratch, позволяющий более наглядно вести разработку на Arduino. Он подойдёт для обучения детей, а также если вы разово хотите создать простое устройство без изучения языка программирования Arduino и различных документаций. Для остальных же случаев лучше придерживаться традиционного процесса разработки.
Нужно ли уметь паять?
Знания в области электромонтажа приветствуются, но совсем не обязательны. Простые устройства на базе Arduino часто выполняются в виде макета. Для этого используется беспаечная макетная плата (англ. breadboard), на которой происходит коммутация модулей с платой Arduino с помощью перемычек.
Макетная плата на 400 отверстий (имеются шины питания по бокам). Источник
Также существуют наборы, в которые входят сразу плата Arduino (оригинальная или от стороннего производителя), макетная плата, перемычки и различные радиоэлементы, датчики, модули. Например, такой:
Набор для изучения Arduino. Источник
Какие бывают платы
По производителю
Существуют как официальные версии плат Arduino, так и платы от сторонних производителей. Оригинальные платы отличаются высоким качеством продукта, но и цена тоже выше. Они производятся только в Италии и США, о чём свидетельствует надпись на самой плате.
На примере самой популярной платы Arduino UNO:
-
Оригинальная плата. Поставляется только в фирменной коробке, имеет логотип компании, на портах платы — маркировка. Цена от производителя 20 €.
Оригинальная плата Arduino UNO. Источник
Плата 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-соединения.
Установка ПО
После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE, которую можно найти на официальном сайте, а также, по необходимости, драйвер CH340.
Недавно открылась облачная платформа Arduino Create, которая покрывает большинство этапов разработки (от идеи до сборки). Вам не нужно ничего устанавливать на свой компьютер, всё необходимое платформа берёт на себя. В первую очередь — онлайн редактор кода.
В Arduino Create имеется доступ к обучающим материалам, проектам. Вы сможете общаться с профессионалами и помогать новичкам.
Среда разработки Arduino IDE
Особенности программирования на платформе 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++.
Пишем первую программу
Вместо всем привычных Hello World’ов в Arduino принято запускать скетч Blink, который можно найти в Файл→Примеры→01.Basics→Blink. Там же можно найти множество других учебных скетчей на разные темы.
Почти на всех платах размещён светодиод, номер пина которого содержится в переменной LED_BUILTIN . Его можно использовать в отладочных целях. В следующем скетче будет рассмотрен пример управления таким светодиодом.
Рассмотрим скетч Blink:
Прошивка
После написания необходимо «залить» скетч на микроконтроллер. Как уже говорилось, платформа Arduino берёт весь процесс прошивки микроконтроллера на себя — вам лишь необходимо подключить плату к компьютеру.
Перед прошивкой микроконтроллера нужно выбрать вашу плату из списка в IDE. Делается это во вкладке Инструменты→Плата. Большинство существующих плат уже там есть, но при необходимости можно добавлять другие через Менеджер Плат.
После этого нужно подключить плату Arduino к любому USB-порту вашего компьютера и выбрать соответствующий порт во вкладке Инструменты→Порт.
Теперь можно приступать к прошивке микроконтроллера. Для этого достаточно нажать кнопку Загрузка, либо зайти на вкладку Скетч→Загрузка. После нажатия начнётся компиляция кода, и в случае отсутствия ошибок компиляции начнётся прошивка микроконтроллера. Если все этапы выполнены правильно, на плате замигает светодиод с периодом и интервалом в 1 сек.
Обмен данными с компьютером
У всех плат Arduino есть возможность обмена информацией с компьютером. Обмен происходит по USB-кабелю — никаких дополнительных «плюшек» не требуется. Нам нужен класс Serial , который содержит все необходимые функции. Перед работой с классом необходимо инициализировать последовательный порт, указав при этом скорость передачи данных (по умолчанию она равна 9600). Для отправки текстовых данных в классе Serial существуют небезызвестные методы print() и println() . Рассмотрим следующий скетч:
В Arduino IDE есть Монитор порта. Запустить его можно через Инструменты→Монитор порта. После его открытия убедитесь, что Монитор работает на той же скорости, которую вы указали при инициализации последовательного порта в скетче. Это можно сделать в нижней панели Монитора. Если всё правильно настроено, то ежесекундно в Мониторе должна появляться новая строка « T for Tproger ». Обмен данными с компьютером можно использовать для отладки вашего устройства.
Информацию на стороне компьютера можно не только получать, но и отправлять. Для этого рассмотрим следующий скетч:
Прошиваем микроконтроллер и возвращаемся в Монитор порта. Вводим в верхнее поле 1 и нажимаем Отправить. После этого на плате должен загореться светодиод. Выключаем светодиод, отправив с Монитора 0 . Если же отправить символ T , в ответ мы должны получить строку « proger ».
Таким способом можно пересылать информацию с компьютера на Arduino и обратно. Подобным образом можно реализовать связь между двумя Arduino.
А как подключать модули?
Для работы с датчиками и модулями их изготовители создают специальные библиотеки. Они служат для простой интеграции модулей в вашу систему. Подключение библиотеки возможно с zip файла или с помощью Менеджера Библиотек.
Однако большое количество датчиков являются бинарными, т. е. считывать информацию с них можно простой функцией digitalRead() .
Урок №2. Подключение платы к компьютеру, первая программа
На предыдущем уроке мы узнали что такое Ардуино и сделали краткий обзор «экосистемы».
Сегодня мы рассмотрим плату, подключим ее к компьютеру и напишем первую программу.
Знакомство с платой
Итак, перед нами – одна из самых распространенных плат ардуино Arduino UNO.
Для начала давайте посмотрим что мы видим на плате – только главные вещи, которые действительно имеют значение для начинающего ардуинщика, и ничего лишнего.
Микроконтроллер
Большая многоножка посередине платы – это сердце ардуино, микроконтроллер.
Говоря по-простому, микроконтроллер выполняет 4 основные функции:
- Выставляет напряжение на своих ножках
- Считывает (измеряет) напряжение на ножках
- Запоминает данные
- Производит вычисления
Выстраивание этих функций в нужной комбинации и последовательности и представляет собой процесс программирования микроконтроллера. После чего он может общаться со внешней средой и управлять подключёнными к нему устройствами:
- Считывать данные с датчиков
- Воспроизводить звук
- Вращать моторчики
- Отправлять и принимать данные и т.д.
В зависимости от модели платы здесь может стоять разный микроконтроллер. В UNO R3, например, стоит Atmega328.
Он может быть в разном корпусе: SMD или DIP.
Atmel Atmega 328 в DIP корпусе
Atmel Atmega 328 в SMD корпусе
DIP бывает впаян, а бывает съемным, как здесь, что позволяет заменить микроконтроллер в случае выхода его из строя. А ведь микроконтроллер рассчитан лишь на определенное, хоть и немалое, число прошивок. Также съемный контроллер может использоваться для быстрой смены программы на плате без подключения к компьютеру.
Ножки микроконтроллера называются пинами. Все они выведены на плате ардуино.
Пины выполняют определенную функцию, а многие из них совмещают даже сразу несколько функций.
Давайте сначала разберемся с входным питанием платы и, наконец, уже подключим ее компьютеру.
Входное питание
У платы UNO нее есть 2 основных способа питания:
- USB разъем, для подключения 5V источника питания или подключения к компьютеру
- Разъем для подключения сетевого источника питания с выходным напряжением от 7 до 12V. Т.е. сюда напрямую можно подключить хоть батарейку крону, хоть питание от светодиодной ленты. Нам он нужен только для того, чтобы ардуино работала без компьютера. Но в ходе обучения, ардуино у нас почти всегда будет подключена к компьютеру. Поэтому этот разъем нам не нужен. А для экспериментов без компьютера проще будет использовать power bank, подключаемый к разъему USB.
Да, у ардуино есть еще 3й способ питания, а для, например, ProMini он является вообще единственным. Это пин VIN (сокращение от «Voltage Input») – альтернативный способ питания, который полезен, например, если ваше устройство будет иметь 2 способа питания: от сети и аккумулятора. Компаратор на плате сам выберет питание с наибольшим напряжением. Диапазон напряжение тоже от 7 до 12V.
Все, для написания и понимания первой программы ардуино этого более чем достаточно.
Настало время подключить плату к компьютеру и написать первую программу.
Подключение к компьютеру
Нам потребуется установить среду программирования Arduino IDE.
Я не буду показывать как установить Arduino IDE на ваш компьютер, поскольку в наше время это уже достаточно простой процесс. Все что вам нужно – зайти на официальный сайт ардуино, скачать программу для своей операционной системы и следовать инструкции, которая даже не требует прочтения. Разумеется, вам потребуется обладать правами администратора своего компьютера.
В ходе установки будут также поставлены драйверы платы. А в случае необходимости, от вас потребуют установить java, поскольку Arduino IDE – кросс-платформенная среда и написана на Java.
Опционально может потребоваться установка драйвера китайской ардуино.
Если у вас все-таки возникнут трудности в установке Arduino IDE и подключению платы к компьютеру – напишите, пожалуйста, об этом в комментариях, и я добавлю ссылку на страницу помощи.
Итак, Arduino IDE установлена, плата подключена.
Давайте теперь запустим Arduino IDE. Как только вы запустили программу, перед вами открывается окно с новым пустым скетчем:
Этот скетч не делает ровным счетом ничего, но нам его достаточно, чтобы проверить подключение платы.
Для начала выберем нашу плату, через меню Tools > Board: … :
Я осмелюсь предположить, что у вас Arduino/Genuino Uno или Arduino Nano. ?
Теперь давайте выберем номер порта к которому подключена Arduino, через меню «Tools > Port:»
У меня он 8й, и никогда не бывает 1м. Подключая разные платы к разным портам компьютера, порт будет меняться, и его придется время от времени здесь переключать. У вас может быть подключено сразу несколько плат к компьютеру, и все они будут на своему порту.
Теперь давайте сохраним этот пустой скетч:
- нажмем Ctrl+S,
- или кнопку со стрелкой вниз,
- или выберем меню – File > Save.
Но давайте сразу же запоминать все горячие клавиши, которые у нас встречаются на пути. Ведь именно так делают настоящие программисты. ?
Обратите внимание, что Arduino IDE сохраняет скетч в одноименную папку. Сам скетч имеет расширение «.ino». Если вы попробуете открыть скетч, находящийся в папке с именем, отличным от имени файла скетча, то IDE будет ругаться и попросит пересохранить его.
Дело в том, что у Arduino IDE папка скетча играет роль проекта, и все файлы программы, помещенные в папку со скетчем автоматически считаются частью одного проекта, а сам скетч – главным файлом проекта. Но нам еще далеко до разделения программы на несколько файлов.
Давайте загрузим нашу пустую программу на плату:
Можно нажать на кнопку со стрелкой вправо , можно выбрать через меню Sketch > Upload,
а лучше просто нажмите Ctrl+U.
В результате наш скетч сначала будет проверен на ошибки, потом он будет скомпилирован (т.е. преобразован в цифровой вид, пригодный для заливки в микроконтроллер) и уже затем будет загружен на плату. В результате, в строке статуса, вы должны увидеть сообщение «Done uploading» (загрузка завершена)
Если увидели, значит все прекрасно!
Обращу внимание на служебную информацию, в окне протокола:
Это очень важная информация: тут написано сколько памяти микроконтроллера мы израсходовали. Пока почти нисколько. Но в будущем, когда вы будете разрабатывать серьезные приложения, вопрос эффективного использования памяти будет всегда стоять очень остро. Ее у ардуино, как видите, совсем немного, и расходуется она очень быстро.
Обратим внимание еще на несколько кнопок:
– verify, верификация, проверка программы. Эту кнопку вы нажимаете всегда, когда хотите подвести очередную черту под своей программой – проверить и исправить синтаксические ошибки в программе, скомпилировать ее. Но давайте сразу запомним комбинацию Ctrl+R.
– это монитор последовательного порта. Он нам нужен почти всегда, чтобы отлаживать программу. Ее комбинация – это Ctrl+Shift+M.
Давайте откроем это окно. Пока тут пусто.
Теперь давайте разберем что из себя представляет наш пустой скетч.
Напомню, что язык программирования ардуино – это язык C/C++. Для тех, кто не знаком с этим языком , я буду рассказывать о самых необходимых его концепциях по ходу урока и постараюсь сразу приучать вам к лучшим практикам программирования. Уверяю, что школьники и студенты и даже большие дяди, которые уже знакомы с этим языком программирования, скорее всего почерпнут для себя много полезного как правильно писать программы на C/C++ для ардуино.
Наш скетч состоит из определения двух функций – setup и loop. Функция – это именованная подпрограмма, которую можно вызывать по этому имени в других местах программы. Функция имеет:
- Параметры (они пишутся в круглых скобках, и в нашем примере никаких параметров нет )
- Тело функции, заключенное между фигурными скобками, (оно у нас пока пустое),
- Тип возвращаемого функцией значения. Этот тип у нас – void, т.е. «пусто», потому что наши функции ничего не возвращают.
Почему я сказал, что тело функций пока пустое, хотя там что-то есть? Да потому что
// put your setup code here, to run once: — это не программа, а комментарий, простой текст, который игнорируется компилятором и нужен только для нашего лучшего понимания что делает программа.
С помощью двойного слэша можно не только дать пояснительный текст, но и отключать строки программы, не удаляя их (говорят: «закомментировать код»).
Если же требуется закомментировать сразу большой кусок кода (программы), используются блочный комментарий – /* в начале блока и */ в конце блока комментария, например:
Вообще, приучайтесь сразу комментировать всё. Поначалу вам это поможет в изучении программирования, а в будущем это вам поможет разобраться с собственной же программой.
Используйте типы комментарий правильно: избегайте использование блоков комментариев внутри функций – используйте срочные комментарии, и это упростит вам отключение крупных кусков программы.
Функции setup и loop мы только определяем, но сами не вызываем – их вызывает ардуино:
- setup – 1 вызывается раз, при инициализации платы; здесь мы инициализируем параметры платы и подключенные устройства
- loop – вызывается бесконечно, в цикле; сюда вы пишем программу, которая должна выполняться вновь и вновь, например, регулярный опрос датчиков, обновление информации на экране и т.п.
Первая программа
Давайте нашей первой программой традиционно поприветствуем Мир: выведем приветствие через последовательный порт и увидим его на экране компьютера!
Для работы с последовательным портом, в программном ядре ардуино есть глобальный объект Serial.
Объект – это переменная составного типа, которая имеет собственные функции, такие как рассмотренные выше setup и loop, но доступны они только через имя объекта, через точку. Такие функции называются методами объекта.
Итак, сначала мы должны инициализировать последовательный порт. Чтобы это сделать, в функции setup вызываем метод Serial.begin:
Важно чтобы скорость в мониторе последовательного порта и в программе совпадали.
Обратите внимание, что в языке C в конце каждой команды обязательно должна стоять точка с запятой. Иначе вы получите ошибку при компиляции.
Давайте выведем приветствие в цикле:
println – метод объекта Serial, с помощью которого в последовательный порт выдается строка текста; т.е. курсор после вывода текста переводится на новую строку.
Также есть метод print, которые не переводит курсор на новую строку. Его удобно использовать для сложно форматированного вывода текста. Мы его применим чуть позже.
После загрузки получившейся программы на ардуино у вас должно получиться следующее:
Поздравляю вас с первой программой!
Внесем небольшое усовершенствование в программу: не будем палить приветствиями с такой бешенной скоростью, а разумно ограничимся одним приветствием, скажем, в 2е секунды.
Для этого воспользуемся встроенной функцией delay. Она имеет единственный параметр – это время задержки в миллисекундах. 1 сек. = 2000 мсек. Значит, вызывать надо так:
А теперь давайте включим счетчик приветствий. Для этого надо разобрать новую концепцию языка – переменные.
Переменная – это идентификатор заданного типа (например, целые числа, строки и т.д.), в который можно записать значение данного типа, а затем использовать его в нужном месте программы.
Чтобы начать использовать переменную, ее необходимо сначала объявить (т.е. задекларировать), вот так:
Здесь int – это тип данных для целых чисел.
nCount – это имя нашей переменной.
Обращаю сразу ваше внимание, что строчные и заглавные буквы в именах переменных и функций различаются.
Важной характеристикой переменной является область ее действия.
По области действия переменные различают на локальные и глобальные. Дело в том, что программа на C/C++ имеет иерархическую структуру, задаваемую вложенностью фигурных скобок < … >. Переменная доступна только внутри того блока, в котором она была объявлена, включая все вложенные блоки.
Чтобы объявить глобальную переменную, ее объявление сделать сделать в самом начале файла, за пределами функций setup и loop.
Объявим переменную nCount как глобальную. Также хорошим тоном является первичная инициализация переменной сразу в момент декларации:
последний вариант является более современным и, в общем случае, более правильным.
= – это оператор присвоения значения переменной. Просьба не путать его с логическим оператором равенства ==.
Обновим нашу функцию loop:
++ – это оператор инкрементирования, т.е. увеличения значения переменной на 1.
Кстати, знак инкремента можно ставить как до, так и после переменной (nCount++ == ++nCount), и любители в подобных случаях чаще всего ставят именно после. Но с формальной точки зрения, в нашем случае правильнее будет поставить инкремент перед переменной. Что сокращает программу на 1 операцию.
Загружаем обновлённую программу, смотрим результат:
На этом было бы все для первого урока. Но я ведь решил постепенно учить вас писать программы правильно. Поэтом еще пара слов про глобальные переменные.
Вообще говоря, всегда следует избегать глобальных переменных, поскольку их использование зачастую приводит к ошибкам в программе. А ошибки в программе ардуино искать на порядок сложнее, чем в обычной, для компьютера, поскольку средства отладки очень ограничены.
Запомните: область действия переменной всегда должна быть максимально узкой.
Однако в подавляющем большинстве скетчей вы всегда увидите глобальные переменные. Связано это прежде всего с тем, что подавляющее большинство даже опытных ардуинщиков – это все-таки любители, а не профессиональные программисты.
Забегая вперед, скажу, что глобальными следует делать только константы, являющиеся настройками приложения. Но об этом – в следующем уроке.
Как же следует поступить в нашем случае со счетчиком приветствий и все-таки избежать объявление глобальной переменной? Вед если мы просто переместим декларацию переменной nCount в loop(), то nCount будет сбрасываться в каждой новой итерации цикла.
Чтобы сбрасывания не происходило, нужно использовать ключевое слово static, сделав переменную nCount статической. Это позволит сохранить значение переменной nCount до следующего вызова loop(), но все-же спрячет эту переменную внутри этой функции.
Т.о. итоговый скетч нашего урока будет следующим:
Статические переменные необходимо использовать очень аккуратно, поскольку выделенная для них память не освобождается после выполнения блока, в котором она была объявлена.
Однако разумное использование static-переменных является широко распространённой техникой как раз для экономии памяти ардуино. Но это тема отдельного урока, посвященного эффективному использованию памяти ардуино.
Заключение
Вы этом уроке мы подключили ардуино к компьютеру и написали нашу первую программу. Пока мы не подключали к плате никаких компонентов, но зато:
- Разобрали понятие и структур скетча,
- Познакомились с последовательным портом и научились выдавать отладочную информацию
- Познакомились с некоторыми ключевыми понятиями языка программирования:
- Функции
- Переменные
- Статические, локальные и глобальные переменные
На следующем уроке мы разберем порты ввода-вывода и подключим светодиод. Пожалуй, даже сразу два, и заставим их мигать как нам вздумается.
Также, параллельно, мы продолжим изучать программирование на C/C++ для ардуино.
Обязательно пройдите проверочный тест, чтобы убедиться, что вы усвоили материал данного урока.
Задавайте вопросы и критикуйте в комментариях.
Не забудьте поделиться этим уроком своими друзьями и единомышленниками.
One Reply to “Урок №2. Подключение платы к компьютеру, первая программа”
Спасибо, все понятно для полных “чайников”! Удалось даже вспомнить и догадаться как ввести if (inCount<10) < … // для остановки непрерывного вывода!
Еще раз, спасибо, Ваш труд не пропадет даром, очень важно в самом начале не отбить желание двигаться дальше!
И дополните, пожалуйста, первый урок информацией для тех, кто купил китайский клон с предустановленной программой непрерывного мигания красного диода на плате вместе с красным (а не зеленым, как показано во многих роликах и т.д.) индикатором включения, поверьте, когда мы первый раз в жизни взяли эту "чудо-технику" в руки, только получив с Алиэкспресс, в ожидании какого-то подвоха со стороны производителя, очень важно было понимать, что так тоже могло выглядеть нормальное включение. Мне потребовался день на то, чтобы разобраться и не писать пасквели на поставщика.
Руководство по Arduino для начинающих
Данная статья поможет вам начать работу с Arduino и включает в себя описание различных типов Arduino, как загрузить среду разработки программного обеспечения Arduino, и описывает различные платы и принадлежности, доступные для Arduino, и которые понадобятся вам для разработки проектов на Arduino.
Arduino – это одноплатный контроллер с открытыми исходными кодами, который можно использовать в множестве различных приложений. Это возможно самый простой и самый дешевый вариант из микроконтроллеров для любителей, студентов и профессионалов для разработки проектов на основе микроконтроллеров. Платы Arduino используют либо микроконтроллер Atmel AVR, либо микроконтроллер Atmel ARM, и в некоторых версия имеет интерфейс USB. Они также имеют шесть или более выводов аналоговых входов и четырнадцать или более выводов цифровых входов/выходов (I/O), которые используются для подключения к микроконтроллеру датчиков, приводов и других периферийных схем. Цена на платы Arduino в зависимости от набора функций составляет от шести до сорока долларов.
Типы плат Arduino
Существует множество различных типов плат Arduino, как показано в списке ниже, каждая из которых обладает собственным набором функций. Они отличаются по скорости обработки, памяти, портам ввода/вывода и подключению, но основная составляющая их функционала остается неизменной.
На разнообразие плат Arduino и их технические описания можно посмотреть в подразделе «Arduino» раздела «Купить» данного сайта.
Программное обеспечение (IDE)
Программное обеспечение, используемое для программирования Arduino, представляет собой интегрированную среду разработки Arduino IDE. IDE представляет собой Java приложение, которое работает на множестве различных платформ, включая системы PC, Mac и Linux. Она разработана для начинающих, которые не знакомы с программированием. Она включает в себя редактор, компилятор и загрузчик. Также в IDE включены библиотеки кода для использования периферии, например, последовательных портов и различных типов дисплеев. Программы для Arduino называются «скетчами», и они написаны на языке, очень похожем на C или C++.
USB кабель
Большинство плат Arduino подключаются к компьютеру с помощью USB кабеля. Это соединение позволяет загружать скетчи на вашу плату Arduino, а также обеспечивает плату питанием.
USB кабель для Arduino
Программирование
Программирование Arduino легко: сначала вы используете редактор кода IDE для написания программы, а затем компилируете и загружаете её одним кликом.
Программа для Arduino включает в себя две основные функции:
- setup()
- loop()
Вы можете использовать функцию setup() для инициализации настроек платы. Эта функция выполняется только один раз, при включении платы.
Функция loop() выполняется после завершения функции setup() , и в отличие от функции setup() она работает постоянно.
Функции программ
Ниже приведен список наиболее часто используемых функции при программировании Arduino:
- pinMode – устанавливает вывод в режим входа или выхода;
- analogRead – считывает аналоговое напряжение на аналоговом входном выводе;
- analogWrite – записывает аналоговое напряжение в аналоговый выходной вывод;
- digitalRead – считывает значение цифрового входного вывода;
- digitalWrite – задает значение цифрового выходного вывода в высокий или низкий уровень;
- Serial.print – пишет данные в последовательный порт в виде удобочитаемого текста ASCII.
Библиотеки Arduino
Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:
- EEPROM – чтение и запись в «постоянно» хранилище;
- Ethernet – для подключения к интернету, используя плату Arduino Ethernet Shield;
- Firmata – для связи с приложениями на компьютере, используя стандартный последовательный протокол;
- GSM – для подключения к сети GSM/GRPS с помощью платы GSM;
- LiquidCrystal – для управления жидкокристаллическими дисплеями (LCD);
- SD – для чтения и записи SD карт;
- Servo – для управления сервоприводами;
- SPI – для связи с устройствами, используя шину SPI;
- SoftwareSerial – для последовательной связи через любые цифровые выводы;
- Stepper – для управления шаговыми двигателями;
- TFT – для отрисовки текста, изображений и фигур Arduino TFT экранах;
- WiFi – для подключения к интернету, используя плату Arduino WiFi shield;
- Wire – двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.
Этапы настройки Arduino
- Во-первых, установите IDE. Вы можете скачать IDE с сайта Arduino.
- Установите программное обеспечение на свой компьютер.
- Теперь запустите .exe файл Arduino IDE. IDE выглядит так:
- Напишите в редакторе кода свою программу и загрузите её в Arduino. Чтобы сделать это, необходимо подключить Arduino к компьютеру, используя USB кабель.
- В IDE выберите тип Arduino, который вы используете, через меню Tools (Инструменты) → Boards (Платы).
- Теперь проверьте свой код, нажав на значок «галки» вверху окна IDE, затем нажмите на соседний значок «стрелка вправо», чтобы скомпилировать и загрузить код в Arduino.
Внимание: возможно, вам понадобится установить драйвера, если ваша система не обнаружит Arduino.
Платы расширения Arduino
Платы расширения Arduino (Arduino Shields) – это платы, которые подключаются к Arduino, чтобы предоставить вам возможность подключать к Arduino периферийные устройства, датчики и приводы. Ниже приведен список некоторых популярных плат расширения:
- GSM Shield;
- Ethernet Shield;
- WiFi Shield;
- Motor Shield;
- Proto Shield;
- Joystick Shield;
- Bluetooth Shield;
- Xbee shield.
Комплектующие и принадлежности
Ниже приведен список всех комплектующих и принадлежностей, обычно используемых совместно с Arduino для разработки проектов:
Всё, что необходимое для макетирования, вы можете найти в подразделе Макетирование раздела сайта Купить
Курс «Arduino для чайников»
Не знаете, с чего начать изучение Arduino? Проект «Занимательная робототехника» представляет учебный курс «Arduino для начинающих». Серия представлена 10 уроками, а также дополнительным материалом. Уроки включают текстовые инструкции, фотографии и обучающие видео. В каждом уроке вы найдете список необходимых компонентов, листинг программы и схему подключения. Изучив эти 10 базовых уроков, вы сможете приступить к более интересным моделям и сборке роботов на основе Arduino. Курс ориентирован на новичков, чтобы к нему приступить, не нужны никакие дополнительные сведения из электротехники или робототехники.
Краткие сведения об Arduino
Что такое Arduino?
Arduino (Ардуино) — аппаратная вычислительная платформа, основными компонентами которой являются плата ввода-вывода и среда разработки. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере. Arduino как и Raspberry Pi относится к одноплатным компьютерам.
Как связаны Arduino и роботы?
Ответ очень прост — Arduino часто используется как мозг робота.
Преимущество плат Arduino перед аналогичными платформами — относительно невысокая цена и практически массовое распространение среди любителей и профессионалов робототехники и электротехники. Занявшись Arduino, вы найдете поддержку на любом языке и единомышленников, которые ответят на вопросы и с которым можно обсудить ваши разработки.
Подробнее об Arduino читайте в нашей публикации «Arduino: 10 лет вместе«.
Урок 1. Мигающий светодиод на Arduino
На первом уроке вы научитесь подключать светодиод к Arduino и управлять его мигать. Это самая простая и базовая модель.
Светодиод — полупроводниковый прибор, создающий оптическое излучение при пропускании через него электрического тока в прямом направлении.
Урок 2. Подключение кнопки на Arduino
На этом уроке вы научитесь подключать кнопку и светодиод к Arduino.
При нажатой кнопке светодиод будет гореть, при отжатой — не гореть. Это также базовая модель.
Урок 3. Подключение потенциометра на Arduino
В этом уроке вы научитесь подключать потенциометр к Arduino.
Потенциометр — это резистор с регулируемым сопротивлением. Потенциометры используются как регуляторы различных параметров — громкости звука, мощности, напряжения и т.п. Это также одна из базовых схем. В нашей модели от поворота ручки потенциометра будет зависеть яркость светодиода.
Урок 4. Управление сервоприводом на Arduino
На этом уроке вы научитесь подключать сервопривод к Arduino.
Сервопривод — это мотор, положением вала которого можно управлять, задавая угол поворота.
Сервоприводы используются для моделирования различных механических движений роботов.
Урок 5. Трехцветный светодиод на Arduino
На этом уроке вы научитесь подключать трехцветный светодиод к Arduino.
Трехцветный светодиод (rgb led) — это три светодиода разных цветов в одном корпусе. Они бывают как с небольшой печатной платой, на которой расположены резисторы, так и без встроенных резисторов. В уроке рассмотрены оба варианта.
Урок 6. Пьезоэлемент на Arduino
На этом уроке вы научитесь подключать пьезоэлемент к Arduino.
Пьезоэлемент — электромеханический преобразователь, который переводит электричеcкое напряжение в колебание мембраны. Эти колебания и создают звук.
В нашей модели частоту звука можно регулировать, задавая соответствующие параметры в программе.
Урок 7. Фоторезистор на Arduino
На этом уроке нашего курса вы научитесь подключать фоторезистор к Arduino.
Фоторезистор — резистор, сопротивление которого зависит от яркости света, падающего на него.
В нашей модели светодиод горит только если яркость света над фоторезистором меньше определенной, эту яркость можно регулировать в программе.
Урок 8. Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail
На этом уроке нашего курса вы научитесь подключать датчик движения (PIR) к Arduino, а также организовывать автоматическую отправку e-mail.
Датчик движения (PIR) — инфракрасный датчик для обнаружения движения или присутствия людей или животных.
Перворобот Lego Wedo (9580) — 8500 руб. Mindstorms EV3–28 170 руб.
В нашей модели при получении с PIR-датчика сигнала о движении человека Arduino посылает компьютеру команду отправить E-mail и отправка письма происходит автоматически.
Урок 9. Подключение датчика температуры и влажности DHT11 или DHT22
На этом уроке нашего вы научитесь подключать датчик температуры и влажности DHT11 или DHT22 к Arduino, а также познакомитесь с различиями в их характеристиках.
Датчик температуры и влажности — это составной цифровой датчик, состоящий из емкостного датчика влажности и термистора для измерения температуры.
В нашей модели Arduino считывает показания датчика и осуществляется вывод показаний на экран компьютера.
Урок 10. Подключение матричной клавиатуры
На последнем уроке нашего курса вы научитесь подключать матричную клавиатуру к плате Arduino, а также познакомитесь с различными интересными схемами.
Матричная клавиатура придумана, чтобы упростить подключение большого числа кнопок. Такие устройства встречаются везде — в клавиатурах компьютеров, калькуляторах и так далее.
Приложение. Готовые каркасы и роботы Arduino
Начинать изучать Arduino можно не только с самой платы, но и с покупки готового полноценного робота на базе этой платы — робота-паука, робота-машинки, робота-черепахи и т.п. Такой способ подойдет и для тех, кого электрические схемы не особо привлекают.
Приобретая работающую модель робота, т.е. фактически готовую высокотехнологичную игрушку, можно разбудить интерес к самостоятельному проектированию и робототехнике. Открытость платформы Arduino позволяет из одних и тех же составных частей мастерить себе новые игрушки.
Еще один вариант — покупка каркаса или корпуса робота: платформы на колесиках или гусенице, гуманоида, паука и т.п. В этом случае начинку робота придется делать самостоятельно.
Приложение. Мобильный справочник
“Справочник по Arduino” — помощник для разработчиков алгоритмов под платформу Arduino, цель которого дать конечному пользователю возможность иметь при себе мобильный набор команд (справочник).
Приложение состоит из 3-х основных разделов:
- Операторы;
- Данные;
- Функции.
Где купить Arduino
Наборы Arduino можно купить на официальном сайте и в многочисленных интернет-магазинах.
Наиболее привлекательные цены, постоянные спецпредложения и бесплатная доставка на сайтах китайских магазинов AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазин АмперкаНизкие цены и быструю доставку предлагает интернет-магазин ROBstore.
Будьте аккуратны при выборе — в продаже есть как оригинальные платы, так и более дешевые клоны. Впрочем аналоги не значительно отличаются от оригинала.