完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
这一篇介绍平衡自行车的具体制作过程,包括机械、电路和代码。
正文 材料 机械 [tr]名称数量备注[/tr]
[tr]名称数量备注[/tr]
传动方式 我用的是皮带传送的方式,因此比较好实现 电机选择 这个DIY是不考虑变速情况的,平衡的参数都是按照一个固定速度调的。 所以动力部分的作用就是提供一个恒定的速度,并且这个速度尽可能稳定,尽可能不受外部影响。 电机应选择扭力大一些、转速稳定的减速电机。 电机供电 电机是直接供电还是使用升压模块供电要根据电机特性,有些电机用升压模块可以提高功率,有些大电流电机用升压模块反而可能限制了电流。 我这里用升压模块升到12v给N20电机供电的。 另外,电机通过三极管受stm32控制,通过控制占空比也可以限制电机输出的功率。 转向部分 转向部分用一个舵机带动把手转动即可。 电路 在github工程里有详细的引脚连接表 供电 用3.3v稳压芯片给整个控制系统供电,包括单片机、GY521模块、蓝牙模块; 用5v稳压芯片给舵机供电; 用12v升压模块给电机供电。 下载 我是用串口给stm32下载程序的。 [tr]引脚功能[/tr]
这个模块通过 IIC 通信,只需要连接4根线。 [tr]引脚功能备注[/tr]
电机用 12V 升压模块供电,由于不需要反转,用三极管即可直接驱动,电路图如下: 加三极管的目的是为了可以通过调节PWM占空比来限制输出功率,但我的实际情况是100%输出时动力才勉强足够。所以如果你不需要限制电机输出功率,或者通过其他方式限制输出功率,也可以不要三极管,不通过单片机控制。 舵机 舵机是用5v供电的,而单片机是3.3v电平,对于pwm控制脚可以通过2个三极管实现同相的电平转换: 蓝牙模块 下图是我使用的蓝牙串口模块,可以实现串口透传,只需要4根线连接:vcc、gnd、txd、rxd 蓝牙模块是用来调试和遥控的,没有它也能跑。建议还是加上这个模块,在调试PID擦数时会非常方便。 代码结构 主要分为3个部分: 1、基础的驱动程序,实现电机、舵机、gy521数据读取; 2、平衡控制系统,核心是一个20ms定时器,每20ms进行一次数据采集、计算和响应; 3、遥控和调试系统,实现log输出、接收遥控信息。 驱动 [tr]名称文件功能[/tr]
main 函数会初始化一个定时器20ms中断一次,调用 main/balance.c 里的 balance_tick 函数,平衡算法在 main/balance.c 实现。 每20ms会执行一次: (1)读取传感器加速度和角速度信息; (2)互补平衡滤波计算当前姿态; (3)用PID算法计算出前轮转角。 遥控和调试 两部分:状态输出和指令接收。 [tr]状态输出在main函数的while循环里,利用串口中断构建一个简单的界面显示状态。[/tr]
|
||
|
||
只有小组成员才能发言,加入小组>>
4272个成员聚集在这个小组
加入小组3275 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4216 浏览 1 评论
4221 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 14:50 , Processed in 0.595601 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号