本帖最后由 mftang2024 于 2024-10-10 20:41 编辑
概述
当下是一个智能化的时代,万物互联是时代的需要。基于这样的需要应运而生了许多新的技术,以支持这样的需求。在一些比较特殊的领域,单靠人力解决这些问题的成本是很高的,例如:狭窄的甬道、微小的洞穴、火灾现场、甚至是战场。这时如果使用智能机器人进行环境探测或者现场勘探,付出的代价成本会小很多。如今出现了无人机,无人小车,无人舰艇等等。这些设备的诞生都是为了解决特殊领域的需求。 本系统是一款硬件上基于野火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数据测试视频
【野火】第二期瑞萨RA MCU创意氛围赛:自适应蓝牙控制智能小车-01_哔哩哔哩_bilibili
4.2 运动控制视频
【野火】第二期瑞萨RA MCU创意氛围赛:自适应蓝牙控制智能小车-02_哔哩哔哩_bilibili
【野火】第二期瑞萨RA MCU创意氛围赛:自适应蓝牙控制智能小车-03_哔哩哔哩_bilibili
源代码下载地址
|