Оглавление:

Машинка с дистанционным управлением Bluetooth с STM32F103C и L293D - Недорого: 5 шагов
Машинка с дистанционным управлением Bluetooth с STM32F103C и L293D - Недорого: 5 шагов

Видео: Машинка с дистанционным управлением Bluetooth с STM32F103C и L293D - Недорого: 5 шагов

Видео: Машинка с дистанционным управлением Bluetooth с STM32F103C и L293D - Недорого: 5 шагов
Видео: Машинка с дистанционным управлением на платформе Arduino своими руками) 2024, Сентябрь
Anonim
Image
Image
Уничтожьте Пожирателя батарей!
Уничтожьте Пожирателя батарей!

Я сделал автомобиль с Bluetooth Arduino, подобный изображенному здесь Ardumotive_com. Проблема, с которой я столкнулся, заключалась в батареях и их весе, а также в их расходе. С тех пор дешевые аккумуляторы для сотовых телефонов стали очень доступными. Все, что мне нужно было сделать, это уменьшить вес. Так как я дешев, я перешел на микроконтроллер STM32F103C. Микроконтроллер STM32F103C можно купить менее чем за 2 доллара, и он намного меньше, чем Arduino. Я немного изменил код, чтобы работать с STM32F103C.

Запасы

  • Дешевая машина с дистанционным управлением, которая ест батарейки. Да, прямо как тот, который использует Ardumotive_com. Вы отключите систему и вместо этого воспользуетесь аккумулятором для телефона. Если у вас есть ресурсы для создания собственного шасси, имейте это в виду. Я пошел в магазин игрушек на улице и купил дешевую машину менее чем за 10 долларов. Автомобиль ест батарейки, а пульт - батарейки - идеально подходит для улучшения.
  • Банк питания для телефона. Сейчас они очень дешевые. Отходите от павербанков, у которых сбоку есть кнопка включения. Вы не сможете следить за своей машиной и удерживать кнопку. Это глупо.
  • Чип L293D - это двойной H-мост, который будет управлять электродвигателями.
  • Модуль Bluetooth HC-06
  • Выключатель - я использовал простой выключатель.
  • Некоторый провод - провод для телефона подойдет, но лучше будет скрученный кабель сечением 20 калибра побольше.
  • Proto Board или кусок пластика или картона для крепления Blue Pill и L293D. Я дешев, поэтому я придумал немного другую систему с тонким гофрированным картоном - вроде коробки от лампочки.
  • Два дешевых USB-кабеля для зарядки - их можно купить в Dollar Tree. Не используйте хороший кабель для программирования. Один будет отрезан для включения / выключения, а другой будет заряжать аккумулятор.

По желанию

  • 4 светодиода - если вам нужны фары и задние фонари.
  • 4 резистора 220 Ом - для светодиодов в системе 3,3 В.
  • Пьезо-динамик или небольшой динамик для рупора.

Инструменты

  • Паяльник и припой
  • Пистолет с горячим клеем - Моя дочь - ниндзя с горячим клеем!
  • Инструмент для зачистки проводов и ножницы
  • ПРИМЕЧАНИЕ: если вы используете картонную технику, которую я использую, а не прототип платы, вам понадобится Dremel или небольшое сверло

Шаг 1. Уничтожьте Пожирателя батарей

Уничтожьте Пожирателя батарей!
Уничтожьте Пожирателя батарей!

Пришло время развлечься уничтожением пожирателя батарей! Да, НУТ ЭТО ЭТО! Гордитесь тем, что вы вносите свой вклад в то, чтобы мир стал экологичнее … Ладно, это натянуто, но в любом случае … Перейдем к кадру.

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

Когда у вас есть рама с двигателями и рулевым управлением, найдите, с какой стороны клеммы двигателя. Для проверки двигателя используйте аккумулятор или зарядное устройство на 5 В.

На двигателе рулевого управления, когда колеса поворачиваются вправо, пометьте положительный провод аккумуляторной батареи цифрой «3», а отрицательный провод - цифрой «6».

