Игрушка ГАЗ-66 на пульте управления. Часть 1

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

image


Несколько последних лет хотелось заполучить игрушку на пульте управления и обязательно с видео. Но не купить готовую, а сделать самому. И в итоге заказал себе вот такую игрушку, с простенькой системой управления, но большим потенциалом для модернизации. На все работы от старта и до почти завершения ушло ~ 9 месяцев. Большую часть этого времени ждал комплектующие из Китая.


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


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


1. Аппаратная часть


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


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


Компоненты:


  • Raspberry pi 3
  • ADS1115 АЦП
  • Game HAT

Game HAT


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


image


Джойстиком на этой плате является KY-023. Его решил использовать вместо руля. Но оказалось, что в Raspberry нет АЦП и единственные значения которые можно было получить от него 0 и 1, что явно недостаточно для плавного поворота колес.


image


ADS1115


Эту проблему решил модуль ADS1115.


image


Модуль был припаян к Game HAT и прикреплен к ней с помощью ленты 3M. Показания снимаются со средних ножек переменных резисторов на джойстике. Выглядит все так:


image


Джойстик по аналогии впаян в Game HAT. Провода припаяны к разъемам Game HAT, которые соответствуют разъемам питания и I2C на Raspberry. Схема подключения:


image


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


1.2 Машинка


Как это все ужасно выглядит под капотом:


image


Начнем разбираться.


Компоненты:


  • Raspberry pi 3
  • Raspberry Pi Camera v2 NoIR
  • PCA9685 ШИМ генератор
  • Mini-360 понижающий преобразователь питания
  • BMS CF-4S30A-A контролер заряда
  • L298N драйвер управления двигателем
  • Моя плата управления светом на основе драйвера L293
  • 3 литий-ионных батареи 18650
  • 370 мотор
  • DI-1181MG сервопривод

Питание


Начнем от питания, его обеспечивают три аккумулятора 18650 соединенных последовательно и дающих ~ 12 вольт.


Аккумуляторы подсоединены через плату BMS CF-4S30A-A, что бы их можно было заряжать и не разрядить в ноль на покатушках.


image


Но это плата предназначена для 4-х аккумуляторов, поэтому она была переделана для работы с 3-мя аккумуляторами. Почему была взята она, а не 3S 40A BMS. Потому что она была под рукой.


Схема переделки:


image


Этим напряжением питается 370 мотор через драйвер L298N.


image


image


Для питания Raspberry используются напряжение с этих же аккумуляторов, но напряжение понижается модулем Mini-360 до 5 вольт.


image


Raspberry запитал прямо на его ножки.


Движение


Теперь поговорим о том как машинка ездит. Для управления рулевым механизмом используется сервопривод DI-1181MG, который управляется с помощью PCA9685. Так же PCA9685 отвечает за управление мотором регулируя его скорость и направление вращения через драйвер L298N. Raspberry же управляет PCA9685 по I2C шине. PCA9685 питается от 5 вольт с понижающего преобразователя. Этого вполне хватает для сервы и управления мотором. Мотор подключен к 2 выходам L298N для повышения мощности.


image


image


Видео


Для видео использовал Camera v2 NoIR, она легко подключается к Raspberry. Но без доработок не обошлось. Стандартный шлейф камеры был в длину 15 см. чего не хватило для монтажных работ. Так же этот шлейф не стандартный, он имеет 15 пинов. На aliexpress за один длинный шлейф для этой камеры китайцы хотят больше 1000 рублей. По этому был куплен комплект из 10 стандартных 16 пиновых шлейфов ~ за 300 рублей. И с помощью высокотехнологичной технологии применения канцелярских ножниц переделан в 15 пиновый шлейф для камеры.


image


image


На момент написания статьи, 2-ой месяц жду крепление для камеры в кабину. Пока что машинка показывает только потолок :)


Свет


На машинке уже установлен штатный свет, состоящий из фар с 2-мя желтыми светодиодами. Осталось их только запитать.


Управление светом осуществляется через мою плату, которая сделана на основе драйвера L293. Питание на диоды подается через резистор. Плата сделана по технологии ЛУТ. На ней так же куча дорожек для разводки питания.


Можно было бы для управления светом воспользоваться PCA9685, но на том момент когда делал свою не знал про нее и он мне был не нужен.


Схема платы:


image


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


image


А вот это, что стояло в машинке пока я не влез :)


image


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


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


Благодарность


Отделу паяльников моей компании за их помощь. Поскольку я программист и с железом не дружил :-)

Источник: https://habr.com/ru/post/462283/


Интересные статьи

Интересные статьи

Продолжаем делиться выдержками из руководства по выживанию для начинающих техлидов от Дж. Х. Рейнвотера. В первой серии мы рассказывали, с какими породами разработчиков руководителю обычно пр...
В предыдущих частях туторов мы рассматривали то, как создаются текстуры. Точнее, то, как всё выглядит под капотом (как выразился Yoooriii в комментариях к 4-ой части). Расставили на свои места те...
Часть первая. Вводная Часть вторая. Настройка правил Firewall и NAT Часть третья. Настройка DHCP Часть четвертая. Настройка маршрутизации Часть пятая. Настройка балансировщика нагрузки ...
Сегодня мы заканчиваем нашу серию статей о функциональном программировании. Получилось 11 частей. Я считаю, что это достижение. В этой статье реализуем простой стековый калькулятор (также известн...
Первая часть Вторая часть Тема сегодняшнего разговора — работа с памятью. Я расскажу про инициализацию директории страниц, маппинг физической памяти, управление виртуальной и мою организацию ку...