SEO基础

SEO基础

Products

当前位置:首页 > SEO基础 >

如何制作一个简易的双轮平衡车?

96SEO 2026-02-19 08:59 15


none">自制平衡车,包括电路,外壳设计,PID控制。

如何制作一个简易的双轮平衡车?

由于我的博客服务器和备案到期,所以选择转移到博客园平台来进行保存和记录。

以后也有可能会在上面不定期更新一些技术类博客。

data-src="https://megrez-hong.oss-cn-shanghai.aliyuncs.com/blogs/%E4%B8%A4%E8%BD%AE%E5%B9%B3%E8%A1%A1%E8%BD%A6.webp"

做这个项目的初衷是想把手头上从学长那里收来的一些电机和电池用上,清一波库存(实际上没用上收来的器件,反而自己又掏钱买了电机和端子╮(╯▽╰)╭)。


于是想到了做一个平衡车,这个算是工科大学自动化类的一个经典项目设计。


虽然咱是EEer,但是秉承要做就做全栈的优良传统,还是想从头到尾完成一个项目。


本文着重于讲解如何从无到有构思并制造出一个完整的系统,并使得它逐渐趋于完美,包括外观设计,接口设计,器件选型,PCB设计,焊接验证,代码编写。


在项目的完成过程中还能顺便学一下PID的思想,体会调参的快乐(痛苦)。

  • 首先既然是平衡车,那么一定要有两个轮子,当然还有通过转轴和轮子连接的电机。

  • 而要实现对电机的控制,需要电机控制模块,也就是我们整个系统的控制板。

    控制板上还要有运动传感器,来检测当前的运动状态。

  • 还需要有电池作为整个系统的电力来源,连接到控制板上。

  • 仅凭一块控制板是难以同时放下电池并固定好电机的,所以我们还需要一层亚力克底板,作为系统的加固和支撑,亚克力材质也方便我们打孔固定。

  • 这是网上的平衡车的3D模型,我们可以依照这个样子,慢慢构想出我们的模型。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524766-1886126717.png"

    这一节我会从系统的每个部件的所要满足的条件出发,环环相扣,完成每一个器件的选型。

    可以预见的是,这个平衡小车整个系统的重量并不会太重,可以估算出大概在0.2kg至0.5kg之间,橡胶轮对普通硬质地面的摩擦力系数大概在0.6至0.7左右。


    所以让整个系统运动起来所需要提供的力无需太大,也就是不需要选用大力矩电机。


    因为大力矩电机的转速往往不高,而我们系统在执行平衡动作的时候需要一个较快的响应,对转速和加速度有一定要求。


    这样带来的另一方面的好处就是电机的工作电压无需太大,工作电流也不用太高。

    减少了变压电路设计的成本。


    除此之外,电机还需要带编码器,它能够指示电机转了多少角度,便于我们对系统的速度进行控制。


    经过一番挑选,选择了淘宝上的N20减速电机带编码器,6V电压,310转的版本。


    电机虽然标称工作电压6V,但是由于电源设计比较常见的是输出5V的LDO,输出6V的比较少见

    而这种电机对电压要求没那么严格,标称6V,但是5V下肯定也能使用,只不过力矩和最大转速会稍小一点(粗浅理解,不是机械专业的学生)。

    所以我们直接供5V电压也是没有问题的

    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524798-895844765.png"

    DRV8833电机驱动芯片

    比较经典的一款电机驱动芯片,2路输出,通过PWM调解转速,最大能输出2A电流。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524746-200089910.png"

    选择经典MPU6050,网上有现成的模块,也有很多的例程和文档。


    为了板子的整体美观,我选择使用芯片,QFN封装,会稍稍有点难焊接。


    不过我有热风枪,也比较容易搞定,不行的话吹下来重新焊一下就可以了。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524774-302739452.png"

    个人平常用的比较多的是单片机是ESP32和STM32,对于这个项目的话两者的性能和外设支持都是完全够用的。


    为了方便使用手机控制,我选择使用ESP32,它支持蓝牙和WIFI连接,而且使用Aurdino

    IDE开发的话有一些现成的库可以使用,也避免了自己移植驱动带来的问题。


    我手头上正好有个ESP32-Wroom32,乐鑫官方的封装好的模组,可以直接用,不需要自己设计外围的PCB板载天线,只要注意PCB布局的时候设置Keepout区域就可以了。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524745-188723255.png"

    通过上面的分析,我们需要两个电源域,5V和3.3V,分别供给电机和单片机以及芯片。


    而一般的锂电池的供电电压是3.7V,肯定是不能直接供电的。


    一节锂电池的优势是轻便,但是带来的劣势是使用时间比较短,而且升压的话是要用到DCDC

    两节锂电池虽然会重一点,占空间会大一些,但是无伤大雅,我们有亚力克底板可以承接。


    这样带来的好处是更容易的电路设计,使用两颗LDO就能转换出5V和3.3V的电压。


    其实在这里我考虑过电池的充电管理,想的是找一颗适用于2节锂电池串联的充电芯片,SLM6800或者CN3762。


    但是转念一想,好像可以直接把电池取出来充电,于是就没有设计这一块。


    (然而事实上组装好之后电池仓被挡住了,根本取不出来,但是好在电池比较坚挺,一直坚持到了调参成功)。


    电池仓采用的是这种贴片式的,安装的时候让电池朝向一正一反,把一侧的金属触点用线焊到一起,另一侧就是7.4V的电压输出

    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524808-1635185663.png"

    厚度不能太厚也不能太薄,超过6mm会导致螺柱头伸过不来而且不易打孔,太薄容易断裂,3mm是一个比较合适的大小。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524790-1923654214.png"

    原理图参考网上的资料,主要是MPU6050以及DRV8833的外围电路,照着Datasheet画就行了,其他的都非常简单。


    IDE的自动下载没问题,但是在下载完成后用sscom打开串口时,要关闭串口软件的打开串口时自动发送RTS,否则会导致芯片进入下载模式。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524822-1027278779.png"

    注意电源通路,有些一看就是大电流的的线路要加粗,比如电机驱动芯片的输出,ESP32的VCC输入。


    去耦电容靠近芯片脚,ESP32的天线区域超过板框悬空即可。


    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524782-908196259.png"

    data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524810-1204476675.png"

    这一部分主要会讲实际调试时遇到的问题以及解决办法。

    • 抹锡膏的时候均匀涂抹,热风枪先对着要焊接的部分整体预热,后均匀加热。

    • 检查有没有肉眼可见的连锡,用烙铁加助焊剂把ESP32,CH340C等密脚芯片的各个脚拖焊一遍。

    • VCC和GND用万用表连通挡测一下有没有短路。

    • 上电时第一时间观察电源指示灯的情况,发现不对立马断开电源。

    • 板子上是由焊盘通过硅胶线连接到电池正负极,有短路和线材被扯断的风险,在电池正负极焊盘之间附近打上热熔胶。

    • 把电路板放在亚克力中部,对正,平齐,用记号笔画出定位孔。

    • 用冲击钻将亚克力板钻出孔位,给电路板的四角装上铜柱,安装到亚克力板上。

    • 预估好电机位置,画好定位线,用强力胶水将电机沾到亚克力板的底面侧边,编码器接口朝向地面(这样就无需切割和打孔,直接固定好了电机)。

    • 电机的线从底面的同一侧引出,方便后面接到板子上。

    • 接线端子封装画错了
    • 电机的接口封装是ZH1.5接线端子,6线,而我画板子的时候画成了PH2.0,买的也是PH2.0的接线端子。


      而且还把直插买成了侧贴(经验教训,嘉立创的封装在种类比较多的时候要确认好是不是自己想要的那种)。


      导致到货后和板子一比对发现这是绝对插不上的(╯‵□′)╯︵┻━┻

      但是转念一想,既然只是接线端子,而且这个电机也不用频繁拔插,可以把电机的引线直接焊到表贴焊盘上,只要每个脚的定义都对准了就好了。


      于是直接开焊,焊接完成后发现效果还不错,锡加的足一点,让线完全包覆在其中就没问题。


      MPU6050读不出数据

      这个其实是个软件的锅,用MCU一直读不出传感器数据,用示波器看管脚发现SCL和SDA的波形有是有,就是不太对劲。


      我一直以为是硬件的问题,因为QFN-24封装确实有那么亿点点难焊接。


      拆了又装,买的两片MPU6050轮番上阵,这个不行换那个,折腾了半天。


      最后我转念一想,是不是软件的问题,Arudino的库肯定是没有问题的,管脚重映射也是有效的,SCL和SDA脚也确实是有波形的,就是会定时的出现不太对劲的波动。


      然后我突然想到,乐鑫的ESP32-Wroom32模组在Arudino

      Dev

      我又查阅了市面上常见的使用乐鑫ESP32-Wroom32模组的开发板,发现它们选的也都是ESP32

      Dev

      data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524827-1456523240.png"

      然后我一查ESP32-WROOM-DA

      Module,发现这玩意长这样,虽然它们名字长的很像,但真就不是同一个东西。


      data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524770-2100958328.png"

      然后在设置里把开发板一改,立马读出数据来了.

      测试电机的时候发现一边转,另一边不转,说明电机驱动芯片功能肯定是好的。

      问题要么是虚焊,要么是PWM没有输出。


      用万用表的电压档测,发现不转的那一侧的IO34和IO35的PWM没有输出。


      搜索引擎查阅资料,发现是ESP32的管脚功能问题,ESP32比较多管脚的系列的的IO34-39只能用作输入,不能用作输出。


      data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524777-172753899.png"

      于是我直接把IO34和IO35就近飞线到最近的能用的管脚IO12和IO27上,然后在代码中改一下PWM的输出脚,电机就能转动了。

    • MPU6050和电机驱动没啥好讲的,都是现成的库,下载来直接用就可以。

    • 可以用串口命令发送PID参数,避免了改一下就要重新烧录的问题
    • 原本有想过好好写一下,但是发现前辈们已经把这些东西讲的很透彻了,再重复也没什么意义。


      平衡小车的PID环体会心得_ReCclay的博客-CSDN博客_stm32平衡小车

      PID深度解析(基于STM32平衡小车)_Carbon6的博客-CSDN博客_平衡车控制算法

      平衡小车PID,就该这么调!!!

      data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524828-1278066705.png"

      data-src="https://img2024.cnblogs.com/blog/3763221/202602/3763221-20260219012524820-981101951.png"

      /*******************************************************************函数功能:直立PD控制入口参数:角度、角速度返回

      值:直立控制PWM

      ******************************************************************/

      int

      }/**************************************函数功能:速度PI控制入口参数:电机编码器的值返回值:速度控制PWM

      **************************************/

      int

      Encoder_Integral;//=============速度PI控制器=======================//Encoder_Least

      (encoder_left

      测量速度(左右编码器之和)-目标速度(此处为零)Encoder

      0.7;Encoder

      /**************************************函数功能:两侧电机同速控制入口参数:电机编码器的值返回值:电机同转速控制PWM

      **************************************/

      int

      {Serial.begin(115200);ledcSetup(0,

      10000,

      //设置LEDC通道0频率为10K,分辨率为10位,即占空比可选0~1023ledcSetup(1,

      10000,

      //设置LEDC通道0在IO1上输出ledcAttachPin(PWM2,

      3);ledcWrite(0,

      //当电平上升沿时,触发中断attachInterrupt(21,

      Lcode1callBack,

      25);mpu6050.begin();mpu6050.calcGyroOffsets(true);}int

      void

      {delay(delaytime);mpu6050.update();int

      balance_PWM

      balance_UP(mpu6050.getAngleY(),

      velocity_PWM

      Rcode1);Motor_Left_Setspeed(Final_PWM);Motor_Right_Setspeed(Final_PWM

      50){Serial.println("===================");Serial.print("tgyroY

      ");

      Serial.print(mpu6050.getGyroY());

      打印角度Serial.print("\t

      Serial.println(mpu6050.getAngleY());Serial.print("Lcode1

      ");

      Serial.println(Rcode1);Serial.print("balancePWM

      ");

      打印直立环PWM值Serial.print("velocityPWM

      ");

      打印速度环PWM值Serial.print("compensationPWM

      ");

      Serial.println(compensation_PWM);

      打印同速环PWM值Serial.println("==================\n");n

      0;}Rcode1

      //叠加数据到comdatadelay(2);//延时等待}if

      -1){String

      class="post-meta-container">



      SEO优化服务概述

      作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

      百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

      SEO优化核心服务

      网站技术SEO

      • 网站结构优化 - 提升网站爬虫可访问性
      • 页面速度优化 - 缩短加载时间,提高用户体验
      • 移动端适配 - 确保移动设备友好性
      • HTTPS安全协议 - 提升网站安全性与信任度
      • 结构化数据标记 - 增强搜索结果显示效果

      内容优化服务

      • 关键词研究与布局 - 精准定位目标关键词
      • 高质量内容创作 - 原创、专业、有价值的内容
      • Meta标签优化 - 提升点击率和相关性
      • 内容更新策略 - 保持网站内容新鲜度
      • 多媒体内容优化 - 图片、视频SEO优化

      外链建设策略

      • 高质量外链获取 - 权威网站链接建设
      • 品牌提及监控 - 追踪品牌在线曝光
      • 行业目录提交 - 提升网站基础权威
      • 社交媒体整合 - 增强内容传播力
      • 链接质量分析 - 避免低质量链接风险

      SEO服务方案对比

      服务项目 基础套餐 标准套餐 高级定制
      关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
      内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
      技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
      外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
      数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
      效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

      SEO优化实施流程

      我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

      1

      网站诊断分析

      全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

      2

      关键词策略制定

      基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

      3

      技术优化实施

      解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

      4

      内容优化建设

      创作高质量原创内容,优化现有页面,建立内容更新机制。

      5

      外链建设推广

      获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

      6

      数据监控调整

      持续监控排名、流量和转化数据,根据效果调整优化策略。

      SEO优化常见问题

      SEO优化一般需要多长时间才能看到效果?
      SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
      你们使用白帽SEO技术还是黑帽技术?
      我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
      SEO优化后效果能持续多久?
      通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
      你们提供SEO优化效果保障吗?
      我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

      SEO优化效果数据

      基于我们服务的客户数据统计,平均优化效果如下:

      +85%
      自然搜索流量提升
      +120%
      关键词排名数量
      +60%
      网站转化率提升
      3-6月
      平均见效周期

      行业案例 - 制造业

      • 优化前:日均自然流量120,核心词无排名
      • 优化6个月后:日均自然流量950,15个核心词首页排名
      • 效果提升:流量增长692%,询盘量增加320%

      行业案例 - 电商

      • 优化前:月均自然订单50单,转化率1.2%
      • 优化4个月后:月均自然订单210单,转化率2.8%
      • 效果提升:订单增长320%,转化率提升133%

      行业案例 - 教育

      • 优化前:月均咨询量35个,主要依赖付费广告
      • 优化5个月后:月均咨询量180个,自然流量占比65%
      • 效果提升:咨询量增长414%,营销成本降低57%

      为什么选择我们的SEO服务

      专业团队

      • 10年以上SEO经验专家带队
      • 百度、Google认证工程师
      • 内容创作、技术开发、数据分析多领域团队
      • 持续培训保持技术领先

      数据驱动

      • 自主研发SEO分析工具
      • 实时排名监控系统
      • 竞争对手深度分析
      • 效果可视化报告

      透明合作

      • 清晰的服务内容和价格
      • 定期进展汇报和沟通
      • 效果数据实时可查
      • 灵活的合同条款

      我们的SEO服务理念

      我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

      提交需求或反馈

      Demand feedback