0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何自己DIY一个平衡自行车

strongerHuang 来源:博客 作者:老倪 2021-08-26 11:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源 |http://nicekwell.net/

今天给大家带来的是一个博主老倪制作的迷你的平衡自行车项目,虽然是4年前的老项目了,不过相信我们仍然能从中学到一些新东西。

自行车平衡DIY分为3部分介绍:

第一部分介绍自行车平衡基本物理原理;

第二部分理论篇,对平衡自行车的算法进行理论分析,包括模型分析、姿态检测方法、PID算法,控制算法;

第三部分实践篇,具体介绍平衡自行车用到的元器件,动力、转向、电路及代码分析。

篇一:自行车平衡原理

自行车是怎么平衡的,老外做过一个非常好的视频:

自行车是怎么保持平衡的?

这个视频很好地证明了常见的”角动量守恒”的说法是错误的,并且正确的说明了自行车平衡原理是和转向相关的,但没有具体指出平衡和转向的关系。

在这里我们就先来讨论一下”角动量守恒”这种最常见的猜测为什么是错误的,大致讨论一下转向是如何使自行车保持平衡的。

1、角动量守恒说

角动量守恒说的意思就是:轮子跑的时候在转动,此时轮子就类似于陀螺,角动量守恒使自行车保持不倒。

小时候也有过这样的疑问,如果把自行车车轮固定从下坡推下,自行车能不能一直往前走

固定之后就会倒下,可见轮子的陀螺仪效应并不是维持自行车不倒的原因。另外还有老外做了一个没有陀螺仪效应的自行车,该自行车也可以稳定平衡:

以上足以说明陀螺仪效应不是维持自行车平衡的根本原因。

2、转向时的”离心力”是自行车平衡的根本原因

那么什么才是维持自行车平衡的原因呢?

自行车可以看做是一个倒立摆(左右方向不稳定),这个倒立摆受重力作用是一个不稳定系统,需要额外的回复力维持平衡,而提供回复力的正是自行车转向时的”离心力”。

离心力是速度和把手转向角的函数,在一个固定的速度下,可以认为控制把手转向角度就是控制回复力。

我们先记住这一点:维持自行车平衡,需要通过一种合适的算法控制把手角度才能使自行车稳定平衡。

机械自平衡

或许有人会奇怪,有些自行车只要推起来就可以自己平衡。

拆开后发现里面并没有精确的转向控制结构,仿佛在行驶时根本没有转向控制,就类似于上面自行车一样自己就可以平衡了。

这到底是怎么回事呢?其实这就是结构设计者的牛逼之处,设计的机械结构自带回复功能,机械结构使得转向会根据车身倾斜而改变,这种改变的幅度正好可以使自行车稳定平衡。

如果我们改变车身结构,可能就会破坏原有的参数,使得自行车无法稳定平衡。如在前轮绑一个重物:

在老外的视频中,分析了车身倾斜对转向的三个影响因素:

前轮转轴后倾,导致倾斜时前轮转向。

把手安装在前面,导致倾斜时前轮转向。

前轮转动时的陀螺仪效应,车身倾斜,陀螺仪效应使得前轮转向。

以上是所谓”机械自平衡”,平衡根本原因还是转向,只不过巧妙的机械设计使得前轮转向特性恰好很容易维持平衡。

手动自平衡

手动自平衡的意思就是我们自己手动控制让它平衡。

我们既然分析平衡原理,还要做一个平衡自行车出来,这一部分要好好研究一下,将会在后面理论篇重点讨论一下控制方法。

篇二:平衡自行车-理论篇

一、模型分析

1、倒立摆

很显然我们知道自行车在左右方向上不稳定,这是一个很常见的物理模型——倒立摆。

顾名思义,倒立摆的意思就是倒着的摆,比如一个倒着的杆,

倒立摆的特性:不稳定,只要偏离平衡位置,就会有一个力(重力的分力)使系统更加偏离平衡位置,这样偏差就会越来越大。

一般倒立的杆在前后左右方向都有可能倒下,在二维的平面上不稳定;而自行车仅在左右方向上可能倒下,是一维的倒立摆,这要简单一些。

2、自行车的平衡控制

自行车属于倒立摆模型,倒立摆是不稳定的,那么倒立摆应该如何控制才能平衡呢?

