[CubeMX项目]基于STM32的平衡小车(硬件设计)

news2024/11/26 8:37:31

一直以来我都想在本科毕业前完成一个电机相关的实验,之前看了网上比较火热的自平衡莱洛三角形项目后,决心先做一个类似的小项目。因此,我通过学习大量前辈的项目案例,完成了该项目。
本项目的特点是:在需要通信的部分,全部采用STM32自带的硬件接口,使用自己设计PCB,有利于后期调试和拓展。

在这里插入图片描述

文章目录

  • 1 总体设计方案
    • 1.1 平衡车硬件需求
  • 2 原理图和硬件选中
    • 2.1 主控芯片STM32
    • 2.2 驱动模块TB6612
    • 2.3 GB520电机
    • 2.4 姿态传感器MPU6050
    • 2.5 蓝牙模块
    • 2.6 0.96OLED
    • 2.7 超声波模块
    • 2.8 整体设计
  • 3 PCB设计

1 总体设计方案

1.1 平衡车硬件需求

基于STM32的平衡小车所需的硬件模块主要有九个部分,包括:驱动模块、电机模块、供电模块、降压模块、超声波模块、姿态传感器、蓝牙模块和主控芯片。

通过上述模块实现以下控制:
平衡控制、速度控制、避险功能、远程遥控功能

由此,就可以得到设计平衡小车的硬件框图:
静不稳定主动避险平衡小车硬件框图
除了上述必要的模块,还做了硬件拓展和软件拓展的方便:
1)、硬件扩展:系统应具备良好的硬件扩展能力,能够方便地连接和集成其他模块或传感器,以满足特定应用需求。
2)、软件扩展:系统应具备灵活的软件架构和接口设计,以便于日后对控制算法和功能进行扩展和修改。

2 原理图和硬件选中

2.1 主控芯片STM32

我选用的是由意法半导体公司(ST)开发和推出的STM32F103C8T6。这是一款基于Cortex-M3内核的32位微控制器,采用LQFP48封装。
在这里插入图片描述
原理图如下:主控芯片+硬件拓展
在这里插入图片描述

2.2 驱动模块TB6612

选用东芝半导体公司推出的TB6612FNG芯片
在这里插入图片描述
原理图如下:
在这里插入图片描述

2.3 GB520电机

GB520电机的性能可以从淘宝商店获取。它的特点是,使用AB两根信号线进行编码计数,则当转动一圈,则可以接受到1320个脉冲。也就是单根信号线每圈发送660个脉冲信号。
在这里插入图片描述

必须注意,这里的孔洞间距要根据电机给的接口数据而定。GB520自带霍尔编码器的接口是间距2.0mm,6PIN
在这里插入图片描述
我在打自己的板子的时候就忽略了这一点,一般立创EDA的默认间距是2.54mm。本项目了电机,其他的期间接口都是默认2.54mm的间距。

原理图如下:
在这里插入图片描述

2.4 姿态传感器MPU6050

姿态传感器MPU6050是由意法半导体公司(ST)生产,集成了三轴加速度计和三轴陀螺仪的惯性测量单元(IMU)。
在这里插入图片描述
原理图如下:
在这里插入图片描述

2.5 蓝牙模块

我选用的是汇承科技的HC-08,搭配HC蓝牙助手APP就可以轻松使用UART与APP进行蓝牙通信。
请添加图片描述
HC蓝牙助手APP中可以设置按钮,发送对应的信号数据,实现对小车的控制简化。
在这里插入图片描述
原理图如下:
在这里插入图片描述

2.6 0.96OLED

这里我使用了一块4PIN,采用IIC通信的0.96寸的OLED屏幕。不是一定要按照,我使用了这块屏幕的目的是:
1)、避免在调试的时候,通过串口,使用线与上位机连接,查看数据,而直接在屏幕上直接显示。(蓝牙模块也可以做到不用线连接,但我想剩下上电进行无线连接的时间)
2)、可以在测试的时候,把速度,角度等小车运动的数据信息实时显示。
在这里插入图片描述

原理图如下:
在这里插入图片描述

2.7 超声波模块

超声波模块选用的是市场常见的HC-SR04
在这里插入图片描述

2.8 整体设计

在这里插入图片描述

3 PCB设计

合理布局设计PCB
在这里插入图片描述

3D效果图如下:
在这里插入图片描述

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

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

相关文章

CMU 15-445 Project #1 - Buffer Pool(Task #3 - Buffer Pool Manager Instance)

Task #3 - Buffer Pool Manager Instance 一、题目链接二、准备工作三、部分实现 一、题目链接 二、准备工作 见 CMU 15-445 Project #0 - C Primer 中的准备工作。 三、部分实现 首先要区分缓冲池中 Page 与 Frame ,这个其实和操作系统分页管理中页面和页框的关系…

尚硅谷微信小程序开发 防网易云音乐App 小程序 后端接口服务器搭建

小程序学习 尚硅谷微信小程序开发 项目网易云小程序学习地址: 01-尚硅谷-小程序-课程介绍_哔哩哔哩_bilibili 视频相关的教程文档与笔记分享 链接:https://pan.baidu.com/s/1aq7ks8B3fJ1Wahge17YYUw?pwd7oqm 提取码:7oqm 配套服务器 老师…

C语言总结

