Bluetooth машинка на Arduino с поворотными колёсами на 3D принтере

Bluetooth машинка на Arduino, которая построена на базе шасси с поворотными колёсами. Шасси распечатывается на 3D принтере. Если принтера нет, то можно попробовать изготовить все элементы из подручных материалов при наличии прямых рук. Используется минимум недорогой электроники. Скетч максимально простой и с русскими комментариями. Управление происходит со смартфона с помощью приложения Remote XY.

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

Bluetooth машинка на Arduino

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

Электроника:

  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. сервомотор SG90 — https://bit.ly/2QeE20g
  6. провода папа-папа, мама-мама, папа-мама 10-30 см — https://bit.ly/3n3z0jl
  7. аккумулятор 9В, я использовал с разъёмом micro-USB для зарядки — https://bit.ly/2QeFbF6
  8. зажим для аккумулятора 9В — https://bit.ly/32rmwZi
  9. выключатель — https://bit.ly/3sATelw

И ещё разные мелочи для сборки:

  1. болты 3 х 30 мм — 4 шт;
  2. гайки 3 мм — 4 шт;
  3. болты 4 х 6 мм — 10 шт;
  4. болты 4 х 10 мм — 2 шт;
  5. гайки 4 мм — 10 шт;
  6. болты 5 х 25 мм — 4 шт;
  7. гайки 5 мм — 6 шт;
  8. саморезы — 2 х 7 мм — 8 шт;
  9. подшипники — 5 х 16 х 5 мм — 4 шт.

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

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

Аккумулятор на 9В питает Arduino через порт VIN и драйвер моторов через порт 12V. Модуль Bluetooth питается от Arduino через порт 3,3V. Параллельно портам питания этого модуля подключается конденсатор для стабилизации напряжения. В ином случае Bluetooth может отключаться и терять подключение. Сервомотор также питается от микроконтроллера через порт 5V. Он управляет поворотными колёсами.

Если на драйвере мотора установлена перемычка Enable, то её нужно снять. Этот порт необходим для управления скоростью моторов. Он должен подключаться обязательно к ШИМ порту, обозначенном на Arduino знаком ~. На схеме выше это порт 3. Управление моторами осуществляется через порты 2 и 4 Arduino, они подключаются к портам Input 3 и Input 4 на драйвере моторов. Таким образом порт Enable драйвера управляет скоростью вращения, а логическая единица на Input 3 или Input 4 — направлением.

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

Если после сборки вы нажимаете на пульте управления кнопку для движения вперёд, а машинка едет назад, то поменяйте местами провода на портах Out3 и Out4.

L298N

А если моторы вращаются в разные стороны, то поменяйте местами провода на любом из моторов.

Изменение полярности мотора

Пины RX и TX Bluetooth модуля подключаются к портам TX и RX на Arduino, то есть наоборот. К сожалению, из-за несовместимости библиотеки RemoteXY.h с библиотекой SoftwareSerial.h запрограммировать другие порты Arduino для последовательной передачи данных не получится. Поэтому при прошивке микроконтроллера придётся каждый раз отключать питание Bluetooth модуля.

Сервомотор управляется портом 5 на Arduino программируется библиотекой Servo.h.

Скетч

Скетч можно скачать на Github. Предлагайте ваши исправления и доработки, если есть интересные идеи. Для компиляции вам понадобятся две библиотеки:

  1. RemoteXY.h — https://remotexy.com/ru/library/
  2. Servo.h — https://github.com/arduino-libraries/Servo

Перед компиляцией отключите Bluetooth модуль от питания, чтобы освободить порт передачи данных. После компиляции подключите его снова.

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

Приложение для пульта управления

Приложение для пульта можно скачать на сайте Remote XY. Там есть версия для Android и iOs. Это универсальная платформа для создания дистанционного пульта. Интерфейс пульта задаётся в самом скетче, в директиве #pragma pack(push, 1).

Вы можете увидеть и изменить проект пульта здесь. Скетч для Arduino, соответственно, тоже нужно будет изменить. Если поменяйте только дизайн пульта, то изменить нужно будет лишь содержимое директивы #pragma pack(push, 1). А если измените функциональность, то нужно будет шаманить глубже.

Пульт управления

Сборка

Для сборки я смоделировал шасси для печати на 3D принтере. Готовые модели вы можете скачать на сайте Thingiverse. Если есть идеи для ремиксов, то загружайте на Thingiverse. Лично я вижу, что шасси далеко не идеально и в нём есть, что доработать.

Печатать можно пластиком PLA с разрешением 0,2 и заполнением 20%. Но элементы поворотного механизма лучше напечатать с заполнением 70%. Нужны поддержки.

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

Процесс сборки и поездки на этом Ардумобиле показаны в этом видео.

Комментарии 4

  • Привет. Мне очень понравился твой проект. Подскажи если использовать ардуино нано и другой драйвер все тоже будет работать?

    • Arduino nano подходит, только на модель шасси не наденется. Придётся переделывать её для Nano. А драйвер — зависит от драйвера. Какой драйвер будешь использовать?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *