目录

定时器函数执行周期跟定时时间不一致?

drv8833这款驱动器可以制作平衡小车用吗?

电机编码器AB相无输出?

平衡小车的角度标定一定要准确

平衡小车前进后退的控制逻辑是什么?


定时器函数执行周期跟定时时间不一致?

定时器中断给的是5ms的中断时间,如下图:

结果在每个中断函数执行开始的程序里加上打印时间戳的语句,发现中断函数执行两次之间的时间差在50ms左右,这很明显使得平衡小车无法工作,但是是 什么原因呢?

 是因为算力比较弱,所以进行计算的时候占用了时间吗?把源程序也上传上去(计算量一样),看看源程序是不是也是这样?

可以看到,源程序一样的计算量,但是人家中断函数是严格5ms执行一次的,也就是说不是算力的原因。

接着做实验,在源程序里面,中断函数的起始和结束都打印时间,然后发现周期就不正常了。

中断函数两次执行之间隔了9秒左右,程序头和末尾之间隔了2-4ms不等。这是什么情况呢?

难道串口输出对中断函数有影响吗?

然后,再把中断函数末尾的时间打印给删掉,又一切正常了。

怀疑:要么是串口打印函数影响了中断函数执行周期,要么是原本中断函数执行周期虽然是5ms,但是中断函数可能没执行到底,这个假设应该不成立,因为如果没执行到底,那么电机驱动函数就不会执行,小车就会跌倒?是这样吗?也不一定,因为这次的没执行到底,那么上次的pwm也可以用。先做实验看看吧。

然后,我又这样做了个实验,发现没有中断函数的时候,只是在loop函数里面打印时间戳,也是非常耗时的,周期在25ms左右。不知道时间都用在了哪里?

少打印一个时间戳,多打印一个字符,这样再看一下,周期是25ms左右,周期基本没变化。

怀疑是串口波特率太低,所以影响程序比较慢,所以我把波特率从9600调整到115200,然后再看这个程序,周期变成了2ms,就非常快了。那么也就证明了,如果波特率太低,就会严重影响程序运行速度,那么具体是如何影响的呢?

drv8833这款驱动器可以制作平衡小车用吗?

我买的平衡小车是用的tb6612fng这款直流电机驱动器,但是我自己做的小车驱动器是drv8833.

他们之间价格相差有十倍之多,TB6612fng这款驱动器售价现在在三十多块钱,而drv8833只有3块钱就能买到。

我买的平衡小车,我是想把他的驱动器从TB6612fng换成drv8833,然后看平衡小车是否还能正常工作,如果是依然可以正常工作,那么就说明这个驱动器是没问题的,可以用于制作平衡小车。如果不行的话,可能就是说drv8833这个驱动器的性能不行,制作平衡小车可能有些问题。

原先的引脚表

现在的引脚表

电机编码器AB相无输出?

在淘宝上购买的这种电机,有时候会遇到编码器的AB相没有电平变化的情况,这个时候一般是电机编码器只支持5V电源供电,但是我们提供的电源电压是3V。所以编码器没有正常工作。

平衡小车的角度标定一定要准确

平衡小车的角度标定一定要标定准确,否则调PID怎么也调不好的。

比如说平衡小车的平衡点是传感器角度为-1.5度,那么我们如果不进行标定,直接把0度作为小车的平衡点,这个就是不合适的,这样单纯调pid也是调不好的。因为平衡点是我们控制的期望值,如果期望不对,那么肯定达不到控制效果。

平衡小车前进后退的控制逻辑是什么?

通过阅读代码,我们可以看到,小车的前进和后退,是直接在小车速度环的积分上加或者减一个数来实现的。 从而改变了平衡小车的位置,达到前进和后退的效果。那么速度环的积分项就不为0,岂不是说速度环一直都有一个输出?

我们加上或者减去的这个数字, 其实是位置的一个期望,通过增加一个位置的期望,使得速度环有了输出,但是小车的速度环期望是0,所以为了使得速度环调整为0,所以小车运动越来越慢,运动过程中,速度的积分刚好与一开始我们加的积分相抵消,绝对值慢慢减小为0,使得小车的速度为0,但位置趋于我们的期望。

也就是说小车速度的期望是0,为了使小车速度为0,所以,小车继续运动,在运动过程中,小车速度的积分刚好跟我们输入的这个速度积分期望即位置抵消了。

