avatar_Neuronix

HOWTO монитор для контроллера Vector

Автор Neuronix, 19 Июнь 2019 в 19:04

« назад - далее »

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

Neuronix

HOWTO собрать себе экран/монитор/дисплей/показометр для контроллера Vector-M/S



Итак, у тебя есть контроллер и ты решился собрать эту безусловно полезную и нужную штуку. Почему нужную?

  • Телефон не оставить на постоянку на байке
  • Телефон нужно подключать вручную при каждом включении контроллера
  • Телефон не включается/не выключается самостоятельно при включении/выключении байка
  • Читабельность на солнце может быть не высокой, если аппарат бюджетный
  • Если аппарат не бюджетный, см п.1

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

Что нужно будет из софта:

  • Arduino IDE
  • PlatformIO

Подробно описывать установку софта не буду - есть много примеров и гайдов в интернете. Это не должно вызвать проблем. Если вызовет, лучше на этом и остановиться  :-D
Для каждой программы нужно добавить поддержку платформы ESP32 в настройках. Как делать - гуглите.

Теперь что потребуется из железа:

Деталей получается на общую сумму около 2500 руб (если брать все из Китая, то дешевле, возможно, существенно). Железо должно быть [b-b]именно таким[/b-b], иначе вам придется править прошивку, чтобы она заработала в вашими компонентами.

Итак, что с чем надо соединить:

  • Берем плату с ESP32, снимаем пластиковые гнезда, откусываем под самый корень металические штырьки. Лудим остатки и добавляем чуток припоя сверху - это нужно что-бы просто и удобно припаять проводки
  • Берем наши провода и отрезаем разъем с одной стороны, зачищаем изоляцию на пару мм, лудим. Повторяем раз 10
  • Берем экран. В него вставляется единственный коннектор с 4я проводами - RX, TX, земля и +5V (если что, то земля обычно черная, а +5В красная). Зачищаем с другой стороны коннектора провода на пару мм, лудим и припаиваем к контроллеру ESP32. Землю к земле (GND), 5V к, внезапно, 5V, RX и TX припаиваем к любым цифровым выводам (они помечены на плате как IO<цифра>, например IO17. Любым, потому что мы в дальнейшем зададим в прошивке контроллера, к каким выводам всё это подключено, так что можете записать себе в блокнотик
  • Берем модуль Bluetooth и наши подготовленные проводки. Тут всё по аналогии с экраном - +5V, земля и RX, TX. Всё делаем так же, RX, TX припаиваем на любые цифровые выводы, записываем их номера
  • Берем модуль часов. +5V и землю припаиваем как обычно, SDL и SCL выводы припаиваем к таким же выводам на плате микроконтроллера
  • Берем модуль семисегментного экрана. Питание и земля - как обычно. Выводы DIN, CS, CLK припаиваем к любым цифровым выводам на плате микроконтроллера, записываем

Выглядит может быть и страшно, но глаза боятся - руки делают. Теперь можно расслабиться и вытащить паяльник из розетки. Работа руками закончена, теперь перейдем к софту.
Сначала нужно скачать прошивку для микроконтроллера. Она находится по адресу https://bitbucket.org/Neuronix/vortexmonitoresp32/get/665ef7f88035.zip
Теперь нужно настроить наш модуль bluetooth на связь с модулем контроллера. Для этого найдем в корне папки с прошивкой файл BTsetup.ino и откроем его в Arduino IDE. Подключите к ПК микроконтроллер (если еще не сделали этого) и прошейте этот файл. После, отключите питание с МК и [b-b]зажмите и не отпускайте кнопку KEY [/b-b]на плате с bluetooth, после этого подайте питание на МК. Модуль bluetooth при включении с зажатой кнопкой KEY переходит в командный режим. Дальше откройте Serial port monitor в Arduino IDE и поставьте символ окончания строки в CR/LF. Напишите в строке "AT" (без кавычек) и нажмите enter - в ответ должно прийти "+OK". Если этого не произошло, можно попробовать поменять местами RX и TX провода, убедиться, что в мониторе скорость стоит 9600, убедиться, что светодиод на модуле BT мигает с продолжительностью ~1с (это означает, что он в командном режиме). Если ничего из этого не помогло - можно попробовать поменять значение BtBaudRate с 38400 на 9600 и залить еще раз прошивку. Дальше мы исходим из того, что вы получили +OK на свою команду. Напомню, что кнопку KEY нельзя отпускать, пока будут вводится команды!

Вводим последовательно, после каждой команды должен быть ответ, что всё ОК:


  • AT+RMAAD
  • AT+ROLE=1
  • AT+CMODE=0
  • AT+CLASS=0
  • AT+INQM=1,9,48
  • AT+INQ

После последней команды ждем, пока не появится список найденных устройств поблизости. Контроллер должен быть, естественно, включен.
Формат строк будет в виде: +INQ:address,type,signal  Например:  14:2:110007,0,7FFF
Скопируйте аналог 14:2:110007 и разделите запятыми, чтобы получилось 14,2,110007
Если других устройств рядом нет, то все ок. Если найдется несколько, то узнаем имя каждого, введя для каждого найденного адреса команду AT+RNAME? <address> Эта команда выведет имя устройства по его адресу. Найдите из списка что-то с именем типа "HC-05".
Итак, адрес нужного устройства найден. Теперь добавим его к нашему BT модулю:


  • AT+LINK=<address> (например, AT+LINK=14,2,110007)
  • AT+INIT

Всё! Настройка модуля закончена, теперь ваш модуль должен автоматически соединяться с модулем контроллера при включении.
Теперь зальем основную прошивку для МК. Для этого откройте скачанный проект в программе PlatformIO. Дальше по действиям:


  • Откройте файл src/settings.h
  • Отредактируйте значения переменных - такие как вольтаж батареи, емкость и номера цифровых выходов на плате для всех устройств (вы же всё записали, верно?)
  • Залейте прошивку в МК

Теперь нужно залить прошивку для экрана (т.к. оно является отдельным устройством). Для этого закидываем на SD карточку файл 1.tft из папки display. Вставляем карту в слот на экране, передергиваем питание на МК. При включении экран перейдет в режим прошивки и через некоторое время прошьется - от вас ничего не требуется, только дождаться окончания процесса. После того как экран скажет, что закончил, надо вытащить SD карту и передернуть питание МК. SD карта больше не понадобится.

Если всё правильно сделано, то после всех этих действий вы получится рабочий экран для контроллера. Останется только сделать/распечатать корпус.
Для владельцев 3D принтеров корпус находится вот тут: https://www.tinkercad.com/things/fy87wSfSnDF

Удачи!
Проект Vortex
QS205 v3 4T, 72v60Ah, Vector-M

Капитан Немо

#1
Зачем нужен HC-05, если в ESP32 Arduino UNO R3 уже на борту и блютуз, и вайфай?

И этот  https://roboshop.spb.ru/ у меня не открывается два дня. Даже через прокси-анонимайзер.

Neuronix

Цитата: Капитан Немо от 20 Июнь 2019 в 09:57
Зачем нужен HC-05, если в ESP32 Arduino UNO R3 уже на борту и блютуз, и вайфай?

И этот  https://roboshop.spb.ru/ у меня не открывается два дня. Даже через прокси-анонимайзер.

Да, BT на борту есть, но работа с ним в режиме мастера возможна только через нативный SDK esp32. А в нем чёрт ногу сломит, мне так и не удалось связать два устройства. Но вообщем то никто не мешает поправить код и использовать этот функционал. А сайт у меня нормально открывается, да и не нужен он особо - все названия и фотки даны
Проект Vortex
QS205 v3 4T, 72v60Ah, Vector-M

Капитан Немо

Увы, ссылка на дисплей у меня не открывается, а его фотка с того же сайта, поэтому тоже не вижу

Neuronix

Цитата: Капитан Немо от 20 Июнь 2019 в 11:18
Увы, ссылка на дисплей у меня не открывается, а его фотка с того же сайта, поэтому тоже не вижу

Звать его TJC4832T035. Это аналог NX4832T035 из серии Nextion. Но файл прошивки для дисплея к Nextion не подойдет, надо именно китайскую версию
Проект Vortex
QS205 v3 4T, 72v60Ah, Vector-M

Капитан Немо

#5
Зачем тогда переплачивать за бесполезные вайфай с блютуз? Есть ли более дешёвые аналоги ESP32 без радиотракта?

p.s. почитал здесь
Применяя дисплей HMI, высвобождаем ресурсы процессора, и тогда, возможно, можно применить не ESP32, а простые ардуинки на Atmega328?

Neuronix

#6
Цитата: Капитан Немо от 20 Июнь 2019 в 13:20
Зачем тогда переплачивать за бесполезные вайфай с блютуз? Есть ли более дешёвые аналоги ESP32 без радиотракта?

p.s. почитал здесь
Применяя дисплей HMI, высвобождаем ресурсы процессора, и тогда, возможно, можно применить не ESP32, а простые ардуинки на Atmega328?

Радио у ESP32 встроено. В теории конечно да, можно использовать ардуины, но у меня прошивка написана с использованием фичей ESP32. К примеру работа с bluetooth и графикой разнесена на разные ядра МК (у него их два). Поэтому код придется переделывать на однопоточный. К тому же цена за ESP32 составяет 300-400 руб за которое получаешь просто кучу ресурсов. Ардуины и рядом не валялись.
Кстати, WiFi не бесполезен. Прошивка умеет соединяться с точкой или создавать точку доступа. На МК поднимается веб сервер, через который можно обновлять прошивку дисплея + МК умеет обновляться по воздуху обычную прошивку. Это удобно, если монитор уже стоит на байке, прибитый гвоздями.
Проект Vortex
QS205 v3 4T, 72v60Ah, Vector-M

DarkByte

Цитата: Капитан Немо от 20 Июнь 2019 в 09:57Зачем нужен HC-05, если в ESP32 Arduino UNO R3 уже на борту и блютуз, и вайфай?
Насколько я помню, в ESP32 нет поддержки Bluetooth, только BLE. А вместе с контроллером Vector идёт именно модуль Bluetooth (без поддержки BLE), хотя при желании его можно заменить на модуль BLE.

DarkByte

Если кто-то так же, как и я, протупил, и вместо TJC4832T035 приобрёл NX4832T035, и при загрузке прошивки дисплея получил сообщение с ошибкой "Model does not match", то во вложении можно найти файл HMI и TFT под него. Визуально есть некоторые отличия от авторского, а так же отличаются идентификаторы элементов, поэтому так же прикладываю заголовочный файл main.h. Если вложение пропадёт, то файлы можно скачать с github.



AS2

Озадачился экраном к контроллеру.... но столкнулся с проблемкой.
Все железо приехало и начал "колдовать". С Ардуинками я на "вы"... :(
Цитата: Neuronix от 19 Июнь 2019 в 19:04Сначала нужно скачать прошивку для микроконтроллера. Она находится по адресу ссылка
Теперь нужно настроить наш модуль bluetooth на связь с модулем контроллера. Для этого найдем в корне папки с прошивкой файл BTsetup.ino и откроем его в Arduino IDE.
В файле с прошивкой нет такого файла!!! (BTsetup.ino)