Робот на Ардуино и машинка на Bluetooth своими руками

Робот – машинка на Ардуино становятся одним из самым популярных инженерных проектов в школьной робототехнике. Именно с таких устройств, автономных или управляемых со смартфона и bluetooth, начинается путь в робототехнику “после Lego”. К счастью, сегодня можно без труда купить все необходимые компоненты и достаточно быстро создать своего первого робота для езды по линии или объезда препятствий. В этой статье вы найдете подробную видео инструкцию как сделать продвинутый автомобиль Arduino Car своими руками, с питанием, датчиками линии, расстояния и управлении через bluetooth.

Робот на ардуино своими руками

В отличие от других проектов, создание робота – автомобиля (Arduino Car) требует понимания и навыков работы сразу с несколькими важными компонентами, поэтому не стоит приступать к созданию машинок без получения базовых навыков работы с платформой Arduino. В любом случае, вам нужно будет но только подключить готовые модули, но и собрать конструкцию, шасси с двигателями, обеспечить правильное питание и управление. Все это потребует определенного терпения.

Робот машина на Ардуино

Вот список ключевых компонентов, которые обязательно встретятся в проекте.

Контроллер Ардуино

Куда уж без него, если мы говорим о проектах на этой платформе. Как правило, роботы машины делают на базе плат Arduino Uno и Nano. Mega будут слишком большие, Pro Mini сложнее подключать к компьютеру и соединять с остальными компонентами, а Leonardo требуют дополнительных навыков в программировании, они дороже и их основное преимущество (тесная интеграция с компьютером в качестве периферийного устройства) в данном случае не слишком востребована.

Есть еще вариант использования плат ESP8266 или ESP32, тогда в проекте появляется возможность управления машиной через WiFi. Но и сами платы и их программирование требует определенных навыков, в этой статье мы будем говорить преимущественно об Uno или Nano.

Конструкция, шасси и двигатели робота на Ардуино

Для того, чтобы что-то поехало или стало перемещаться, надо снабдить “это” колесами, гусеницами или манипуляторами-ногами. Вот тут выбор совершенно не ограничен, можно использовать совершенно любые комбинации и сочетания платформ. Как правило, в качестве начального варианта берутся уже готовые наборы платформ с Алиэкспресс.

Двигатель, шасси и колеса машинки на ардуино

Если работать со стандартными наборами вам не интересно, можно создать платформу своими руками. Например, разобрать игрушечные радиоуправляемые машинки или любые двигатели на 5-12 вольт, с редукторами или без. Колеса можно создать и самим, что тоже является интересной задачей.

Драйвер двигателей

Драйвер двигателя L298N

Ардуино – достаточно ранимое устройство, не терпящее больших нагрузок по току. Соединяя его с “брутальными” мощными двигателями, не избежать беды. Поэтому для нормальной совместной работы нам нужно будет включить в схему робота компонент, отвечающий за управление двигателями – подающий и отключающий ток на их обмотки. Речь идет о микросхеме или готовом модуле, которые называют драйвером двигателя. На нашем сайте есть статьи, посвященные драйверам, построенным на схеме H-моста.  Если вы покупаете готовые шасси, то обязательно предусмотрите возможность размещения на них подходящего драйвера.

Красивый корпус

Как правило, вся конструкция автомобиля строится вокруг его шасси. Если посмотреть примеры готовых проектов, то они часто выглядят как “провода на колесиках” – внешний вид их изобилует пучками соединительных проводов, ведущих от восседающего на троне контроллера Ардуино к драйверам, моторам и датчикам. Между тем, красивый и функциональный корпус не только вызывает правильные эстетические чувства и помогает выделить вашу модель от остальных. Хороший корпус может превратить игрушку в реальное устройство, помогает привить навыки конструирования и промышленного дизайна, что важно для инженеров любого возраста.

Питание робота

Обеспечение правильной схемы питания – это то, что очень часто оказывается на последнем месте в списке приоритетов начинающих ардуинщиков. Между тем, именно ошибки в схеме электропитания становятся основными причинами проблем, возникающих в процессе работы умных устройств на Ардуино. Создавая ардуино-машинку нужно предусмотреть питание контроллера, двигателей, драйвера и датчиков. У всех них есть свои ограничения и особенности работы, требуется создать оптимальное по весу и сложности решение, позволяющее учесть все эти ограничения.

Питание робота на Ардуино

