楼主: 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
补充一下,我想你说的可能是让车转过固定角度的问题?这个一般来说对遥控车没有必要了,因为你只要能让他 ...

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

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
[Arduino物联网开发实战2]数据反馈
[Arduino物联网开发实战2]
[md]上一篇:(https://www.arduino.cn/thread-83177-1-1.html) 除了控制设备外,blin
用蓝牙串口模块传递的数据控制继电器开关的问题
用蓝牙串口模块传递的数据
我用hc08串口模块传进1(开)、0(关)。但每次按1的时候继电器指示灯只是闪烁一下,
DIY3D打印激光雕刻机
DIY3D打印激光雕刻机
说到激光雕刻机,有人可能会想到,大型机器肆意切削金属,或者木片的大型机器,它们无
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表