GY89集成了三块不同的芯片,分别为:BMP180、L3GD20和LSM303DLH,作用分别是获取温度压强、三轴陀螺仪和加速度计的数据。以下通过把各个模块的数据输出到终端来测试GY89的功能。

#include "mbed.h"
#include "BMP180.h"//温度压强
#include "L3GD20.h"//三轴陀螺仪
#include "LSM303DLH.h"//加速度计
#include "vector.h"//加速度计的向量类 包含xyz //片选信号的引脚 默认使用BMP180 片选信号为10时使用L3GD20 片选信号为01时使用LSM303D
DigitalOut cs1(PC_2);
DigitalOut cs2(PC_3); int main()
{ /****************使用BMP180获取温度和压强***************************/ BMP180 bmp180(PB_9, PB_8);//实例化bmp180 float pressure, temperature;//用这两个变量存储获取到的压强和温度 bmp180.Initialize(64, BMP180_OSS_ULTRA_LOW_POWER);//初始化 while(1)
{
//bmp180获取数据
if (bmp180.ReadData(&temperature, &pressure)){
//将获得的数据输出到终端
printf("温度: %f\n",temperature);
printf("压强: %f\n",pressure);
}
wait(1);
}
/*****************使用BMP180获取温度和压强***************************/ /**************使用L3GD20获取三轴陀螺仪的数据数据*********************/ //设置片选信号
cs1 = 1;
cs2 = 0; L3GD20 gyro(PB_9, PB_8);//实例化LSGD20 float gx,gy,gz;//用这三个变量存储xyz轴的数据 while(1){ //L3GD20获取数据
if(gyro.read(&gx,&gy,&gz)){ //将获得的数据输出到终端
printf("X: %f\n",gx);
printf("Y: %f\n",gy);
printf("Z: %f\n",gz); }//end id wait(0.1); }//end while
/**************使用L3GD20获取三轴陀螺仪的数据数据*********************/ /**************使用LSM303D获取加速度计和磁力计的数据*********************/ //设置片选信号
cs1 = 0;
cs2 = 1; //向量类,里面包含xyz三个变量,用于存储加速度计和磁力计的xyz数据
vector a;
vector m; LSM303DLH compass(PB_9, PB_8); float hdg; //初始化操作
compass.setOffset(29.50, -0.50, 4.00);
compass.setScale(1.00, 1.03, 1.21); while(1) { //获取数据
compass.read(a,m); //将获得的数据输出到终端
printf("加速度计:X=%f/Y=%f/Z=%f\n",a.x,a.y,a.z);
//printf("磁力计:X=%f/Y=%f/Z=%f\n",m.x,m.y,m.z); wait(0.1);
} /**************使用LSM303D获取加速度计和磁力计的数据*********************/ }

  

室外温度:

电脑旁温度:

三轴陀螺仪:

加速度计:

GY89的使用的更多相关文章

  1. 使用GY89的BMP180模块获取温度和压强(海拔)

    最近要用一下GY89,GY89有三个模块,温度压强.加速度计.陀螺仪.通过不同的片选信号来选择. mbed库上都写好了,挺好的. 以下是自己的代码: #include "mbed.h&quo ...

  2. 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案

    转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...

随机推荐

  1. 多态、Object类和 JDK常用封装类型

    多态 定义:某一类事物的多种存在形态. 多态的体现:父类的引用指向了自己的子类对象.父类的引用也可以接收自己的子类对象. 多态的前提:必须是类与类之间有关系,要么继承,要么实现.通常还有一个前提,存在 ...

  2. 软工15个人作业4——alpha阶段

    一.个人总结 1.在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 2.请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.ht ...

  3. java String 转 Long 两种方法区别

    Long.ValueOf("String")返回Long包装类型 包装类型: Byte,Integer,Short,Long,Boolean,Character,Float,Dou ...

  4. 抓https包

    一.charles抓https 1.打开charles,打开Help--SSL Proxy--Install Charles Root Certificate,charles安装证书,傻瓜式安装即可 ...

  5. 数据展示Matplotlib

    主要内容是Matplotlib库的基本使用和方法 1 Matplotlib库 1.1 Matplotlib的介绍 Python优秀的数据可视化第三方库 数据可视化就是将数据以特定的图形图像的方式展示出 ...

  6. 使用iptables nat进行端口转发

    1.将发向HostA:PortA的请求转发到HostB:PortB iptables -t nat -A PREROUTING -p tcp -i eth0 -d HostA --dport Port ...

  7. 【Android】Android 学习记录贴

    官网 教程学习笔记 Genymotion 安卓虚拟器太慢,用Genymotion(装载eclipse的插件) 利用Genymotion运行Android应用程序 1.首先,点击 来启动或者创建您要使用 ...

  8. 【转】C# Socket编程(4)初识Socket和数据流

    [转自:https://www.cnblogs.com/IPrograming/archive/2012/10/15/CSharp_Socket_4.html] 经过前面基础知识作为背景,现在对Soc ...

  9. 【LeetCode】汇总

    此贴为汇总贴 673. Number of Longest Increasing Subsequence 075. Sort Colors 009. Palindrome Number 008. St ...

  10. 十五、python沉淀之路--eval()的用法

    一.eval函数 python eval() 函数的功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法:eval(source[, globals[, locals]]) -> v ...