5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)

news2025/3/12 19:35:03

综合案例2.0 - 蓝牙遥控小车4- 体感控制

  • 成品展示
  • 案例说明
      • 器件说明
      • 小车连线
      • 小车源码
  • 遥控手柄
      • 遥控器连线
      • 遥控器代码
          • 1.摇杆PS2模块说明
          • 2.六轴MPU-6050说明

成品展示

在这里插入图片描述

在这里插入图片描述

案例说明

用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。
控制部分分为手机APP,语音模块控制,Haas506开发板(遥感 + 体感)三种。
本文介绍Haas506(体感)控制的方法以及小车的制作。

器件说明

器件数量说明
STM32F103C8T6单片机开发板1使用5V供电
L298N电机驱动2只能控制电机正反转,要调节速度,每个模块使用4路PWM,案例总共需要8路PWM
MLT BT05蓝牙模块1与Haas506-320开发板进行蓝牙连接,需要5V供电
0.96寸OLED显示屏1用于显示蓝牙接收的消息
4电机加底座1普通TT小电机,需要5V以上供电
麦克纳姆轮4
Haas506-320开发板1利用开发板自带的蓝牙连接并控制蓝牙小车
PS2摇杆模块1检测摇杆x、y轴用于控制小车。
MPU-6050六轴传感器1体感检测

小车连线

  • 器件连线
    在这里插入图片描述
  • 麦轮安装方向
    在这里插入图片描述

小车源码

代码思路结构、

  • 源码见STM32蓝牙遥控小车4(体感控制)
  • L298N电机驱动模块只能控制电机正反转,原理:2路引脚分别控制电机正负极,正极高电平,负极置零,电机正传;反之反转。
  • 为了控制小车速度,这里总共使用了8路PWM来控制每个 L298N电机驱动模块的引脚,每个电机使用2路PWM控制,如果需要正传,正极占空比调高,负极占空比调零。在这里插入图片描述

遥控手柄

手柄包括两种模式(PS2遥杆 + 体感遥控),按开发板KEY键进行切换。

  • ADC读取PS2摇杆模块的X、Y轴数据,将ADC数据转化为范围在(-10~10)内的数据,用于控制小车的速度与方向。
  • 体感遥控使用MPU-6050六轴模块检测X,Y轴维度的倾斜数值,也需要控制在(-10~10)的范围内。
    在这里插入图片描述

遥控器连线

用ADC采集PS2摇杆模块的模拟信号值
用I2C获取六轴传感器X,Y轴维度的数值
在这里插入图片描述

遥控器代码

代码见STM32蓝牙遥控小车4(体感控制)

  • 代码需要更改蓝牙名称。Haas506作为主机去扫描蓝牙小车,搜索蓝牙名称进行连接。
    在这里插入图片描述
1.摇杆PS2模块说明
  • ADC采集的原始数据最大值3200左右,需要转化为如下数值范围。如果代码数值有误差需自行调整。
  • 坐标最后输出格式必须以 ‘ * ’作为结尾举例 X10Y-5*
    在这里插入图片描述
2.六轴MPU-6050说明
  • MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器。可以检测X,Y,Z三个维度的偏转,并且可以检测发生偏转的快慢。案例只使用了X与Y轴两个维度的偏转。
  • STM32小车的代码是固定的,摇杆的数据与六轴的数据通过同一个蓝牙发送,需要保持数据格式一致。安装六轴模块时也要注意X,Y轴坐标方向与PS2摇杆模块也要一致。
  • 对获取的X,Y轴数值取整。并且以 X10Y-5* 格式输出。
  • 在这里插入图片描述

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

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

相关文章

POSTGRESQL LINUX 与 PG有关的内存参释义

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

阿里阿里,搞不定政企

如果我们问一位关注科技产业,或者关注云计算、AI技术的朋友,4月11日的阿里云北京峰会上讲了什么。他应该马上会说,发布了通义千问啊。 这话确实没错。但仔细观察这场会,却会发现一个问题:嘉宾好像不太对。 AI与大模型活…

代码随想录训练营day48|198、打家劫舍;213、打家劫舍II;337、打家劫舍III

198、打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个…

HelloWorld案例详解

HelloWorld案例的编写和执行 Java程序开发运行流程 开发Java程序,需要三个步骤: ●编写代码 ●编译代码 ●运行代码 HelloWorld案例的编写 新建文本文档文件,修改名称为HelloWorld.java用记事本打开HelloWorld.java文件,输写…

如何理解样本统计量?

本期介绍样本统计量是怎么算的,并用Python来模拟随机抽样。用一个在鱼塘捞鱼的简单例子来理解样本均值的概念。 如何理解重复试验? 指能够在完全相同条件下进行多次的试验; 比如我们抛10枚硬币,用来计算正面出现的概率&#xff…

(6) 聚类算法KMeans(案例:矢量量化的降维)