C语言 预处理(以#开头) 宏定义 宏可以理解为替换,替换过程不会进行语法检查,语法检查在编译时进行。只替换只替换只替换 1.不带参数的宏定义: 宏定义又称为宏代换、宏替换,简称“宏”。实质为直接替换&…

java面经03-虚拟机篇-jvm内存结构垃圾回收、内存溢出类加载、引用悲观锁HashTable、引用finalize

文章目录 虚拟机篇1. JVM 内存结构2. JVM 内存参数3. JVM 垃圾回收4. 内存溢出5. 类加载6. 四种引用7. finalize 虚拟机篇 1. JVM 内存结构 要求 掌握 JVM 内存结构划分尤其要知道方法区、永久代、元空间的关系 结合一段 java 代码的执行理解内存划分 执行 javac 命令编译源…

力扣 2719. 统计整数数目

题目地址:https://leetcode.cn/problems/count-of-integers/ 递归核心是枚举统计,结合记忆化搜索节省时间。 以数字 3216 为例,从 [0, 0, 0, 0] 开始枚举,到 [2, 1, 6, X] 时,i 2,sum 2 1 6 9&#x…

Meta语音达LLaMA级里程碑!开源MMS模型可识别1100+语言

【新智元导读】Meta的大规模多语言语音 (MMS) 项目将彻底改变语音技术,使用wav2vec 2.0的自监督学习,MMS将语音技术扩展到1100到4000种语言。 在语音方面,Meta又达到了另一个LLaMA级的里程碑。 今天,Meta推…

Linux驱动:I2C驱动看这一篇就够了

I2C驱动看这一篇就够了 一、前言二、Linux 的 I2C 体系结构2.1 Linux I2C 核心2.2 Linux I2C 适配器驱动2.3 Linux I2C 设备驱动2.4 Linux I2C驱动总结 三、具体设备驱动分析3.1 Probe函数3.2 读写函数 四、I2C驱动中几个重要的结构体4.1 i2c_adapter 结构体4.2 i2c_client 结构…

管理类联考——英语——技巧篇——必考高频词组

考研英语必考高频词组 【介词名词形式】 第一组 by accident 偶然 on account of 因为,由于 in addition 另外 in addition to 除……之外 in the air 在流行中,在传播中 on (the/an) average 平均,一般来说 on the basis o…

华为的数通认证考试难不难?考试费用是多少?

自从网络出现在我们的世界后,人类社会发生了巨大的变化,我们每个人的生活和网络息息相关,传统的购物、出行、社交方式发生了巨大的变化,这一切都离不开数通技术的支持,数通一般是指计算机通信网络中数据信号的基带传输…

春招面了个字节拿 36K 出来的,让我见识到了基础的天花板

今年的春招基本已经进入大规模的开奖季了,很多小伙伴收获不错,拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好…

Unity中Camera参数—Culling Mask详解

Culling Mask 如下图所示: 显示层级如下: 应用: Culling Mask :主要是相机针对不同层级的物体进行渲染的操作(想让相机渲染哪个层就勾选哪个层) 层级介绍: unity中的层前7个被unity锁定&#…

第三篇:分治算法

第三篇:分治算法 1. 分治算法简介2. 递归算法框架模板3. 分治演示代码4. 递归算法经典案例 分治算法的思想是将大问题分解成小问题,解决完一个一个小问题便解决了大问题。比如,我们想从杭州出发到徐州,可以分解成杭州到南京&#…

科技云报道:济南公交热线96190背后的“数字力量”

科技云报道原创。 “喂,公交公司吗?我的手提包落在63路车上了,能帮我找一下吗?” “我们小区距离公交站比较远,能增加个公交线路吗?” “等了半天车都不来,公交车为啥这么难等?”…

计算机网络实验---思科模拟器

文章目录 1. 组建小型局域网2. 交换机的配置与管理实验3:交换机划分 Vlan实验4:路由器的基本配置实验5:静态路由实验7:动态路由 1. 组建小型局域网 需要一台交换机,两台PC,连线连起来 配置 PC0 和 PC1 配置…

【大数据之Hive】十二、Hive-HQL查询之分组、join、排序

一、分组 1 group by 语句 group by 通常和聚合函数一起使用,按照一个或多个列的结果进行分组,任何对每个租执行聚合操作。   用group by时,select中只能用在group by中的字段和聚合函数。 --计算emp每个部门中每个岗位的最高薪水&#x…

C++ 设计模式----“单一职责“模式

二、“单一职责”模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。  典型模式 • Decorator • Bridge 【1】D…

RabbitMQ高阶使用延时任务

目录 1 从打车开始说起1.1 需要解决的问题1.1.1 打车超时 2 延时任务2.1 什么是延时任务2.1.1 和定时任务区别 2.2 延时队列使用场景2.3 常见方案2.3.1 数据库轮询2.3.1 JDK的延迟队列2.3.3 netty时间轮算法2.3.4 使用消息队列 2.4 延时队列2.4.1 TTL(消息过期时间) 2.4.1.1 配…

第七十五天学习记录:高等数学:定积分(宋浩板书)

定积分是微积分中的一个重要概念,表示在给定区间上函数曲线下的面积或有向曲线与坐标轴围成的面积。定积分通常用符号 ∫ 来表示,具体形式为 ∫f(x) dx。 对于给定的函数 f(x) 和区间 [a, b],定积分的计算可以通过求函数 f(x) 在该区间上的原…

【C++】STL的vector容器

目录 2、vector容器 1.1模板实例化 1.2定义与初始化vector对象 2.1vector构造函数 2.2vector赋值操作 2.2vector的容量和大小 2.4vector的插入 2.5vector的删除 2.6vector数据存取 2.7vector互换容器 2.8vector预留空间 2、vector容器 vector是C最常用的容器之一&a…

深度学习(神经网络)

文章目录 神经网络历史形式神经元模型(M-P模型)感知器多层感知器 误差反向传播算法误差函数和激活函数误差函数二次代价函数交叉熵代价函数 激活函数sigmoid函数RELU函数 似然函数softmax函数 随机梯度下降法批量学习方法在线学习小批量梯度下降法 学习率…