GY89的使用
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的使用的更多相关文章
- 使用GY89的BMP180模块获取温度和压强(海拔)
最近要用一下GY89,GY89有三个模块,温度压强.加速度计.陀螺仪.通过不同的片选信号来选择. mbed库上都写好了,挺好的. 以下是自己的代码: #include "mbed.h&quo ...
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...
随机推荐
- Openstack Mitaka 负载均衡 LoadBalancerv2
最近研究了一下Openstack负载均衡,yum源和源码级别的安装都尝试成功了.网上有很多文章都是LoadBalancerv1,这个已经被放弃了.所以写一下自己是如何使用LoadBalancerv ...
- react : code splitting
1.webpack config output: { ... chunkFilename: 'js/[name].min.js' ... } optimization: { splitChunks: ...
- 任务调度 Spring Task 4(一)
深入浅出spring task定时任务 在工作中有用到spring task作为定时任务的处理,spring通过接口TaskExecutor和TaskScheduler这两个接口的方式为异步定时任务提 ...
- OLE剪切板与拖拽
https://www.xuebuyuan.com/1074399.html https://blog.csdn.net/uda1985/article/details/6179801
- padding和margin的用法
在CSS中margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离.在CSS中padding是指自身边框到自身内部另一个容器边框之间的距离,就是容器内距离. 一.padding 1.语法结 ...
- Mybatis为实体类定义别名typeAliases
以新增一个用户为例子,原UserMapper.xml配置如下: <insert id="addUser" parameterType="main.User" ...
- 使用vscode书写博客
很早就开始使用过vscode了,不过在已经成熟的sublime的碾压下,vscode一直没有成为我的首选,今天为了更好的博客书写体验,我直接放弃了sublime,因为 sublime对中文支持不好,而 ...
- Reinforcement Learning Q-learning 算法学习-3
//Q-learning 源码分析. import java.util.Random; public class QLearning1 { private static final int Q_SIZ ...
- html display和visibility在资源加载上的区别
想要把一个html里的UI组件设置为可见/不可见,可以用两个属性,display=none/block, visibility=hidden/visible, 网上的解释是display虽然可以让一个 ...
- 一种 jquery 检索方案
整理自:http://www.cnblogs.com/linjiqin/archive/2011/03/18/1988464.html <!DOCTYPE HTML PUBLIC "- ...