一起玩儿平衡车(ESP32)——01 平衡车的基本原理和组成

2024-03-24 11:20

本文主要是介绍一起玩儿平衡车(ESP32)——01 平衡车的基本原理和组成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:本文介绍平衡车的基本原理和组成

平衡车作为一种新型代步工具着实火了一阵子。从本期开始,将利用几期来复刻一个2轮平衡车,初期的平衡车只实现了原地保持直立姿态,这是一个平衡车成功与否的关键环节。实现能够保持直立后,再逐步加入行走、转弯、避障等功能,通过若干期来完善平衡车的功能和进行性能、结构等方面的优化。

简单的说,平衡车的运行原理主要是建立在一种被称为“动态稳定”(Dynamic Stabilization)的基本原理上。利用车体内部的陀螺仪和加速度传感器,来检测车体姿态的变化,并利用控制系统,精确地驱动电机进行相应的调整,以保持系统的平衡。

与代步的平衡车不同,这里要实现的平衡车要简单一些,由车身、车轮、电池组、稳压器、电机、电机驱动模块、控制器、姿态传感器等部件组成。

  1. 车身

平衡车的车身一般由铝合金、PP塑料、木片等材料等制成。是整个平衡车的车体框架,因此要求其刚性要强,能保证在各种运动的作用下情况下不变形。能够保证姿态传感器、车身以及车轮之间的位置相对固定,不能发生相对的位移。

我的小车采用的双层板结构,底层连接车轮、固定电池组、稳压模块和电机驱动模块,上层安装ESP32处理器和姿态传感器模块。

考虑到加工的便利性,我所使用的是椴木板来制作小车底板,这种板子在网上很容易买到,各种尺寸、各种厚度的都有,你甚至可以要求厂家帮你切割成合适的尺寸并打好孔。考虑到车身强度和车子的中心问题,下层使用的是5mm的椴木板,上层为3mm的椴木板,大小为15cmX6cm,两者之间使用M3铜柱相连接。大概样子如下图所示:

2. 车轮

平衡车一般采用双轮结构,车轮一般由橡胶、聚氨酯等材料制成,具有一定的抗震性和摩擦力。轮胎的摩擦力一定要好一些,保证电机的输出可以有效的转化为小车的移动。另外就是调试的时候,也要找粗糙且平整的地面,在瑜伽垫上调试的效果要比水磨石地面好很多。尤其是在调整参数的初期阶段,这一点大家一定要注意。

3. 电池组

平衡车的电池组是其动力来源。我这里采用的是2节18650锂电池供电,采用了带开关的电池盒。如下所示:

为了保护电池不会过放电而损坏,我还给这两个电池安装了18650锂电池模块过充、过放、短路护板,其样子和接法如下图所示:

这个保护板图片看上去很大,实际的样子很小,安装好后,我将他装在了开关与电池顶端挡板之间的位置,长度刚好可以放进去,在外边看不到里面安装了保护板,很容易的解决了保护板的固定问题。需要注意的是装进去后,保护板的焊接点不要和开关后边的触点互相接触,如果不放心,可以粘贴一些绝缘胶布来避免短路。

4. 稳压模块

供电系统的稳定是整个系统稳定运行的基础,所以一定要配备一个功率足够的稳压模块来保证用电设备可以得到稳定的电压。在这里我采用的是双路供电,其中一路供电给电机,提供机械能输出,另一路供电给ESP32单片机,保证其稳定运行。之所以采用2路供电,因为电机属于功率器件,其功率较大,尤其是启动时候,会对电源输出电压的稳定性造成一定的影响。因此为了避免由于电机的启停造成电压的波动而影响到ESP32单片机的运行,单片机采用单独的一路来供电。

有人会说,ESP32单片机用稳压模块就行了,电机可以直接接到电池的输出端。这样的缺点就是没法保证电机供电的稳定性。在前面的文章中已经说过,供电电压和PWM的占空比影响着电机的输出功率,如果电机不采用稳压模块,那么它的供电电压就会随着电池输出的波动而波动,这样即使在相同占空比的PWM驱动下,其输出功率也是完全不同的,这样你的小车就很难稳定住。所以,在平衡小车系统中,一定要采用双供电措施,这样更能保证平衡小车的稳定运行。

在选择稳压模块的时候,主要考虑输出电压和电流,一定要满足电机和其他用电设备的需求。在这里我选用的模块分别是:LM2596S DC-DC直流可调降压电源模块和AMS1117-3.3V降压电源模块。其中LM2596S给电动机供电,输出电压调整到6V,AMS1117的输出电压为3.3V,给ESP32处理器和姿态传感器供电。这两个模块如下图所示:

5. 电机

平衡车的电机是控制车轮转动的关键部件。我所采用的是370直流减速电机,供电电压为6V,输出转速在280转/分钟。平衡小车对转速的要求不是很严格,一般在150转/分钟到300转/分钟之间就都可以。样子如下图所示:

网上有很多商家都将电机、支架、联轴器和轮胎组合到一起销售,直接买一套会方便很多。另外,有些电机还带有霍尔编码器,这个是用来检测电机转速,将来做闭环转速控制时使用的。在初期平衡车实现基本的直立、行走和转弯功能是不需要用到霍尔编码器的,后边做更深入的学习和实验时,才会用到。可以根据情况选择是否带霍尔编码器。

6. 电机驱动模块

电机驱动模块采用了之前介绍的TB6612FNG电机驱动模块,不了解的可以参考之前的文章。其样子如下所示:

7. 控制器

平衡车的控制器是控制电机和姿态传感器的核心部件。在这里采用的是前面介绍最多的ESP32模块。考虑到空间的问题,这次采用的是ESP32的MINI板,不是以前的开发板,其功能与之前介绍的开发板完全一样,只是模块的面积要小很多,如下图所示:

8. 姿态传感器

平衡车的姿态传感器是感知车身角度的关键部件。一般采用倾角传感器或陀螺仪等技术。我这次采用的也是之前介绍过的MPU6050传感器,样子如下图所示,不熟悉的可以参考之前的文章。

好了,整个平衡车的组成就介绍到这里了,下面将介绍如何将车组装起来并连接电路。下面先来看一下完成后小车运行的样子。

平衡车

这篇关于一起玩儿平衡车(ESP32)——01 平衡车的基本原理和组成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/841435

相关文章

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

防盗链的基本原理与实现

我的实现防盗链的做法,也是参考该位前辈的文章。基本原理就是就是一句话:通过判断request请求头的refer是否来源于本站。(当然请求头是来自于客户端的,是可伪造的,暂不在本文讨论范围内)。首先我们去了解下什么是HTTP Referer。简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中,优化算法被广泛应用于训练神经网络模型。随机梯度下降法(SGD)是最常用的优化算法之一,但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应对这些挑战,动量法应运而生。本文将详细介绍动量法的原理,包括动量的概念、指数加权移动平均、参数更新等内容,最后通过实际示例展示动量如何帮助SGD在参数更新过程中平稳地前进。

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

Zookeeper基本原理

1.什么是Zookeeper?         Zookeeper是一个开源的分布式协调服务器框架,由Apache软件基金会开发,专为分布式系统设计。它主要用于在分布式环境中管理和协调多个节点之间的配置信息、状态数据和元数据。         Zookeeper采用了观察者模式的设计理念,其核心职责是存储和管理集群中共享的数据,并为各个节点提供一致的数据视图。在Zookeeper中,客户端(如

WIN11 ESP32 IDF + VSCODE 环境搭建[教程向]

前言 目录 前言 安装ESP32-IDF VSCODE插件安装 编译测试 很多时候我们想学习一门新的技能,需要使用全新的开发环境,很多时候我们会在安装环境这个环节卡住很久,这里简单介绍一下ESP32+VSCODE环境搭建。 安装ESP32-IDF https://dl.espressif.cn/dl/esp-idf/?idf=4.4 直接复制上面链接,进入idf下载界面。

Filter基本原理和使用

https://www.cnblogs.com/xdp-gacl/p/3948353.html 一、Filter简介   Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控