Полезная информация


Контроллер VESC, FLIPSKY

Автор Said, 14 Дек. 2018 в 21:21

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

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

LENAR_116RUS

#2196
Цитата: edw123 от 23 Апр. 2024 в 10:44Ток базы определяется качеством транзистора и током коллектора. Если горит базовый - больше похоже на неисправность. Какой ток в нагрузку идёт?

Ну 2А идёт в нагрузку и столько же выходит на управляющий.
Или из-за генерации мультиметр врет?
Ну значения не прыгают.
Tribe Drakkar Upgrade 20s

Калин

#2197
  Разбирал протокол обмена между ПК и FLIPSKY FT85BS для снятия телеметрии. Ничего сложного . По команде из ПК возвращается пакет данных, в которых содержится инфа по скорости, заряде батарее и т.д.  Буду делать ардуино проект по управлению данным контроллером.
Первые 13 байтов служебные, где 3 байт - длина пакета данных, 6-7 напруга батареи и т.д.

jopp

Калин, поддержу! Сам хочу телеметрию, готов быть бета-тестером.
Обмен по уарт или кан?

Калин

#2199
Цитата: jopp от 24 Апр. 2024 в 10:21Калин, поддержу! Сам хочу телеметрию, готов быть бета-тестером.
Обмен по уарт или кан?
Обмен по UART. Уже написал тестовый код под ESP32.  Все получает.  Надо еще разобраться с возможностью упрпавления через UART. 
Пишу под esp32 по следующим причинам:
1. Два ядра.
2. Возможность запускать независимые потоки на каждом ядре.
3. Встроенный блютуз для обмена с  мобильным приложением.
4. Наличие ЦАП для управление контроллером по ADC (проверено на КТ36/48 и huawei контроллерах)
5. Есть у китайцев на базе этого проца готовые платы с распаянным питание вплоть до 220в переменного тока и установленными реле для коммутации света, звонка и пр..

https://aliexpress.ru/item/1005005008993504.html
Тестовый код на python, работает на type-c подключение к контроллеру вместо программы Filpsky ESC Tool
import serial
from time import sleep
ser = serial.Serial('COM21',115200)

start_buffer=bytes([170,1,17,76,127,221])
# data1=bytes([170,4,26,0,0,100,215,6,221])
# data2=bytes([170,1,1,128,126,221,170,1,28,137,190,221])
# data3=bytes([170,4,26,0,0,100,215,6,221]);
data4=bytes([170,4,26,1,0,100,23,87,221]);

target_bytes = bytearray([170, 8])

#170 (aa) начало блока
#221 (dd) конец блока

if ser.isOpen():
    ser.write(start_buffer)
    sleep(0.1)
    bytesToRead = ser.inWaiting()
    read_buff = ser.read(bytesToRead)
    index = read_buff.find(bytearray([170, 12]))
    if index!= -1:
        new_data = read_buff[:index] + read_buff[index + 6:]
    st=""
    for s in new_data[:6]:
        st+=chr(s)
    print(st)
    if st=="FT85BS":
    # #170, 12, 17, 1, 2, 239, 70, 84, 56, 53, 66, 83, 0, 1, 246, 73, 221
    # print(read_buff)
    # ser.write(data1)
    # sleep(0.1)
    # #170 008 026 000 000 001 008 000 251 237 165 125 221              �.......��}�
    # bytesToRead = ser.inWaiting()
    # read_buff = ser.read(bytesToRead)
    # print(read_buff)
    # ser.write(data2)
    # sleep(0.1)
    # bytesToRead = ser.inWaiting()
    # read_buff = ser.read(bytesToRead)
    # print(read_buff)
    # ser.write(data3)
    # sleep(0.1)
    # bytesToRead = ser.inWaiting()
    # read_buff = ser.read(bytesToRead)
    # #170 008 026 000 000 001 008 000 251 237 165 125 221
    # print(read_buff)

    while True:
      ser.write(data4)
      sleep(0.1)
      bytesToRead = ser.inWaiting()
      #while 1 == 1:
      #  print(int.from_bytes(ser.read(1), byteorder='big'))
      read_buff = ser.read(bytesToRead)
      #for i in range(0, bytesToRead):
      #    print(ser.read(1))
      index = read_buff.find(target_bytes)
      if index != -1:
          new_data = read_buff[:index] + read_buff[index + 13:]
          len_pack=read_buff[index+2]
          for i in range(0, len(new_data), len_pack):
              chunk = new_data[i:i + 26]
              batt_value = format(int.from_bytes(chunk[5:7], byteorder='big')/100, '.2f')
              mosstmp_value = format(int.from_bytes(chunk[17:19], byteorder='big')/100, '.2f')
              cpuload_value = format(int.from_bytes(chunk[21:23], byteorder='big')/100, '.2f')
              #print(f"Блок данных: {chunk}")
              print(f"Вольт:  {batt_value}")
              print(f"Mos temperature:  {mosstmp_value}")
              print(f"CPU load:  {cpuload_value}")

jopp

У esp32 больше ресурсов чем в самом веске  :wow:
Какой модуль купить?

Калин

Цитата: jopp от 24 Апр. 2024 в 21:22У esp32 больше ресурсов чем в самом веске  :wow:
Какой модуль купить?
Не совсем так. STM32 будет процессор помощнее.
  Покупка модуля ардуино зависит от того , что он должен делать. Если просто передавать телеметрию на мобильный телефон, то достаточно подключить ардуиновский любой современный синезуб на UART и посылать команды с мобильного телефона через него на контроллер и получать в ответ телеметрию.  У меня ардуино используется для управления  оборотами мотор колеса вместо ручки газа  и управления светом.

jopp

Облом. Я уарт внутри веска похоронил. Только usb остался для связи с внешним миром. :~-(

Esp хватит мозгов, чтобы по усб с веском связаться? Там же внутри полюбому усб-уарт...

Калин

Цитата: jopp от 25 Апр. 2024 в 10:03Облом. Я уарт внутри веска похоронил. Только usb остался для связи с внешним миром. :~-(

Esp хватит мозгов, чтобы по усб с веском связаться? Там же внутри полюбому усб-уарт...
Без разницы. type-c порт на контроллере и UART работают независимо по одному и тому же протоколу.  Если есть желание попробовать свои силы в программировании под андроид, есть простое средство разработки  https://www.b4x.com/b4a.html  Здесь не нужны знания java и SDK.   Есть готовый пример для работы по синезубу.

edw123

Цитата: Калин от 25 Апр. 2024 в 14:01Без разницы. type-c порт на контроллере и UART работают независимо по одному и тому же протоколу.  Если есть желание попробовать свои силы в программировании под андроид, есть простое средство разработки  https://www.b4x.com/b4a.html  Здесь не нужны знания java и SDK.   Есть готовый пример для работы по синезубу.
А он лицензию захочет? И как без sdk сработает?

Goudwinn

Цитата: crond от 12 Апр. 2024 в 06:13не припаяны ли у вас мосфеты на покрытый медью изолятор из оксидалюминия?
Ну и наконец-то, вот что продавец сказал про крепление транзисторов:
Hello sir, it was welded on with electric welding. Если проще - транзисторы приварены к радиатору электросваркой

LENAR_116RUS

Подскажите плиз, сделал временный выключатель из XT60. Все-таки подгорает он. Разве должен?
Tribe Drakkar Upgrade 20s

Mike 372

А почему нет?
Электронный так и не дается?

LENAR_116RUS

Цитата: Mike 372 от 25 Апр. 2024 в 21:48А почему нет?
Электронный так и не дается?
Заказал компоненты, ждать 2 недели и не факт, что заработет.

Цитата: LENAR_116RUS от 23 Апр. 2024 в 16:55Ну 2А идёт в нагрузку и столько же выходит на управляющий.
Или из-за генерации мультиметр врет?
Ну значения не прыгают.
Вот это смущает, может что-то со схемой не то?
Tribe Drakkar Upgrade 20s

Mike 372

Ничего не понятно. В какую нагрузку, в мультивибратор? Не может туда 2 А идти. Неужели в Чипе нет в наличии подходящих транзисторов? Я просто пришел и купил все, что нужно было.

LENAR_116RUS

#2210
Цитата: Mike 372 от 25 Апр. 2024 в 22:02Ничего не понятно. В какую нагрузку, в мультивибратор? Не может туда 2 А идти. Неужели в Чипе нет в наличии подходящих транзисторов? Я просто пришел и купил все, что нужно было.
Лампочка кушает 2А. И на управляющем было 2А. Так же не должно быть?
Tribe Drakkar Upgrade 20s

Калин

Цитата: edw123 от 25 Апр. 2024 в 16:34А он лицензию захочет? И как без sdk сработает?
Лицензия не нужна. На сайте есть пошаговая инструкция с картинками по настройке среды окружения разработчика.
 По тестам  контроллер в ERPM выдает разную ерунду. Надо будет обороты считать по датчику скорости в мотор колесе, в mxus он стоит 100%, срабатывает один раз за оборот  мотор колеса.

Mike 372

Цитата: LENAR_116RUS от 25 Апр. 2024 в 22:04И на управляющем было 2А. Так же не должно быть?
Опять непонятно, где. По входу "Упр." или в цепи коллектора первого транзистора? Ни там, ни там 2 А быть не может ни как.

Калин

#2213
Странную вещь заметил на этих контроллерах. Не работает в привычном понимании ручка газа. Есть три уровня скорости и все.  Контроллер очень капризный в управлении. Проблема, скорее всего, в сырой прошивке.  КТ контроллеры и huawei работают намного стабильнее.  Мотор колесо при остановке попадало периодически в какую-то мертвую зону и контроллер не мог его запустить, пока вручную  не прокрутишь колесо.