Урок 1. Начало работы с платой Arduino
Arduino – это платформа на базе микроконтроллеров семейства Atmega, американской фирмы Atmel. Благодаря простоте конструкции и довольно легкому обучению написанию кода на ней, она является довольно популярной и очень полезной вещью для начинающего программиста или радиолюбителя. Однако, ее возможности, отнюдь, не ограничиваются применением лишь в интересах обучения. В недрах этой платы таится очень высокий потенциал, который воплощается в самые разнообразные и крутые проекты: от обычных роботов и сигнализации в автомобиль, до полноценной системы «Умный дом», симуляторов голоса и музыкальных инструментов.
Для тех, кто только начал осваивать Ардуино, и предназначен этот блог статей. В дальнейшем, мы будем сильнее углубляться в эту сферу, изучая более сложные аспекты в управлении платой и проектируя собственные, интересные и полезные в быту проекты.
Итак, вы держите в руках свою первую плату Ардуино, с чего же начать?
Для начала, давайте ознакомимся с внешним устройством платы. Разберем устройство на примере самой популярной из плат – Arduino Uno. Она является таковой по оптимальному соотношению цены, размеров и производительности.

Легко заметить два крупных разъема на плате. Один из них предназначен для подачи внешнего питания на плату (через аккумуляторы или крону, помните, что питать плату оптимально от 9 до 12 вольт, иначе она может перегореть) Второй предназначен для USB-подключения к компьютеру с помощью специального кабеля (купить его можно в том же месте, где вы покупали Arduino).
Также на плате виден сам процессор Atmega, на каждой плате семейства Arduino они отличаются по своей мощности. На нашей плате установлен ATmega328 с частотой в 16МГц. Еще на плате можно увидеть по бокам контактные выходы, для подключения различных устройств, датчиков и модулей. На нашей плате их около 30. Из них есть выводы цифровые и аналоговые, а также те, которые предназначены с подачей питания на подключенные к плате устройства. Подробнее о значениях и отличиях цифровых и аналоговых выходов мы поговорим чуть позднее.
Теперь, давайте возьмем плату и подключим ее к компьютеру через USB кабель. Если у вас оригинальная плата, то у вас уже установлен необходимый драйвер для обнаружения платы компьютером, а если заказана из Китая, то драйвер нужно найти и установить. Называется он ch340g, а скачать его можно тут: https://robototehnika.ru/file/CH340G_driver.zip
Также для удобной работы с платой, необходимо установить среду разработки- Arduino IDE Скачать эту программу можно на официальном сайте: https://www.arduino.cc/en/Main/Software
Вы можете выбрать самую последнюю (т.е. самую новую версию), а можете скачать, например, Arduino IDE 1.6.5 – эта версия считается одной из самых стабильно работающих, и на ней реже случаются баги и непредвиденные ошибки.
Теперь, когда вы все установили, подключили плату к компьютеру и успешно загрузили драйвера, то плату желательно проверить на работоспособность. Для этого заходим в диспетчер устройств, далее в раздел — Порты (COM и LPT), и там смотрим, к какому порту подключена ваша плата. Запоминаем число. Теперь заходим в нашу программу Arduino IDE и находим на верхней панели раздел: инструменты. Там находим вкладку “порт” и указываем тот, что был указан в диспетчере устройств.

В этом же разделе найдем вкладку “устройство” и укажем нашу плату: Uno, Mega или, может быть, Arduino Nano, в зависимости от того, какую именно модель вы подключили.

Теперь загрузим первый скетч в нашу плату Arduino, для этого выберем стандартную программу Blink – мигание встроенного светодиода на плате. Чтобы ее загрузить, зайдем в раздел файл – образцы — Basic – Blink.

Когда откроется код, нажмите в вашей программе на кнопку «загрузить» и после успешного прохождения компиляции (процесс, направленный на проверку кода и поиск ошибок) светодиод на плате будет мигать (красным или зеленым цветом) один раз в секунду.

