请问你用的测速传感器是哪一种呢
D2S为外部中断0的接线选择我还是没看懂,亲可以解释一下嘛
简单侣图 发表于 2015-1-31 09:29 static/image/common/back.gif
请问你用的测速传感器是哪一种呢
测速传感器用的就是一圈20个脉冲的码盘
简单侣图 发表于 2015-1-31 10:28 static/image/common/back.gif
D2S为外部中断0的接线选择我还是没看懂,亲可以解释一下嘛
这个选择适合两种方案,一个是用6050的DMP功能,这时的外部中断0接6050模块;另一个方案是不用6050的DMP功能,这样就可将这个中断资源用于另一个轮子的测速码盘
wujingyu 发表于 2015-1-31 13:44 static/image/common/back.gif
测速传感器用的就是一圈20个脉冲的码盘
我意思是传感器是哪一种类型的,不是码盘
收藏一下。。
以前用工仿照乐高的用地面灰度做的平衡车。
通过测速传感器检测左右电机的脉冲数目差如何换算成速度差呢:(
通过测速传感器检测左右电机的脉冲数目差如何换算成速度差呢:(
简单侣图 发表于 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 21:45 编辑
我的启动值60左右,停止值28左右,速差如何从你的测试程序里得出来呢,想不懂,可以解释一下嘛?:)
简单侣图 发表于 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;
}
wujingyu 发表于 2015-2-11 20:34 static/image/common/back.gif
你说的启动值和停止值是指电机的吗?每个电机是不一样的,负荷不同时也有差异。
diff_speeds = coun ...
我指的是电机,今晚用你给的WJY_DIY_test测试过了,不知道这程序中怎么得知你说的速度差而已,现在你说的这个程序我再看看吧:)
简单侣图 发表于 2015-2-11 22:14 static/image/common/back.gif
我指的是电机,今晚用你给的WJY_DIY_test测试过了,不知道这程序中怎么得知你说的速度差而已,现在你说的 ...
WJY_DIY_test 这个程序仅用来测试电机的一个大概启动和停止值的。
关于平衡车的速度差是在运行过程中实时测量,并要加以修正的,这个速度差就是要通过测速传感器(配合码盘)来加以检测的。造成速度差的原因不仅是电机本身的差异,还涉及到小车运行地面环境的不断改变,譬如两轮与地面的阻力,某个轮子碰到微小的障碍物都会造成两轮的速度差。
wujingyu 发表于 2015-2-12 08:29 static/image/common/back.gif
WJY_DIY_test 这个程序仅用来测试电机的一个大概启动和停止值的。
关于平衡车的速度差是在运行过程中实时 ...
嗯嗯,了解,我调试的时候注意下吧:D
float Angle0 = -13.3; //机械平衡角这个是怎么调的?是固定值吗?,我的小车就调了KP为20,其他为0,就是一直往后跑,不知道怎么解决。和MPU6050位置有关吗?需要怎么放比较稳定