The Open Panzer TCB from scratch

Автор Sergevk, 23:21:40

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Sergevk

Добрый день, некоторое время назад появилось желание собрать управляющий модуль для танка, основанный на проекте Open Panzer. В то время как Денис тестирует функции, которые заложены в этой плате, попытаемся собрать ее самостоятельно. Этот пост будет обновляться, чтобы все необходимое для самостоятельной сборки можно было оперативно найти.

Введение:
Проект Open Panzer - это контроллер управления различными видами техники (танки, автомобили и т.д.) с поддержкой различных систем ик-боя. Коды проекта находятся в открытом доступе в GitHub репозитории (ссылки ниже). Аппаратная часть основана на чипе AtMega 2560, таком же как и в популярном микроконтроллере Arduino Mega 2560.

Цели:
Построить гибкую систему управления основанную на доступных аппаратных компонентах и открытом исходном коде прошивки.

Ссылки:
- Сайт проекта: http://openpanzer.org/
- Репозиторий c прошивками: https://github.com/OpenPanzerProject/TCB
- Форум с запуском прошивки на Arduino Mega: http://openpanzer.org/forum/index.php?topic=16.0
- Соответствие пинов Arduino функцияь TCB: https://ru.aliexpress.com/item/FlySky-FS-I6S-Remote-Controller-FS-i6s-2-4G-6ch-Radio-Transmitter-iA6b-iA10b-Receiver-for/32823768166.html?ws_ab_test=searchweb0_0,searchweb201602_3_10152_10151_10065_10344_10068_10342_10343_10340_10341_10543_10084_10083_10613_10615_10307_10614_10301_10059_10314_10534_100031_10604_10103_10607_10606_10142_10125,searchweb201603_2,ppcSwitch_2&algo_expid=495cad6e-4d65-4205-a5a3-1298d758b97c-9&algo_pvid=495cad6e-4d65-4205-a5a3-1298d758b97c&priceBeautifyAB=0

FS.PNG
- Контроллеры двигателей: Monster Shield VNH2SP30, 30A, 2 штуки. (https://ru.aliexpress.com/item/1pcs-Free-Shipping-30A-Mini-VNH2SP30-Stepper-Motor-Driver-Monster-Moto-Shield-module-For-Arduino/32670888960.html )
MS_1.PNG
Двойные конторолеры Monster Shield не использовались из-за крайне низкого качества (ни один из 4-х не работал полноценно). Есть подозрение, что и с одинарными контроллерами может быть не все в порядке, но у меня отлично заработали 2 из 2-х. Заявленная мощность - 14 Ампер, в пике до 30. Данные контроллеры подключаются к схеме как Built-in Driver.
- Серво-приводы для отката и подъема \ опускания ствола
- Поворот башни с помощью штатного механизма HengLong \ Taigen (в планах переделать на серво-привод). Для поворота башни стандартым механизмом использовался RC ESC контроллер. (https://ru.aliexpress.com/item/20-20-MM-Brush-Motor-Speed-2KHz-RC-ESC-20A-Brush-Motor-Speed-Controller-w-Brake/32820490632.html)
rcesc.PNG
- Микроконтроллер: Arduino Mega Mini ATMega2560. Полный аналог Arduino Mega в компактном форм-факторе. (https://ru.aliexpress.com/item/Mega-2560-PRO-Embed-CH340G-ATmega2560-16AU-with-male-pinheaders-Compatible-for-Arduino-Mega-2560/32801785024.html). .
mega.PNG
- Разветвитель питания с выключателем и предохранителем
- Радиодетали

Расположение в корпусе
WP_20180108_21_54_03_Pro.jpgWP_20180108_21_53_14_Pro.jpg

... продолжение следует ...

...

Sergevk

... Продолжение ...

Контроллер

Внешний вид, плата
WP_20180111_18_33_53_Pro.jpgWP_20180111_18_34_02_Pro.jpg

Плата с Arduino, подключенные Bluetooth и RC приемник

WP_20180111_18_35_03_Pro.jpgWP_20180111_19_04_43_Pro.jpg
Компоненты
- Arduino Mega Mini: 1 шт (основной компонент)
- Разъемы
-- JST XH 2 pin: 5 шт. (https://ru.aliexpress.com/item/40-sets-Kit-in-box-2p-3p-4p-5-pin-2-54mm-Pitch-Terminal-Housing-Pin/32682649292.html)
-- JST XH 5 pin: 1 шт. (https://ru.aliexpress.com/item/40-sets-Kit-in-box-2p-3p-4p-5-pin-2-54mm-Pitch-Terminal-Housing-Pin/32682649292.html)
-- JST XH 10 pin: 1 шт. (https://ru.aliexpress.com/item/25-sets-Kit-in-box-6p-7p-8p-9p-10-pin-2-54mm-Pitch-Terminal-Housing/32714549332.html)
-- 2.54 pin header male: 2-3 штуки (https://ru.aliexpress.com/item/10Pcs-40Pin-2-54mm-Single-Row-Pin-Header-Strip/32215920109.html?spm=a2g0v.10010108.1000016.1.1b069769k8uoa1&isOrigTitle=true)
-- 2.54 pin header female: 2-3 штуки (https://ru.aliexpress.com/item/10PCS-2-54mm-40-Pin-Stright-Female-Single-Row-Pin-Header-Strip-PCB-Connector/32765690242.html?spm=a2g0v.10010108.1000016.1.2a8374a6Fr11zZ&isOrigTitle=true)
-- Кнопка: 1 штука (https://ru.aliexpress.com/item/100pcs-SMT-3-6-2-5-MM-Tactile-Tact-Push-Button-Micro-Switch-Momentary-2-Pins/32820263974.html)
-- Разъем питания: 1 штука (https://ru.aliexpress.com/item/Free-Shipping-50PCS-5-08-301-2P-301-2P-500PCS-2-Pin-Screw-Terminal-Block-Connector/32763632721.html)
-- 6-ти позиционный DIP переключатель: 1 шт. (https://ru.aliexpress.com/item/35PCS-LOT-Dip-Switch-Kit-In-Box-1-2-3-4-5-6-8-Way-2/32700715462.html)
-- 2 светодиода (красный и зеленый) (https://ru.aliexpress.com/item/LED-crystal-shell-D-5mm-Multicolor-Red-Yellow-Green-Blue-White-5x10-D-3mm-pack-50/32804320840.html)
-- Сопротивления:
--- 220 ОМ; 0.25W: 3 штуки
--- 2200 ОМ; 0.25W: 1 штука
--- 3.3 ОМ; 1W: 1 штука
-- Транзистор ВС337: 1 штука
-- Модуль стабилизации напряжения 5в, 800мА: 1 штука (возможно будут добавлены еще или заменены на более мощные) (https://ru.aliexpress.com/item/20Pcs-AMS1117-5V-power-supply-module-AMS1117-5-0-power-module-AMS1117-5-0V/32827557089.html)


Назначение разъемов:
Верх (слева направо):
- 4 2-pin разъема: свет;
- 10-pin разъем - подключение built-in драйвера двигателей
- 5-pin разъем - ИК-бой (приемник и передатчик, контакты так же как на Taigen / HengLong)
- 2-pin разъем - индикация попадания

Левая часть
- 8 рядов по 3 пина - подключение серв, контроллеров двигателей, звука
- Модуль понижения напряжения до 5в (питание серв)
- 4-pin разъем - Bluetooth модуль (https://ru.aliexpress.com/item/SPP-C-Replace-HC-06-Bluetooth-Serial-Pass-Through-Module-SPPC-Wireless-Serial-Communication-PCB-Bluetooth/32828349929.html)

Правая часть
- 2 контактный разъем - питание контроллера
- 6-ти позиционный DIP переключатель - настройка режимов:
-- 1-2 позиции: тип танка (Настраиваемый, легкий, средний тяжелый)
-- 3-4 позиции: настройка крайних точек для серв
-- 5 позиция: USB/Bluetooth управление
-- 6 позиция: режим ИК; бой или ремонт (режим ремонт на на плате не реализован)
- 3-pin разъем: подключение RC приемника по протоколу iBus. Другие протоколы не реализованы
- Кнопка для включения режима конфигурации серв
- 2 светодиода статуса платы (красный и зеленый)

По центру - разъем для Arduino Mega Mini

Схема:
MegaMini_bb.jpg

Sergevk

... Продолжение ...

Подключение драйверов двигателей к контроллеру

В проекте OpenPanzer в качестве встроенного драйвера для двигателей используется контроллер на базе микросхемы L298 (https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf). Это двухканальный контроллер двигателей с постоянной мощностью 2А на канал, пиковая - 3А на канал. Для работы каждого канала (двигателя) нужно задействовать 3 контакта
- INA - движение в прямом направлении
- INB - движение в обратном направлении
- PWM - ШИМ - частота вращения (скорость движения).

В нашем случае мы можем подключить более мощные драйверы двигателей, используя ту же самую логику. Для Варианта1 были выбраны драйверы на базе чипа VNH2SP30, 15А на канал, пиковая 30А. Также данные контроллеры можно использовать как полумост (подключать их параллельно) наращивая мощность если это необходимо (https://www.xsimulator.net/community/threads/monster-moto-shield-acts-as-a-single-motor-driver-more-power.5482/). Но, к сожалению, на Aliexpress достаточно много бракованных модулей (ни один из 2-х канальных не заработал так, как нужно), но одноканальные лично мне не попадались.

Одноканальный модуль:
cnh2sp30-image.jpg

Двухканальный модуль:

cnh2sp30-2ch-image.jpg

Схема подключения одноканальных модулей к плату (10-pin разъем в верхней части)

VNH2SP30_bb.png

Назначение контактов
VNH2SP30-pinout.png

Deny

Действительно двойные драйверы часто попадаются  бракованные. Из трех штук рабочий один! Одиночные работают без сбоев, имею два!
​Не говорите, если это не изменит тишину к лучшему.

Sergevk

Подключение Bluetooth модуля


По умолчанию загрузка новых версий прошивок и конфигурация контроллера OpenPanzer осуществляется через USB кабель, но существует возможность выполнять переконфигурацию платы через беспроводное соединение bluetooth (обновление прошивки при этом может быть реализовано по-прежнему только через кабель).


Bluetooth модуль подключается к одному из COM портов (Serial1, AUX) реализованных в OpenPanzer. На данной плате это 4-контактный разъем в нижнем левом углу.


Контакты:
1 - Питание (3,3 - 6v)
2 - Земля
3 - Передача данных
4 - Прием данных
BT_pinout.PNG

Используемый bluetooth модуль: https://ru.aliexpress.com/item/SPP-C-Replace-HC-06-Bluetooth-Serial-Pass-Through-Module-SPPC-Wireless-Serial-Communication-PCB-Bluetooth/32828349929.html

DSC_0045.jpg


Настройка Bluetooth модуля


Перед подключением Bluetooth модуля к контроллеру OpenPanzer необходимо выполнить его первоначальную настройку. Параметры, которые необходимо задать:
- Скорость COM порта
- Имя Bluetooth модуля
- Пин-код (опционально)


1. Подключаем Bluetooth модуль к FTDI адаптеру (USB COM-порт; данные адаптеры используются для прошивки Arduino Pro mini)

bt-ftdi_bb.png
2. Запускаем программу-терминал (например termite 3.3; https://www.compuphase.com/software/termite-3.3.zip)
3. Выставляем параметры для подключения к Bluetooth адаптеру
- Port: COM порт, на котором находится FTDI адаптер
- Baud rate: 9600
- Data bits: 8
- Stop bits: 1
- Parity: none
- Flow control: none
- Forward: none
- Append CR-LF

termite_1.PNG
4. Подключаемся к Bluetooth адаптеру; после успешного подключения он должен отвечать на команды AT
AT
OK
5. Выставляем имя Bluetooth адаптера (оно будет отображаться при поиске и подключении; имя задается после команды AT+NAME без пробела)
AT+NAMETankT-34
6. Выставляем скорость COM порта: 57600 (после применения этой команды Bluetooth модуль отключится от терминала)
AT+BAUD7


Настройка OpenPanzer


Чтобы включить возможноcть работы через Bluetooth также необходимо настроить контроллер OpenPanzer.
1. Запускаем конфигуратор OP Config
2. Подключаемся к контроллеру
OP_1.PNGOP_3.PNG
3. Считываем параметры из контроллера  (если необходимо)
OP_2.PNG
4. Переходим в раздем Misc
5. Выставляем для Serial 1 (AUX) 57600
OP_4.PNG
6. Сохраняем данные в контроллере
OP_9.PNG
7. Переключаем на плате DIP-переключатель 5 в положение 'выключено'
8. Перезагружаем контроллер OpenPanzer.


Подключение Bluetooth модуля к контроллеру
1. Подключаем Bluetooth модуль к контроллеру OpenPanzer 4-х контактным разъемом
2. Включаем контроллер (если он выключен)
3. Выполняем поиск Bluetooth модуля на ПК; подключаем его, вводим PIN код; ждем пока установится COM порт
4. Запускаем программу OP Config; Выставляем COM порт и скорость подключения - 57600
5. Подключаемся к контроллеру через Bluetooth

Deny

У меня происходит странное поведение Bluetooth модуля, он подключается и соединяется с программой, но через минуту отсоединяется, если я не произвожу никаких действий.
​Не говорите, если это не изменит тишину к лучшему.

Sergevk

Да, вот тут задан тайм-аут по неактивности, и он всего 8,5 секунд: https://github.com/OpenPanzerProject/TCB/blob/master/OpenPanzerTCB/src/OP_PCComm/OP_PCComm.h#L166 . Вероятно, это сделано для экономии аккумулятора.

Sergevk

В пост №2 добавил схему для Arduino Mega Mini

Юрий_1

Добрый вечер, коллеги.
Сергей, Вы супер!
Спасибо.

Deny

Спасибо, а то я подумал, что у меня что-то не то))))
​Не говорите, если это не изменит тишину к лучшему.