Долгосрочная связь между Arduino и компьютером
Я хочу сделать индикаторы для моего компьютера, чтобы указать такие вещи, как загрузка системы, использование IO и т. д., используя Arduino и NeoPixels. Я хотел бы просто подключить его к своему компьютеру и подключить к нему какое-то настраиваемое программное обеспечение и отправить ему нужные ему данные с моего компьютера.
В той части, с которой я столкнулся, выясняется, как подключить Arduino к компьютеру таким образом, который будет согласован в долгосрочной перспективе.
У меня возникли проблемы с переключением Arduino, который /dev /ttyAMC * port назначен, поэтому я искал опции, отличные от USB-серий. Единственный другой способ - это USB, поскольку в наши дни это единственный общий порт общего назначения.
Вот где моя проблема. Люди вроде бы не делают этого, или, по крайней мере, они не публикуют об этом.
Teensy может выступать в качестве USB HID, но необработанная функция HID hasn Почти тридцать лет обновлялся код хоста, основанный на устаревших библиотеках, и, похоже, он больше ориентирован на передачу Teensy на компьютер.
Похоже, что нет доступных USB-чипов интерфейса USB уровня.
Я нашел V-USB , который кажется как решение для моего проблемы, на самом деле кто-то даже использовал его для в основном, что я хочу сделать . Тем не менее, мне все равно нужно будет изучить библиотеку.
Итак, мой вопрос в том, что является рекомендуемым способом взаимодействия между компьютером и Arduino в долгосрочной перспективе? Действительно ли поддержка USB действительно необходима, или я просто переусердствовал всю вещь?
1 ответ
Я думаю, что самый простой вариант - сохранить связь USB (ACM), чтобы вы не нужно делать ничего особенного на Arduino и пытаться выяснить способ идентифицировать правильное устройство на стороне компьютера.
В Linux для обеспечения согласованных имен устройств для определенных периферийных устройств
обычно работа удева. Вы можете добавить свое собственное правило udev, чтобы создать
символическую ссылку для вашего Arduino каждый раз, когда вы его подключаете. Затем
пользовательское программное обеспечение всегда будет открывать /dev/neopixel-monitor
, что
быть символической ссылкой на надлежащее устройство /dev/ttyACMx
.
Собственно, вам может не понадобиться писать собственное правило. Я взглянул на
udev, установленные по умолчанию на моем Ubuntu 16.04, и нашли файл
названный /lib/udev/rules.d/60-serial.rules
предназначен для заполнения
/dev/serial/by-path/
и /dev/serial/by-id/
. Затем я
подключил мой Arduino Uno R3 и увидел символическую ссылку
/dev/serial/by-id/usb-Arduino__www.arduino.cc__0043_93140364233351E00101-if00
автоматически созданный, который теперь указывает на ../../ttyACM0
. В
это имя, 0043
- это идентификатор устройства USB Uno, и следующие
буквенно-цифровая последовательность выглядит как серийный номер. if00
выглядит так:
номер интерфейса, и может меняться (это не будет, см. комментарий Маженко).
Имя ссылки должно
быть хорошим способом однозначно идентифицировать тот конкретный Arduino.