基于Renesas R7FA8D1BH (Cortex®-M85)自适应蓝牙控制智能小车

news2024/11/26 11:33:41

目录

概述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2201960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你还在为找不到免费录屏工具而烦恼吗?

嘿,各位小伙伴们,今天咱们来聊聊录屏软件吧!你是不是经常需要录制电脑屏幕,做做教程、游戏解说或者工作汇报呢?那你肯定得选个好用的录屏工具啊!来来来,跟着我一起,我来给你们推荐几…

SpringBoot项目打成jar包,在其他项目中引用

1、首先新建一个SpringBoot工程 记得要将Gradle换成Maven 2、新建一个要引用的方法 3、打包的时候要注意: ① 不能使用springboot项目自带的打包插件进行打包,下面是自带的: ②要换成传统项目的maven打包,如下图: 依…

算法 动态规划

更多文章:https://www.pandaer.space 动态规划 算法很简单!今天我们来聊聊动态规划,我们先从动态规划怎么来的讲起,然后聊聊动态规划应该如何学?最后正式开始动态规划的学习之旅。 动态规划怎么就出现了呢&#xff…

前端性能优化全面指南

前端性能优化是提升用户体验的关键,页面加载速度、响应时间和交互流畅度直接影响用户的留存率和满意度。以下是常用的前端性能优化方法,从网络层、资源加载、JavaScript 执行、渲染性能等方面进行全方位优化。 减少 HTTP 请求 合并文件:将多…

markdown里粘贴图片的同时保存路径 在vscode里实现

下载扩展Markdown Image 设置保存路径 参考链接 https://blog.cxplay.org/works/vscode-to-markdown-editor/#markdown-image

HDLBits中文版,标准参考答案 | 3.2.5 Finite State Machines | 有限状态机(2)

关注 望森FPGA 查看更多FPGA资讯 这是望森的第 17 期分享 作者 | 望森 来源 | 望森FPGA 目录 1 Lemmings 1 2 Lemmings 2 3 Lemmings 3 4 Lemmings 4 5 One-hot FSM | 独热 FSM 6 PS/2 packet parser | PS/2 数据包解析器 7 PS/2 packet parser anddatapath | PS/2 数…

55 WebSocket

55 WebSocket 参考资料 WebSocket SpringBoot使用WebSocket SpringBoot 集成WebSocket详解 前言 WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和…

AI大模型微调产品经理面试必备全攻略,非常详细收藏我这一篇就够了

前言 这两天跟很多做程序员的朋友聊天,怎么看全网火爆的大模型。让我挺意外的是,大家的反馈普遍都很焦虑 。 在AI大模型微调领域的产品经理面试中,总会遇到一系列与技术细节、项目经验、市场趋势以及职业规划相关的问题。以下是一些建议的面…

RabbitMQ中如何解决消息堆积问题,如何保证消息有序性

RabbitMQ中如何解决消息堆积问题 如何保证消息有序性 只需要让一个消息队列只对应一个消费者即可

cdr激活码序列号coredraw2024安装包破解版coreldraw2024永久序列号最新

🌟设计界的新宠儿来啦!CorelDRAW 2024震撼登场🎉 ### 🌈 开篇狂想曲:设计师们的“瑞士军刀”升级记!🎨 嘿,亲爱的创意达人们👋!今天,就让我们共同…

6.将扩散模型与其他生成模型的关联(1)

在本章中,我们首先介绍其他5种重要的生成模型,包括变分自编码器抗网络、归一化流、自回归模型和基于能量的模型,分析它们的优点和局限性,并说明这些生成模型是如何通过纳入扩散模型而得到促进的。1 .变分自编码器与扩散模型 …

Java | Leetcode Java题解之第455题分发饼干

题目&#xff1a; 题解&#xff1a; class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int m g.length, n s.length;int count 0;for (int i 0, j 0; i < m && j < n; i, j) {while (j < n &&…

鸿蒙开发之ArkUI 界面篇 二十五 点赞综合案例

要实现如下图效果&#xff0c;红框处是点赞数&#xff0c;点击会变色和数字增加1&#xff1a; 我们首先分析布局结构&#xff0c;整体式垂直方向的布局&#xff0c;外层容器自然是Colum&#xff0c;上层是图片组件Image&#xff0c;接下来是Text组件&#xff0c;接下来是Row组件…

Unity实战案例全解析 类宝可梦回合制的初级案例 源码分析(加了注释和流程图)

这是一个老教程了&#xff0c;但是对于没有写过回合制的初级程序同学来讲是比较适合的&#xff0c;也可以直接看源码&#xff0c;半小时内可以解决战斗 当然&#xff0c;我也没写过回合制系统所以就到处找&#xff0c;思路明白了就能自己修改了 视频教程 - 油管链接 Turn-Bas…

ComfyUI | 5分钟部署最新Flux大模型

Midjourney 和 Stable Diffusion 都是目前流行的 AI 图像生成工具&#xff0c;它们能够根据文本描述生成高质量的图像。都是基于深度学习技术的文本到图像生成模型&#xff0c;但它们各自基于不同的大模型。 但最近推出了一款比前两者更强大&#xff0c;生成图像更加逼真&…

UE4 材质学习笔记04(着色器性能优化)

一.着色器性能优化 1.衡量着色器的性能 衡量着色器性能的主要方法有三个 第一个&#xff1a;可以使用场景的视图模式的优化视图模式的着色器复杂度 下面的滑条代表了着色器指令的复杂度 如果场景大部分是绿色的&#xff0c;说明着色器耗能低&#xff0c;反之白色则是很糟糕…

VS Code安装以及配置

安装 1. 下载安装 VScode官网 注意&#xff0c;这一步最好全部打勾 2. 设置默认terminal为cmd 3. 修改Run Code的配置 参考&#xff1a; https://blog.csdn.net/weixin_46474921/article/details/132841711

2024年诺贝尔物理学奖 机器学习与神经网络领域前景面面观 如何抉择

近日&#xff0c;2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者&#xff0c;这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家&#xff0c;如今却将全球范围内对机器学习和神经网络的研究和开发作为了一种能…

【element-tiptap】如何增加一个扩展项,为文字渲染颜色?

源码地址&#xff1a; https://github.com/Leecason/element-tiptap 可以看到&#xff0c;当前这个页面的文字&#xff0c;都是黑色的&#xff08;除了链接&#xff09; 酱紫有些单调&#xff0c;我喜欢五颜六色的。那么这篇文章就来看下菜单项里面如何增加一个颜色的扩展&…

Anaconda保姆安装教程

步骤1&#xff1a;下载Anaconda安装包 访问官网&#xff1a; 进入Anaconda官网下载页面&#xff0c;官网会根据电脑的操作系统自动选择适合的操作系统安装程序。 尝试进入清华大学开源软件镜像站&#xff0c;选择想要的版本进行下载&#xff0c;通常下载速度较快。 本文以从…