LINUX.ORG.RU

Подключение Arduino к RPi. Варианты tty

 , , ,


0

1

Хочу на python3 написать скрипт автоопределения подключенных к малинке (Raspbian) ардуин. Нужно перебрать tty по маске. Какие варианты в принципе возможны? Самый популярный ttyUSB (китайская ардуина на CH340). Подключил вторую ардуину - вылезло ttyACM (это уже была оригинальная ардуина). Еще в одном скрипте якобы как раз для ардуин упоминается ttyS*. Есть еще варианты? Спасибо!


В лине и бсд вроде всё: ttyUSB, ttyACM, ttyS. В макоси вот такого вида /dev/cu.usb*

Deleted
()

Обрабатывай все, тебе все равно надо отличать одну ардуину от другой или от преобразователя усб сом например с такими же именами

ilovewindows ★★★★★
()
Ответ на: комментарий от VladM

А если на другом конце адаптера какой-то другой девайс, который в ответ на неверный запрос может выполнить какие-то нежелательные действия?

KivApple ★★★★★
()
Ответ на: комментарий от VladM

COM-порт и plug&play понятия несовместимые. Только ручками прописывать конкретные порты.

Ну ещё можно у usb-uart попробовать изменить строки идентификации и искать девайс по ним через libusb. В общем PNP можно реализовать только на уровне USB, потому что в отличии от com он это умеет.

KivApple ★★★★★
()

python3, ардуин

Ужас какой! А вообще, накатай на нормальной сишечке демона, который будет пинаться udev'ом при втыкании CDC-устройств в порт, а демон в свою очередь будет отправлять некое сообщение в данный порт. Если придет ответ, значит, подключена твоя железяка...

Еще безопасней просто слушать этот порт, а воткнутая железяка пусть каждую секунду какую-нибудь фигню исторгает.

Но, все-таки, пхытон и абдурина — это для детей же развлечения! Несерьезно совершенно...

anonymous
()
Ответ на: комментарий от VladM

Имхо да, придумавай протокол, например подключеные устройства опрашиваются запросом вида адрес,длина,тип соообщения,данные,контрольная сумма.

ilovewindows ★★★★★
()
Последнее исправление: ilovewindows (всего исправлений: 1)

ls -1 /sys/class/tty/ |sed 's:^:/dev/:' — список всех титиваев в системе.

iliyap ★★★★★
()

Если все они подключаются по USB, то можно с помощью udev rules symlink'ов в /dev насоздавать:

SUBSYSTEMS=="usb", KERNEL=="ttyACM[0-9]*", ACTION=="add", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", MODE="666", SYMLINK+="arduino-0"
alx777 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.