一起玩儿平衡车(ESP32)——02 平衡车的组装与接线方法

摘要:本文介绍平衡车的组装与接线方法

前边介绍了所要实现的平衡车的组成,接下来就来把小车组装起来。首先是下层底板的底面要固定两个轮子。这个只要固定孔位没有问题,用螺丝直接将轮子支架固定上去就可以了。固定好后如下图所示:

在安装车轮的时候,要特别注意的一点是,一定要保证两个电机的轴在一条直线上,这样两个轮子在同向旋转的时候发力是垂直于轴向并且向同一个方向的,不会出现能量的内耗。另外就是两轮的轴线要位于两个长边中心线的正上方,这样小车初始重心就会落在两轮的轴线上,更有利于最终的直立平衡。同样的,安装其他设备到小车上的时候,也尽量以轴线为中心,将质量平均的分布在轴线的两侧,这样在平衡的时候,你的小车看上去才是平的。否则,可能在小车平衡的时候,车底板不是水平的,看上去会有些怪怪的。

在底板的另一面,我安装了锂电池盒、LM2596S稳压模块和TB6612FNG电机驱动模块,电池安装在了正中央,另外两个模块一左一右。安装好后的样子如下图所示:

电池盒的左边是TB6612FNG电机驱动模块,下边通过一个面包板固定在底板上,中间使用了排针插座,这样将来还可以把TB6612FNG电机驱动模块拔下来继续使用。右侧的LM2596S稳压模块则是利用安装孔和M3铜柱,直接固定在了小车下层底板上。电池盒也是通过螺丝穿过底部固定孔固定在下层底板上的。这些器件的固定一定要牢固,不能晃动,因为在调试甚至运行阶段,小车都有可能有激烈的震动,固定不牢固一方面可能引起导线的短路或者连接不实,另一方面还有可能造成小车重心位置的改变而影响小车直立的稳定性。

下边就是给ESP32系统板和姿态模块MPU6050供电的AMS1117模块,我把它安装在了车身上层板的靠近边上的底面,装完之后,面朝下。之所以这样安装,是因为我在车身顶层板的中间挖了个洞,然后在空洞处安装了一块儿面包板,在这个面包板上焊接底座后,可以在正面插上ESP32系统板和MPU6050模块,所以,将稳压电源模块AMS1117安装在上层板的底面会更方便些,如下图所示:

最后就是ESP32模块和MPU6050模块通过2.54mm的插座插在了面包板上,装好后的样子如下图所示:

好了,全部器件都找到位置安装了,下面就来看一下如何接线了。电池盒内部的过充、过放、短路保护模块的安装就不再介绍了,可以参考前一篇文章。

下面来看一下底层底板和上层稳压模块的接线方法,如图所示:

在上图中可以看到,电池盒的输出正负极直接连接LM2596S稳压模块的输入端IN+和IN-。稳压模块LM2596S稳压模块的输出端分别接稳压模块ASM1117的VIN+和GND以及电机驱动模块TB6612FNG的VM和GND。ASM1117的两个输出端VOUT和GND分别供电给电机驱动模块TB6612FNG的VCC端、ESP32的VCC、GND端和姿态模块MPU6050的VCC、GND端。

在这里需要注意的是,电机驱动模块TB6612FNG的PWMA端、STBY端和PWMB端都要连接到VCC,也就是保持始终是高电平。然后TB6612FNG模块的AIN1、AIN2、BIN1和BIN2连接到ESP32的控制引脚,如果不是使用我标注的引脚,那么在后边编写程序的时候一定别忘了做相应的修改。最后就是TB6612FNG的AO1、AO2连接到左电机,BO1、BO2连接到右电机。电机的两根电源线是随便连接的,后面如果发现电机转动方向不对,软件交换一下控制引脚就可以了。

最后就是ESP32模块和MPU6050的接线了,在完成这两个模块的供电线之后,就只剩下两者之间I2C通讯的SDA和SCL线需要连接了。在这里,将MPU6050的SDA、SCL连接到ESP32的P18和P19就可以了。如果不是这两个引脚,后边注意在程序中做相应的修改。

