深圳市航顺芯片技术研发有限公司
登录
直播中
赵敏
7年用户
1082经验值
私信
关注
[问答]
Ubuntu18.04工控机如何绑定USB串口?
开启该帖子的消息推送
Ubuntu18.04工控机如何绑定USB串口?
回帖
(1)
何兰兰
2021-9-30 16:11:35
做实验经需要用到不同的传感器设备,这时就需要调用对应的串口号。
如果只需要将外部的串口设备(如: 底盘控制的单片机、雷达、 IMU) 临时接入工控机,请
参考方法 1
,这
一设置断电重启后会失效;
每次插拔和重启都会影响串口的编号,所以如果这个设备是长期接入工控机的,就可以考虑使用长期绑定串口号,请
参考方法 2
,
特别注意:
这种方法设置完成后,对应的串口就跟这个USB设备绑定了,不要换成其他USB设备,可能参数严重后果,需要注意。
1.临时绑定
1)查看当前终端串口的设备号 ls /dev/tty*
2)插入临时使用的外设串口
3)再次查看终端串口的设备号 ls /dev/tty*,这时是为了看看多了哪个一个串口号,那就是接入的外设
4)假设该设备号为/dev/ttyUSB0,给设备赋予可读写权限
sudo chmod 777 /dev/ttyUSB0
5)修改自己代码中对应*.launch 文件或cpp或py文件里面的设备号,以launch文件为例,打开 minimal.launch 文件,修改 com_port 的取值为对应的设备号,例如
2.长期绑定
长期绑定也有两种方法,各有优缺点:
①根据外设u***的芯片编号来绑定串口号
②根据工控机上的u***口固定串口号
如果,有两个设备的u***芯片是相同的,那就应该用第二种方法,不然会因为芯片编号相同,如1a86:7523,这时的串口号对应着这两个外设,这可能使得串口没办法获取预期的信息。
用第二种方法,就避免了上述的问题,但是,之后不管那个外设接到这个工控机的u***口,比如设定的串口号为“base”,那么无论哪个外设接到这个工控机的u***口,都会显示“/dev/base”。
理解清楚两种方法的优劣,选择适合的绑定方法。
2.1 方法一:根据u***芯片编号绑定
1)查看设备串口号芯片编号lsu***
没接外设u***时输入一次,接入后又输入一次,看看多了哪个u***的信息
从上图中可以发现,多了下面这个设备的信息,这时一个IMU,我发现很多imu用的都是这块芯片,有兴趣可以留意一下。
Bus 003 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port 上面最重要的信息就是 067b:2303,在下一步就会用到
2)创建 rules 文件
① 先 cd /etc/udev/rules.d/
② 创建myu***.rules文件,sudo gedit myu***.rules
③ 输入
KERNEL, ATTRS{idVendor}, ATTRS{idProduct}, MODE, SYMLINK 其中的“067b”,"2303"就是上一步我们查到的u***芯片的ID,填入对应的位置即可,
而最后的"imu"则是我们定义的u***串口名,之后调用就使用这个串口名,如 “/dev/imu”
每一行对应一个串口设备,若有很多的外设,就按照第一行的格式进行添加。
3)使设置生效
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger 或者
sudo reboot 或者
先拔掉u***外设,输入
sudo service udev reloadsudo service udev restart 再接上外设
4)测试
在终端输入ls /dev/imu,如果有反馈就说明,成功啦,没有的话仔细检查一下步骤有没有错。
2.2 方法二:根据工控机u***口编号绑定
1)根据u***的串口名查看工控机上的u***口编号
udevadm info /dev/ttyUSB0
从上图中,”3-1:1.0”就是工控机上u***口的编号,下一步操作将会用到。
2)跟方法一一样,创建 rules 文件
① 先 cd /etc/udev/rules.d/
② 创建myu***.rules文件,sudo gedit myu***.rules
③ 输入
ACTION,KERNELS,SUBSYSTEMS,MODE,SYMLINK 其中的KERNELS对应的编号就是上一步我们查到的工控机u***口的编号,
而最后的"imu"则是我们定义的u***串口名,之后调用就使用这个串口名,如 “/dev/imu”
每一行对应一个串口设备,若有很多的外设,就按照第一行的格式进行添加。
3)使设置生效
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger 或者
sudo reboot 或者
先拔掉u***外设,输入
sudo service udev reloadsudo service udev restart 再接上外设
4)测试
在终端输入ls /dev/imu,如果有反馈就说明,成功啦,没有的话仔细检查一下步骤有没有错。
做实验经需要用到不同的传感器设备,这时就需要调用对应的串口号。
如果只需要将外部的串口设备(如: 底盘控制的单片机、雷达、 IMU) 临时接入工控机,请
参考方法 1
,这
一设置断电重启后会失效;
每次插拔和重启都会影响串口的编号,所以如果这个设备是长期接入工控机的,就可以考虑使用长期绑定串口号,请
参考方法 2
,
特别注意:
这种方法设置完成后,对应的串口就跟这个USB设备绑定了,不要换成其他USB设备,可能参数严重后果,需要注意。
1.临时绑定
1)查看当前终端串口的设备号 ls /dev/tty*
2)插入临时使用的外设串口
3)再次查看终端串口的设备号 ls /dev/tty*,这时是为了看看多了哪个一个串口号,那就是接入的外设
4)假设该设备号为/dev/ttyUSB0,给设备赋予可读写权限
sudo chmod 777 /dev/ttyUSB0
5)修改自己代码中对应*.launch 文件或cpp或py文件里面的设备号,以launch文件为例,打开 minimal.launch 文件,修改 com_port 的取值为对应的设备号,例如
2.长期绑定
长期绑定也有两种方法,各有优缺点:
①根据外设u***的芯片编号来绑定串口号
②根据工控机上的u***口固定串口号
如果,有两个设备的u***芯片是相同的,那就应该用第二种方法,不然会因为芯片编号相同,如1a86:7523,这时的串口号对应着这两个外设,这可能使得串口没办法获取预期的信息。
用第二种方法,就避免了上述的问题,但是,之后不管那个外设接到这个工控机的u***口,比如设定的串口号为“base”,那么无论哪个外设接到这个工控机的u***口,都会显示“/dev/base”。
理解清楚两种方法的优劣,选择适合的绑定方法。
2.1 方法一:根据u***芯片编号绑定
1)查看设备串口号芯片编号lsu***
没接外设u***时输入一次,接入后又输入一次,看看多了哪个u***的信息
从上图中可以发现,多了下面这个设备的信息,这时一个IMU,我发现很多imu用的都是这块芯片,有兴趣可以留意一下。
Bus 003 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port 上面最重要的信息就是 067b:2303,在下一步就会用到
2)创建 rules 文件
① 先 cd /etc/udev/rules.d/
② 创建myu***.rules文件,sudo gedit myu***.rules
③ 输入
KERNEL, ATTRS{idVendor}, ATTRS{idProduct}, MODE, SYMLINK 其中的“067b”,"2303"就是上一步我们查到的u***芯片的ID,填入对应的位置即可,
而最后的"imu"则是我们定义的u***串口名,之后调用就使用这个串口名,如 “/dev/imu”
每一行对应一个串口设备,若有很多的外设,就按照第一行的格式进行添加。
3)使设置生效
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger 或者
sudo reboot 或者
先拔掉u***外设,输入
sudo service udev reloadsudo service udev restart 再接上外设
4)测试
在终端输入ls /dev/imu,如果有反馈就说明,成功啦,没有的话仔细检查一下步骤有没有错。
2.2 方法二:根据工控机u***口编号绑定
1)根据u***的串口名查看工控机上的u***口编号
udevadm info /dev/ttyUSB0
从上图中,”3-1:1.0”就是工控机上u***口的编号,下一步操作将会用到。
2)跟方法一一样,创建 rules 文件
① 先 cd /etc/udev/rules.d/
② 创建myu***.rules文件,sudo gedit myu***.rules
③ 输入
ACTION,KERNELS,SUBSYSTEMS,MODE,SYMLINK 其中的KERNELS对应的编号就是上一步我们查到的工控机u***口的编号,
而最后的"imu"则是我们定义的u***串口名,之后调用就使用这个串口名,如 “/dev/imu”
每一行对应一个串口设备,若有很多的外设,就按照第一行的格式进行添加。
3)使设置生效
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger 或者
sudo reboot 或者
先拔掉u***外设,输入
sudo service udev reloadsudo service udev restart 再接上外设
4)测试
在终端输入ls /dev/imu,如果有反馈就说明,成功啦,没有的话仔细检查一下步骤有没有错。
举报
更多回帖
rotate(-90deg);
回复
相关问答
ubuntu18.04
虚拟
机
的登录密码是多少
2021-12-30
1087
Ubuntu18.04
下运行run_demo报错怎么办
2022-02-16
867
Ubuntu18.04
如何安装.Net5?
2021-12-31
1238
如何安装
ubuntu18.04
QT开发环境?
2022-03-04
940
怎样在RK3399去安装
Ubuntu18.04
系统呢
2022-03-07
2027
新手求助RK3399
ubuntu18.04
wifi无法使用
2022-08-31
1861
rk3399
ubuntu18.04
wifi 无法使用如何解决
2022-06-14
1187
ubuntu
18虚拟
机
的密码是什么
2022-01-07
1256
请问RK3399
Ubuntu18.04
下是否含uac驱动?
2021-12-30
1329
在装了RTC的情况下
Ubuntu18.04
离线时间还是不保存是怎么回事
2022-06-17
1169
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分