我们把问题拆分一下:

怎样的状态才叫平衡?

我们能控制的是什么?

如何控制才能稳定平衡?

2.1 怎样的状态才叫平衡

我们要对”平衡”进行数学描述,所谓的平衡其实就是倒立摆的倾角稳定在一个我们想要的值。

通常我们想要平衡在θ = 0处。

2.2 我们能控制的是什么

对于倒立摆模型,通常我们能控制的是底端的 力 或 速度 或 位置,不同的控制量对应的控制方法不同。

对于自行车来说,它的控制方式不像通常的倒立摆那样直接控制底部,而是间接地通过转向来控制,当自行车以一个固定的速度前进时,自行车把手以一定角度进行转向(设为α),自行车会做相应半径的圆周运动,产生相应大小的”离心力”。

在自行车这个费惯性系里看来,只要对把手进行一定角度的转向(α),就会产生一个相应大小的横向力:

这就是我们进行平衡控制时的实际控制量——把手转角α,只要控制它就能控制回复力。

2.3 如何控制才能平衡

上面我们已经能够通过转向产生回复力,这个回复力可以把倒立摆”掰回”平衡位置,有往回掰的回复力就能稳定平衡了吗?

并不是这样,我们再来回顾一下中学物理:

过阻尼状态的摆会以较慢的速度回到平衡位置;

欠阻尼状态的摆会很快回到平衡位置,但会在平衡位置来回摆动;

临界阻尼状态的摆会以最快的速度稳定在平衡位置。

结合到实际的自行车平衡中就是:

如果回复力不够大,就无法矫正,或者矫正速度很慢,这会导致系统不稳定;

如果回复力过大,就会导致矫正过度,这也会导致系统不稳定;我们最希望的状态就是回复力刚刚好,刚好使倒立摆快速回到平衡位置,又不至于矫正过度。

这是一个复杂的数学计算过程,回复力大小会在系统运行时不断地计算(本平衡自行车是20ms计算一次),用到的是PID算法,会在后面详细介绍。

3、自行车平衡需要解决的基本问题

获取左右方向倾角θ

以合适的算法控制转角α使系统稳定平衡

这将会在下面详细讨论。

二、姿态检测

1、检测的是什么

检测的是自行车左右倾斜的角度。

2、怎么检测

用一个叫gy521的模块,里面用的是mpu6050芯片,带有陀螺仪和加速度传感器

gy521的具体使用会在第三篇-实践篇介绍,这里我们知道通过这个模块我们可以得到自行车各个方向的加速度和角速度。注意哦,我们不能直接得到倾斜角度,我们的到的是各个方向的加速度和角速度,需要进行一些复杂的计算才能得到正确的倾斜角度。

常用的算法有互补平衡滤波、卡尔曼滤波,由于篇幅和精力问题这部分暂不介绍,网上有大量资源,也可以查看本工程源码,以后有时间再写详细教程。

三、PID算法

前面已经分析了,我们通过控制把手转角来控制回复力,我们需要实时计算一个合适的回复力使系统稳定平衡。

这部分内容也不做详细介绍了,网上有大量资源,也可以查看本工程源码。

在这里引用动力老男孩[1]举的一个例子,帮大家简单理解一下需要解决的问题,以及PID算法是如何解决的。

有一个小球在光滑球面上,小球的位置是x,光滑球面顶端在L处,我们可以控制小球水平方向力F,现在要求让小球稳定平衡在x0处。

先看简单情况 x0=L,此时偏差为L-x,

我们给出一个比例项(P) F = kp*(L-x),这样就会有一个回复力,当偏差存在时就会有一个力把小球拉回L处。

这存在的问题是,小球接近L时是会有一定速度的,小球越来越接近L,此时的力仍然是在把小球往L处拉,这会导致小球到达L时(我们想要的位置)速度很大,小球无法立刻停下来,而是会冲过去。

这样小球就会在L附近来回摆动,这是不稳定的状态,属于欠阻尼状态。

为了解决上述问题需要加一个微分项(D) F = kd*dx/dt = kd*v,所谓”微分”指的是位置x对时间的微分,说白了就是速度。

意思就是当速度越大,就产生一个反向的力使速度减小,这样就可以防止出现上面小球冲过去的。

可以认为这一项具有”预测”功能,预测小球下一时刻的状态从而提前做出反应(预测小球将要到达L处,提前减速),

也可以认为这一项具有阻尼作用,相当于系统中有一个和速度成比例的阻尼力。

这个”阻尼力”调得过小会导致欠阻尼状态,调得过大会导致过阻尼状态。

积分项此时可以不用,积分项是当平衡位置x0不等于L时使用的,

当平衡位置不是L处,那么当小球静止在平衡位置x0时,由于在坡道上会有一个恒定的横向偏移力,此时比例调节作用为0(Δx=0),微分调节作用也是0(v=0),所以小球在该处无法平衡,会在更远离平衡位置处达到平衡,那么就会有一个长时间存在的偏差。

积分作用就是检测偏差进行累积,对于上面这个长时间存在的偏差进行积分(累积叠加),使系统在长时间范围可以稳定在要求的平衡位置。

篇三:平衡自行车-实践篇

在本文将会介绍平衡自行车的具体制作过程,包括机械、电路和代码。

平衡自行车完整的代码托管在https://github.com/nicekwell/balance_bike

上GitHub网站卡的同学也可以在文末下载打包好的文档。

一、材料

机械

名称 数量 备注
铜柱、铁丝、胶枪等基础材料和工具
自行车架 1 自己做车架是很麻烦的,我是直接买的车架,淘宝上搜”自行车 拼装 DIY”能搜到很多
舵机 1 转向用的,对于我用的1:6车架,普通舵机有点大,我用的是9g舵机
N20电机 1 选扭力大一点,这样转速会比较稳定
皮带轮和皮带 如上面的图片,我是用皮带来传输动力的

电路

名称 数量 备注
电池、电池盒
洞洞板
lm1117-3.3 降压芯片给控制系统供电
stm32f103c8t6核心板 1
gy521模块 1 加速度传感器 + 陀螺仪
升压模块 1 升到12v给电机供电,根据电机特性选择是否使用升压模块
8050三极管 2 驱动电机,由于自行车不需要反转,所以不需要使用电机驱动芯片,用三极管就能方便地实现。我用了两个三极管并联提高功率。
自锁开关 1 整个系统开关
led指示灯 1 配合1k限流电阻
蓝牙模块 1 可选,如果想要遥控的话就使用蓝牙

二、动力部分

传动方式

我用的是皮带传送的方式,因为比较好实现。

电机选择

这个DIY是不考虑变速情况的,平衡的参数都是按照一个固定速度调的。

所以动力部分的作用就是提供一个恒定的速度,并且这个速度尽可能稳定,尽可能不受外部影响。

电机应选择扭力大一些、转速稳定的减速电机。

电机供电

电机是直接供电还是使用升压模块供电要根据电机特性,有些电机用升压模块可以提高功率,有些大电流电机用升压模块反而可能限制了电流。

我这里用升压模块升到12v给N20电机供电的。

另外,电机通过三极管受stm32控制,通过控制占空比也可以限制电机输出的功率。

三、转向部分

转向部分用一个舵机带动把手转动即可。

四、电路

在GitHub工程里有详细的引脚连接表

https://github.com/nicekwell/balance_bike

供电

用3.3v稳压芯片给整个控制系统供电,包括单片机、GY521模块、蓝牙模块。

用5v稳压芯片给舵机供电。

用12v升压模块给电机供电。

下载

我是用串口给stm32下载程序的。

引脚 功能
PA9 下载TXD
PA10 下载RXD

GY521

这个模块通过i2c通信,只需要连接4根线。

3.3v

GND

PB0 GY521 I2C SCL

PB1 GY521 I2C SDA (用的是IO模拟i2c)

电机

点击用12v升压模块供电,由于不需要反转,用三极管即可直接驱动,电路图如下:

41e4d9dc-eb95-11eb-a97a-12bb97331649.png

加三极管的目的是为了可以通过调节PWM占空比来限制输出功率,但我的实际情况是100%输出时动力才勉强足够。所以如果你不需要限制电机输出功率,或者通过其他方式限制输出功率,也可以不要三极管,不通过单片机控制。

舵机

舵机是用5v供电的,而单片机是3.3v电平,对于pwm控制脚可以通过2个三极管实现同相的电平转换:

4209bf36-eb95-11eb-a97a-12bb97331649.png

蓝牙模块

下图是我使用的蓝牙串口模块,可以实现串口透传,只需要4根线连接:vcc、gnd、txd、rxd。

蓝牙模块是用来调试和遥控的,没有它也能跑。建议还是加上这个模块,在调试PID擦数时会非常方便。

关于调试方面的内容可以参考我写的另一片文章:谈一谈单片机开发的几种调试方案[2]

五、代码结构

代码提交在GitHub

https://github.com/nicekwell/balance_bike

主要分为3个部分:

1、基础的驱动程序,实现电机、舵机、gy521数据读取;

2、平衡控制系统,核心是一个20ms定时器,每20ms进行一次数据采集、计算和响应;

3、遥控和调试系统,实现log输出、接收遥控信息。

驱动

名称 文件 功能
i2c i2c/i2c.c, include/i2c.h IO 模拟i2c驱动,提供i2c基础操作
gy521 gy521/gy521.c, include/gy521.h gy521模块驱动,基于i2c驱动,提供加速度和角速度的读取接口
motor motor/motor.c, include/motor.h 电机驱动,提供占空比控制接口
angle angle/angle.c, include/angle.h 舵机驱动,提供角度控制接口

平衡控制

main函数会初始化一个定时器20ms中断一次,调用 main/balance.c 里的 balance_tick 函数,平衡算法在 main/balance.c 实现。

每20ms到来会执行一次:

读取传感器加速度和角速度信息。

互补平衡滤波计算当前姿态。

用PID算法计算出前轮转角。

遥控和调试

两部分:状态输出和指令接收。

状态输出

在main函数的while循环里,利用串口中断构建一个简单的界面显示状态。

指令接收

串口接收到的数据会传给main/control.c,该文件分析串口数据,解释成相应的操作。主要是PID参数调节。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子元器件
    +关注

    关注

    134

    文章

    3958

    浏览量

    114407
  • 平衡车
    +关注

    关注

    7

    文章

    81

    浏览量

    28322

