Я хочу отправить/получить данные из своей платы Ардуино со сценарием Python. Я хотел бы сделать это с помощью Python и его pySerial модуля, который, кажется, соответствует моим потребностям. Таким образом, я установил Python и pySerial в cygwin (Windows XP позади).
Сценарий Python довольно прост:
$ cat example.py
#print "testing my COM26 port using python"
import serial
ser = serial.Serial()
ser.baudrate = 9600
ser.port = 26
ser
ser.open()
ser.isOpen()
Однако во времени выполнения я получаю следующую ошибку.
$ python example.py
Traceback (most recent call last):
File "example.py", line 9, in <module>
ser.open()
File "/usr/lib/python2.5/site-packages/serial/serialposix.py", line 276, in open
raise SerialException("could not open port %s: %s" % (self._port, msg))
serial.serialutil.SerialException: could not open port 26: [Errno 2] No such file or directory: '/dev/com27'
Не мог открытый порт 26: [Errno 2] Никакой такой файл или каталог: '/dev/com27'
Как я знаю, что мой Ардуино подключен к порту COM27?
Ну, это просто. IDE Ардуино говорит так, я могу отправить и получить данные из инструмента Serial Port Monitor для IDE с помощью того порта. Кроме того, мне удалось получить гипертерминальную работу с помощью того порта также.
Однако кажется, что Cygwin не знает о таком USB и COM-портах:
$ ls -lah /dev
total 4,0K
.
..
fd -> /proc/self/fd
mqueue
shm
stderr -> /proc/self/fd/2
stdin -> /proc/self/fd/0
stdout -> /proc/self/fd/1
Нужно упомянуть, что я выполняю это на ноутбуке Dell, который не имеет никакого классического последовательного COM-порта, просто USB-порты. (Таким образом, я предполагаю, что это просто нормальный, например, это /dev/com1
не существует.)
Я не знаю, спрашиваю ли я правильно, но мой вопрос: как я могу настроить Cygwin так, чтобы он узнал этот порт COM27?
Если вы используете портативный компьютер без COM-порта, вы не можете открыть этот порт и начать выполнение операций.
В Windows есть функция для открытия этого порта и изменения состояния некоторой линии (RST), чтения состояний и выполнения передачи. Для LPT-порта вы не можете этого сделать в Windows, вам нужно использовать некоторую библиотеку. Для USB это тоже проблема, вы должны знать устройство, подключенное к USB.