虚拟机Ubuntu20.04 利用串口调试机械臂

虚拟机Ubuntu20.04 利用串口调试机械臂

串口库问题

由于机械臂使用的是串口进行驱动控制,在python中相关的串口库为serial和pyserial两个,这里我曾踩过雷同时安装了serial与pyserial两个库,导致报错如下所示:

复制代码
AttributeError: module 'serial' has no attribute 'Serial'

即:serial类没有Serial对象

如果你也同时安装了这两个库,你需要同时卸载serial与pyserial这两个库,然后仅仅只安装pyserial库即可

python 复制代码
pip install pyserial

注意:在使用pyserial的时候,python导包也是import serial

python3之后串口基本都使用pyserial,serial与pyserial区别不大,serial是一个Python库,它提供了对串行端口的访问;而pyserial 是 serial 接口的一个具体实现,允许Python程序通过串行端口与设备进行通信

机械臂编号问题

当我们插上外部的串口设备,使用 ls /dev/ 查看串口设备的串口名称,一般都是ttyUSB0,对比插入前和插入后,如下所示:

插入前:

插入后:

在代码中使用如下代码配置串口

python 复制代码
self.uart = serial.Serial(port=device, baudrate=115200,\
					 parity=serial.PARITY_NONE, stopbits=1,\
					 bytesize=8,timeout=0)

但是发现并没有成功,如下所示:

我们需要将串口的权限修改为可读和可写,使用如下命令:

复制代码
sudo chmod 666 /dev/ttyUSB0

666的含义为:

  • 第一个"6":设置文件所有者访问权限
  • 第二个"6":设置群组访问权限
  • 第三个"6":设置设置其他人访问权限

单独一个"6"的意思:"6"的二进制是1 1 0,有三位,从左向右分别代表可读、可写、可执行文件 "1"表示肯定 "0"表示否定,即"6"的意思是:可读、可写、但不是可执行的文件(这个文件不能运行)

所以"666"的意思是:这个文件对于 文件所有者、群组访问、其他人访问,都是可读可写的。

之后再次执行便可成功运行

参考:

https://blog.51cto.com/u_39037/8756065

https://blog.csdn.net/der_power/article/details/133885981

相关推荐
Uncertainty!!16 小时前
Windows 10 与 Ubuntu 22.04 通过 Samba 共享文件夹
windows·ubuntu·共享文件夹
缘友一世17 小时前
GLM5.3 CyberSec w4A16本地部署[2]:并行策略与 PP 切分
ubuntu·vllm·glm5.3 cybersec
QMCY_jason18 小时前
ubuntu x86_64架构的编译 aarch64架构的程序
linux·运维·ubuntu
.道阻且长.19 小时前
Linux软件包管理器
linux·运维·ubuntu·职场和发展·centos
陈让然1 天前
WSL 桥接设置静态IP(快速)
linux·网络·ubuntu
荒--2 天前
Ubuntu软件包查询,弹框下载文件
运维·服务器·ubuntu
闲云自留地2 天前
CentOS 搬 Ubuntu 24.04:yum 变 apt、防火墙、SELinux、root 全差异避坑
linux·ubuntu·centos
xiaobobo33303 天前
Ubuntu 26.04环境中如何使用中文man手册以及man手册默认中文显示
ubuntu·中文man手册·man手册默认中文显示·简化man·cheat
菜菜的院子3 天前
WSL2 运行 Ubuntu 26.04 完整 GNOME 桌面(WSLg Wayland)
linux·运维·ubuntu·wsl
KIDULT°3 天前
Kubeadm 部署 Kubernetes v1.30.2 实战:Ubuntu24.04 三节点集群 + 排坑记录
ubuntu·云原生·容器·kubernetes·k8s