diff --git a/Hardware/Pibot驱动底盘/1.代码编译和烧写.md b/Hardware/Pibot驱动底盘/1.代码编译和烧写.md new file mode 100644 index 0000000..f9e4297 --- /dev/null +++ b/Hardware/Pibot驱动底盘/1.代码编译和烧写.md @@ -0,0 +1,49 @@ +# 固件使用说明 + +> zhanli : 更新 2023-12-26 :小车驱动经过验证更新 + +## 一、注意事项以及环境安装 + +### 1.1 代码使用注意事项 + +​ 在目录`STM32`中,`params.mk`指定了部分的宏定义配置。目前实验室购买的两台小车的电机驱动是不同的,一台小车的电机驱动是TB6612FNG,另外一台小车的电机驱动是DRV8870。所以在编译的时候注意对小车的电机驱动芯片进行区分。一般来说简单的区分方式是单芯片的是TB6612,双芯片的是DRV8870。 + +```makefile +# params.mk +# 定义宏定义 +-DMOTOR_DRIVER_TB6612=1 +-DMOTOR_DRIVER_DRV8870=2 +# 这里指定的是TB6612,如果是8870,则-DMOTOR_DRIVER=MOTOR_DRIVER_DRV8870 +-DMOTOR_DRIVER=MOTOR_DRIVER_TB6612 + +``` +### 1.2 Keil的环境安装 + +​ `PIBOT\软件工具\软件工具集\MDK520\`目录提供了Keil5的安装包`MDK520.EXE`,安装过程不再赘述。 +> [百度云链接](https://pan.baidu.com/s/15Q2ioZ0Vt-2zKLFBYAf-Yg ): 提取码:`owla` +> +> 完成安装后需要继续安装`Keil.STM32F1xx_DFP.2.2.0.pack` + +## 二、编译与烧写 +### 2.1 编译 +​ 到`PIBOT`源码包中双击打开`pibot.uvprojx`工程,编译 +![](https://upload-images.jianshu.io/upload_images/3678585-b70d1e2dfbb71dfa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +### 2.2 烧写程序 +​ **这里我们使用`JLink`烧写程序,连接`JLink`至开发板,开发板上电这里的JLink只需要连接GND SWDIO SWCLK三根线** +​ 打开工程选项,切换至Debug标签,选择`JLink` + ![](https://upload-images.jianshu.io/upload_images/3678585-f4faa6fb614f85e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +​ 点击`Settings`按钮,`Port`选择`SW` + +![](https://upload-images.jianshu.io/upload_images/3678585-d00e943421112f2d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +​ 切换至Flash Download标签,如下图设置 + +![](https://upload-images.jianshu.io/upload_images/3678585-ffda6263dd4478be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +​ 保存后即可烧写程序 + +![](https://upload-images.jianshu.io/upload_images/3678585-6e35f6af95e93451.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +​ 同时可以看到程序运行指示灯在闪烁表示程序在正常运行了。 \ No newline at end of file diff --git a/Hardware/Pibot驱动底盘/Pibot官方配置教程.md b/Hardware/Pibot驱动底盘/2.Pibot通信协议.md similarity index 100% rename from Hardware/Pibot驱动底盘/Pibot官方配置教程.md rename to Hardware/Pibot驱动底盘/2.Pibot通信协议.md diff --git a/Hardware/Pibot驱动底盘/README.md b/Hardware/Pibot驱动底盘/README.md index f9e4297..e1dfed0 100644 --- a/Hardware/Pibot驱动底盘/README.md +++ b/Hardware/Pibot驱动底盘/README.md @@ -25,25 +25,42 @@ > 完成安装后需要继续安装`Keil.STM32F1xx_DFP.2.2.0.pack` ## 二、编译与烧写 -### 2.1 编译 -​ 到`PIBOT`源码包中双击打开`pibot.uvprojx`工程,编译 -![](https://upload-images.jianshu.io/upload_images/3678585-b70d1e2dfbb71dfa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) -### 2.2 烧写程序 -​ **这里我们使用`JLink`烧写程序,连接`JLink`至开发板,开发板上电这里的JLink只需要连接GND SWDIO SWCLK三根线** -​ 打开工程选项,切换至Debug标签,选择`JLink` - ![](https://upload-images.jianshu.io/upload_images/3678585-f4faa6fb614f85e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) +​ 参考文档"1.代码编译和烧写"。 -​ 点击`Settings`按钮,`Port`选择`SW` +## 三、参数配置 -![](https://upload-images.jianshu.io/upload_images/3678585-d00e943421112f2d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) +#### 3.1、下位机驱动板配置 -​ 切换至Flash Download标签,如下图设置 +​ 小车驱动底板采用是串口通信,核心板接口上支持`USB`通信。小车与`ROS`交互使用的是`uart3`(小车底板上的`micro usb`接口),小车打印log采用是`uart1`(小车底板上的排针)。 -![](https://upload-images.jianshu.io/upload_images/3678585-ffda6263dd4478be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) +#### 3.2 硬件的连接 -​ 保存后即可烧写程序 +​ 我们将`Pibot`的核心板的`micro usb`连接到电脑,如果驱动正确的情况下,通过串口调试助手可以打开对应的COM口,如下图所示: -![](https://upload-images.jianshu.io/upload_images/3678585-6e35f6af95e93451.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) +#### 3.3 检查串口通信 -​ 同时可以看到程序运行指示灯在闪烁表示程序在正常运行了。 \ No newline at end of file +​ 为了测试小车的功能,我们可以在串口发送`5a 00 00 5a`命令,这个命令会返回小车的固件版本和构建时间信息。其定义如下所示。如果为我们发送命令后,小车有数据返回则说明串口通信正常。 + +```c +{ + char version[16]; // 固件版本 + char time[16]; // 构建时间 +} +``` + +- 发送(十六进制): `5a 00 00 5a` +- 接收(十六进制): `5a 00 20 76 32 2e 30 2e 30 00 00 00 00 00 00 00 00 00 00 32 30 32 30 30 31 30 39 2d 6d 33 65 33 00 00 00 d1` + +#### 3.4、驱动板的初始化配置 + +​ 由于不同的小车的轮子种类和传感器的种类不同,所以需要对小车进行初始化配置。 + +​ 打开串口助手,设置115200波特率。下面的命令是配置小车的基本信息的。 + +```shell +# 注意: 下面的指令是针对pibot驱动底盘,其本质是电机减速比、编码器精度灯参数的二进制 +5A 01 40 41 00 AF 00 2C 00 0A 40 01 8C 0A 00 00 0A 00 FA 00 32 00 00 00 C8 00 47 5A 00 01 0F 0F 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 81 +``` + +​ \ No newline at end of file diff --git a/Hardware/Pibot驱动底盘/驱动固件的配置与使用.md b/Hardware/Pibot驱动底盘/驱动固件的配置与使用.md deleted file mode 100644 index a4decef..0000000 --- a/Hardware/Pibot驱动底盘/驱动固件的配置与使用.md +++ /dev/null @@ -1,35 +0,0 @@ -# 驱动固件的配置与使用 - -#### 一、下位机驱动板配置 - -​ 小车驱动底板采用是串口通信,核心板接口上支持`USB`通信。小车与`ROS`交互使用的是`uart3`(小车底板上的`micro usb`接口),小车打印log采用是`uart1`(小车底板上的排针)。 - -#### 1.1 硬件的连接 - -​ 我们将`Pibot`的核心板的`micro usb`连接到电脑,如果驱动正确的情况下,通过串口调试助手可以打开对应的COM口,如下图所示: - -#### 1.2 检查串口通信 - -​ 为了测试小车的功能,我们可以在串口发送`5a 00 00 5a`命令,这个命令会返回小车的固件版本和构建时间信息。其定义如下所示。如果为我们发送命令后,小车有数据返回则说明串口通信正常。 - -```c -{ - char version[16]; // 固件版本 - char time[16]; // 构建时间 -} -``` - -- 发送(十六进制): `5a 00 00 5a` -- 接收(十六进制): `5a 00 20 76 32 2e 30 2e 30 00 00 00 00 00 00 00 00 00 00 32 30 32 30 30 31 30 39 2d 6d 33 65 33 00 00 00 d1` - -#### 1.3、驱动板的初始化配置 - -​ 由于不同的小车的轮子种类和传感器的种类不同,所以需要对小车进行初始化配置。 - -​ 打开串口助手,设置115200波特率。下面的命令是配置小车的基本信息的。 - -```shell -5A 01 40 41 00 AF 00 2C 00 0A 40 01 8C 0A 00 00 0A 00 FA 00 32 00 00 00 C8 00 47 5A 00 01 0F 0F 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 81 -``` - -​ \ No newline at end of file diff --git a/Hardware/UPbot-Tools/app.py b/Hardware/UPbot-Tools/app.py index cbbdfe6..6881a76 100644 --- a/Hardware/UPbot-Tools/app.py +++ b/Hardware/UPbot-Tools/app.py @@ -14,7 +14,7 @@ from PyQt5.QtCore import QObject,pyqtSignal import pb import threading -port = "COM9" +port = "COM14" pypibot.assistant.enableGlobalExcept() # log.enableFileLog(log_dir + "ros_$(Date8)_$(filenumber2).log") diff --git a/Hardware/UPbot-Tools/main.py b/Hardware/UPbot-Tools/main.py index 5eaeb3a..902e98d 100644 --- a/Hardware/UPbot-Tools/main.py +++ b/Hardware/UPbot-Tools/main.py @@ -13,7 +13,7 @@ import signal #port="/dev/pibot" #for windows -port="COM7" +port="COM20" pypibot.assistant.enableGlobalExcept() #log.enableFileLog(log_dir + "ros_$(Date8)_$(filenumber2).log")