Поздравляем! Вы научились подключать плату Ардуино компьютеру и загрузили свой первый код в нее, а значит вас ждет большое будущее!
В следующем уроке мы подробнее изучим предназначение выходов на плате, разберем ее характеристики и освоим первые базовые основы программирования на ней. Спасибо за внимание!
Данная статья — является собственностью интернет-магазина РОБОТОТЕХНИКА
Arduino: с чего начать изучение

Arduino – инструмент, с которым может рано или поздно столкнуться программист. Изначально так называлась компания, производящая различные IT-механизмы и платы. На данный момент Ардуино – это специальный конструктор. Он является программируемым микроконтроллером для разнообразного оборудования.
Далее предстоит рассмотреть основы Ардуино, а также программирование этой платы с нуля для начинающих. Предложенная информация ориентирована на тех, кто уже имеет хотя бы поверхностные знания в разработке.
Что это такое
Arduino – это просто. Так называется электронный конструктор. Плата, с помощью которой любой человек может создавать электромеханические устройства. Он включает в себя программную и аппаратную части.
Первая отвечает за среду разработки (программу для написания и отладки прошивок, IDE), готовые библиотеки и упрощенный язык программирования C++. Аппаратная часть – большая линейка микроконтроллеров и готовых модулей. С их помощью можно работать с Ардуино с нуля и очень быстро.
Платы Ардуино используются для погружения в азы:
- программирования;
- механики;
- электротехники.
На его основе можно сконструировать различные полезные устройства – от мигалок и метеостанций до систем «умный дом» и средств автоматизации.
Как собрать устройство
Работа с Arduino строится на основе нескольких важных процессов – сборка микроконтроллеров в единое устройство, а также программирование.
Чтобы собрать устройство своими руками, потребуется:
- Сделать печатную плату и обеспечить тактирование микроконтроллеров. Для этого подключается тактовый генератор.
- Добавить обвязку – фильтры питания, кнопки для перезагрузки, резисторы и так далее.
- Обеспечить оборудованию остальные компоненты. Их требуется разложить на плате или воспользоваться штекерами.
- Обеспечить системе стабильное питание.
- Запрограммировать устройство. Иногда для этого используется специальное устройство – программатор.
- Загрузить прошивку на оборудование через программатор.
Это инструкция может показаться сложной, но на самом деле она простая. Ардуино – это просто. Он предоставляет настроенный микроконтроллер и все, что необходимо для его работы. Сюда же входит стабилизатор напряжения и программатор. Настоящий подарок для чайников в электронике и технике!
Язык программирования
Обучение Arduino немыслимо без освоения определенного языка разработки. Начало погружения в рассматриваемый МК сложно представить без C++. Ардуино использует его упрощенную версию для полноценной работы.
При попытках программировать с Arduino IDE необходимо запомнить несколько базовых правил для чайников. Они точно такие же, как и при разработке на «обычном компьютере» на языках СИ-семейства:
- после каждой инструкции или функции ставится точка с запятой;
- тип данных нужно обязательно указывать перед объявлением функции;
- если функция ничего не возвращает, она должна быть определена как void;
- перед объявлением переменных тоже указывается тип используемых данных;
- комментарии в исходном коде допускаются – они начинаются с «//» или «/*»/.
Исходный код пишется на C++, после чего Ардуино загружает его через программатор на оборудование и заставляет работать.
Arduino для начинающих требует обязательного изучения всего нескольких функций. С их помощью уже можно программировать самое разное оборудование с нуля. Речь идет о setup() и loop().
Функция setup
Уроки и документацию на русском языке по Ардуино, которые позволят начать обучение работы с микроконтроллерами с нуля, можно отыскать в Google и других поисковиках. Но сначала рекомендуется просто рассмотреть несколько ключевых функций. Они дадут возможность работать с Ардуино на первых порах.
В начале программирования требуется обратить внимание на функцию setup. Она выполняется в самом начале и всего один раз после включения или перезагрузки устройства. Здесь указываются режимы пинов, открываются необходимые протоколы связи, устанавливаются соединения с дополнительными модулями и настраиваются подключенные библиотеки.
Если для имеющейся прошивки (как у чайников) ничего из перечисленного не требуется, функция setup все равно объявляется. Ниже – стандартный ее пример:
Написание этого фрагмента отвечает за открытие последовательного порта связи с компьютером. Пины 9 и 13 назначаются как вход и выход.
Функция loop
Loop() – функция, которую программа реализовывает после setup. Если запрограммировать Arduino, то loop будет отвечать за зацикливание. Она выполняется снова и снова.
Пример – ATmega328. Он установлен на большинстве плат Arduino. Выполняет loop около 10 000 раз в секунду. За счет этого программистам предоставляются широкие возможности для создания софта.
Как запрограммировать микроконтроллер
Руководство пользователя по разработке и программированию МК указывает на то, что после сборки аппаратной части остается запрограммировать поведение оборудования. Краткая инструкция Ардуино для начинающих будет выглядеть в этом случае так:
- Написать прошивку. Делается это при помощи любого текстового редактора.
- Скомпилировать прошивку. Для AVR – через бесплатный консольный компилятор. Он называется avr-gcc.
- Загрузить прошивку в микроконтроллер. Для AVR используется консольная утилита avrdude.
Все эти задачи Arduino решает через встроенную IDE. Она включает в себя текстовый редактор, который умеет компилировать и загружать код. В IDE поддерживается менеджер библиотек и неофициальные платы. Весь процесс прошивки сведется к одному клику по кнопке «Загрузить». Никаких дополнительных настроек не нужно.
Первый проект
Писать на Ардуино можно через уроки программирования для чайников. Чтобы лучше изучить выбранное направление, обучение лучше начать с наглядного примера.
Это первое устройство на базе Arduino. Тактовая кнопка и светодиод подключаются к микроконтроллеру:
Чтобы схема работала, необходимо написать скетч на компьютере в текстовом редакторе или в специализированной ID. Вот его пример. Здесь при нажатии на кнопку светодиод загорается, а при повторной операции – гаснет. Код соответствующего скетча:
Здесь добавлена дополнительная команда. Она называется debounse. Отвечает за подавление дребезга контактов.
Чтобы лучше разбираться в программировании рассматриваемого микроконтроллера, рекомендуется пройти какой-нибудь специализированный курс, коих в сети можно встретить огромное количество.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus !
Ардуино с чего начать