Создавая по-настоящему автономное устройство робота, нужно побеспокоиться и о времени его работы, и о возможности быстрой подзарядки или смены батареек. Как правило, выбираются решения из следующих вариантов:

  • Обычные батарейки AA. Тут нужно понимать, что платы Arduino Uno, Nano и большинство двигателей, используемых в Ардуино-робототехнике, требуют напряжения в диапазоне 6-9 вольт. Поэтому придется собрать вместе последовательно не менее 4 батареек на 1,5 В, причем сами батарейки должны быть хорошего качества и обеспечивать работу с достаточно большим током. Например, большинство солевых батареек этим критериям не удовлетворяют. Батарейки AAA при создании ардуино-машинок практически не используются из-за своей пониженной емкости (хотя могут использоваться в миниатюрных моделях, где размер имеет первостепенное значение).
  • Аккумулятор AA. Здесь возникает еще большее ограничение по напряжению и току. Большинство аккумуляторов выдают напряжение 1,2 вольт, поэтому их требуется больше для “собирания” нужных нам 6-9 вольт. Несомненным плюсом является возможность перезарядки.
  • Литиевые аккумуляторы 18650. Это уже “серьезная артиллерия”, позволяющая получить большое время автономной работы, возможность подзарядки и приемлемые характеристики по току и напряжению. Рабочее напряжение для таких элементов питания – 3,7 В, что позволяет собирать готовую схему питания всего из двух элементов.
  • Другие источники питания. Сюда можно включить как более мощные и габаритные никель-металлгидридные, кадмиевые аккумуляторы, так и многочисленные литий-ионные “плоские” варианты, используемые в дронах, смартфонах или другой портативной цифровой технике.

Каким бы ни был источник питания, нужно обеспечить его надежное крепление, удобное расположение, защиту от воздействия недружелюбной окружающей среды. Если вы подключаете к одному источнику и контролер, и двигатели, и датчики, то нужно позаботиться о правильной схеме, включающей, например, надежную связь “по земле” всех устройств.

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.

Платформа Ардуино 4WD с двигателями, колесами и рамой без электронных компонентов 4WD платформа для Ардуино с необычным видом крепления элементов Конструктор машинки Ардуино на платформе 4WD с пультом управления Bluetooth и PS2 Типовой набор 4WD машинки с Ардуино, шилдами и основными датчиками

Инструкция по сборке робота-автомобиля

В этой статье расскажем вам о том, как по шагам собрать универсального робота на колесной или гусеничной платформе.  Управлять им будет микроконтроллер Ардуино нано. Если вам не нравится долго читать, посмотрите в конце статьи на видео, подготовленное нашими партнерами – каналом ArduMast Club.

Пример платформы робота-машины на Ардуино

Предлагаем инструкцию по созданию универсальной платформы, которая потом пригодится для создания самых разных проектов, независимо от выбранного контролера или типа шасси. Вы можете использовать стандартные варианты из Алиэкспресса, как на видео, можете снабдить машину гусеницами и создать вездеход,  можете придумать вообще ни на что не похожий вариант. Главное, чтобы число двигателей не превышало 4 и сами ни не были слишком мощными (тогда придется менять тип управления моторами – другой драйвер двигателя).

Робот на Ардуино

Для реализации проекта нам понадобится:

  • Контроллер Ардуино (в нашем случае, Arduino Nano).
  • Драйвер двигателя L298N.
  • Двигатели с редукторами.
  • Корпус и шасси для крепления колес и оборудования
  • Корпус для аккумуляторов 18650 с выключателем.
  • Коммутационные провода.

Дополнительное оборудование, которое потребуется для создания полноценного проекта:

  • Датчик расстояния и серво-мотор, на который он установлен.
  • Инфракрасные датчики линии.
  • Светодиоды для индикации и “красоты”.
  • Пьезодинамик – пищалка.
  • Bluetooth модуль (если собираетесь управлять машинкой дистанционно).
  • Sensor shield (упрощает коммутацию).
  • Модуль контроля заряда и подзарядки аккумуляторов.
  • Сами аккумуляторы.
Общая схема машинки на Ардуино

Схема электропитания робота автомобиля

Вопрос организации правильного стабильного электропитания является одним из самых важных в любом проекте.В нашей модели применена рекомендованная нами схема питания, основанная на использовании литийионных аккумуляторов формата 18650 и платы защиты их от переразряда и перезаряда.

Давайте разберем самый простой вариант схемы питания электромоторов. Перед началом сборки лучше заранее припаять провода к моторам.

Схема питания и подключения двигателей в ардуино автомобиле

Все достаточно стандартно и вы найдете в интернете десятки подобных примеров. Но в этой схеме есть большой минус – в случае полного разряда аккумуляторы придут в негодность.

