Несколько последних лет хотелось заполучить игрушку на пульте управления и обязательно с видео. Но не купить готовую, а сделать самому. И в итоге заказал себе вот такую игрушку, с простенькой системой управления, но большим потенциалом для модернизации. На все работы от старта и до почти завершения ушло ~ 9 месяцев. Большую часть этого времени ждал комплектующие из Китая.
Статью пишу по большей части для себя, что бы в дальнейшем не забыть что делал, как, зачем и почему.
Она будет содержать 2 основные части: аппаратную и программную и возможно еще одну часть про компоновку железа. Сначала опишу аппаратную часть, из чего собирал, с какими проблемами сталкивался и как их решал.
1. Аппаратная часть
Система состоит из пульта управления и аппаратуры установленной на машинке. Рассмотрим их подробнее.
1.1 Пульт управления
Компоненты:
- Raspberry pi 3
- ADS1115 АЦП
- Game HAT
Game HAT
Game HAT был выбран т.к. это уже готовое решение совмещающие в себе экран, джойстик и клавиатуру достаточную для управления машинкой.
Джойстиком на этой плате является KY-023. Его решил использовать вместо руля. Но оказалось, что в Raspberry нет АЦП и единственные значения которые можно было получить от него 0 и 1, что явно недостаточно для плавного поворота колес.
ADS1115
Эту проблему решил модуль ADS1115.
Модуль был припаян к Game HAT и прикреплен к ней с помощью ленты 3M. Показания снимаются со средних ножек переменных резисторов на джойстике. Выглядит все так:
Джойстик по аналогии впаян в Game HAT. Провода припаяны к разъемам Game HAT, которые соответствуют разъемам питания и I2C на Raspberry. Схема подключения:
На этом аппаратный сбор пульта управления закончен. Внешне ни каких видимых изменений он не претерпел.
1.2 Машинка
Как это все ужасно выглядит под капотом:
Начнем разбираться.
Компоненты:
- 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, что бы их можно было заряжать и не разрядить в ноль на покатушках.
Но это плата предназначена для 4-х аккумуляторов, поэтому она была переделана для работы с 3-мя аккумуляторами. Почему была взята она, а не 3S 40A BMS. Потому что она была под рукой.
Схема переделки:
Этим напряжением питается 370 мотор через драйвер L298N.
Для питания Raspberry используются напряжение с этих же аккумуляторов, но напряжение понижается модулем Mini-360 до 5 вольт.
Raspberry запитал прямо на его ножки.
Движение
Теперь поговорим о том как машинка ездит. Для управления рулевым механизмом используется сервопривод DI-1181MG, который управляется с помощью PCA9685. Так же PCA9685 отвечает за управление мотором регулируя его скорость и направление вращения через драйвер L298N. Raspberry же управляет PCA9685 по I2C шине. PCA9685 питается от 5 вольт с понижающего преобразователя. Этого вполне хватает для сервы и управления мотором. Мотор подключен к 2 выходам L298N для повышения мощности.
Видео
Для видео использовал Camera v2 NoIR, она легко подключается к Raspberry. Но без доработок не обошлось. Стандартный шлейф камеры был в длину 15 см. чего не хватило для монтажных работ. Так же этот шлейф не стандартный, он имеет 15 пинов. На aliexpress за один длинный шлейф для этой камеры китайцы хотят больше 1000 рублей. По этому был куплен комплект из 10 стандартных 16 пиновых шлейфов ~ за 300 рублей. И с помощью высокотехнологичной технологии применения канцелярских ножниц переделан в 15 пиновый шлейф для камеры.
На момент написания статьи, 2-ой месяц жду крепление для камеры в кабину. Пока что машинка показывает только потолок :)
Свет
На машинке уже установлен штатный свет, состоящий из фар с 2-мя желтыми светодиодами. Осталось их только запитать.
Управление светом осуществляется через мою плату, которая сделана на основе драйвера L293. Питание на диоды подается через резистор. Плата сделана по технологии ЛУТ. На ней так же куча дорожек для разводки питания.
Можно было бы для управления светом воспользоваться PCA9685, но на том момент когда делал свою не знал про нее и он мне был не нужен.
Схема платы:
Представлю общую схему подключения:
А вот это, что стояло в машинке пока я не влез :)
К моменту написания уже начал забывать, что и как делал. Хотя прошло не больше месяца с момента монтирования.
По аппаратной части все. В следующей свое статье опишу программную часть, как оживлял железо.
Благодарность
Отделу паяльников моей компании за их помощь. Поскольку я программист и с железом не дружил :-)
Автор: Jessy_James