2019.4.14

能找到我这个渣渣写的文章的,应该都是来找资源的,中间是我做这个的经历,可以直接跳过,看最后的“注”部分。

前言

我目前是一名大二在校生,对32有了基本的理解和编程能力,这次是我们队准备电赛做的第一个题目,没有预先查找可行方案。
我们共做了三个方案,用时三周,经验非常欠缺。

方案综述

方案一:使用L298N驱动的直流电机,开环系统,直流电机就是你能想到的最垃圾的那种。
方案二:使用8050驱动的直流电机,闭环系统,直流电机为飞思卡尔电机。
方案三:使用A4988驱动的步进电机,开环。
以上三种均为stm32f104zet6芯片,使用6050陀螺仪,12864OLED显示。
陀螺仪仅使用了一个欧拉角,通过相对值进行判断倾斜角度,具体欧拉角选择与硬件安装有关。

方案一

遇到的问题:
如上述,最垃圾的直流电机,大到吓人的回差,当PWM占空比低于三分之一时迅速停转,并不存在低速状态。
解决方法:
回差没解决,要不也不会换方案。
控速方面,在PWM控速的基础上叠加了一个PWM,通过停转和相对低速转换的比例将速度降到需求速度,未使用PID。

程序底层不是我写的,我仅对算法及控诉部分进行更改,变量不知道干啥的没敢动,屏蔽部分代码可能与未屏蔽的存在逻辑冲突,且有部分相关逻辑已被删除,直接忽略即可,没时间整理。

方案二

遇到的问题:
电机太屌,高速状态呈线性,通过PID调节后可稳定在一个速度,但空转的时候达不到需求的低速,加负载后可通过调节达到。这电机在跷跷板反向的时候,若不给一个高占空比的反向PWM波,会刹不住车,于是我在这给PID打了个补丁,反向瞬间给高占空比PWM波进行刹车。PID还打了一堆补丁我忘了是啥了,反正最后调参数阶段我是快崩溃了,于是本程序卒。本来想重新写一个自调节比例系数的PID,原谅我太菜了,PID只学了一周,发呆了好久没有思路,这时候,第三个方案的车模给我搭出来了,于是我抛弃了这个程序,
解决方法:
没解决,留下了一堆没测试的半成品,没时间给我浪费弄这个了。
方案总结: 我觉得这个方案应给能完成,PID参数的更改是必须要有的,要不斜坡起步能慢到让人崩溃,或是中间低速时速度波动过大,当然,完不成也别来找我,就当我没说。
程序乱七八糟的没整理加一。

方案三

遇到的问题:
好像没啥问题,我们在做方案三的同时把跷跷板改了,把平衡点确定在轴与跷跷板接触的地方,而不是随着轴改变平衡点同时改变,并且增大了轴与跷跷板之间的摩擦力。
应用部分
A4988驱动是使用脉冲对步进电机进行控速,我用了32定时器的门控模式产生我想要的脉冲,脉冲产生的程序框架及数据来自网络资源,我进行了微调,把源程序的bug改正,然后就用的很舒服。门控模式我也是第一次接触,通过数据手册和看例程结合搞懂了。两个步进电机的脉冲我是通过同一个定时器产生,用两个通道输出,反正就是一模一样的。我使用的两个步进电机是同一型号同一批次,所以相同模式的步进角度也一样。
我的算法部分应用了硬件搭建的一个问题(应该是硬件的问题),车模陀螺仪返回值会有波动,同一角度的值会出现部分波动,以及初始化后数据会从一个正值缓慢恢复到校准值。稳压模块出了问题,供电貌似一直是6V超压,反正也没烧就没改,也有懒的原因。然后我就发现我原来的算法清除这个误差非常难,陀螺仪数据本身的波动已经超过了跷跷板移动时的波动,这时我发现,这平衡车只要速度够慢,一点点移到平衡点就好了,于是我找了找陀螺仪数据BUG的规律,重写了算法,利用了这个误差,成功达到目标。
本来想加上定时器来读秒计数的,鬼知道是硬件还是软件的问题,效果非常鬼畜,我也懒得排除了。
方案总结
第一次组队配合完成题目,配合的很渣,完全没有默契。

第一车模:MPU6050陀螺仪程序,对速度下限依然很高的直流电机降速方案
第二车模:陀螺仪加一,四线旋转编码器正交解码程序,PID调速程序(在主函数中,还带着一堆补丁)
第三车模:陀螺仪加二,用定时器的门控模式产生步进电机需求的脉冲程序及配置,步进电机控制的封装
均由12864OLED显示,可能还有别的,我想不起来了。程序都没有进行优化和整理!

注意:跷跷板的平衡点越稳定越容易平衡,平衡范围越大对算法要求越低。

链接:https://pan.baidu.com/s/1mrdrzvrvKVC1NgUZY39zeQ
提取码:vlm7

溜了溜了,不要喷我,萌新路过。

