Arduino bluetooth robot car

Bluetooth машинка на Arduino с двумя моторами

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

Комплектующие

  1. Arduino Uno — https://bit.ly/2P3rCI5​
  2. драйвер моторов L298N — https://bit.ly/3dvbDMg​
  3. Bluetooth модуль HC-06 или HC-05 или подобный — https://bit.ly/3x4nhFX​
  4. моторы постоянного тока с редуктором и с колёсами — 4 шт — https://bit.ly/2P4e9Qr​
  5. провода папа-папа, мама-мама, папа-мама 10-30 см — https://bit.ly/3n3z0jl​
  6. аккумулятор 9В, я использовал с разъёмом micro-USB для зарядки — https://bit.ly/2QeFbF6​
  7. зажим для аккумулятора 9В — https://bit.ly/32rmwZi​
  8. тумблер — 1 шт — https://bit.ly/3artZfr

Для изготовления рамы машинки можно использовать разнообразные материалы:

  • листовой лёгкий материал, который легко обрабатывать — оргстекло, фанера, текстолит, оргалит и т.п.
  • третье колесо, которое будет опорным — оно должно уметь ехать во всех стороны (хорошо подходят мебельные колёсики);
  • крепёжные элементы — болты, гайки, шурупы.

Схема подключения

Схема Bluetooth машинки

Питание платы берётся от «Кроны» и подаётся на Arduino через пины VIN и GND. Также подаётся отдельно на драйвер двигателей через порты +12V и GND.

Blutooth модуль HC-06 получает питание в 3,3 вольта от Arduino. Если подключить к 5 вольтам, то тоже работает нормально. Выход RX модуля подключается к TX на Arduino, а TX — в RX, то есть наоборот.

На драйвере двигателей нужно снять две боковые перемычки — Enable. Пины под ними позволят нам управлять скоростью вращения двигателей. И эти пины подключаются к Arduino обязательно к ШИМ-портам (обозначенные знаком ~). На схеме это порты 3 и 5.

Питание моторов подаётся на Input драйвера от Arduino с портов 2 и 4, 6 и 7. А сами моторы подключаются к Output A и Output B драйвера.

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

Если после сборки и прошивки, вы подаёте на машинку сигнал двигаться вперёд, а оба колеса при этом вращаются в разных направления, то нужно поменять местами провода на одном из моторов в выходе Output.

Читайте также:  Через блютуз колонку заикается звук

Если при движении вперёд машинка едет назад, то нужно поменять местами провода Output обоих двигателей (хотя, кто знает, где у ней перед, а где зад…).

Если при повороте налево, машинка едет направо, то нужно поменять местами Output A и Output B.

Если подключить всё по схеме, то скетч переделывать не нужно будет.

Скетч

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

В скетче прописанные необходимые поясняющие комментарии.

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

void rightWheelForward () < // Правое колесо вперёд. digitalWrite (motorRight1, LOW); digitalWrite (motorRight2, HIGH); analogWrite(enableRight, motorSpeed); >void leftWheelForward () < // Левое колесо вперёд. digitalWrite (motorLeft1, LOW); digitalWrite (motorLeft2, HIGH); analogWrite(enableLeft, motorSpeed); >

Со смартфона приложение по Bluetooth посылает сигналы в виде латинских букв (W, S, E и т.д.). В зависимости от пришедшей команды, с помощью оператора if, вызываются комбинации тех или иных функции. Если вы будете использовать другое приложение, не то, которое я предоставлю ниже, то оно будет посылать другие команды, другие буквы. Соответственно, придётся переписать их в скетче.

Например, когда по Bluetooth приходит ‘ W ‘ вызываются две функции rightWheelForward (); и leftWheelForward (); что заставит оба мотора крутится вперёд.

А если приходит ‘E’, то вызываются функции rightWheelStop (); и leftWheelForward (); что заставит остановиться правый мотор и вращаться вперёд только левый, от чего машинка поведет вперёд вправо.

