本教程是多个外设结合的综合实验,可以先了解单个外设再进行该实验。
KEIL5
MSPM0G3507机器人开发板
超声波模块、舵机云台、TT编码电机*2:外接
Type-C数据线或DAP-Link
对开发板进行程序下载或仿真
.png)
.png)
| 舵机(S1) | 小车 | 具体含义 |
|---|---|---|
| 信号线(黄色) | PA28(黄色) | 信号线 |
| VCC(红色) | VCC(红色) | 供电 |
| GND(褐色) | GND(黑色) | 地线 |
| 舵机(S2) | 小车 | 具体含义 |
|---|---|---|
| 信号线(黄色) | PA7(黄色) | 信号线 |
| VCC(红色) | VCC(红色) | 供电 |
| GND(褐色) | GND(黑色) | 地线 |
超声波模块:
注意:使用舵机云台需要加跳线帽,连接5v和choose,见白线。
通过9G舵机云台的超声波模块获取前面物体的距离、舵机控制左右以及前方的距离,并根据距离控制小车前进、后退、左转、停止。
超声波模块可以获取前方障碍物的距离,我们根据这个距离来判断小车障碍物位置:当小车正前方有障碍物时,9G舵机云台的舵机就会向左边和右边两侧旋转,最终获得小车左右两侧距离,我们根据这个距离控制小车左转还是右转,至于这个初始角度和左右两侧旋转的角度可以通过修改代码。

| 模块 | 功能 |
|---|---|
| 超声波模块 | 外界信息采集:获取障碍物距离 |
| 舵机 | 控制超声波模块转向 |
| 电机 | 运动控制 |
本教程并未使用到PID控制小车运动
xxxxxxxxxx前面介绍过的函数就不再介绍!
函数:get_servo_distance
| 函数原型 | void get_servo_distance() |
|---|---|
| 功能描述 | 舵机云台超声波避障程序 |
| 输入参数 | 无 |
| 返回值 | 无 |
x对于底层驱动,可以参考第四章和第五章教程对于应用层,可以自行阅读工程文件内的源码
下载程序成功后,按一下开发板的RESET按键,观察小车效果!
x程序下载可以参考【3、开发环境搭建及使用:3.Uniflash烧录】
现象:
有障碍物:小车先停止再判断左右距离,然后根据距离左右转
无障碍物:小车前进
具体判断可以参考流程图或者代码。