好了,所有的连线就都介绍完了。为了避免遗漏,给大家整理了一张表格,建议连线的时候对着表格,每连好一根就打勾记录一下,避免遗漏。表格如下所示:

电池盒+

LM2596S的IN+

£

电池盒-

LM2596S的IN-

£

LM2596的OUT+

ASM1117的VIN

£

TB6612FNG的VM

£

LM2596的OUT-

ASM1117的GND

£

TB6612FNG的GND

£

ASM1117的VOUT

TB6612FNG的VCC

£

TB6612FNG的PWMA

£

TB6612FNG的PWMB

£

TB6612FNG的STBY

£

ESP32的VCC

£

MPU6050的VCC

£

ASM1117的GND

ESP32的GND

£

MPU6050的GND

£

TB6612FNG的AIN1

ESP32的P27

£

TB6612FNG的AIN2

ESP32的P25

£

TB6612FNG的BIN1

ESP32的P32

£

TB6612FNG的BIN2

ESP32的P17

£

TB6612FNG的AO1

左电机

£

TB6612FNG的AO2

左电机

£

TB6612FNG的BO1

右电机

£

TB6612FNG的BO2

右电机

£

ESP32的P18

MPU6050的SDA

£

ESP32的P19

MPU6050的SCL

£

有了这个清单,就可以按照清单一点点的来接线了。在下一期中,将详细的介绍接线的流程,以及每一步都要进行的测试,确保整个接线工作可以顺利完成。好了,下期再见!

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

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

相关文章

基础小白快速入门c语言--

变量: 表面理解:在程序运行期间,可以改变数值的数据, 深层次含义:变量实质上代表了一块儿内存区域,我们可以将变量理解为一块儿内存区域的标识,当我们操作变量时,相当于操作了变量…

代码随想录算法训练营Day38|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