Машинка на Ардуино

Для добавления контроллера разряда придется внести следующие изменения в схему:

Схема питания с контролем разряда аккумулятора

Теперь аккумуляторы будут защищены, но здесь нет возможности заряжать их.

Питание робота Ардуино

Для зарядки можно использовать модуль повышения напряжения с 5v до необходимого уровня зарядки, который зависит от количества серий используемых аккумуляторов. Он имеет гнездо типа микро USB и при частом использовании оно может сломаться, поэтому мы рекомендуем установить дополнительное гнездо для последующей подзарядки пяти вольтовым блоком питания. Для зарядки двух литий-ионных аккумуляторов необходимо настроить выходное напряжение на 8,4 Вольта.

Схема питания с модулем зарядки для ардуино робота машинки

Подключаем двигатели и плату

С питанием платформы мы разобрались, теперь подключим остальные компоненты. Для начала припаиваем провода к моторам, затем обматываем их изолентой, чтобы случайно в дальнейшем не оторвать контакты. Можно сделать так, что в итоге на 2 двигателя будут идти всего два провода вместо 4х. Это немного упростит монтаж и сэкономит место на платформе.

Монтируем драйвер двигателей на платформу так, чтобы его радиатор был спереди. ЭТО ВАЖНО! В противном случае, вам придется переписывать программу для микроконтроллера.

Драйвер двигателя для Ардуино робота

Затем размещаем холдер и плату БМС. Не забываем оставлять место спереди для последующего монтажа каких-либо сенсоров. Ардуиио нужно разместить так, чтобы была в дальнейшем возможность подключить его к ПК для прошивки. Это же правило относится и к модулю для зарядки аккумуляторов.

Питание для ардуино и других электронных компонентов мы возьмем от драйвера двигателей.

Подключаем Bluetooth к машинке

Мы собираемся использовать модуль Bluetooth через  SoftwareSerial (библиотеку SoftwareSerial.h), поэтому подключаем модуль блютуз к 3 и 4 цифровым пинам ардуино.  RX к D3,   TX к D4

Схема подключения Bluetooth к ардуино машинке
Подключаем Bluetooth
Схема подключения драйвера двигателя к роботу
Схема подключения компонентов к Arduino
Датчик расстояния машины

Платформа робота готова! Теперь осталось загрузить прошивку для контроллера Ардуино и программу для смартфона RC CAR. Вы можете посмотреть на нашем сайте обзор Android приложений для работы с Arduino.

Программирование робота на Ардуино

Так как мы делаем инструкцию по сборке универсального робота, то неплохо бы предусмотреть все необходимое для разных вариантов ее использования. Весь код вы можете найти в архиве: https://yadi.sk/d/jIYZQDI-GuytMw

Для езды по черной линии мы задействовали 3 пина под датчики линии и три пина для подключения светодиодов, чтобы иметь возможность визуального контроля наличия линии. Другими словами, если под левым сенсором есть черная линия, то загорится левый светодиод и так далее. Кроме того, мы разработали и протестировали схему, в которой будут одновременно использоваться и управление скоростью моторов по ШИМ, и серводвигатель.

Видео инструкция по сборке робота на Ардуино

Предлагаем вашему вниманию подробную видео-инструкцию по сборке робота автомобиля на Ардуино от нашего партнера – канала ArduMast Club.

Надеемся, статья была полезна для вас. В комментариях под видео вы сможете найти код, схемы робота, соединения деталей, скетч и ссылки на интернет-магазины, в которых вы можете купить все необходимые компоненты.

image

Ардуино теперь движется!

Если вы хотите собрать настоящего робота но у вас пока нет знаний, опыта и радиодеталей, то это набор разработан специально для Вас.

Бесплатная Доставка курьером и до ПВЗ!

image

ПОЛУЧИВ НАБОР, ВЫ СМОЖЕТЕ:

СОСТАВ НАБОРА:

✔ Контроллер

x1 Arduino UNO R3 + кабель USB

✔ Датчики

✔ Элементы крепежа

✔ Платы расширения

✔ Механические детали

✔ Двигатели

✔ Светодиоды

✔ Компоненты для управления

✔ Элементы питания, зарядное устройство

✔ Базовые компоненты

✔ Элементы крепежа

✔ Книга

x1 Момот М. Мобильные роботы на базе Arduino. – СПб.: БХВ-Петербург, 2017 — 288 с.

Бесплатная Доставка курьером и до ПВЗ!