—> BIM
ОБЯЗАТЕЛЬНЫЙ ПЕРЕХОД НА BIM С 2022 ГОДА —
УЖЕ РЕАЛЬНОСТЬ!
—> BIM
ОБЯЗАТЕЛЬНЫЙ ПЕРЕХОД НА BIM С 2022 ГОДА —
УЖЕ РЕАЛЬНОСТЬ!
—> 15% для одного и 35% для двоих на очные и дистанционные курсы
—> 2-6.08 | 23-27.08 | с нуля до профи (углубленный уровень)
Проектирование в системе AutoCAD

Выпускники будут уметь:
— Создавать бота для мессенджеров — Сайт-визитку с портфолио — Информационный ресурс — Онлайн-гид или полноценный магазин Создайте собственное портфолио
Веб-разработчик на языке Python
Старт 27 марта 2024 года Веб-разработчик на языке Python

подробнее
50% —> скидка —> на курс —> 50% —> скидка —> на курс —> Скидка 35% на дистанционные сметные курсы!
При оплате курса по 31 августа
СКИДКИ НА ВСЕ КУРСЫ
УЖЕ НА САЙТЕ!
скидки на все курсы
ЧЕРНАЯ ПЯТНИЦА
В ИПАП
с 25 по 29 ноября
—> 17.03.2022 —> Функциональный
подход в Java —> —> —> —> 18 августа 2020 года в связи с проведением плановых технических работ с 08:00 до 19:00 —> Сметный отдел: +7 (911) 002-37-04 —> —> —> IT отдел: +7 (952) 379-75-00 —> —> —> —> —>
ИНСТИТУТ ПРИКЛАДНОЙ
АВТОМАТИЗАЦИИ
И ПРОГРАММИРОВАНИЯ
8 (800) 551-01-42 Звонок бесплатный
+7 (812) 655-63-22 +7 (911) 002-37-04
Cметное дело
+7 (812) 655-63-21 +7 (952) 379-75-00
Информационные технологии