На ведущем двигателе, когда колеса вращаются вперед, пометьте положительный провод аккумуляторной батареи «14» и отрицательный провод «11».

Шаг 2: Код в Arduino IDE

Код в Arduino IDE
Код в Arduino IDE
Код в Arduino IDE
Код в Arduino IDE

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

Хорошо, это одна из сложных частей. «Синюю таблетку» нельзя запрограммировать через порт USB. Я не нашел более простого программного объяснения «Синей пилюли», чем видео Юпитера Броккинга на YouTube. В нем объясняется все, что вам нужно знать, включая библиотеку STMduino Роджера Кларка. Есть способ установить загрузчик, так что вы МОЖЕТЕ использовать USB для программирования «Blue Pill», но вы все равно должны запрограммировать загрузчик через последовательную шину.

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

Используйте макетную плату и разложите все на макетной плате, как показано на рисунке выше. Отключите последовательные линии TX и RX адаптера Bluetooth от контактов PA9 и PA10 STM32F103C. Подключите свой FTDI и запрограммируйте. Убедитесь, что линии последовательной шины пересекаются, RX к Tx и Tx к RX. Один получает, а другой дает.

После загрузки программы вы можете открыть последовательную консоль и отправить

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

снова, чтобы выключить их.

Поставьте машину на блок, чтобы поднять шины и отправить

Колеса должны двигаться вперед. Если нет, поменяйте провода местами. Вспомните, как мы ранее промаркировали провода. Соответствующие контакты L293D должны быть совмещены.

Чтобы остановиться, отправьте

Посмотрим на существенные изменения в коде.

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

/ * * Создано Василакисом Михалисом // 12-12-2014 ver.2

* Проект: Управление радиоуправляемым автомобилем через Bluetooth с помощью смартфона Android * Дополнительная информация на https://www.ardumotive.com * * Изменен этот код, чтобы соответствовать STM32F103, Джим Гарбе, [email protected] * Дополнительная информация на https:// github.com / jgarbe / RCCAR_STM32F103C * Обратите внимание, что 8-битные значения 0-255 были изменены на * отражать 16-битные значения 0-65535 * / / ****************** ********* * На STM32 аналоговая запись по-прежнему работает на 8-битном 255, * Но вы можете получить полную функцию диапазона ШИМ, 0-65535, объявив контакт как ШИМ * И использование pwmWrite () вместо analogWrite () *************************** /

В частности, контакты имеют разные названия в Arduino и STM32F103C. Мы объявляем контакты, используя следующий набор строк. Остался один штырь, который в петле объявлен далеко внизу. В строке 197 PA5 используется для считывания уровня заряда батареи.

//// Подключение L293

const int motorA1 = PB6; // к выводу 15 L293 const int motorA2 = PB7; // к выводу 10 L293 const int motorB1 = PB8; // к выводу 7 L293 const int motorB2 = PB9; // к выводу 2 L293 // Светодиоды подключены к выводу A12 STM32F103C const int lights = PA12; // Зуммер / динамик к Arduino UNO Pin A8 const int buzzer = PA8; // Состояние контакта Bluetooth (HC-06 JY-MCU) на контакте A11 STM32F103C const int BTState = PA11;

Также, используя analogWrite (); по-прежнему будет работать на «BluePill». Но лучше объявить контакты ШИМ, используя, pinMode (, ШИМ);

Затем используйте

pwmWrite (,);

ПРИМЕЧАНИЕ: 8-битный = 0-255, 16-битный = 0-65535

Строки 32-44 - это изменения в батарее. Если вы собираетесь использовать проверку уровня заряда батареи, вы должны использовать делитель для имеющейся у вас батареи. Эта часть не отражена в скетче Fritzing. На Youtube есть множество объяснений, как создать делитель напряжения. Поскольку STM32F103C представляет собой микросхему 3,3 В, я исправил код здесь, чтобы физически использовать делитель напряжения. Arduino может выдерживать более высокие напряжения через предоставленные АЦП, но Blue Pill - нет.

/ * Уровень заряда батареи будет проверяться на контакте PA5