Книга с 288 страницами инструкций  в комплекте: «Мобильные роботы на базе Arduino.»

Руководство для начинающих конструкторов написано в форме практических про­ектов по построению мобильных роботов. Для их реализации выбрана популярная плат­форма Arduino и единая базовая четырехколесная конструкция. Сложность проектов возрастает от простой, управляемой с пульта «машинки» до интеллектуального робота, самостоятельно играющего в кегельринг. Рассказано, как управлять моторами, осуществлять сборку механики и электроники, программировать основные функции и управлять роботом. Роботы смогут обходить препятствия, выбираться из запутанных лабиринтов, искать кегли и определять их цвета, ориентироваться по электронному компасу и даже балансировать на двух колесах.

Бесплатная Доставка курьером и до ПВЗ!

Собранным роботом можно управлять с помощью специального приложения доступного для скачивания по ссылке https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller&hl=ru

Приложение позволяет управлять автомобилем или с кнопок или акселерометра телефона. Ползунок позволяет контролировать скорость вашего автомобиля, если схема управления автомобиля имеет эту функцию. Есть также две кнопки для передней и задней фары. Мигающий свет позволяет узнать, когда телефон подключен к машине, и стрелки загораются давая вам знать направление движения автомобиля.

Что такое Arduino

Arduino — это платформа для создания электроники своими руками. К печатной плате, которая является миниатюрным компьютером, можно подсоединять различные компоненты, например датчики, экраны, переключатели. Или даже другие платы со своими функциями.

В Telegram-канале «Лайфхакер» только лучшие тексты о технологиях, отношениях, спорте, кино и многом другом. Подписывайтесь!

В нашем Pinterest только лучшие тексты об отношениях, спорте, кино, здоровье и многом другом. Подписывайтесь!

В Arduino можно загрузить программу (скетч), чтобы добиться определённого результата. Скажем, включать свет, когда на датчик поступает сигнал, или запускать мотор и ехать в нужном направлении.

Вот из чего состоит конструктор Arduino.

Основа

«Мозг» любого конструктора Arduino — это собственно одноимённая плата. На ней есть процессор, модули памяти и порты ввода‑вывода, к которым подключаются другие компоненты.

Самая популярная плата для начинающих — Arduino Uno. На ней 14 цифровых и 6 аналоговых входов, 32 КБ постоянной и 2 КБ оперативной памяти, процессор частотой 16 МГц, порт USB. Не сравнить с современными смартфонами и компьютерами, но для знакомства с конструктором и создания простых систем этого вполне достаточно.

Arduino Nano и Mini — одни из самых компактных в линейке. Nano аналогична Uno по производительности, Mini немного слабее. В Arduino Leonardo установлен новый контроллер (процессор) и вместо USB‑порта используется microUSB.

Фото: AlexCorv/Shutterstock

Если же вы заранее знаете, что на простых экспериментах не остановитесь, можно сразу смотреть в сторону плат побольше, например Arduino Mega. Здесь будет уже 54 цифровых выхода и 16 аналоговых, 256 КБ постоянной и 8 КБ оперативной памяти, а также процессор частотой 16 МГц и порт USB.

Конструктор постоянно развивается, появляются новые версии платформы — с более производительными микроконтроллерами, большим объёмом памяти, расширенным набором портов, дополнительными компонентами вроде Bluetooth или Wi‑Fi.

Обратите внимание: блока питания на плате нет, к розетке вы её не подключите. Электроэнергию можно подавать либо через порт USB/microUSB от компьютера или внешнего аккумулятора, либо на разъём Vin или 5V (плюс на Gnd — «земля») на плате (они промаркированы) — например, от батареи или блока питания для ПК.

Дополнительные элементы

Фото: Schlyx/Depositphotos