СПРАВОЧНИК
BIM-инженера/сметчика
Обратная связь ![]()

ОБРАТНАЯ СВЯЗЬ
Оставьте свой телефон и e-mail , чтобы мы могли с Вами связаться.
Поля, помеченные * , обязательны для заполнения.
![]()

Для самостоятельного написания скетчей в приложении есть специальный текстовый редактор с удобной цветовой подсветкой программного кода.
Что дальше
Попробовав и проанализировав готовые программные решения в Arduino IDE, переходите к более сложным скетчам, размещенным на специализированных ресурсах. В сети есть готовые библиотеки для работы с таймерами, сенсорами, портами, звуком, шаговыми двигателями и прочим железом. Они придают платформе дополнительную функциональность.
Обязательно прочтите пару книг. Хорошо пишут на эту тему Джереми Блюм, Саймон Монк, Юрий Менщиков. Из книг них вы узнаете, как программировать микроконтроллеры, поймете принципы построения скетчей и логику программной части. Эти авторы не просто подают теорию, а приводят рабочие и, главное, полезные технические решения – от простейших датчиков температуры до сложных систем для «умного» дома.
Адрес: 190013, г. Санкт-Петербург, ул. Можайская, д. 2, 1 этаж
Новостная рассылка
Все материалы сайта являются собственностью ЧОУ ДПО «ИПАП». По вопросам копирования и использования информации пишите на электронную почту mir@ipap.ru.
Обратная связь
Cоциальные сети Доступные варианты оплаты на сайте ![]()
© 2006—2024. ЧОУ ДПО «Институт прикладной автоматизации и программирования»
Первые шаги в работе с Arduino
Любому, кто только делает свои первые шаги в радиоэлектронике, освоении программирования, хочется помочь, придать уверенности, чтобы появлялся интерес изучать эту интересную тему дальше. Поэтому я решил сделать пошаговую инструкцию для тех, кто делает свои первые шаги, но не знает, с чего можно начать?
Мы будем разбирать платформу Arduino от покупки самого контроллера, до «заливания» кода программы (далее скетч*) и управления собственной моделью при помощи телефона на Android; далее напишем свой алгоритм, по которому наш робот будет сам выбирать путь, куда ему двигаться (следующий урок).
Вот такой робот у нас получится по истечению всех уроков (прошу прощения за качество, это стоп-кадр видео):
1. Покупка деталей
2. Разбор каждой позиции
3. Сборка и программирование модели
4. Подключение к Android
1. Покупка деталей
Для начала следует выбрать контроллер. Большой выбор есть на официальном сайте Arduino, но в этом вопросе можно немного сэкономить, заказав аналогичную и полностью совместимую модель Freeduino.
1) Для данного проекта нам отлично подойдет модель UNO. Все параметры отлично подходят под наши критерии — это средний размер, возможность подключать различные модули, шилды, да и цена не так сильно кусается, как на более «старших» моделях. Заказывал её тут, пришла за 3 недели (г. Волгоград), качество отличное, проблем в эксплуатации не было.
2) Далее заказываем расходные материалы, шилды, модули, которые понадобятся нам для сборки. Для управления моторами нам, соответственно, понадобится следующая деталь: Motor Shield заказывал здесь. Доставили тоже быстро, упаковано всё было хорошо, без повреждений.
3) Для связи телефона с нашим роботом нам нужен Bluetooth-модуль, который заказывал вот тут. Нареканий в работе не наблюдал.
4) Конечно же, всё это должно иметь платформу, на которую мы всё это закрепим. Воспользуемся готовым вариантом.
Это все детали, которые жизненно необходимы для работы нашего робота, но есть ещё несколько вещей, которые, по моему мнению, здорово упрощают жизнь и работу с Arduino. Я решил отказаться от батареек, которыми питают саму платформу, я заказал себе маленький Power Bank, при помощи которого всё это дело запустится. Вот ссылка. На момент заказа курс был около 35р, поэтому все детали мне достались на много дешевле, чем на момент написания данного урока.
2. Разбор каждой позиции
Мы заказали детали и, пока дожидаемся извещения, чтобы скорее забрать наш заказ, можем более подробно изучить каждую позицию, да и вообще цель нашей работы.
Мы заказали Freeduino 2009 – аналог Arduino Duemilanove.
- Микроконтроллер: ATmega328 (ATmega168 в ранних версиях платы)
- Цифровые порты ввода/вывода: 14 портов (из них 6 с ШИМ-сигналом)
- Аналоговые порты ввода: 6 портов
- ППЗУ (Flash Memory): 32 K (16 К), из них 2 К используются загрузчиком
- ОЗУ (SRAM): 2 Кбайт (1 Кбайт)
- ПЗУ (EEPROM): 1024 байт (512 байт)
- Тактовая частота: 16 МГц
- Интерфейс с ПК: USB
- Питание от USB, либо от внешнего источника, выбор с помощью перемычки

