diff --git a/4.17组会.md b/4.17组会.md index 7b3af80..aeaa486 100644 --- a/4.17组会.md +++ b/4.17组会.md @@ -21,4 +21,56 @@ d:服务端 ##### 1. 将usb-hid改为ros工程,gcc改为CMake,读取超声波数据。 -##### 2.在3588上发送信号给标签,通知其发送手持标签的定位数据还是割草机的定位数据。 \ No newline at end of file +##### 2.在3588上发送信号给标签,通知其发送手持标签的定位数据还是割草机的定位数据。 + + + +4.24组会 + +为了解决串口冲突,使用usb-hid通过识别pid、vid。 + +##### usb-hid 非root用户在linux下使用串口权限不够。 + +解决:需要设置udev规则来实现。 + +![image-20240417114720051](C:\Users\李瑞瑞\AppData\Roaming\Typora\typora-user-images\image-20240417114720051.png) + +通常情况下,udev规则文件的命名规则是按照数字和规则名称的顺序来加载的。数字越小的规则文件会先被加载,而数字越大的规则文件会后被加载。因此,可以选择一个数字较大的数字作为规则文件的名称,以确保在其他规则文件之后加载。 + +1. 创建规则文件 + + ```c++ + sudo gedit /etc/udev/rules.d/99-usb-serial.rules + ``` + +2. 写入规则 + +``` +SUBSYSTEM=="usb" ATTRS{idVendor}=="YOUR_VENDOR_ID", ATTRS{idProduct}=="YOUR_PRODUCT_ID", MODE:="0777" +``` + +3. 重新加载udev规则,以使更改生效 + + ``` + sudo udevadm control --reload-rules + sudo udevadm trigger + + ``` + + +##### 通过发送指令给车上的标签,发送0x00启动的是手持标签的定位,发送0x01启动的是车自身的定位,以实现手持标签划范围 + +``` + tmp_char[0] = 0x00; + r = libusb_interrupt_transfer(dev_handle, (0x01 | LIBUSB_ENDPOINT_OUT), tmp_char, 64, &transferred, 1000); +``` + +切换模式时:当从手持标签模式切换到车自身模式时,需要将手持标签断开,否则会干扰定位数据,收上来的数据是乱的。 + + + +##### 下周工作内容 + +联合调试:用手持标签画的边界执行全覆盖。 + +超声波、碰撞数据接入 \ No newline at end of file