509. 斐波那契数 题目链接:509. 斐波那契数 文档链接:509. 斐波那契数 视频链接:手把手带你入门动态规划 | LeetCode:509.斐波那契数 C实现 class Solution { public:int fib(int n) {if(n 0) return 0;if(n 1) return 1;int a…

罐头鱼AI传单功能操作说明|二次剪辑创作|AI智剪|批量剪辑视频

罐头鱼AI传单功能操作说明 1. 首页显示 账号登录状态 可绑定账号数量 已绑定账号数量 已绑定账号显示 显示最近上传视频素材 显示新上传素材列表 QQ:290615413 2. 抖音账号绑定功能 显示登录账号 已绑定账号 可绑定账号数量 可授权绑定抖音账号 3. 账号管理列表 显…

Netty5 入门HelloWorld

一、客户端代码及关键类说明 /*** netty5的客户端* author -zhengzx-**/ public class ClientSocket {public static void main(String[] args) {//服务类Bootstrap bootstrap new Bootstrap();//workerEventLoopGroup worker new NioEventLoopGroup();try {//设置线程池boo…

RC正弦波振荡电路

RC正弦波振荡电路 RC正弦波振荡电路又称文氏电桥振荡电路,可以设计频率为f1/2πRC的正弦波发生器。 RC正弦波振荡电路设计:50Hz,振幅为3.47V 电路分析: 1.起振条件取决于R1, R4,R2与1N4148并联电阻(下面简称Rf&#…

B端系统:OA界面设计,把用户当傻瓜吧, 少让用户吃瓜

OA系统是稍具规模的企业最常用的系统,有些OA系统体验非常逆天,把用户当成了吃瓜群众,看看热闹还行,一旦上手操作就抓瞎了,大千UI工场结合自身经验对这个问题进行分析,希望可以抛砖引玉。 一、OA概述 OA系…

【飞桨EasyDL】飞桨EasyDL发布的模型转换onnx(附工程代码)

一个愿意伫立在巨人肩膀上的农民...... 一、paddle转onnx转rknn环境搭建 paddle转onnx和onnx转rknn两个环境可以分开搭建,也可以搭建在一起。这里选择分开搭建,先搭建paddle转onnx。 1.1、创建环境 选择python3.8.13包进行创建环境 conda create --nam…

Day09:基础入门-算法逆向散列对称非对称JS源码逆向AESDESRSASHA

目录 算法加密-概念&分类&类型 加密解密-识别特征&解密条件 解密实例-密文存储&数据传输 思维导图 章节知识点: 应用架构:Web/APP/云应用/三方服务/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&am…

电子科技大学《数据库原理及应用》(持续更新)

前言 电子科技大学的数据库课程缩减了部分的课时,因此,可能并不适合所有要学习数据库的宝子们,但是,本人尽量将所有数据库的内容写出来。本文章适用于本科生的期中和期末的复习,电子科技大学的考生请在复习前先看必读…

MySQL相关知识汇总

MySQL是一个广泛使用的开源关系型数据库管理系统,它以其高性能、稳定性和易用性而备受开发者喜爱。在软件开发领域,无论是大型项目还是小型应用,MySQL都扮演着重要的角色。本文将对MySQL的一些关键知识点进行汇总,帮助读者更好地了…

5. informer源码分析-概要分析

k8s client-go k8s informers 实现了持续获取集群的所有资源对象、监听集群的资源对象变化功能,并在本地维护了全量资源对象的内存缓存,以减少对 apiserver、对 etcd 的请求压力。Informers 在启动的时候会首先在客户端调用 List 接口来获取全量的对象集…

C++中boost库的安装及使用(Windows)

Boost库的安装及使用 引言使用现有的boost库安装及使用引言 C++开发中经常会用到boost库,本文记录一下Windows上boost在visual studio2019上的使用。 Boost库是一个跨平台的C++库集合,旨在为C++开发者提供一系列高质量的通用功能。不同的Visual Studio(VS)版本并不要求安…

日常科研中经常使用的命令

Linux目录树状结构 1. Windows是磁盘分区,Linux不区分盘符,所有文件都在根目录斜线下面; 2. 根目录显示不同,Linux是一个斜线,而windows是盘符,然后冒号; 3. 分割目录Linux用斜线&#xff0c…

React编写组件时,如何省略.tsx后缀

省略.tsx后缀 当tsconfig.json配置了,需要重启后才会生效 {"compilerOptions": {"allowJs": true,"jsx": "react-jsx",} }当进行以上配置后,导入组件时添加后缀,Eslint报错如下: An im…

【算法集训】基础算法:基础排序 - 冒泡排序

一、基本理解 贴上图解,更容易理解代码:https://visualgo.net/zh/sorting 冒泡排序(Bubble Sort)又称为泡式排序,是一种简单的排序算法。 核心思想: 它重复地走访过要排序的数列,一次比较两个元素,如果它…

性能比较:in和exists

当在Hive SQL中使用NOT IN和NOT EXISTS时,性能差异主要取决于底层数据的组织方式、数据量大小、索引的使用情况以及具体查询的复杂程度。下面是对这两种方法的性能分析: 1. NOT IN:- 工作原理:NOT IN子查询会逐个比较主查询中的值…

化肥工业5G智能制造工厂数字孪生可视化平台,推进化肥行业数字化转型

化肥工业5G智能制造工厂数字孪生可视化平台,推进化肥行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的必然趋势。在化肥工业领域,5G智能制造工厂数字孪生可视化平台的应用正在逐渐普及,为行业数字化转型提供…

Java 循环结构 - while ,do…while 及 for,

目录 Java中有三种主要的循环结构: while 循环 实例 do…while 循环 实例 for循环 实例 三种循环之间的区别 增强 for 循环 实例 break 关键字 语法 实例 continue 关键字 语法 实例 顺序结构的程序语句只能被执行一次。 如果您想要同样的操作执行…

租用云服务器租时要注意的问题有哪些?

随着云计算的不断发展,对云计算服务器的需求也越来越大。 那么,我们应该如何以正确的态度和方法来选择云服务器呢? 租用云服务器需要注意哪些问题? 1.了解您需要的云服务类型 了解您的云计算需求将使您了解您正在寻求的服务类型…

web运行时安全

1.输入验证 对传递的数据的格式、长度、类型(前端和后端都要)进行校验。 对黑白名单校验:比如前端传递了一个用户名,可以搜索该用户是否在白名单或者黑名单列表。 针对黑名单校验,比如: // 手机号验证…