Чтобы платформа Arduino не просто выполняла вычисления, а давала какие‑то наглядные и полезные результаты работы, к ней нужно подключить «обвес». Это могут быть:

  • Датчики. Они принимают информацию и передают её плате, бывают цифровыми и аналоговыми. К примеру, для Arduino есть датчики света, цвета, температуры, давления, влажности, уровня воды и другие. Выпускаются и более сложные сенсоры. Например, датчики препятствия и расстояния часто используют для создания управляемых роботов и машинок.
  • Светодиоды — самые простые элементы, которые покажут результат работы Arduino. Загорелся светодиод — что‑то произошло, например получили определённый сигнал с датчика.
  • Моторы и другие приводы. Они нужны для того, чтобы привести в движение части вашей конструкции: заставить колёса машины крутиться, а робота — шагать.
  • Экраны. Используются для вывода информации. Обычно это небольшие чёрно‑белые LCD‑дисплеи для пары строк текста, но есть и компактные цветные TFT‑экраны разрешением до 240 × 320 точек и диагональю до 3 дюймов.
  • Кнопки и переключатели. Позволяют управлять работой устройства на базе Arduino: включать и выключать его, задавать определённые сценарии поведения.
  • Резисторы. Нужны, чтобы менять яркость свечения светодиодов или создавать особые электрические схемы.
  • Потенциометры — резисторы с переменным сопротивлением. Их обычно используют, чтобы управлять напряжением, яркостью светодиодов, громкостью звуков и так далее.
  • Провода, перемычки и макетная плата. Нужны для простой сборки вашего Arduino без пайки. Достаточно вставлять ножки резисторов, коннекторов, проводников и других деталей в отверстия на плате. Так быстрее, безопаснее и легче — разберётся даже ребёнок.

Платы расширения

Фото: Baladapat/Depositphotos

Такие платы, которые иногда называют шилдами (Shield), расширяют возможности Arduino. Они устанавливаются на платформу или друг на друга по принципу бутерброда.

Назначение плат обычно отражено в названии. Например, Ethernet Shield позволяет подключить систему к сети Ethernet, GPRS Shield — к мобильной сети. Для управления мощными моторами выпускается Motor Shield, для работы Arduino от бытовой электросети напряжением 220 вольт — AC/DC Shield.

Почему Arduino — это круто

Существует миф, что Arduino — это дорогая игрушка для гиков, которые умеют держать в руках паяльник и писать километры кода. Но на самом деле даже не слишком подкованному технически человеку этот конструктор принесёт радость и пользу.

Это возможность развить технические навыки

Arduino — конструктор простой и «дружелюбный». Особых знаний и умений вам не потребуется, специального образования — тоже. Повторимся: с макетной платой и коннекторами ничего паять не придётся — собирать гаджеты будет не сложнее LEGO.

Чтобы написать скетч, достаточно освоить лишь азы программирования. Для Arduino используется упрощённый язык, основанный на С++.

Поначалу вы можете использовать готовые схемы и скетчи. Со временем научитесь дорабатывать их или создавать собственные конструкции с нуля. А готовые библиотеки с открытым исходным кодом только расширят ваши возможности.

В то же время с Arduino вы станете лучше разбираться в технике. Вы поймёте, как работают различные электронные компоненты, как из простых датчиков и слабого процессора собрать сложную систему, как составить алгоритм её действия. Наконец, придумаете, как автоматизировать рутинные задачи дома и в офисе.

Arduino даёт тот самый технический бэкграунд, который пригодится во многих ситуациях. Конструктор также развивает логическое мышление и креативность.

Это первый шаг к новой профессии

Если вы хоть раз задумывались о том, чтобы войти в IT, Arduino поможет вам принять правильное решение. Создавая гаджеты из конструктора и программы для них, вы поймёте, насколько вам интересен этот процесс, чем именно вы хотите заниматься: аппаратной или программной частью, сборкой новых конструкций или совершенствованием устройств, которые разработали другие пользователи, а может, поиском ошибок и контролем качества систем.

Вы научитесь писать и тестировать код, решать логические задачи, мыслить нестандартно. Всё это пригодится будущему разработчику вне зависимости от направления.

С Arduino можно освоить даже системы искусственного интеллекта и создать устройства интернета вещей. Это два передовых пути в IT, которые сейчас очень активно развиваются и испытывают огромный кадровый голод. Поэтому здесь работа специалистов оплачивается весьма щедро.

Это интересное хобби, которое вряд ли надоест

Arduino — это безграничный простор для творчества. С этим конструктором можно решить практически любую техническую задачу: от создания домашней системы автоматического полива растений до умных роботов и машин с автопилотом.

На базе Arduino вы сможете разработать бесконечное множество гаджетов. При этом используются одни и те же элементы в самых разных вариантах и комбинациях — экономично!

Это полезное занятие

Из Arduino легко создать вполне земные вещи, которые облегчат вашу жизнь. Так, в Сети существуют десятки инструкций по сборке радио или домашней системы безопасности, управления освещением или цифровых часов.

Кроме того, на базе Arduino можно строить рабочие прототипы разных новых гаджетов и систем. Так, вы можете установить везде умные датчики движения и получать на смартфон сообщения о различных событиях: скажем, когда кот вернулся с прогулки или когда у него закончилась еда. Ещё один пример — метеостанция с онлайн‑доступом: позволит предсказывать погоду точнее синоптиков «из телевизора» и видеть результат на экране смартфона.

Что можно сделать из Arduino

Энтузиасты разрабатывают и показывают на YouTube полезные гаджеты и фантастические игрушки — как правило, с детальным описанием элементов и ссылкой на скетч. Собрали для вас несколько интересных вариантов.

Мигающий светодиодный куб

Оригинальный светильник выполнен из светодиодной гирлянды. Arduino управляет миганием лампочек, которые имитируют 3D‑эффекты.

Инструкция по созданию куба находится здесь.

Генератор мыльных пузырей

Надоело пускать мыльные пузыри силой собственных лёгких и хочется эффектного шоу? Можно собрать робота, который будет делать это за вас. Гаджет окунает колечко в вазу с мыльным раствором, и в этот момент запускается вентилятор. Результат — много пузырей сразу и никакого мошенничества.

Инструкцию по созданию генератора вы найдёте на этой странице.

Робот

Забавный «КартонБот» создан из Arduino и картона, также включает сервоприводы и ультразвуковой дальномер. Робот умеет вращать головой и смешно двигать руками.

Описание проекта здесь.

Система полива сада

На базе Arduino и шаровых кранов CWX‑15Q можно соорудить умную систему капельного полива для вашего сада. Она умеет определять влажность почвы и следит за уровнем воды в баке.

Описание найдёте на этой странице.

Что нужно для старта работы с Arduino

Оригинальные платы, наборы и компоненты выпускает компания Arduino. С ростом популярности конструктора появились и другие похожие продукты — комплекты с оригинальными платами Arduino или их аналогами.

Наборы — это удобно: вы получаете плату, все нужные датчики и механизмы, а также инструкции. Вариант комплектации обычно подбирается для конкретной цели. Например, чтобы вы смогли соорудить автомобиль с управлением по Bluetooth или робота, который будет патрулировать квартиру.

Фото: rozdemir/Shutterstock

Но оригинальные платы и другие компоненты Arduino стоят сравнительно дорого. Так, Arduino Uno третьей ревизии на официальном сайте предлагается за 23 доллара. Стартовый набор Arduino Starter Kit на базе Arduino Uno с макетной платой, коннекторами, светодиодами — за 93 доллара. И это без учёта стоимости доставки.

В продаже можно найти конструкторы на базе оригинальных итальянских плат Arduino. Например, есть российская серия «Матрёшка», наборы от издательства «БХВ‑Петербург» и вариант конструктора «Знаток».

Аналоги, скопированные с Arduino, обойдутся дешевле. Правда, качество многих китайских плат не гарантируется: они могут даже не включиться или работать с ошибками. А датчики, моторы, платы расширения из других наборов иногда несовместимы с платформой.

На Ozon продаются комплекты с платами‑аналогами. Например, здесь есть неплохой вариант за 2 990 рублей с учётом скидки. Внутри — копия Arduino Uno, макетная плата, хороший набор датчиков, светодиодов и коннекторов, а также пульт управления, экраны, кнопки и другие компоненты.

Такой же комплект на AliExpress стоит вдвое дешевле — 1 558 рублей. Доставка бесплатная. Больше наборов можно увидеть на этой странице.

Россия выпускает платы — аналоги Arduino под брендом Iskra. Так, Iskra Neo похожа на Arduino Leonardo, на базе неё есть набор «Планета XOD». А Iskra Mini — аналог Arduino Mini.

Помимо наборов с платформой Arduino, продаются и комплекты датчиков, коннекторов и так далее. Наконец, можно заказать по отдельности и нужную плату, и каждый недостающий компонент для системы, которую вы спроектировали.

Где искать информацию о конструкторе Arduino

  • Официальный сайт проекта Arduino. Здесь же работает интернет‑магазин.
  • На портале российского сообщества Arduino Master можно найти материалы на русском языке. Есть и уроки, которые помогут быстрее освоить конструктор, а также детальная информация о двигателях, датчиках и других компонентах системы.
  • Немало примеров на сайте RoboCraft. Есть даже самодельный робот‑пылесос!
  • На этом сайте выложили хорошую шпаргалку по основным командам для скетчей Arduino. Если держать её перед глазами, сможете писать код быстрее.
  • Саму среду разработки программного обеспечения Arduino IDE можно загрузить отсюда. Если не хотите возиться с установкой, попробуйте онлайн‑редактор кода для конструктора.
image
image image image

