无法与 Arduino 与 python 通信

问题描述 投票:0回答:2

我在尝试使用 python 与 Arduino 进行通信时遇到错误,我正在使用 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)
python arduino pyfirmata
2个回答
0
投票

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

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

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

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


0
投票

向chatgpt询问此错误。它表明最新版本的“pyfirmata”应该已经解决了“pyfirmata.py”源代码下“inspect.getargspec”的问题。它应该用“inspect.getfullargspec”替换它您可以尝试打开终端并运行以下命令,用“pip install --upgrade pyfirmata”更新“pyfirmata”

© www.soinside.com 2019 - 2024. All rights reserved.