无法与 python 通信 Arduino

cannot communicate Arduino with python

我在尝试将 Arduino 与 python 通信时遇到错误,我正在使用 Arduino 模块,但出现无法打开端口错误,我可以从 Arduino IDE 与我的 Arduino 通信。

from Arduino import Arduino
import time

board = Arduino(port="/dev/cu.usbmodem14201") # plugged in via USB, serial com at rate 115200
board.pinMode(13, "OUTPUT")

while True:
    board.digitalWrite(13, "LOW")
    time.sleep(1)
    board.digitalWrite(13, "HIGH")
    time.sleep(1)

这是我的错误

serial.serialutil.SerialException: [Errno 2] could not open port /dev/cu.usbmodem14201: [Errno 2] No such file or directory: '/dev/cu.usbmodem14201'

当我尝试使用 pyfirmata 时出现错误

这是我的代码:

import pyfirmata
import time

board = pyfirmata.Arduino('/dev/cu.usbmodem14201')
led = board.get_pin('d:13:o')

while True:
    led.write(1)
    time.time(1)
    led.write(0)
    time.time(1)

我的 pyfirmata 错误:

AttributeError: partially initialized module 'pyfirmata' has no attribute 'Arduino' (most likely due to a circular import)

作为序言,我已经与 Arduino 进行了一些串行通信,但并没有太广泛地使用 Arduino 库。

如果您还没有这样做,我建议您考虑一下 PySerial 库。这可能有助于解决您的 Mac 和电路板之间串行连接的最初问题。这并不能完全解决您直接写入 LED 的需求,但同时可以作为替代品。您可以使用来自 Mac 的传入串行通信来指导 Arduino 上的某些操作。

我用过的很棒的教程可以在这里找到: https://create.arduino.cc/projecthub/ansh2919/serial-communication-between-python-and-arduino-e7cce0

另一个问题可能是您的串行监视器可能处于活动状态,这会阻止设备之间通过 Python 进行串行通信。