可以给一个电路接线图就好哦:lol
提点建议,既然用了MPU6050库,就不需要在setup里面写那么多初始化语句了,直接 accelgyro.initialize();就可以了。
第二个就是这句 Angle_ax = (ax+1942)/238.2 ; 你直接用的ax一轴,你这小车,也就能在很平的路上可以跑跑,如果在不平或者爬坡,根本就站不起来的。比较好点的做法是angle_ax= atan2(ax , -az) * 180 / pi + a_offset;
请问谁还有Processing 图形工具在线调试PID参数教程的备份呢,最近也在做平衡车,很是需要这个东西,求分享求分享,QQ:844311255
谢谢楼主。
在此基础上做了以下修改,平衡车能够站立起来了。
1、传感器零漂需要自己整定;
2、左右电机转速有一定差别,需要整定;
3、loop需要加一个delay,我设的是10,这样计算Angle时,需要将第二个补偿参数设为0.01。
楼主你用的int PWM_left_least=87; int PWM_right_least=88; 这么大,小车跑的效果怎么样?
多谢楼主分享,过一段时间也打算做个自平衡,,,用步进电机做
请问楼主你那个应该是码盘电机吧,貌似是美上美的。那个电机上的脉冲1和脉冲2分别接哪里呢?左右各一个电机也就是说有限公司个脉冲接口,分别对应nano上哪几个脚位呢?麻烦告诉一下,谢谢!
还有L298N与nano的接线图可以给一个吗?你发的好像只是单个的图,没有表明是如何接线的啊,MPU6050及蓝牙模块我都会接
楼主,你还有没有调PID参数的资料,你给的链接都打不开了。。。
楼主在吗?void SetMotorVoltage(int nLeftVol, int nRightVol) {
if(nLeftVol >=0)
{digitalWrite(M_left,LOW);
digitalWrite(M_left2,HIGH);
} else {
digitalWrite(M_left,HIGH);
digitalWrite(M_left2,LOW);
nLeftVol=-nLeftVol;
}
if(nRightVol >= 0) {
digitalWrite(M_right,LOW);
digitalWrite(M_right2,HIGH);
} else {
digitalWrite(M_right,HIGH);
digitalWrite(M_right2,LOW);
nRightVol=-nRightVol;
}
if(nLeftVol>255) { nLeftVol = 255 ; } //防止PWM值超过255
if(nRightVol>255) { nRightVol = 255 ; }//防止PWM值超过255
analogWrite(E_left,nLeftVol);
analogWrite(E_right,nRightVol);
}
能给我解释下这段代码吗?特别是 nRightVol=-nRightVol;这里?
麻烦您了
请问我看您的程序里没有设置Setpoint吗? 稳定态的角度没有在程序中体现?
不要编码器行不行?
LZ你好,我正在做毕业设计,也是关于平衡车的,也是参考你的方法和程序做,不知道你有没有详细的过程能分享一下么?
好帖,收藏先
1.Processing 图形工具在线调试PID参数教程。http://blog.sina.com.cn/s/blog_69bcf45201019bp8.htmll
7.总算实现了 PID 调速(重点推荐)http://www.embedream.com/ndxs/2011-04-23/121.html
这两个帖子的东西你还有吗?现在进不去里面看哦