原文标题:平衡自行车的原理以及制作方法

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电动自行车充电桩安全监控中心:点亮充电安全明灯

    路管控体系,实现从风险感知、智能预警到应急处置的闭环管理。 、电动自行车充电桩安全监控中心的感知层技术:风险源头的数据采集基础 1、无源RFID温度监测技术 采用集成微型温度传感器芯片与RFID天线的标签,无需电池供电,使
    的头像 发表于 01-14 18:28 260次阅读

    电动自行车充电桩远程断电:真的能解决充电安全问题吗

    与主动干预,彻底改变了传统充电桩“被动处置”的管理困境。 、电动自行车充电桩远程断电的技术原理 电动自行车充电桩远程断电技术的核心逻辑是构建“数据采集-分析判断-指令执行”的闭环控制系统。其本质是通过物联网技术实
    的头像 发表于 01-13 17:52 943次阅读

    电动自行车充电桩消防棚:棚多用!安心停放充电

    基础设施,通过专业化技术设计将遮阳避雨功能与消防防护体系有机融合,既解决了极端天气对充电设备的损耗问题,又构建了全流程火灾防控防线。 、电动自行车充电桩消防棚的技术核心定位:安全与实用的双重技术导向 电动
    的头像 发表于 12-23 10:59 1229次阅读

    艾德克斯站式解决电动自行车新国标测试痛点

    “史上最严”电动自行车新国标已经正式实施。自2025年12月1日起,所有在售电动自行车均须符合新版《电动自行车安全技术规范》(GB17761—2024)要求,不符合标准的产品全面禁止销售。目前我国
    的头像 发表于 12-12 10:35 2681次阅读

    意法半导体助力Panasonic打造电动自行车胎压预警系统

    在城市交通领域,电动助力自行车已成为可持续性和便捷出行的重要衡量指标。然而,要充分享受电动自行车的骑行体验,光靠电池还远远不够。骑手寻求的是更强的控制和更完善的功能。鉴于此,Panasonic提出附加包括智能胎压系统在内的“控制”功能。尽管
    的头像 发表于 10-18 09:41 1399次阅读
    意法半导体助力Panasonic打造电动<b class='flag-5'>自行车</b>胎压预警系统

    新国标电动自行车实施,BMS 静电浪涌风险与对策

    2025年9月1日,新国标电动自行车标准正式实施,对电动自行车的安全性、性能等方面提出了更高要求。在电动自行车的设计中,电池管理系统(BMS)至关重要,而静电浪涌问题对BMS的可靠性和稳定性构成严重威胁。作为上海雷卯电子的FAE
    的头像 发表于 09-05 17:17 5179次阅读
    新国标电动<b class='flag-5'>自行车</b>实施,BMS 静电浪涌风险与对策

    电动自行车充电桩消防数据监管平台

    随着电动自行车保有量持续增长,充电桩作为关键基础设施,其消防安全已成为城市治理的重要议题。传统人工巡检模式因效率低、响应滞后等问题,难以满足大规模充电桩的监管需求。在此背景下,电动自行车充电桩消防
    的头像 发表于 09-03 16:06 1196次阅读

    电动自行车充电桩消防设备:化解充电风险,保障出行无忧

    来了严重威胁。在此背景下,电动自行车充电桩消防设备的重要性愈发凸显,成为保障城市安全出行的关键环。 火灾隐患频发,消防设备迫在眉睫 电动自行车在充电过程中,存在诸多引发火灾的隐患。
    的头像 发表于 08-25 15:03 1123次阅读

    电动自行车充电桩远程断电:科技赋能安全充电新体验

    :安全充电的“智能守护者” 电盾自行车充电桩的远程断电功能,是保障充电安全的核心技术之。当充电过程中出现异常情况,如电池温度过高、电流电压异常或充电时间过长时,充电桩的智能控制系统会立即触发自动断电机制。
    的头像 发表于 07-23 15:03 2550次阅读

    二轮自行车充电桩安全监控中心:守护绿色出行的安全堡垒

    安全的核心枢纽,它通过智能化、全天候的监控体系,为城市绿色出行筑起道坚实的安全防线。 实时监测:全方位守护充电安全 二轮自行车充电桩安全监控中心的核心功能之是实现对充电设备的实时状态监测。通过在每个充电
    的头像 发表于 07-10 17:46 1280次阅读

    电动自行车充电桩消防数据监管平台优势解析

    迅速蔓延,不仅烧毁了多辆电动自行车,还导致楼道墙面被熏黑,部分住户家中也受到波及,所幸未造成人员伤亡。这事件再次给电动自行车充电安全敲响了警钟,凸显了加强电动自行车充电桩安全监管的迫
    的头像 发表于 06-11 15:36 917次阅读

    电动自行车电池老化仪:让安全骑行从“被动应对”到“主动预防”

    电动自行车普及背后,电池老化引发的安全隐患却如影随形——续航骤降、充电异常,甚至成为火灾的“导火索”。电动自行车电池老化仪的出现,让电池健康状态变得“透明可测”,用户无需专业知识,也能通过简单操作
    的头像 发表于 06-06 14:13 763次阅读

    环旭电子助力客户发布高性能自行车计算机

    环旭电子作为全球电子设计与制造服务领导厂商,近年来透过联合设计制造服务模式(Joint Design Manufacturing,JDM),协助知名品牌客户开发出兼具强固性与高效能的自行车计算机,以满足全世界自行车计算机市场日益成长的需求。
    的头像 发表于 06-04 18:17 1049次阅读

    电动自行车频引火灾,AI视觉监控摄像头如何保平安?

    关注。由于各地管理水平的参差不齐,些电动自行车摆放密集的地方并没有安装任何消防设备或智能监控摄像头,无法及时发现和处理火警险情。近日,广州有部分小区也发出“电动自
    的头像 发表于 05-14 10:11 767次阅读
    电动<b class='flag-5'>自行车</b>频引火灾,AI视觉监控摄像头如何保平安?

    新国标电动自行车控制器应用解析

    金属氧化物半导体场效应管(SGT-MOSFET)作为新国标电动自行车控制器的核心器件,其性能决定了控制器的整体效率和长期运行的可靠性和安全性。上海贝岭作为MOSFET市场的主要供应商之,现推出针对
    的头像 发表于 05-13 09:26 3162次阅读
    新国标电动<b class='flag-5'>自行车</b>控制器应用解析