ros串口/摄像头 别名及查看绑定

1.查看串口

ll   /dev/

 串口权限

chmod 666 /dev/ttyUSB0
KERNEL=="ttyUSB[0-9]*", MODE="0666"

串口别名区分的方法,一种通过外设芯片识别设置别名,另一种通过识别工控机的串口的设置别名

2.通过ID绑定USB设备

lsusb     插拔USB口

sudo gedit /etc/udev/rules.d/10-local.rules

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="base"

ll /dev | grep ttyUSB

添加成功

也可以通过串口软件查询/dev/stm32f767,/dev/设置的别名,看是否能open

2.若ID相同需通过固定串口添加USB设备

udevadm info -a -n /dev/ttyUSB0 | grep KERNELS       查看值

sudo gedit /etc/udev/rules.d/10-local.rules

ACTION=="add",KERNELS=="3-1:1.0",SUBSYSTEMS=="usb",MODE:="0777",SYMLINK+="base"

从此USB口插入的设备都叫base

3.摄像头别名

sudo gedit /etc/udev/rules.d/10-local.rules

KERNEL=="video*",ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="6230", MODE="0666",SYMLINK+="video11"
KERNEL=="video*",ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="636b", MODE="0666",SYMLINK+="video12"

重新插拔设备

 

//********************
//打开摄像头
//********************
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>

#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
 cv::VideoCapture capture(atoi(argv[1]));
 if (!capture.isOpened()){ 
  return 1;}
 cv::Mat Frame;
 bool stop = false;
 while (!stop)
 {
  capture >> Frame;
  cv::imshow("视频", Frame);
  waitKey(10); 
 }
 return 0;
}

 CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project( DisplayCamera )

find_package( OpenCV 4 REQUIRED )
# 添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayCamera camera.cpp )
target_link_libraries(DisplayCamera ${OpenCV_LIBS})

 编译运行

mkdir build
cd build
cmake ..&&make
./DisplayCamera 11

 

 

4.删除别名

cd /etc/udev/rules.d

sudo rm -rf 10-local.rules

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值