如果问我SensorTile这些作品中哪个最好
我会选”球形六足机器人”
因为这个作品非常复杂的工程
感觉做出这个项目可不是一两个月的事
能学习到这个作品的设计资料也是一件非常幸福的事
不过一个作品的好坏肯定不能只看表面
今天我准备分析分析球形六足机器人这个项目
了解一下它背后的原理
球形六足机器人的作品提交于2017年4月14日
http://bbs.eeworld.com.cn/thread-527902-1-1.html
当时作者因为某些原因并没有上传太多作品的设计细节
也有人回贴提出质疑
怀疑作品的作品好像和SensorTile没有什么太大关系
由于当时开放的资料太少,没法深入分析
直到昨天,无意间我打开这个作品的页面
看到作者上传了代码也在百度云盘中分享了整个项目的设计资料
连结构设计文件都有,真是太给力了
感谢这个网友的分享精神
这么好的项目,结构、运动算法这些都是非常宝贵的资料
打开贴子里可以看到源码文件是2017年4月24日上传的
下载了论坛的RAR和百度云盘的RAR后正式开始分析作者的大作
先从SensorTile入手,看看作者是如何使用传感器数据的
打开论坛的rar文件可以看到4个文件夹
分析一下惯性导航测试这个代码
看看SensorTile是怎么把数据发送给主控的
作者定义了一个SendOverUART = 1变量
通过uart将数据以字符串的形式发送出去
格式是
ACC_X: xxx, ACC_Y:xxx, ACC_Z: xxx
GYR_X: xxx, GYR_Y:xxx, GYR_Z: xxx
MAG_X: xxx MAG_Y: xxx,MAG_Z: xxx
作者是对Datalog例程作了简单修改
直接把9轴数据通过串口发送出去
再看看RAR里的舵机驱动文件夹
没看到有处理SensorTile数据的代码
不过在USER下发现了MPU6050文件夹
理论上MPU6050和SensorTile包含了相同的功能,不应该同时存在
为什么会这样呢?
打开main.c文件看到MPU6050在初始化里是被注释掉的
也许是作者后来使用了SensorTile方案才放弃MPU6050的吧
再来看看RAR的运动程序文件夹
USER下好像还有MPU6050
main.c文件的最后修改时间是2017年4月16日21点24分
说明这个项目是在代码上传前被修改的,应该可以肯定是最终代码
看看它的内容
初始化里使用了mpu6050
为什么会这样呢?
看看mpu6050.c里的代码
原来只是通过串口收数据,因为SensorTile也是通过串口把传感器发送出来
所以可能是作者只是没有把文件名字改过来的原因吧
串口里收到数据判断数据头为0x55,然后再读11个字节的数据到USART_ReceiveData数组
感觉接收格式和SensoTile发送来的不匹配
为什么会这样呢?
再看看USART_ReceiveData数据是怎么处理的
在main.c文件里有一个处理传感器数据的函数Receive_IMUAngle
里边判断第2个字节的类型,0x51是加速度,0x52是角速度,0x53是角度数据
从这个数据看它的串口通信协议应该是下边这样
这里没有处理磁场数据
而且和SensorTile发来的数据不匹配
为什么会这样呢?
我猜作者在这个程序里还是使用了mpu6050传感器
可是为什么不画到PCB上直接用I2C通信呢?
猜测是使用了现成的模块
淘宝搜了一下MPU6050串口模块还真有
其中有一个好像在哪里见过
看看作者的开发文档
一个字,非常专业
图片中右边的控制板有个小狮子图标
在网上找了一下没找到,可能是作者自己做的LOGO吧
下边有一个贴装的模块和淘宝上的对比一下,看起来是不是很像?
左边是作者提供文档里的PCB实物图,中间是作者在
“球形六足机器人宠物——SensorTile模块使用再说明”里贴出的PCB 3D图
右边是淘宝里的模块实物图
http://bbs.eeworld.com.cn/thread-530656-1-1.html
![](http://5.eewimg.cn/data/attachment/forum/201706/03/133034y7dzw9agx44w9717.png.thumb.jpg)
可以看到作者在“球形六足机器人宠物——SensorTile模块使用再说明”贴子里提供的图片已经去掉MPU6050模块了
为什么会这样呢?
打开作者在百度云里的源文件,看到结构文件的日期都在2017年以前
软件设计里的文件夹修改时间都是2016年8月
这个时间是SensorTile活动开始前的时间
为什么会这样呢?
这个百度云盘RAR没有在论坛里上传的RAR文件中的惯性导航测试文件夹
打开论坛和百度云盘两个RAR里的运动程序中的main.c文件
目测两个文件的内容基本一样
为什么会这样呢?
经过对比分析后我觉得这个项目里最值得一看的是SERVO文件夹的内容
等有时间再继续学习
|