文章目录 理论知识1 sklearn.cluster.KMeans1.1 参数n_clusters1.1.1 小试牛刀1.1.2 模型评估指标轮廓系数Calinski-Harabaz Index 1.1.3 案例:基于轮廓系数来选择n_clusters 1.2 参数init & random_state & n_init:初始质心怎么放好?1.3 重要参…

二:伙伴系统

内核空间内存分配 目录 内核空间内存分配 伙伴系统 首先从内核空间开始,讲解内存管理模式。 主要分为三种方式: 这篇文章我们集中注意于伙伴系统 伙伴系统 解决了外部碎片问题,针对大块内存分配设计 Linux中的内存管理的“页”大小为4…

java中使用Redis实现分布式锁

前言 目前很多大型的互联网公司后端都采用了分布式架构来支撑前端应用,其中服务拆分就是分布式的一种体现,既然服务拆分了,那么多个服务协调工作就会出现一些资源竞争的情况。比如多个服务对同一个表中的数据进行处理。容易出现类似多线程的…

linux中,和,|和||区别

1、& 表示任务在后台执行,比如运行一个jar文件,但是希望是后台运行可以执行 java -jar test.jar & 2、&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo step1‘ && echo ‘step2’ step1执行成功…

Java语法理论和面经杂疑篇《十二. JDK8 - 17新特性》

第18章_JDK8-17新特性(下) 6. 新语法结构 新的语法结构,为我们勾勒出了 Java 语法进化的一个趋势,将开发者从复杂、繁琐的低层次抽象中逐渐解放出来,以更高层次、更优雅的抽象,既降低代码量,又…

美颜SDK的优化方法:实现高效、快速、精准的美颜处理

时下,美颜相机、美颜软件等美颜处理应用也越来越受到用户的欢迎。美颜SDK是一种为移动应用提供美颜处理能力的开发工具包,可以帮助开发者快速实现美颜功能,提升应用的用户体验。但是,如何实现高效、快速、精准的美颜处理&#xff…

【spring-boot-seckill分布式秒杀系统 v1.0】java秒杀系统源码

spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。 开发环境: JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、kafka_2.11、redis-2.8.4、cur…

设计模式-创建型模式之抽象工厂模式(Abstract Factory)

4.抽象工厂模式(Abstract Factory)4.1. 模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时…

项目制作-3

今天是好日子呀解决了 文件的问题(未测试) 完成了更多的界面的设计 对基本的模块有了更多的完成度 又学习了easyx图形库的一些的应用 一起来看看吧 void menu() {initgraph(640, 800, 0);IMAGE img;loadimage(&img, "C:\\Users\\唐怡佳\\Desktop\\图1.jpg"…

sql实践-01

CREATE DATABASE 人员管控; SHOW DATABASES; use 人员管控; 创建表 CREATE TABLE 住宿人员 ( 身份证号 CHAR(18) NOT NULL PRIMARY KEY, 姓名 VARCHAR(10) NOT NULL, 性别 CHAR(1) NOT NULL, 出生日期 DATE, 户籍 VARCHAR(30), 文化程度 VARCHAR(10), 婚姻状况 CHAR(…

装上这个插件,你就能一键生成接口文档

当有接口对接需求的时候,开发终于不用再担心 API 文档难写了,也不用再一个个接口文档重新写!安装这个 IDEA 插件,可以一步将文档导入到 Postcat。 这款插件操作简单,容易上手,能够让开发者省去API文档编写的…

TypeError: Cannot handle this data type: (1, 1, 33980), |u1

Image.fromarray报错解决 1. 报错信息2. 解决 相关文章 Image.fromarray()详细用法 1. 报错信息 TypeError: Cannot handle this data type: (1, 1, 33980), |u1 2. 解决 报错原因 图片mode格式问题moasic是灰度图片得到的【mode为L】,numpy【值只有0,和255】且…

shell编程入门 第一章 基本语法

shell编程的语法主要分为五个环节,分别是变量,字符串,运算符,流程控制,函数五大部分 shell编程的基础语法 一 变量1.1 shell变量名1.2 使用shell变量1.3只读变量1.4 删除变量 二 字符串2.1 定义时最好用双引号2.2获取字…

EMC 电路设计基础

EMC 在 JIS 中被定义为“电磁兼容性”,意为“不对其他设备产生电磁干扰,即使受到来自其他设备的电磁干扰,仍能保持原有的性能”,也就是具备相互兼顾兼容的性质。 EMC 大致分为 EMI(电磁干扰)和 EMS&#x…

Chinese-LangChain:基于ChatGLM-6b+langchain实现本地化知识库检索与智能答案生成

Chinese-LangChain Chinese-LangChain:中文langchain项目,基于ChatGLM-6blangchain实现本地化知识库检索与智能答案生成 https://github.com/yanqiangmiffy/Chinese-LangChain 俗称:小必应,Q.Talk,强聊,Qi…