К данному модулю мы можем подключить до 4-х моторов, и программируя каждый на определенную мощность и скорость вращения. У данного модуля есть один минус- это отсутствие пинов, куда бы мы могли подключить последующию модули при помощи специальных кабелей, что мне немного усложнило задачу. Можно было заказать отдельно пины и перепаять их, но я решил просто припаять модули напрямую к motor shield.
Беспроводную связь нам обеспечит Bluetooth модуль, который имеет в комплекте провода для подключения к плате напрямую.

Платформа же имеет полный набор для сборки. В комплекте была даже отвертка, которой удобно собирать нашу модель.

3. Сборка и программирование модели
В сборке не должно возникнуть никаких проблем, разве что только с подключением Bluetooth-модуля. Внизу прилагается схема подключения, а простыми словами это выглядит так:
Bluetooth-модуль —> контроллер
VCC —> 5V
GND —> Gnd
TXD —> PIN-0
RXD —> PIN-1
Старайтесь не путать питание и землю, т.к. это может легко испортить ваши детали. Если деталь начала резко нагреваться, значит, вы что-то напутали.

Для программирования нам понадобится среда разработки Arduino — качаем.
Arduino IDE — специальная среда разработки для плат Arduino. С её помощью можно написать код, скомпилировать его и «залить» на плату, чтобы заставить работать наше устройство. Также в данной среде имеется большое количество подключаемых библиотек, содержащих в себе много дополнительных уже готовых скетчей, которые позволяют быстро проверить работоспособность отдельных модулей, дополнений к нашей плате. Язык программирования очень похож на семейство языка С, который довольно прост в освоении, если знать основы языка С, это и является большим плюсом в программировании данной платформы.
Начинаем, как и всегда с подключения нужных библиотек. Скорее всего, Вам придется поискать в интернете AFMotor.h, проблемы найти данную библиотеку быть не должно.
#include // Подключаем библиотеку для управления двигателями #include // Подключаем библиотеку для работы с Serial через дискретные порты
Далее создаем объекты для двигателей:
AF_DCMotor motor1(1); //канал М1 на Motor Shield AF_DCMotor motor2(2); //канал М2 на Motor Shield
Канал M1 и M2 определяется легко- достаточно посмотреть на наш модуль и там около креплений с зажимами подписано M1, М2, М3, М4 соотвественно:
SoftwareSerial BTSerial(0, 1); // RX, TX, подключение БТ // Переменная для команд Bluetooth char vbt; //Переменные для запоминания скорости двигателей int vL, vR; /* Создаем переменную, на значение которой будет уменьшаться скорость при плавных поворотах. Текущая скорость должна быть больше этого значения. В противном случае двигатели со стороны направления поворота просто не будут вращаться */ int vspd = 200; void setup() < //Cкорость передачи данных по Bluetooth BTSerial.begin(9600); // Cкорость передачи данных по кабелю Serial.begin(9600); // Устанавливаем максимальную скорость вращения двигателей vspeed(255,255); >
Далее нам понадобится помощь приложения на Android, команды которого мы и будем принимать и обрабатывать.
В этой части мы просто описываем функционал программы (скорость, переменные).
void loop() < //проверяем наличие данных для передачи if (BTSerial.available()) < // Принимаем команды, преобразуем код в соответствующий символ vbt = (char)BTSerial.read(); // Вперед if (vbt == 'F') < vforward(); >// Назад if (vbt == 'B') < vbackward(); >// Влево if (vbt == 'L') < vright(); >// Вправо if (vbt == 'R') < vleft(); >// Прямо и влево if (vbt == 'G') < vforwardright(); >// Прямо и вправо if (vbt == 'I') < vforwardleft(); vforwardright(); >// Назад и влево if (vbt == 'H') < vbackwardleft(); >// Назад и вправо if (vbt == 'J') < vbackwardright(); >// Стоп if (vbt == 'S') < vrelease(); >// Скорость 0% if (vbt == '0') < vspeed(0,0); >// Скорость 10% if (vbt == '1') < vspeed(25,25); >// Скорость 20% if (vbt == '2') < vspeed(50,50); >// Скорость 30% if (vbt == '3') < vspeed(75,75); >// Скорость 40% if (vbt == '4') < vspeed(100,100); >// Скорость 50% if (vbt == '5') < vspeed(125,125); >// Скорость 60% if (vbt == '6') < vspeed(150,150); >// Скорость 70% if (vbt == '7') < vspeed(175,175); >// Скорость 80% if (vbt == '8') < vspeed(200,200); >// Скорость 90% if (vbt == '9') < vspeed(225,225); >// Скорость 100% if (vbt == 'q') < vspeed(255,255); >> >
Далее мы описываем каждое действие, в данном случае FORWARD заставляет двигатель крутиться вперёд, а BACKWARD крутит двигатель в обратном направлении. Сочетание этих действий позволяет поворачивать, двигаться влево-вправо, отклоняться от прямого направления движения робота.
// Вперед void vforward() < vspeed(vL,vR); vforwardRL(); >// Вперед для RL void vforwardRL() < motor1.run(FORWARD); motor2.run(FORWARD); >// Назад void vbackward() < vspeed(vL,vR); vbackwardRL(); >// Назад для RL void vbackwardRL() < motor1.run(BACKWARD); motor2.run(BACKWARD); >// Влево void vleft() < vspeed(vL,vR); motor1.run(BACKWARD); motor2.run(FORWARD); >// Вправо void vright() < vspeed(vL,vR); motor1.run(FORWARD); motor2.run(BACKWARD); >// Вперед и влево void vforwardleft() < if (vL >vspd) < vspeed(vL-vspd,vR); >else < vspeed(0,vR); >vforwardRL(); > // Вперед и вправо void vforwardright() < if (vR >vspd) < vspeed(vL,vR-vspd); >else < vspeed(vL,0); >vforwardRL(); > // Назад и влево void vbackwardleft() < if (vL >vspd) < vspeed(vL-vspd,vR); >else < vspeed(0,vR); >vbackwardRL(); > // Назад и вправо void vbackwardright() < if (vR >vspd) < vspeed(vL,vR-vspd); >else < vspeed(vL,0); >vbackwardRL(); > // Стоп void vrelease() < motor1.run(RELEASE); motor2.run(RELEASE); >// Изменение скорости void vspeed(int spdL,int spdR) < if (spdL == spdR) < vL=spdL; vR=spdR; >motor1.setSpeed(spdL); motor2.setSpeed(spdR); >
В этом видео я подключал просто пропеллер к разъему M1 и изменял код программы, оставив только движение «вперёд» и «назад»:
А вот такой робот получился по окончании нашего урока:
В следующей части я объясню, как построить логику робота, подключим к нему дальномер, при помощи которого он будет ориентироваться в пространстве.