电动车跷跷板制作心得相关推荐

  1. 计算机基础白板课件,白板教学最流行的6种教学模式-交互式电子白板课件制作心得...

    白板教学最流行的6种教学模式-交互式电子白板课件制作心得 一.构建课堂互动探究学习平台 交互式电子白板适用于课堂中的探究学习,教师可以通过交互式电子白板构建学习情景,并且可以通过交互式电子白板更为清晰 ...

  2. 实训双绞线制作心得体会

    实训双绞线制作心得体会 这个学期我们开设了计算机网络这门课程,这次的双绞线综合实训主要是为了提高我们的实际应用水平.在实训过程中,通过实训目的.实训操作器材,实训步骤.以及回答问题,来巩固对此的认识. ...

  3. 【Cocos游戏】Gamelook:骏梦许斌《秦时明月》制作心得分享

    GameLook报道 / 7月6日,2014年第6期"GAMELOOK游戏开放日"在上海成功举办,本次活动由游族网络和童石集团倾情赞助. 活动现场,骏梦游戏创始人许斌作了作了< ...

  4. 王者荣耀官网制作心得

    一开始看到官网复杂的页面还是有些心虚的,从网上学了一些关于网页的制作,也是有一些心得的. 开启新的文件夹,一个html一个css,链接进去就OK,现在想想在大公司里开发网页是否也是如此,一个大项目分为 ...

  5. html5网页制作心得体会,网页设计课程学习心得总结

    网页设计师需要不断地调整视觉元素,改进界面设计来满足不同用户的需求和偏好,图片是网页设计的重要设计元素,如何更好地在网页设计中应用图片元素显得尤为重要.下面是小编为大家整理的,供你参考! 篇1 转瞬之 ...

  6. SetupFactory安装制作心得

    很多年前,因为仰慕Install Shield的鼎鼎大名,所以很是花了些功夫研究了一番,最后,基本上也可以打出很完善的包了,其中也不乏一些很有难度的事情,比如ODBC的打包等.但它实在太难用了,过上一 ...

  7. PPT制作心得与感悟

    在互联网普及的大数据环境中,我们的工作生活中很多地方都离不开PPT制作.在之前开展的培训课上我有幸学习了PPT制作这项技术,使我对PPT的功能.做法.技巧有了全新的认识.通过培训老师的讲解,我学到了很 ...

  8. 微信h5互动小游戏制作心得

    随着近几年H5游戏营销的盛行,高质量高规格的精品H5游戏层出不穷,各大商家们也是动用不少人力财力力争打造出专属的H5营销游戏,到底如何才能打造出精品的H5互动营销小游戏呢? 杜绝换皮,至少做到微创新 ...

  9. flask+echarts地图制作心得

    先看最终效果图. 该地图显示的是公司在各个市区的项目数量,然后统计其数量,并以热点的方式显示在地图上,使使用者能直观的看到公司项目分布及数量情况. 现将程序制作过程中的问题及注意情况分解如下: 1.数 ...

最新文章

  1. mysql 二级什么意思_MySQL二级等级考试归纳——PHP篇
  2. 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
  3. python怎么输入列表元素每个元素占一行_如何对列表的每个元素执行操作并将结果放在Python的新列表中?...
  4. 函数作用域,闭包,数据类型的题目
  5. 算法 | 数据结构与算法(代码版)
  6. 算法训练营01-学习总览
  7. ASP.NET知识集
  8. SQL2K数据库开发十四之表操作设置用户对表的权限
  9. Objective-C 高性能的循环
  10. LWC 61:741. Cherry Pickup
  11. VS2019 +easyx 实现闪烁的星空(夜景)
  12. Raspberry 2B Ubuntu mate 16.04 *** 完美透明代理
  13. “别人家”的毕设:造了个车!宅家5个月,设计建模组装自行完成
  14. MySQL DBA 必读:万字归总表设计与 SQL 编写技巧
  15. 嵌入式计算机示例及应用
  16. 全差分运算放大器ADA4930的分析(2)
  17. 采集英语站-免费采集外贸英语站的软件
  18. 计算机867怎么学,2018年考研湖南大学867计算机系统考试大纲
  19. Web前端学习笔记(十五)---四色花瓣
  20. UE5 官方案例Lyra 全特性详解 16.背包系统Inventory System5

热门文章

  1. 三维(点云)语义分割概述以及方法总结
  2. 阿里的职级划分 ---- P8是什么概念
  3. 如何给自己的公众号引流的八种方法《知乎篇》知乎运营软件
  4. 股票中的S、ST、*ST、SST、S*ST是指什么?
  5. linux c语言静态库,linux下的C语言开发(静态库/动态库)
  6. 算法复杂度究竟是什么
  7. html设置日文字体,怎样熟练使用各种日文字体
  8. 什么是数据传输服务DTS
  9. win7系统中网络发现打不开启动不了的解决方法
  10. 烂泥:AD中有关打印机的研究……