Чтобы сделать робота в домашних условиях вам понадобится собственно сама плата микроконтроллера и ультразвуковой сенсор. Если сенсор зафиксирует препятствие, сервопривод позволит ему обогнуть препятствие. Сканируя пространство справа и слева, робот выберет наиболее предпочтительный путь для обхода препятствия.

У робота есть индикаторный диод, зуммер, сигнализирующий об обнаружении препятствия, и функциональная кнопка. Самодельный робот очень простой в исполнении.

Шаг 1: Необходимые материалы

image image
  • Arduino UNO
  • Мини макетная плата
  • Драйвер двигателя L298N
  • Два электромотора с колесами
  • Ультразвуковой датчик измерения расстояния HC — SR04
  • Микросервопривод
  • Кнопка
  • Красный диод
  • Резистор 220 Ом
  • Отсек для элемента питания 9В (с/без коннектора)
  • 8 стоек для макетных плат с наружной и внутренней резьбой, 8 винтов и 8 гаек

Также вам понадобится одна большая металлическая скрепка и бусина (для заднего опорного колеса).

Для изготовления каркаса робота использован кусок плексигласа (оргстекла) 12х9,5 см. Можно сделать каркас из дерева или металла, или даже из компакт-дисков.

Инструменты:

  • Дрель
  • Суперклей
  • Отвертка
  • Клеевой пистолет (опционально)

Питание:

Для питания робота используется батарейка 9В (крона), она достаточно компактная и дешевая, но разрядится уже примерно через час. Возможно, вы захотите сделать питание от аккумулятора на 6 В (минимум) или 7 В (максимум). Аккумулятор мощнее батарейки, но и дороже и больше по габаритам.

Шаг 2: Делаем каркас робота

image image

Положите всю электронику на плексиглас и маркером отметьте места, где нужно будет просверлить монтажные отверстия (фото 1).

На нижней стороне пластины плексигласа приклейте на суперклей электромоторы. Они должны быть параллельны друг другу, с помощью линейки-угольника проверьте их положение прежде чем клеить (фото 2). Затем приклейте на суперклей отсек для батарейки.

Можно также просверлить отверстия под провода электромоторов и питания.

Шаг 3: Монтируем электронику

Закрепите на каркасе плату контроллера и драйвер двигателей, используя стойки для печатных плат, винты и гайки. Миниатюрная макетная плата клеится на липкий слой (уже есть на нижней стороне) (фото 1).

Теперь делаем заднее опорное колесо из скрепки и бусины (фото 2). Концы проволоки закрепите на нижней стороне каркаса суперклеем или термоклеем.

Шаг 4: Устанавливаем «глаза» робота

Шаг 5: Схема подключений

Теперь приступаем к подключению электронных компонентов. Подключение компонентов происходит согласно схеме на рисунке 1.

На макетную плату устанавливайте только диод, зуммер и кнопку, это упрощает схему и позволяет добавить дополнительные устройства в дальнейшем.

Шаг 6: Код

Код, который приведен ниже, сделан с помощью Codebender.

Codebender – это браузерный IDE, это самый простой способ программировать вашего робота из браузера. Нужно кликнуть на кнопку «Run on Arduino» и все, проще некуда.

