IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 平衡小车制作系列之八——总结 -> 正文阅读

[嵌入式]平衡小车制作系列之八——总结


一、 前言

本博客原题目叫做“我为什么建议你选择使用面包板制作平衡小车?”没错,这次平衡小车的制作过程除了基本的模块之外,车子上的stm32开发板和模块的连接全部靠杜邦线飞线和面包板插接。我为什么要推荐这么做?我会在最后给出我的答案。


二、 说在最前面

2.1 模块总结

这部分在《平衡小车制作系列之一——捋清制作流程》中有介绍,如一块STM32F103RCT6最小系统板,两个12V电机以及轮子(表面凹印突出较好,抓地力显著)…
但还有一些细节可以提一下,整套小车并没有购买任何网络上的套件。一方面,相比于购买套件,现成的很多材料都可以发挥用场,例如之前用过的OLED,蓝牙模块,能省则省,能改则改,不仅可以节省很多成本,还有DIY的乐趣嘛;另一方面,我认为,只要大胆尝试并愿意发挥想象力,再无用武之地的材料就能“魔”改成自己想要的工具架构。
Why not give it a try?
在这里插入图片描述
例如,上图中的两块亚克力板也是从某个亚克力小车上拆下来的,安装过程中,尺寸孔径自然有不合适的地方,但钻孔机这时派上了用场;电机的固定支架,轮子等都是拆出来的~
当然和画PCB的过程异曲同工,将现有的材料拼接在一起的时候,布局架构必须自己提前考虑,不然后面还需要拆车改线,耗费时间——最开始因为MPU6050安置位置太偏离车身中轴线,导致角度偏差特别大,调试机械零点都费劲,于是将机械结构改了又改,终于比较合适。电机l298n需要连接编码器,pwm以及左右轮子的两个电源线,电池的电源线,所以把它放在车子的中间位置靠后的最合适,左右逢源~
慢慢地,在制作过程中逐渐理解这个硬件有个这样的功能,应该布局哪个位置比较合适,比上网查资料得到答案理解地更深刻。就像之前前辈说过的,“干咱们这一行,很多东西都是自己去实践体会出来的,别人告诉的不一定完全对,你也不需要记得住,多试试。”

2.2 时间分配(2 Weeks In All)

  • 捋清制作过程,构思机械结构,找出自己所需的模块器件——2-3天
  • 熟悉STM32开发板,在面包板上面调试相关的模块功能——5-6天(MPU6050弄了很久)
    项目工程总文件夹
    a) 指示MPU能否正常读取的LED灯
    b) 显示参数的OLED屏幕(配合MPU6050的读取)
    c) 控制电机占空比的PWM输出
    d) 用于与蓝牙模块通信的串口USART1
    e) 蓝牙与单片机的通信
    f) 编码器的参数读取(轮子一圈的编码值,每隔10ms的编码值…)
    g) 完成了以上的测试后,我开始尝试将它们在面包板上融合起来,编写代码测试它们能否协调工作。
  • 一边装车,一边接线,一边编写总工程——2天
    编码器的接线是最后装完车之后再完成的——为了使面包板和32的接线不凌乱,上面模块的布局接线完成之后,再从车的底部将编码器的A、B相接线引出来接在单片机上。有了上面的模块测试以及整体调试,编写总工程的难度并不大,思路也是按照a,b,c…顺序在车子上重新调试一遍的,顺利许多。
  • 不断调整PID参数,不断改车,不断改引脚…——4天
    最终调整的效果只是实现了三个环的融合,但是一加上蓝牙控制的加速,减速,转弯等信号,小车接收到信号只能反应相应动作趋势,摆荡着前进,然后哗然倒下,结果差强人意。

2.3 一些问题

对于结果的不满意,我将这些问题和我的分析一一记录下来——
a) 调试过程中,恼人的不仅是永远差一点的PID参数,还有莫名奇妙偏移的机械零点。

  • ? 固定不够牢固(而后用热熔胶将面包板,各个模块特别是MPU6050,要检查固定住)
  • ? 整体结构不够均匀。装好的小车左轮高度低于右轮高度,两块亚力克立板的高度不一致,小车垂直方向上呈倾斜角度,买块亚克力车模板更合适!
  • ? MPU6050的俯仰角,翻滚角随时间的偏移。

