Как программно определить серийный порт Arduino на разных платформах?

Я пытаюсь написать небольшую программу, которая должна автоматически обнаруживать порты Arduino. Я пробовал много методов, но не нашел надежного способа.

Я вижу, что IDE Arduino может обнаружить его, показывая /dev/cu.xyz (Arduino Uno) или COM6 (Arduino Uno) и т. д.

Как я могу определить, подключено ли устройство к последовательному порту Arduino или нет? Предпочтительно без предварительной продувки Arduino с конкретной прошивкой.

Я нашел эту версию Python, которая использует serial.tools.list_ports.comports() здесь , но это не сработало, когда я тестировал его на Windows и MacOS.

Лучшее, что я могу получить, это использовать go-serial 'USBManufacturer, я могу получить «Arduino (www.arduino.cc)».

Я также нашел этот пост , о том же вопросе, но без любое решение.

3 голоса | спросил leetom 3 42016vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2016 19:47:29 +0300 2016, 19:47:29

2 ответа


1

Вот решение:

В Windows, Arduino IDE поставляется с инструментом с именем listComPorts.exe , в котором будут перечислены все COM-порты и их информация о USB, такая как VID & PID. В папке драйверов также есть файл с именем arduino.inf , содержащий все известные типы устройств и их идентификатор VID & PID и т. Д., И мы можем искать подключенное устройство.

В * nix, IDE использует libusb и не имеет такого инструмента, и легко найти инструмент для отображения информации о usb на этих платформах.

Этот пакет , упомянутый в вопросе, является хорошим выбором, который также использует libusb и может работать на всех платформах. (В окнах вам нужно установить mingw для сборки кода C, cygwin & msys не работают, я попробовал TDM-GCC, и он работает. Вам также нужно добавить LDFLAGS: -lsetupapi (в serial.go), чтобы успешно связать код.) После списка всех последовательных портов вы можете найти «Arduino» для определения порта. «CH340» также является ключевым словом для поиска, так как многие модифицированные платы используют этот набор микросхем.

В новой версии IDE нет listComPorts.exe , все они используют libusb. Я нахожу этот инструмент с версии 1.6.5.

ответил leetom 9 32016vEurope/Moscow11bEurope/MoscowWed, 09 Nov 2016 04:43:42 +0300 2016, 04:43:42
-1

Вы можете запустить модуль ожидания IDE Arduino, который обнаружен порт, который хранится на жестком диске с помощью IDE arduino; выход из IDE; затем прочитайте этот файл с помощью своей пользовательской Windows (или любой другой ОС, используемой для получения ответа). Это отвечает на ваш вопрос, который вы написали выше.

ответил Dat Han Bag 3 42016vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2016 19:59:34 +0300 2016, 19:59:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132