Вставьте батарейку в отсек и нажмите на функциональную кнопку один раз, и робот начнет движение вперед. Для остановки движения нажмите на кнопку еще раз.

  /*Arduino Obstacle Avoiding Robot  with a servo motor and an ultrasonic sensor HC-SR04  LED and buzzer */      //Библиотеки  #include    #include "Ultrasonic.h"    //Константы  const int button = 2;  //Пин кнопки на пин 2  const int led  = 3;  //Пин светодиода (через резистор) на пин 3  const int buzzer = 4;  //Пин пищалки на пин 4  const int motorA1= 6;  //позитивный (+) пин мотора A на пин 6 (PWM) (от модуля L298!)  const int motorA2= 9;         //негативный пин (-) мотора A на пин 9 (PWM)  const int motorB1=10;  // позитивный (+) пин мотора B на пин 10 (PWM)  const int motorB2=11;  // негативный пин (-) мотора B на пин 11 (PWM)    Ultrasonic ultrasonic(A4 ,A5); //Создаем объект ultrasonic(trig pin,echo pin)  Servo myservo;    //Создаём объект Servo, чтобы контролировать сервоприводы    //Переменные  int distance;  //Переменная для хранения дистанции до объекта  int checkRight;  int checkLeft;  int function=0;  //Переменная для хранения функции робота: '1' – движение или '0' - остановлен. По умолчанию остановлен  int buttonState=0;            //Переменная для хранения состояния кнопки. По умолчанию '0'  int pos=90;      //переменная для хранения позиции серво. По умолчанию 90 градусов- датчик будет смотреть вперёд  int flag=0;  //полезный флаг для хранения состояния кнопки, когда кнопка отпущена       void setup()  {      myservo.attach(5);    //Серво-пин соединён с пином 5      myservo.write(pos);        // говорит сервоприводу идти на позицию в переменной 'pos'   pinMode(button, INPUT_PULLUP);  pinMode(led, OUTPUT);  pinMode(buzzer, OUTPUT);  pinMode(motorA1,OUTPUT);  pinMode(motorA2,OUTPUT);  pinMode(motorB1,OUTPUT);  pinMode(motorB2,OUTPUT);    }    void loop()  {  //Проверка состояния кнопки  buttonState = digitalRead(button);  unsigned long currentMillis = millis(); //считаем...    //Меняет главную функцию (остановлен/двигается) когда кнопка нажата    if (buttonState == LOW) {//Если кнопка нажата единожды...    delay(500);      if ( flag == 0){        function = 1;          flag=1; //меняем переменную флага      }      else if ( flag == 1){ //Если кнопка нажата дважды      function = 0;      flag=0; //меняем переменную флага снова       }        }      if (function == 0){ //Если кнопка отжата или нажата дважды, то:  myservo.write(90);  //установить для серво 90 градусов – датчик будет смотреть вперёд  stop();//робот остаётся неподвижным  noTone(buzzer);//пищалка выключена  digitalWrite(led, HIGH);// и диод горит    }  else if (function == 1){//Если кнопка нажата, то:  //Считываем дистанцию...  distance = ultrasonic.Ranging(CM); //Совет: Используйте 'CM' для сантиметров и 'INC' для дюймов  //Проверяем на наличие объектов...  if (distance > 10){  forward(); //Всё чисто, двигаемся вперёд!  noTone(buzzer);  digitalWrite(led,LOW);  }  else if (distance <=10){  stop(); //Обнаружен объект! Останавливаемся и проверяем слева и справа лучший способ обхода!  tone(buzzer,500); // издаём звук  digitalWrite(led,HIGH); // включаем светодиод  //Начинаем сканировать...   for(pos = 0; pos =0; pos-=1){     //идём от 180 градусов к 0                                             myservo.write(pos);             // говорим серво пройти на позицию в переменной 'pos'                   delay(10);                      // ждём 10 мс, пока сервопривод достигнет нужной позиции              }                            checkRight= ultrasonic.Ranging(CM);                            myservo.write(90);                   // Датчик снова смотрит вперёд                            //Принимаем решение – двигаться влево или вправо?              if (checkLeft  checkRight){              right();              delay(400); // задержка, меняем значение при необходимости, чтобы заставить робота повернуться.              }              else if (checkLeft <=10 && checkRight <=10){              backward(); //Дорога перекрыта... возвращаемся и идём налево;)              left();              }  }  }    }      void forward(){  digitalWrite(motorA1, HIGH);  digitalWrite(motorA2, LOW);  digitalWrite(motorB1, HIGH);  digitalWrite(motorB2, LOW);  }    void backward(){  digitalWrite(motorA1, LOW);  digitalWrite(motorA2, HIGH);  digitalWrite(motorB1, LOW);  digitalWrite(motorB2, HIGH);  }    void left(){  digitalWrite(motorA1, HIGH);  digitalWrite(motorA2, LOW);  digitalWrite(motorB1, LOW);  digitalWrite(motorB2, HIGH);  }    void right(){  digitalWrite(motorA1, LOW);  digitalWrite(motorA2, HIGH);  digitalWrite(motorB1, HIGH);  digitalWrite(motorB2, LOW);  }    void stop(){  digitalWrite(motorA1, LOW);  digitalWrite(motorA2, LOW);  digitalWrite(motorB1, LOW);  digitalWrite(motorB2, LOW);  }  </pre> Нажав кнопку «Edit», вы можете редактировать скетч для своих нужд.  Например, изменив значение «10» измеряемого расстояния до препятствия в см, вы уменьшите или увеличите дистанцию, которую будет сканировать robot Arduino в поисках препятствия. Если робот не двигается, может изменить контакты электромоторов (motorA1 и motorA2 или motorB1 и motorB2).  Шаг 7: Завершенный робот  

Ваш самодельный робот, обходящий препятствия, на базе микроконтроллера Arduino готов.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий