16u2 и ch340g

Тема в разделе "Arduino & Shields", создана пользователем рокки1945, 25 мар 2020.

  1. Здравствуйте!
    На работе произошла такая интересная ситуация - разработчик прислал нам скетч и программную оболочку написанную на Пайтоне через которую Ардуино уно управляет серводвигателями. При подключении Ардуино к усб компьютера в программе должна сразу высвечиваться надпись - что устройство подключено, то есть связь установлена. Сказал, что Ардуино пойдёт любая китайская главное драйвер установить на ch340g.
    Почему-то с китайскими не заработало, а с оригиналом на Ура.
    Можете поделиться мнением на сей счёт и как подружить китайскую ардуино с программой?
    Спасибо..
     
  2. а пнуть разработчика?
     
  3. да ну вопрос то не в пнуть а разобраться почему
    с 16u2 всё нормально, а с ch340g - не хотит
     
  4. ZAZ-965

    ZAZ-965 Гуру

    @рокки1945, какая операционная система и где брали драйвер ch340g?
     
  5. 7-ка и драйвер на 340 в интернете
     
  6. ZAZ-965

    ZAZ-965 Гуру

    Если вы не указываете COM порт к которому подключена Arduino, значит выполняется поиск порта по известным VID/PID, что-то вроде подобного
    Код (Python):
    def _find_serial_port(self, vid, pid, name):

            check_for = "USB VID:PID={vid:04x}:{pid:04x}".format(vid=vid,pid=pid).upper()
            ports = serial.tools.list_ports.comports()

            for check_port in ports:
                if hasattr(serial.tools,'list_ports_common'):
                    if (check_port.vid, check_port.pid) == (VID, PID):
                        return check_port.device
                    continue

                if check_for in check_port[2].upper() or name == check_port[1]:
                    return check_port[0]

            return None
    Так что, или самому копаться в коде, или пнуть разработчика.
     
    arkadyf нравится это.
  7. Ariadna-on-Line

    Ariadna-on-Line Гуру

    А без Питонов, Ардуина с CH340G появляется как новый Ком-порт в системе ? Должна ведь...
     
  8. да появляется всё верно
     
  9. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Значит физически Ардуина работает, заморочка в проге. Сравнивайте с какими параметрами и VID-PID-ами появляются в системе обе Ардуины. Заодно посмотрите на кварцах процессоров частоту. А вообще - пинать разработчика.
     
    Последнее редактирование: 26 мар 2020
  10. parovoZZ

    parovoZZ Гуру

    А общение компа с платой через что идёт: HID или CDC? 340 - это только COM порт. Если там что-то другое, то работать не будет.
     
  11. Un_ka

    Un_ka Гик

    Для ch340 и его копий нельзя, скорее всего, нет общих vid и pid, а разработчик , наверное, vid и pid первой попавшийся платы указал.
     
  12. классно! а как проблему совместимости поконкретнее решить можно?
     
  13. Un_ka

    Un_ka Гик

    Код открытый ? Есть исходники на python? То можете в них посмотреть , какие vid pid ищутся?
     
  14. я знаю, что у него на его плате заработало и на моей которые с преобразователем
    16u2 идут, а китайские не работают. Исходников нету у разраба
     
  15. ZAZ-965

    ZAZ-965 Гуру

    @рокки1945, да что ж из вас все клещами тянуть приходится.
    1. Программа упакована py2exe? Т.е. вы запускаете экзешник?
    2. Используется 2 или 3 питон? Т.е. в каталоге с программой есть файл python27.dll или python3х.dll?

    И незачем так орать ®
     
  16. 1. Да
    2. нету только exe
     
  17. ZAZ-965

    ZAZ-965 Гуру

    Если с разработчиком нет взаимопонимания - можно попробовать вытащить скрипты из экзешника и попробовать их декомпилировать. Например, https://qna.habr.com/q/505168
     
  18. спасибо
     
  19. parovoZZ

    parovoZZ Гуру

    значит, скроежопить не получится.
     
  20. уже заказал