简单侣图 发表于 2015-1-31 09:29:19

请问你用的测速传感器是哪一种呢

简单侣图 发表于 2015-1-31 10:28:42

D2S为外部中断0的接线选择我还是没看懂,亲可以解释一下嘛

wujingyu 发表于 2015-1-31 13:44:48

简单侣图 发表于 2015-1-31 09:29 static/image/common/back.gif
请问你用的测速传感器是哪一种呢

测速传感器用的就是一圈20个脉冲的码盘

wujingyu 发表于 2015-1-31 13:47:22

简单侣图 发表于 2015-1-31 10:28 static/image/common/back.gif
D2S为外部中断0的接线选择我还是没看懂,亲可以解释一下嘛

这个选择适合两种方案,一个是用6050的DMP功能,这时的外部中断0接6050模块;另一个方案是不用6050的DMP功能,这样就可将这个中断资源用于另一个轮子的测速码盘

简单侣图 发表于 2015-1-31 15:40:36

wujingyu 发表于 2015-1-31 13:44 static/image/common/back.gif
测速传感器用的就是一圈20个脉冲的码盘

我意思是传感器是哪一种类型的,不是码盘

pumpitup 发表于 2015-2-2 11:38:50

收藏一下。。

以前用工仿照乐高的用地面灰度做的平衡车。

简单侣图 发表于 2015-2-11 19:38:18

通过测速传感器检测左右电机的脉冲数目差如何换算成速度差呢:(

简单侣图 发表于 2015-2-11 19:38:34

通过测速传感器检测左右电机的脉冲数目差如何换算成速度差呢:(

wujingyu 发表于 2015-2-11 19:52:06

简单侣图 发表于 2015-2-11 19:38 static/image/common/back.gif
通过测速传感器检测左右电机的脉冲数目差如何换算成速度差呢

diff_speeds = count_left - count_right;
dspeeds += diff_speeds;
dspeeds += diff_speeds;
if(dspcount > 10) {
dspeeds_all = dspeeds;
dspeeds = 0;
}
........
PWM_left = Output - Kdsp * dspeeds_all;
PWM_right = Output + Kdsp * dspeeds_all;

见下面这个程序源代码:

简单侣图 发表于 2015-2-11 20:11:13

本帖最后由 简单侣图 于 2015-2-11 21:45 编辑

我的启动值60左右,停止值28左右,速差如何从你的测试程序里得出来呢,想不懂,可以解释一下嘛?:)

wujingyu 发表于 2015-2-11 20:34:35

简单侣图 发表于 2015-2-11 20:11 static/image/common/back.gif
启动值和停止值应该就是就差1左右吧,速差如何从你的测试程序里得出来呢,想不懂,可以解释一下嘛?

你说的启动值和停止值是指电机的吗?每个电机是不一样的,负荷不同时也有差异。
    diff_speeds = count_left - count_right; //左电机码盘计数值 - 右电机码盘计数值
    dspeeds += diff_speeds;                     //必须将这个差值累加,因为TT马达的码盘只有20个孔,每次的差很小,几乎为零
    if(dspcount > 15) {                               //譬如累加15次,这个参数你可以将dspeeds_all通过输出观察速度差
      dspeeds_all = dspeeds;                     //看看是否能够明显的检测出速度差来,不合适就调整这个“次数”
      dspeeds = 0;
    }

简单侣图 发表于 2015-2-11 22:14:29

wujingyu 发表于 2015-2-11 20:34 static/image/common/back.gif
你说的启动值和停止值是指电机的吗?每个电机是不一样的,负荷不同时也有差异。
    diff_speeds = coun ...

我指的是电机,今晚用你给的WJY_DIY_test测试过了,不知道这程序中怎么得知你说的速度差而已,现在你说的这个程序我再看看吧:)

wujingyu 发表于 2015-2-12 08:29:39

简单侣图 发表于 2015-2-11 22:14 static/image/common/back.gif
我指的是电机,今晚用你给的WJY_DIY_test测试过了,不知道这程序中怎么得知你说的速度差而已,现在你说的 ...

WJY_DIY_test 这个程序仅用来测试电机的一个大概启动和停止值的。
关于平衡车的速度差是在运行过程中实时测量,并要加以修正的,这个速度差就是要通过测速传感器(配合码盘)来加以检测的。造成速度差的原因不仅是电机本身的差异,还涉及到小车运行地面环境的不断改变,譬如两轮与地面的阻力,某个轮子碰到微小的障碍物都会造成两轮的速度差。

简单侣图 发表于 2015-2-12 16:29:29

wujingyu 发表于 2015-2-12 08:29 static/image/common/back.gif
WJY_DIY_test 这个程序仅用来测试电机的一个大概启动和停止值的。
关于平衡车的速度差是在运行过程中实时 ...

嗯嗯,了解,我调试的时候注意下吧:D

简单侣图 发表于 2015-2-13 18:43:08

float Angle0 = -13.3; //机械平衡角这个是怎么调的?是固定值吗?,我的小车就调了KP为20,其他为0,就是一直往后跑,不知道怎么解决。和MPU6050位置有关吗?需要怎么放比较稳定
页: 1 2 3 4 5 6 7 8 [9] 10 11 12
查看完整版本: 低成本、低档自平衡小车历程(超声自平衡小车)