Главное меню
Услуги
Подключение нескольких Arduino к RASPBERRY
Бывает, возникает ситуация, когда к Raspberry Pi требуется подключить несколько контроллеров Arduino, причём нужно точно знать — кто из них кто.
Здесь нам на помощь приходит менеджер udev.
Порядок действий следующий:
1. Подключаем в USB-порт один из контроллеров Arduino
2. Выводим список всех портов USB
ls /dev/ttyUSB*
3. Выводим параметры устройства командой:
udevadm info --name=/dev/ttyUSB0 --attribute-walk
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-2':
KERNELS=="2-2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="a0"
ATTRS{bMaxPower}==" 90mA"
ATTRS{urbnum}=="16"
ATTRS{idVendor}=="0403"
ATTRS{idProduct}=="6001"
ATTRS{bcdDevice}=="0600"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="12"
ATTRS{busnum}=="2"
ATTRS{devnum}=="12"
ATTRS{devpath}=="2"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="FTDI"
ATTRS{product}=="FT232R USB UART"
ATTRS{serial}=="A6007Jii"
обращаем внимание на строчку
ATTRS{serial}=="A6007Jii"
остаётся только создать конфигурационный файл для менеджера udev
в /etc/udev/rules.d
помещаем файл 10-local.rules вида:
BUS=="usb", SYSFS{idProduct}=="6001", SYSFS{idVendor}=="0403", SYSFS{serial}=="A6007Jii", NAME="arduino1"
Отсоедините устройство от USB и подключите его снова — теперь оно должно определиться как /dev/arduino1, что нам и требовалось.
Остаётся проделать аналогичные шаги для других устройств.