2016-12-15 8 views
1

Я использую два Arduino Nano и хочу изменить их имя, указанное в /dev, потому что в настоящее время они всегда ttyUSB<NUMBER>.Как получить уникальный идентификатор для каждого Arduino

Как я могу получить уникальный серийный номер для создания правила udev?

Я попытался получить его через udevadm, но он возвращает тот же серийный идентификатор для обоих Arduinos.

/var/log: udevadm info -a -n /dev/ttyUSB0 | grep '{serial}' 
    ATTRS{serial}=="0000:00:14.0" 

ответ

1

Arduino Nano основан на ATmega328, который не имеет встроенного USB-контроллера. Разъем USB на плате подключается к внешней микросхеме преобразователя USB-TTL. Таким образом, все параметры USB-устройства, которые вы видите на стороне ПК, относятся не к самому Arduino, а к USB-чипу.

Многие из этих микросхем могут быть запрограммированы отдельно с помощью уникальных серийных номеров. В качестве альтернативы вы можете просто использовать номера портов вашего ПК, чтобы вместо этого подключать платы Arduino в качестве уникальных идентификаторов.

udevadm команда, которую вы пробовали, показывает «серийный номер» контроллера USB на вашем ПК, в который вставлена ​​ваша плата Arduino, а не последовательный порт USB на плате Arduino.

Вместо этого udevadm info -n /dev/ttyUSB0 -q all. Строка с серийным номером будет выглядеть как E: ID_SERIAL_SHORT=12345678. Если эта строка отсутствует или действительно содержит такое же число для всех плат - использовать этот udev правило присвоить уникальные псевдонимы на основе количества USB порт:

ACTION=="add", KERNEL=="ttyUSB*", SYMLINK+="arduino/tty-%s{../busnum}-%s{../devpath}" 
+0

я в конечном итоге делает именно это, я использовал свои номера портов ПК для идентификации Ардуинов. недостатком этого подхода является то, что вам нужно следить, в каком порядке вы подключаете Arduinos к ПК. – Jonas

+0

@Jonas, я предлагаю создать правило 'udev', которое будет отображать (создавать псевдонимы) устройства, подключенные к определенным портам вашего компьютера, к определенным именам устройств. В этом случае порядок подключения не имеет значения. –