虚拟机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

相关推荐
HIT_Weston16 分钟前
26、【Ubuntu】【远程开发】内网穿透:密钥算法介绍(二)
linux·运维·ubuntu
请叫我阿杰4 小时前
Ubuntu系统安装.NET SDK 7.0
数据库·ubuntu·.net
路人甲ing..9 小时前
Ubuntu 怎么把树莓派内存卡备份制作成为镜像
linux·运维·ubuntu
longerxin202011 小时前
ubuntu所有版本镜像下载链接
linux·运维·ubuntu
李昊哲小课14 小时前
Ubuntu 24.04 安装开源WebRTC信令服务器
服务器·ubuntu·mediasoup·janus·信令服务器
wsad053217 小时前
Ubuntu 24.04 更换国内软件源(以阿里云为例)
linux·ubuntu·阿里云
玖剹18 小时前
多线程编程:从日志到单例模式全解析
java·linux·c语言·c++·ubuntu·单例模式·策略模式
BD_Marathon19 小时前
将 CentOS 风格的命令行提示符(如 [root@slave1 ~]#)修改为 Ubuntu 风格
linux·ubuntu·centos
q***965820 小时前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
剑动山河20 小时前
ubuntu 22.04 升级openssh默认版本8.9p1 到10.1p1
linux·ubuntu