自平衡机器人-【蛋黄物语】-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: pz_cloud

自平衡机器人-【蛋黄物语】

  [复制链接]
 楼主| 发表于 2014-8-29 17:21 | 显示全部楼层
rabqiang 发表于 2014-8-21 14:23
楼主问个问题?
1.加编码器速度闭环 ,这个是要买个编码器,还是用光电对射管配合光栅盘制作编码器
...

都可以的,一般编码器比较贵但是更精确,这个用码盘就够了,但注意是要四线两相的
 楼主| 发表于 2014-8-29 17:22 | 显示全部楼层
rabqiang 发表于 2014-8-21 14:26
还有个问题?
楼主的轮子是不是在原有的轮子外侧粘了一个四驱车的轮子啊。 ...

对,装饰用的
 楼主| 发表于 2014-8-29 17:24 | 显示全部楼层
rabqiang 发表于 2014-8-22 13:49
手机调整一下PID参数,具体操作是怎样的啊,能不能详细点、

在程序里加上几句啊,比如收到a就把P的参数加1
 楼主| 发表于 2014-8-29 17:24 | 显示全部楼层
rabqiang 发表于 2014-8-22 13:49
手机调整一下PID参数,具体操作是怎样的啊,能不能详细点、

在程序里加上几句啊,比如收到a就把P的参数加1
 楼主| 发表于 2014-8-29 17:28 | 显示全部楼层
黎昕 发表于 2014-8-29 16:26
看楼主的代码,好像是利用蓝牙控制的,可是没有找到蓝牙的初始化,设置等等,还有就是mpu6050在里面连接什 ...

蓝牙模块是转串口的,初始化就是串口初始化,6050通过i2c和arduino连接,参数当然是慢慢调试试凑出来啦,理论计算也能得到大概值但是很复杂,前进后退也就是速度控制,是通过控制角度实现控制速度的,方向就是两轮加上差速,如果想知道详细的原理建议读一下我之前发的这个飞思卡尔的指导教程
http://www.geek-workshop.com/thread-9683-1-1.html
发表于 2014-8-29 20:46 | 显示全部楼层
方向控制是用差速控制,可必须要有个参照才行,就像你发的飞思卡尔一样,小车是寻着磁线而改变方向的,但是普通平衡车也就没必要加电磁检测了,所以就有个转过角度控制问题,倒是可以通过蓝牙控制改变标志位,然后通过检测标志位的变化从而控制小车车速调整方向,不知道你是怎么解决这个问题的

你讲的蓝牙模块和arduino通信,我倒是不太明白,你能给再仔细讲下么,或者这方面的文档也行,我再看看
 楼主| 发表于 2014-8-29 21:10 | 显示全部楼层
本帖最后由 pz_cloud 于 2014-8-29 21:12 编辑
黎昕 发表于 2014-8-29 20:46
方向控制是用差速控制,可必须要有个参照才行,就像你发的飞思卡尔一样,小车是寻着磁线而改变方向的,但是 ...

对啊,知道差速就很简单了啊,比如
left_pwm=angle_pwm+speed_pwm+turn_pwm;
right_pwm=angle_pwm+speed_pwm-turn_pwm;
当turn_pwm=0的时候直走,不为零就是原地转弯,如果这时speed_pwm也不为0就是转向了,参考系就是自身,意思是,你想让他转弯,就给turn_pwm赋值就行,值越大,转的越快,值为负的,就反方向转,没必要加什么外部参考

蓝牙模块会把你发送的蓝牙数据通过spp协议转成串口数据,你只要知道手机给蓝牙发送的指令会变成串口转给arduino就行了
 楼主| 发表于 2014-8-29 21:19 | 显示全部楼层
黎昕 发表于 2014-8-29 20:46
方向控制是用差速控制,可必须要有个参照才行,就像你发的飞思卡尔一样,小车是寻着磁线而改变方向的,但是 ...

补充一下,我想你说的可能是让车转过固定角度的问题?这个一般来说对遥控车没有必要了,因为你只要能让他左转右转就行,转的时间和速度是你可以控制的,但是如果你一定要让转角也闭环的话,方法也很多,首先你得再加一个pid环,也就是转角pid,然后通过编码器的反馈得到实时的转角,或者通过水平陀螺仪积分,或者磁场传感器得到转角,然后就可以实现你说的给他发送一个角度就转那么多的角度。
发表于 2014-8-29 21:29 | 显示全部楼层
pz_cloud 发表于 2014-8-29 21:10
对啊,知道差速就很简单了啊,比如
left_pwm=angle_pwm+speed_pwm+turn_pwm;
right_pwm=angle_pwm+speed_p ...

嗯,可是在方向控制上不应该有时间控制么,不然如何重新回到直线运动?加标志位检测?定时的话几乎是不太可能,完全不能确定转过多少角度
就比如说,直接在地上画一根毫无规律的线条,让你通过蓝牙控制小车循迹行走,仅仅通过设定turn_pwm的值是不够的,除了通过设置标志位检测后判断的方式还有什么其他方式么?
发表于 2014-8-29 21:36 | 显示全部楼层
pz_cloud 发表于 2014-8-29 21:19
补充一下,我想你说的可能是让车转过固定角度的问题?这个一般来说对遥控车没有必要了,因为你只要能让他 ...

嗯  我要的就是这个。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 03:51 , Processed in 0.105194 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表