b) 上电复位时,电机莫名其妙的疯转,时而左轮,时而右轮,但是在没有给PWM信号的情况下,观察输出的信号只是普通的噪声(类似于400HZ的正弦波)

  • ? 与输出的PWM的频率有关
  • ? 电机的PWM频率越低,噪声的干扰越大,会被电机“误判”为一段时而高时而低的PWM信号?

c) 电机的死区电压很大,只有小车摆荡很大角度时才能加速,保持平衡。
在频率一定的情况下,可以增大PWM的分度值,也就是定时器的ARR值,调节角度环的Kp、Kd会方便很多。
d) 未解之谜——角度环保持平衡之后,引入速度环(将角度环Kp、Kd下调10%)后,无论怎么改善速度环,小车只能承受很小程度上的外力,再加大一点外力之后,震荡剧烈,难以平衡,也无法真正静止在某一处,是我调节的还不够细致?还是调节的方法不对?

如果有热心网友能在评论区探讨一下这里的问题,不胜感激!


三、 收获与总结

  • ? 模块的调试一定要一个个来。
    不要觉得之前在面包板上测试没问题,上了车一定能用。装好车之后,为保证飞线不会交错迷乱,我们往往要根据车上模块的位置,变动一下接线的引脚,再继续使用。但谁又能保证最小系统板上的对应引脚没有故障,我们重新选择的引脚会不会影响其他模块的功能呢,这都是值得考虑的。
  • ? 电机频率选择一定要在1k赫兹以上。
    有趣的是,我发现电机频率越低,在PWM分度值一定的前提下,克服死区电压所需的占空比,即PWM值越小。我认为这和电机的性质有关,毕竟电机的转速是由电枢电流决定的,频率越低,感抗越小,因此,提供的电流会更大,所需克服死区电压所需的PWM阈值会更低。*纯属个人思考,可能有误。

四、 碎碎念

不积跬步,无以至千里。

我看到很多人帖子说面包板制作不稳定,但是又没具体指出不稳定的问题究竟出在哪里。而我尝试做出一辆,但也没有做出操控稳定的平衡小车。用面包板成功“拼”出一个小车的博客也未曾有幸看到,尽管如此,其中的收获也是颇为丰富的。

首先是是思维方式的转变,我们不用怀疑是不是购买的套件出了问题(当然,购买的硬件可以出问题哈~),因为设计全在于你自己,在制作过程中,努力学会自己找出自己的毛病,而不是消磨时间怪这怪那的。Designed In Yourself!

分析问题的角度从“别人写了这一串东西,然后我去测试它能不能正常工作,噢,原来是这样”转到“我设计的功能是这样的,它理想中应该怎么实现,而最终的结果与我的分析又有什么不同,我该怎么改”——知其然而知其所以然。

即使最终未能很好控制小车,我也明白了一个好的设计项目应该是模块的协调整合,再去拓宽高级的算法,但首先必须保证硬件的尽量稳定到位。

在不熟悉PCB画板的情况下,使用面包板能够帮助我们在DIY中规避掉大部分硬件电路故障的风险,同时,面包板的一插一拔的过程也让我沉醉在一个个硬件模块逐渐拼接搭建,一步步调试成功的乐趣。

我想要总是测不出参数的MPU6050能够直观显示问题,于是乎,我搭建了两个LED分别指示初始化正常,初始化失败,然后在自己的代码中加入LED的闪烁找出问题的根源,很蠢很原始,但很有效;我想要引脚接线满足我的搭配,于是乎,不仅限于引脚的序号,还有相关的定时器中断,复用的I2C等,学会将网上的例程改的面目全非,为自己所用,对stm32的整体资源能够把控,并学会节约利用资源…

自然,能用蓝牙控制小车自由飞驰的结果是极好的,但是制作一块面包板平衡小车的嚼着苦涩,含入甘甜的过程也是弥足珍贵的。没有留下什么念想,如果有,那就是——有时间的话,再做一辆更好的!
请添加图片描述
之前的博客会陆续更上,咕咕咕🕊

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:38:02  更:2021-08-21 15:39:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 5:57:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码