Я хочу отправить данные через USB-порт малины pi3 в формате байтов, используя python. Это очень новое для меня. Поэтому я не могу понять, как это сделать. для установки, и если какой-либо рабочий образец кода является их потом, то любой может поделиться. Как я могу проверить, что эти данные правильно написаны на USB-порту или нет. Пожалуйста, кто-нибудь может мне помочь в этом.Напиши основную массу данных на USB-порт в Raspberry pi 3
ответ
USB не поддерживает отправку необработанных байтов. Это не последовательный порт. Вам необходимо подключить устройство, объявляющее себя классом устройств связи. Устройство и хост собираются обернуть необработанные байты в USB-протоколе.
Тогда ваша операционная система свяжет ее с конечной точкой. Под Linux первое устройство связано с /dev/ttyACM0
. Все, что вам нужно сделать, это написать эту конечную точку. Under bash: echo some byte > /dev/ttyACM0
.
Вот пример. У меня есть arduino uno, подключенный к моему ноутбуку Linux. Вот что говорит ядро:
[37850.628522] usb 3-2: new full-speed USB device number 9 using xhci_hcd
[37850.759206] usb 3-2: New USB device found, idVendor=2341, idProduct=0043
[37850.759215] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[37850.759221] usb 3-2: Manufacturer: Arduino (www.arduino.cc)
[37850.759224] usb 3-2: SerialNumber: 123456789
[37850.759590] usb 3-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[37850.833630] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
[37850.834040] usbcore: registered new interface driver cdc_acm
[37850.834044] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Важной частью является: ttyACM0
.
В питона консоли, я могу сделать:
with open("/dev/ttyACM0","w") as f:
f.write("hello world")
На платформе Arduino подтверждает, что принимает байт (RX светодиод мигает), и он действует в соответствии со своей внутренней программы.
У вас есть рабочий образец кода для этого? – Kishor