* Изменена следующая строка для STM32F103C, потому что АЦП не может обрабатывать * ничего выше 3,3 В * Я просто закомментировал это * Делитель напряжения с использованием двух резисторов должен быть рассчитан и использован * для измерения входа АЦП далее в коде * пример: * GND --- резистор 2 кОм ----------------- резистор 1 кОм ------ 5 В * | * | * 3.3v * / // const float maxBattery = 3.3; // Измените значение на ваш максимальный уровень напряжения батареи!

Шаг 3. Соберите все вместе

Положил все это вместе
Положил все это вместе
Положил все это вместе
Положил все это вместе
Положил все это вместе
Положил все это вместе
Положил все это вместе
Положил все это вместе

Я обычно использую макетную плату, чтобы разместить детали и припаять между отверстиями, чтобы все соединить. Иногда я «спаяю» все вместе, чтобы получилось больше похоже на Франкенштейн / 3D пачку припоя.

Я выбрал этот гибридный метод, чтобы сделать устройство чистым и легким - и, конечно же, ДЕШЕВО!

Этот метод также позволяет маркировать. Одна из худших составляющих пайки «мертвым жучком» - это когда вы смотрите на микросхему ИС снизу и забываете, какой вывод есть что.

Изображения выше говорят сами за себя. Думаю, самое сложное - найти достаточно тонкий картон, чтобы он мог одновременно образовывать ямочки и быть жестким. Вы также можете использовать пластик, но разметить его немного сложнее. Как только я прижимаю штифты к доске и отмечаю ямочки, я использую Dremel, чтобы просверлить каждое отверстие для штифта.

Если вы еще не заметили, у меня на плате есть только фонари в качестве дополнительного разъема. Ни индикатором заряда батареи, ни бипером не пользуюсь. Это потому, что мой проект преследует другую цель. Все будет понятно, когда вы увидите готовый результат с кузовом автомобиля. … Но это наводит на мысль о том, что в этом проекте много неиспользуемых контактов. Может быть, устройство для открывания багажника, устройство для открывания двери автомобиля, детонатор с пожарным взломом,…… или даже мини- генератор световых возмущений Гальвани-Эдисона!

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

Я использовал то же приложение для Android, что и Ardumotive, его можно найти по адресу

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

Шаг 4. Аккумулятор и переключатель

Хорошо, здесь ты не можешь точно следовать моему плану.

Каким-то образом вам нужно будет найти хорошее место, чтобы поместить аккумулятор в машину, либо способ зарядки аккумулятора с помощью ключа, либо способ напрямую зарядить вилку аккумулятора. Во вводном видео я просто приклеил к раме аккумулятор и микроконтроллер и запустил его. Когда хотел остановиться, просто отключил аккумулятор. Проблема с этой настройкой заключается в том, что штекеры USB-кабеля и / или внешнего аккумулятора быстро портятся. Лучше иметь переключатель.

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

Вам придется разрезать USB-кабель пополам и поставить переключатель между батареей и USB-портом STM32F103C. Да, вы можете подключить STM32F103C к порту USB. Вы просто не можете запрограммировать его через порт USB. Я снова использовал Dremel, чтобы просверлить несколько отверстий под пайки переключателя. После пайки я использовал горячий клей, снова для усиления соединений.

Шаг 5: поместите кузов автомобиля на раму

Хорошо, я сказал, что переделал оригинальную версию Arduino этого автомобиля. Фактическим конечным продуктом стала декорация для балета «Щелкунчик» в исполнении нашей местной балетной труппы. В начальной сцене мышь пробежала по сцене с помощью случайной магии Дроссельмейера. Я использовал крысу IKEA и установил ее поверх рамы, Arduino и гораздо более крупного аккумуляторного блока. Стойка была тяжелой и не заряжалась. Это намного лучше!

Развлекайтесь со своей машиной. Помните, что на STM32F103C есть гораздо больше контактов, которые можно использовать. Может быть, скунс, похожий на того, что из «Истории игрушек 4».

Рекомендуемые: