Протокол KT-LCD

Автор Blik86, 30 Апр. 2019 в 01:32

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

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

Blik86

Цитата: Калин от 09 Март 2024 в 23:39Дисплей не анализирует эти данные.
Как вы это определили? То что дисплей измеряет напряжение сам, не значит того что эти данные совсем не используются.
Цитата: Калин от 09 Март 2024 в 23:39В B2 всегда 0 .
Так как вы питаете контроллер?
 

Калин

#91
Цитата: Blik86 от 10 Март 2024 в 00:17Как вы это определили? То что дисплей измеряет напряжение сам, не значит того что эти данные совсем не используются. Так как вы питаете контроллер?
 

Подавал на дисплей питание от аккумулятора без контроллера и он показывал цифровое значение  заряда аккумулятора вольтах.  Я без контроллера изучал, что  передает дисплей при разных режимах его настройки.
Коллективный разум дал расчет скорости от диаметра колеса и периода вращения
float calculateSpeed(unsigned long period, float diameter) {
  float radius = diameter * 0.0254 / 2; // радиус колеса в метрах
  float frequency = 1.0 / (period / 1000.0); // частота вращения в Гц
  float speed = 2 * 3.14159 * radius * frequency; // скорость в м/с
  speed *= 3.6; // преобразуем скорость в км/ч
  return speed;
}

 Я сейчас делаю электронную ручку газа с управлением от мобильного.  От контроллера нужно получать скорость вращения колеса для правильной калибровки ручки газа для разных уровней мощности. Использую esp32, там уже есть встроенный современный блютуз модуль для связи с мобильным телефоном  и 12 битный АЦП с 8 битным ЦАП для получения управляющего напряжения ручки газа в контроллер. Эта схема уже работает как от ручки газа, так и выставлением уровня скорости на мобильном.

13_chip_13

Цитата: Калин от 10 Март 2024 в 01:28Я сейчас делаю электронную ручку газа с управлением от мобильного.  От контроллера нужно получать скорость вращения колеса для правильной калибровки ручки газа для разных уровней мощности. Использую esp32,
Как знакомо звучит 😁
https://electrotransport.ru/index.php?topic=64647.0
По обмену: обычные штатные дисплей (на всем простом что продаётся, а это почти всё)никак данные не используют обычно,  кроме тех что нужны для показания скорости и ошибок, ещё когда то были которые ток потребления  могли показывать из обмена. Это вот про вопрос выше про отсутствие каких то данных в обмене, более того китайцы в протокол со временем "прощают" и остаются "дыры". И вроде по маркировке одинаковые изделия,  а по факту отличаются если лезть в дебри.

Blik86

Цитата: Калин от 10 Март 2024 в 01:28он показывал цифровое значение  заряда аккумулятора вольтах.
То что дисплей сам измеряет напряжение - изначально очевидно. Вопрос был о другом! У дисплея есть режим НЕработы при повышенном напряжении, возможно исходя из данных о режиме контроллера (36В, 48В...) меняются пороги срабатывания защиты...
Цитата: Калин от 10 Март 2024 в 01:28Подавал на дисплей питание от аккумулятора без контроллера
:facepalm: Как КОНТРОЛЛЕР был запитан, когда он присылал [65, 16, 0, 27, 10, 0, 184, 0, 0, 0, 128, 57]?

Цитата: Калин от 10 Март 2024 в 01:28Коллективный разум дал расчет скорости от диаметра колеса и периода вращения
https://electrotransport.ru/index.php?msg=2286000

Калин

Цитата: Blik86 от 10 Март 2024 в 12:19Как КОНТРОЛЛЕР был запитан, когда он присылал [65, 16, 0, 27, 10, 0, 184, 0, 0, 0, 128, 57]?
Программный эмулятор на python успешно может подменять протокол контроллера.
Вот еще замечания от коллективного разума по анализу принимаемых данных от контроллера.
 int count = 0;
        bool startFilling = false;

        while (swSerial.available() && count < bufferSize) {
         byte incomingByte = swSerial.read();
         if (incomingByte == 65) {
             startFilling = true;
            }

         if (startFilling) {
             buffer[count] = incomingByte;
             count++;
                           }
                                                  }

И еще раз про ESP32.  Очень классный проц, имеющий 2 ядра, на каждый из которых можно запускать свои потоки. На 1 ядро - работу с контроллером, на 2 - работу с блютуз, еще и аппаратная поддержка TX - RX.

Blik86

Цитата: Калин от 10 Март 2024 в 13:28Программный эмулятор на python успешно может подменять протокол контроллера.
Цитата: Калин от 03 Март 2024 в 17:16Получаю такие данные от контроллера [65, 16, 0, 27, 10, 0, 184, 0, 0, 0, 128, 57]  Не совсем вяжется с описанием.  Контроллер КТ36/48.  Причем такие данные идут и при подключенном дисплея на него.
Ничего не понимаю. Зачем цитировать то с чем ваш ответ не связан? У вас русский не родной язык и вы пользуетесь переводчиком?

Цитата: Калин от 10 Март 2024 в 13:28if (incomingByte == 65)
65 может быть и в конце.
-
CRC расч= 253. | 65:8:36:27:10:0:253:1:0:0:128:65: покой
CRC расч= 36.  | 65:8:36:11:195:0:36:1:0:0:128:65: накат
CRC расч= 157. | 65:8:36:0:225:0:226:17:1:0:1:62: PAS
CRC расч= 160. | 65:8:36:0:220:0:192:17:1:0:1:33: PAS
https://electrotransport.ru/index.php?msg=2305588

13_chip_13

Цитата: Blik86 от 10 Март 2024 в 14:1265 может быть и в конце.

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

Blik86

Цитата: 13_chip_13 от 10 Март 2024 в 14:16Ну зачем сразу с козырей 😁. Пусть баги в какой то момент появятся🤪,  вопросы будут, че не работает...
:pardon: нестрашно, все равно не читают что им пишут...

Калин

Цитата: 13_chip_13 от 10 Март 2024 в 14:16Ну зачем сразу с козырей 😁. Пусть баги в какой то момент появятся🤪,  вопросы будут, че не работает...
Вообще то все работает. Скорость с контроллера передается  на мобилу. Только задержки есть. Надо пробовать напрямую датчик скорости подключить к ардуино, т.к. с этим параметром скорости завязаны все расчеты и управление. А начало пакета от контроллера нужно ловить (в данном случае B0=65), т.к. данные в пакете могут быть смещены и необходимо из этого набора выделить правильные.  Например, блютуз протоколе есть поддержка режими Prefix, где первые четыре байта определяют длину передаваемого пакета. Если сформированный пакет неправильный, то данные не передаются.

Калин

Предварительный дизайн программы. Соединяется с телефона через блютуз на контроллер и управляет скоростью. Скорость приходит из контроллера и отображается. Работает по типу круиз.  Сбрасывается курком газа или тормоза.

13_chip_13

Цитата: Калин от 11 Март 2024 в 11:53Вообще то все работает.
Никто ж не спорит что не будет работать вообще, но есть условия при которых не будет работать, если вот то был весь код по приёму.

Калин

  Еще есть ньюанс. Новые параметры настройки контроллера вступают в действие только по его выключению-включению. Нужно будет ставить электронный ключ аналогично как в разъеме дисплея красно-синий провод.

Калин

1.Сделал автокалибровку ручки газа по уровням ассистента.  https://www.youtube.com/watch?v=yS9-1YCon9A
2.Систему управления голосовыми командами. https://www.youtube.com/watch?v=8IQMOcPsleo
3. Подключил к ардуино на аналоговый вход напрямую датчик скорости мотор колеса (часто не задействован в контролерах). Теперь показывает скорость мгновенно.


Калин

https://www.youtube.com/watch?v=i8SJv4Ezhhg   Работает все без ручки газа и внешнего дисплея. Плавный разгон и фиксированные уровни круиза.

13_chip_13

Цитата: Калин от 14 Март 2024 в 01:01.Систему управления голосовыми командами
Эта штука требует постоянного соединения с сервером (наличие интернета)?

Mike 372

А экстренный стоп умеет? Для трамвая годится. На велосипеде выглядит странно.

AnV

Подскажите, как дисплей LCD3 управляет включением контроллера: при включении кнопки на LCD3 посылается команда на контроллер и он подает питание на синий провод? Или LCD3 подает питание на синий провод контроллера? Нет схемы LCD3. У меня возникла проблема - при нажатии кнопки включения  дисплей включается, но при отпускании - отключается. Как будьто LCD3 не посылает команду на включение контроллера.

RMM

Цитата: AnV от 19 Апр. 2024 в 14:34Подскажите, как дисплей LCD3 управляет включением контроллера: при включении кнопки на LCD3 посылается команда на контроллер и он подает питание на синий провод? Или LCD3 подает питание на синий провод контроллера? Нет схемы LCD3. У меня возникла проблема - при нажатии кнопки включения  дисплей включается, но при отпускании - отключается. Как будьто LCD3 не посылает команду на включение контроллера.
Дисплей включается сам и подает питание на контроллер. Можно включить дисплей без контроллера