labview myRIO驱动mpu6050

来源:互联网 发布:苹果mac os系统 编辑:程序博客网 时间:2024/05/21 06:52

今天刚注册的博客,用来记录自己成长的点滴,同时希望通过这种方式和更多的IT爱好者交流。
大概两个月前,因为项目原因接触了labview,其图形化的编程语言令人耳目一新,这个特点也让它上手起来比较简单,甚至完全没有编程基础的学起来都不吃力,只是相比C++,Java这些纯代码的,其开源项目比较少,要驱动一个陀螺仪都得自己写驱动,因为没有现成的可以移植,我百度了好久没有找到相关资料,最后还是上官方社区吧(http://forums.ni.com/)上面资料多一点,只是一般都是英文的。
其中,我参考了两个资料:
https://decibel.ni.com/content/docs/DOC-42108
https://decibel.ni.com/content/docs/DOC-34263
前一个项目小白不易看懂,而后一个是库文件,但平台不是myRIO,而是arduino,。所以没办法,自己继续摸索,所幸由于浏览了很多上诉的类似项目,好像大概知道了陀螺仪的驱动要干些什么,之前没看懂的官方历程也好像懂了,那就来改例程吧。
myRIO参考资料:http://www.ni.com/myrio/project-guide
myRIO例程:http://www.ni.com/academic/myrio/project-guide-vis.zip
在书签:II NI myRIO Mechatronics Kit 中可以找到陀螺仪,对应例程中可以找到程序。这里写图片描述
虽然不是mpu60x0,但整体框架是一样的,参照里面的注释,我们只需改register/data这个二维数组的内容和write read读的寄存器地址和读的字数。这里可以参考mpu6050的数据手册,看它寄存器的配置。
https://www.olimex.com/Products/Modules/Sensors/MOD-MPU6050/resources/RM-MPU-60xxA_rev_4.pdf
中文版可看正点原子关于陀螺仪介绍里面的那些资料和重要寄存器的配置,这里就不贴出来了。值得一提的是我们并非所有寄存器都需要配置,简单不要中断的,我们只需对电源寄存器0x6b,量程的:0x1b,0x1c,另外像0x38,6a,23,19,1a,6c这几个写入相应控制字即可,i2c的读写原始数据的地址是3B开始的14个字节,在这里高字节和低字节需要我们自行组合起来。另外前六个字节是加速度的,接着两个是温度的,后面是陀螺仪的。
然后非中断方式的,上面贴出的程序中要把下面的i2c部分删除,最终的程序在我写的一个社区提问中,这种方式得出的数据是原始数据,如何将原始数据转换成四元数和欧拉角我还在摸索,如有大神指导,请不吝赐教。
https://decibel.ni.com/content/people/%E8%B4%9D%E5%85%8B%E6%85%95%E6%96%AF/blog/2016/10/10/how-to-initialize-the-mpu6050-to-enable-the-dmp-to-get-the-quaternionand-read-the-data-out

1 0
原创粉丝点击