更新文档

main
UESTCsecurity 2024-04-28 11:22:24 +08:00
parent 6a72046f36
commit cfac9181c9
6 changed files with 82 additions and 51 deletions

View File

@ -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)
同时可以看到程序运行指示灯在闪烁表示程序在正常运行了。

View File

@ -25,25 +25,42 @@
> 完成安装后需要继续安装`Keil.STM32F1xx_DFP.2.2.0.pack` > 完成安装后需要继续安装`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 烧写程序 参考文档"1.代码编译和烧写"。
**这里我们使用`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) #### 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 检查串口通信
同时可以看到程序运行指示灯在闪烁表示程序在正常运行了。 为了测试小车的功能,我们可以在串口发送`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
```

View File

@ -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
```

View File

@ -14,7 +14,7 @@ from PyQt5.QtCore import QObject,pyqtSignal
import pb import pb
import threading import threading
port = "COM9" port = "COM14"
pypibot.assistant.enableGlobalExcept() pypibot.assistant.enableGlobalExcept()
# log.enableFileLog(log_dir + "ros_$(Date8)_$(filenumber2).log") # log.enableFileLog(log_dir + "ros_$(Date8)_$(filenumber2).log")

View File

@ -13,7 +13,7 @@ import signal
#port="/dev/pibot" #port="/dev/pibot"
#for windows #for windows
port="COM7" port="COM20"
pypibot.assistant.enableGlobalExcept() pypibot.assistant.enableGlobalExcept()
#log.enableFileLog(log_dir + "ros_$(Date8)_$(filenumber2).log") #log.enableFileLog(log_dir + "ros_$(Date8)_$(filenumber2).log")