Есть три вида скорости, которые включаются, когда приходят команды ‘1’, ‘2’ и ‘3’. Скорость можно задавать от 0 до 250. На каждую и трёх команд в скетче прописаны скорости 120, 170 и 250, соответственно.

Читайте также:  Портативная беспроводная колонка bluetooth fc 550

Если у вас уровень заряда аккумулятора уже на исходе, то при скорости 120 может не поехать или поехать, но не стабильно. Тогда лучше увеличить значение для первой скорости.

Скорость приходит в виде переменной motorSpeed в функцию analogWrite() и запускает двигатель с заданными оборотами.

Приложение

Так как я не владею навыком написания приложение под Anroid, то для создания пульта управления использовать уже известный у многих начинающих разработчиков инструмент визуального программирования — App inventor.

Что-то подсмотрел у других в интернете, что доработал, и получилось такое простое приложение.

Пульт управления для Bluetooth машинки на Arduino

Сначала нужно включить машинку и сделать сопряжение по Bluetooth со смартфоном. Пароль модуля 0000 или 1234. После этого откройте приложение и нажмите «Подключиться к машинке». Подключитесь к модулю HC-06. Светодиод на нём должен перестать мигать.

Если сразу начать нажимать на стрелки направлений движения, то не поедет. В первую очередь нужно нажать на одну из трёх скоростей, а уже потом на стрелки направления. Тогда поедет.

И, так как я не публиковал это приложение в Google Play, смартфон может ругаться на его безопасность. Но можно смело устанавливать. В нём всё работает безопасно.

Сборка

Можно купить готовое шасси для машинки сразу вместе с моторами и колёсами. Останется только установить электронику и всё подключить.

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

Из инструментов могут понадобиться:

  • Ручной или электрический лобзик (я пользовался ручным), чтобы отрезать нужные куски от материала.
  • Дрель или шуроповёрт, свёрла.
  • Крепёжные элементы — болты, гайки и саморезы любого подходящего диаметра.

Получилось дёшево и сердито. А главное работает.

Самодельная Bluetooth машинка

  • Самодельная Bluetooth машинка
  • Паять я тоже ничего не стал, чтобы потом можно было бы легко разобрать эту машинку и модернизировать. Припаивал только провода к моторам.

    Читайте также:  Гарнитура bluetooth jbl endurance dive синий

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

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

    У модуля Bluetooth особая проблема крепления — там отверстий для крепления нет вообще. Пришлось прижимать плату к раме другой деталью из оргстекла. Тут главное не сжать слишком сильно, чтобы не повредить.

    Самодельная Bluetooth машинка

    Аккумулятор крепится аналогично Bluetooth модулю, только снизу.

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

    Видео

    Bluetooth машинка на Arduino с двумя моторами : 19 комментариев

    1. arduino Автор записи 04.11.2021 в 19:00 Здравствуйте! Два аккумулятора по 3,7 вольт, полагаю, не хватает для питания двух таких моторов.
    1. arduino Автор записи 04.11.2021 в 23:56 Надо тогда в мониторе порта посмотреть, приходят ли от блютуза сигнал в ардуину.
    1. arduino Автор записи 05.12.2021 в 20:17 Здравствуйте! Скетч на Android? Не знаю, что это ) Скетч на Arduino есть в статье.
    1. arduino Автор записи 04.04.2022 в 20:26 Здравствуйте! Все исходники даются в статье. Если htm о мобильном приложении, то оно делалось в визуальном редакторе, а не с помощью кода.
    1. arduino Автор записи 13.12.2022 в 19:03 Не обязательно, если удобен какой-то другой способ отключения от питания.
    1. arduino Автор записи 17.02.2023 в 10:32 Здравствуйте! Убедитесь, что блютуз-модуль исправен — попробуйте к другому телефону подключить.
    1. arduino Автор записи 15.05.2023 в 14:35 Здравствуйте! С моим скетчем должно работать, но скоростью моторов нельзя будет управлять.

    Источник

    Оцените статью
    Adblock
    detector