调试平衡小车过程中间遇到的问题相关推荐

  1. 直立车各环的调试_平衡小车调试指南(直立环 速度环)

    平衡小车之家出品 1 平衡小车调试指南 接下来将和大家一起以工程的思想去完成一个平衡小车的调试, 包括平衡小 车的直立环.速度环.转向环,一般我们是先调试直立环,再调试速度环,最好 调试转向环.另外需 ...

  2. 直立车各环的调试_平衡小车调试指南 直立环 速度环

    平衡小车之家出品 1 平衡小车调试指南 接下来将和大家一起以工程的思想去完成一个平衡小车的调试, 包括平衡小 车的直立环.速度环.转向环,一般我们是先调试直立环,再调试速度环,最好 调试转向环.另外需 ...

  3. 我们用ESP32-Wrover-Kit做自平衡小车犯过的坑

    我们用ESP32-Wrover-Kit做自平衡小车犯过的坑 关于ESP32(Wrover-Kit)本身的一些tips 关于智能(自平衡)小车的一些tips 因为一门叫做"智能系统设计&quo ...

  4. 基于stm32的两轮自平衡小车4(软件调试篇)

    本篇是软件调试篇,接上一篇硬件篇:基于stm32的两轮自平衡小车3(硬件篇),本篇内容是对硬件部分的软件实现,具体模块详见目录.这里先上效果:转B站 目录 定时器PWM驱动程序 定时器编码器模式驱动程 ...

  5. 简单平衡小车制作过程中遇到的问题

    本人最近做了一个平衡小车,过程中遇到不少问题,在这里总结一下,可能也会帮助到大家 文章目录 前言 一.嫖资料,找教程 二.小车结构 三.电子元件的组装 四.写程序时(改嫖到的程序)遇到的问题 总结 前 ...

  6. 平衡小车制作系列之三——stm32软件调试

    文章目录 前言 一. STM32F103RCT6最小系统板 1.1 STlink程序烧录 1.1.1 模式选择 1.2 烧录功能测试 1.2 点亮一个LED灯 1.3 测试OLED 1.4 测试PWM ...

  7. Arduino平衡小车

    Arduino平衡小车 1.概述 此Arduino平衡小车在主控方面由Arduino UNO R3和Arduino sensor shield v5.0传感器扩展板组成.采用TB6612FNG作为电源 ...

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

    上一篇文章:看完这篇文章,还不会做平衡小车,你来打我. 描述了平衡小车的制作过程,也开源了一部分设计资料. 在上篇文章留言中,有朋友说: 安排,必须安排! 1.PID 关于PID的概念,网上相关的帖子 ...

  9. 基于STM32-F401的平衡小车

    目录 一.控制系统设计 1.1机械结构设计 1.2传感系统设计 1.3执行器设计 1.4控制算法设计 二.控制系统的制作与调试 2.1机械结构的制作与调试 2.2电路系统的制作与调试 2.3控制程序的 ...

最新文章

  1. 报名 | 第三期医工结合系列研讨会:科研领域的知识产权保护
  2. 【学无止境】ajax长循环,反向ajax初体会,不用ws实现即时聊天
  3. 学习前端html 设置样式
  4. ubuntu sendmail安装和使用具体实现[转]
  5. 【51Nod - 1094】和为k的连续区间 (前缀和,二分查找)
  6. 怎么做批注_BIM平台是什么?有何用?怎么用?
  7. 设计模式之:深入浅出 java 单例模式(Singleton)
  8. ajax的嵌套需要注意的问题
  9. 【C/C++】通过无类型指针实现泛型拷贝(内存拷贝)
  10. 树莓派装Aria2和YAAW实现无人值守远程离线下载服务
  11. html字间距怎么缩小,word字间距怎么缩小
  12. 夕四今晚加班到2点30,而王二还不打算走《打工人的那些事》
  13. 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例
  14. 极验滑块验证码破解与研究(二):缺口图片还原
  15. Unified Batch All Triplet Loss for Visible-Infrared Person Re-identification
  16. 武汉烽火通信软件工程师-Android面试经历
  17. MySQL密码修改不成功_Mysql 修改密码不成功(不生效)的解决办法
  18. 【解决】GitHub 客户端下载后安装在哪里?
  19. java+web+股票图表_基于Echarts的股票K线图展示
  20. http://www.55zm.com/a/20120702/38037.html

热门文章

  1. 2021年国考计算机网络原理,2021国考行测技巧:数字推理考点之“构造网络”
  2. 海龟股票------大跌之后最赚钱的股票
  3. l7sa008b故障代码_韩国麦克比恩电机-L7S 中文说明书 ver1.9.pdf
  4. 我的爬虫都爬出了些什么?
  5. 搜索引擎排名不等于网站的优化
  6. 固态硬盘多大合适 php,固态硬盘温度一般多少度
  7. 智能商业化模式:信息流广告的动态展现策略
  8. vue前端下载excel文件
  9. 学期作品-考勤信息管理系统文档之《立项报告》
  10. Google谷歌排名优化圣经