因此,我正在尝试学习python的PyFirmata模块,它允许我们用Python编写代码并将其上传到Arduino板。
我是从本网站那里学到的。
导致内置LED闪烁的代码:
import pyfirmata
import time
board = pyfirmata.Arduino('/dev/ttyACM0') #This Line gives error
while True:
board.digital[13].write(1)
time.sleep(1)
board.digital[13].write(0)
time.sleep(1)但是,当我运行它时(在崇高文本3中),我会得到以下错误:
引发SerialException(“无法打开端口{!r}:{!r}".format(self.portstr,ctypes.WinError()
serial.serialutil.SerialException: could not open port '/dev/ttyACM0': FileNotFoundError(2, 'The
system cannot find the path specified.', None, 3)
[Finished in 7.0s]有人能帮我解决这个错误吗?
发布于 2020-05-09 13:58:29
您要访问的端口不存在,或者您的程序没有访问它的权限。
首先检查端口是否存在。如果您安装了Arduino软件,您可以从它进行检查。如果缺少,应该会出现另一个端口,类似于/dev/ttyACM*,其中*是任意数字。选择它,试着跑。如果它存在,但程序仍然不能工作,请访问正式的arduino 站点。
这个问题用两个命令解决了。开放终端和类型:
ls -l /dev/ttyACM*
然后你会得到这样的东西:
crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0
这里我们需要的是dialout。在上面的命令之后,键入下面的命令,然后重新启动设备。
sudo usermod -a -G your_username
这应该是可行的,但在某些情况下,它不起作用。然后需要将端口添加到根访问:
============================================================================= cd ~/etc/udev/rules.d
在此目录中,创建一个新的.rules文件并向其添加以下内容:
KERNEL=="ttyACM0", MODE="0666"
这应该能行。
https://stackoverflow.com/questions/61692735
复制相似问题