目录
概述
1 系统框架结构
2 系统硬件介绍
2.1 电机驱动控制结构
2.1.1 PWM控制小车接口介绍
2.1.2 小车运行方向控制原理
2.2 外围传感器接口
2.2.1 I2C接口设备
2.2.2 IO接口
2.2.3 UART接口
2.2.4 其他接口
2.3 障碍物监测接口
2.4 测速模块接口
3 系统软件架构
3.1 MCU驱动层
3.2 设备驱动层
3.3 应用层程序
3.4 微信小程序程序设计
3.5 OLED UI定义
4 系统测试
4.1 传感器UI数据测试视频
4.2 运动控制视频
源代码下载地址:
https://www.firebbs.cn/forum.php?mod=viewthread&tid=37943
开发文档写地址:
https://zhuanlan.zhihu.com/p/852031299
测试视频-1:数据传输测试视频
【野火】第二期瑞萨RA MCU创意氛围赛:自适应蓝牙控制智能小车-01
测试视频-2:小车运行控制视频
【野火】第二期瑞萨RA MCU创意氛围赛:自适应蓝牙控制智能小车-02
测试视频-3:App小车运行控制视频
【野火】第二期瑞萨RA MCU创意氛围赛:自适应蓝牙控制智能小车-03
概述
当下是一个智能化的时代,万物互联是时代的需要。基于这样的需要应运而生了许多新的技术,以支持这样的需求。在一些比较特殊的领域,单靠人力解决这些问题的成本是很高的,例如:狭窄的甬道、微小的洞穴、火灾现场、甚至是战场。这时如果使用智能机器人进行环境探测或者现场勘探,付出的代价成本会小很多。如今出现了无人机,无人小车,无人舰艇等等。这些设备的诞生都是为了解决特殊领域的需求。
本系统是一款硬件上基于野火Renesas R7FA8D1BH (Cortex®-M85)开发板,设计的一款智能控制小车。其可实现采集现场环境的温度、湿度、光照强度,同时使用超声波雷达扫描环境的参数,以了解特殊环境的地形特性,并通过蓝牙实时的发送给微信小程序App,以实现对小车运行轨迹的控制。
1 系统框架结构
本系统分为2个部分,其分别为:
1)下位机智能小车控制系统;
2)微信小程序App
该系统的主要功能如下:
1)使用Renesas R7FA8D1BH (Cortex®-M85)开发板作为主控板卡,该板块实时读取温湿度传感器,光照传感器的数据。同时通过超声波测距模块扫描环境参数。
2)控制OLED显示器,对读取的温度、湿度、光照、测距数据进行处理,将这些数据实时的显示在OLED屏幕上。
3)控制蓝牙模块,实时接收蓝牙模块接收到的从微信小程序发送的。
4)发送命令给小车运行控制模块,实现小车运行轨迹的控制。
5)实时接收和处理微信小程序App发送的控制命令,同时将这些命令转发给小车运行控制模块,实现小车的控制
6)实时上传温度、湿度、光照、测距数据给微信小程序App
2 系统硬件介绍
2.1 电机驱动控制结构
系统使用4路独立的PWM控制两组电机,用于控制小车的运行方向,其控制方法如下:
传动系统的实物结构图:
2.1.1 PWM控制小车接口介绍
左侧车轮控制: 1) 使用GPT1生成PWM控制P105接口 2) 使用GPT2生成PWM控制P102接口
右侧车轮控制 1) 使用GPT6生成PWM控制PA11接口 2) 使用GPT4生成PWM控制P804接口
2.1.2 小车运行方向控制原理
1)前进功能:
P105:输出PWM
P102:停止输出PWM
PA11:输出PWM
P804:停止输出PWM
2)后退功能
P105:停止输出PWM
P102:输出PWM
PA11:停止输出PWM
P804:输出PWM
3)左转功能
P105:停止输出PWM
P102:输出PWM
PA11:输出PWM
P804:停止输出PWM
4)右转功能
P105:输出PWM
P102:停止输出PWM
PA11:停止输出PWM
P804:输出PWM
2.2 外围传感器接口
2.2.1 I2C接口设备
I2C接口挂载设备:
1)SHT20: 测试环境的温度和湿度
2)ISL29035:检测小车周围的光照强度
3)OLED:显示器,用以显示实时的数据,包括温度、湿度、光照强度,MCU内部的参数等
2.2.2 IO接口
1)IO接口1: DS18B20接口
2)INPUT IO: 按键接口,用于实现UI切换功能
2.2.3 UART接口
UART: 蓝牙模块接口,用于和蓝牙模块进行数据交互
2.2.4 其他接口
模拟信号接口: 探测外围模拟器件信号数据
MCU内部模块:
1) 温度传感器: 监控MCU内部温度数据
2)RTC: 系统工作的实时时钟数据
传感器系统实物结构图:
2.3 障碍物监测接口
输出端口:P7_10用于触发HC_SR04的测速功能
输入端口:P7_09接收信号脉冲,用于计算距离数据
硬件实物图:
2.4 测速模块接口
系统使用两路光电编码器分别用于测试两组电机的转动速度,以使用PID速度控制,其硬件接口图如下:
3 系统软件架构
系统软件分为三层:其具体功能模块如下
系统代码框架结构:
3.1 MCU驱动层
1)SCI-I2C接口: 主要实现MCU I2C接口的驱动层,该层代码通过FSP软件进行配置
2)SCI-UART接口: 主要实现MCU UART接口的驱动层,该层代码通过FSP软件进行配置
3) TIMER接口: 主要实现MCU Timer接口的驱动层,该层代码通过FSP软件进行配置
4 )ADC接口: 主要实现MCU ADC接口的驱动层,该层代码通过FSP软件进行配置
5) RTC接口: 主要实现MCU RTC接口的驱动层,该模块为系统提供实时时钟功能,该层代码通过FSP软件进行配置
3.2 设备驱动层
系统的设备层驱动主要有如下这些模块:
1)oled_drv: OLED驱动程序
2)ds18b20_drv: DS18B20驱动程序
3)key: 按键驱动程序,主要用于UI的页面切换功能
4)bluetooth: 蓝牙模块驱动程序
5)ISL29035_drv: ISL29035驱动程序,用于监测环境光照数据
6)SHT20_drv: SHT20驱动程序,用于监测实施的温湿度数据
7)hc_sr04_drv: 超声波模块驱动程序,用于测试障碍物的距离
8)motor_speed: 电机速度控制驱动程序
3.3 应用层程序
1)app_ui模块: UI页面模块,用于定义每个页面显示数据的内容
2)app_state模块: 状态机控制,用于实现UI切换
3)app_main模块:主功能实现,包括传感器数据获取,数据处理
4)app_bluetooth: 蓝牙模块数据处理模块
5)app_motor: 小车运行控制
6)app_motoPID: 小车运行的PID控制模块
3.4 微信小程序程序设计
小程序的UI分为三个部分:
1) 传感器数据显示模块
2)工作模式配置模块:
自动模式: 通过超声波测距模块判断运行状态
手动模式:通过微信App控制小车的运行状态
3)小车方向控制模块:通过5个按钮控制小车的运行轨迹
3.5 OLED UI定义
第一组UI定义
第二组UI定义
4 系统测试
4.1 传感器UI数据测试视频
https://www.bilibili.com/video/BV1do1yYrEEc/?spm_id_from=333.999.0.0
4.2 运动控制视频
https://www.bilibili.com/video/BV1gh12YME8B/?spm_id_from=333.999.0.0
https://www.bilibili.com/video/BV1dc1mY2EbP/?spm_id_from=333.999.0.0