【Espruino】NO.12 加速度传感器演示

http://blog.csdn.net/qwert1213131/article/details/31035403

本文属于个人理解,能力有限,纰漏在所难免,还望指正!

【小鱼有点电】

【Espruino中文社区】

加速度计的应用范围越来越广泛,四轴飞行器、游戏手柄、跌倒检测、振动、倾角检测都会有他的身影,跟其他MEMS配合应用范围更广。Espruino已经提供了数字加速度计ADXL345的基本函数库,只需要简单几句代码就能获取各轴加速度值。

数据手册在此:点击打开链接

ADXL345支持SPI和I2C接口,本次实验使用I2C接口,也就是说需要2跟线,SDA(B6)和SCL(B7),需要注意的是这两条线要上拉4.7K电阻。

首先要根据引脚配置I2C,这里使用的是I2C1,SDA(B6)和SCL(B7):

I2C1.setup({scl:B6, sda:B7});

接着调用ADXL345的库

var accel = require("ADXL345").connect(i2c,cspin,range)

其中,cspin没有用到,range如下:

   
0 +/-2 g
1 +/-4 g
2 +/-8 g
3 +/-16 g

默认情况下,加速度计处于待机模式,若要获取数据,需要打开测量模式,设置为true:

accel.measure(true or false)

若要读取到数据,则调用下面的函数,就能得到x、y、z各轴的加速度,单位为g:

accel.read()

实验中通过读取x轴的数据来让3个led分别亮起,示例如下,还有视频

I2C1.setup({scl:B6, sda:B7});
var accel = require("ADXL345").connect(I2C1,0,3);
accel.measure(true);
clearInterval();
function led(){
  if(accel.read().x<-0.25)
    digitalWrite([LED3,LED2,LED1],0b100);
  else if(accel.read().x>0.25)
    digitalWrite([LED3,LED2,LED1],0b001);
    else
    digitalWrite([LED3,LED2,LED1],0b010);
}
setInterval(led,200);

【Espruino】NO.12 加速度传感器演示

时间: 2024-08-25 13:50:49

【Espruino】NO.12 加速度传感器演示的相关文章

工程师向你展示手机加速度传感器如何工作,有影片辅助说明

作者: BIN CHEN  2012 年 5 月 23 日, 晚上 10:3412 一些手机玩家和发烧友对一些手机的元器件感兴趣,甚至想知道它们是如何工作的.而现在,无论是手机和平板电脑,基本上都内置了加速传感器,用来识别设备的转动方向.来自 Illinois 大学的一位工程师 Bill Hammack 向我们介绍了这种加速传感器是如何工作的,并且不是枯燥的说教,而是有动画影片来辅助说明. 影片中 Bill Hammack 用到了 Android 和 iPhone 手机来演示,不过还是以 iPh

六轴加速度传感器MPU6050官方DMP库到瑞萨RL78/G13的移植

2015年的电赛已经结束了.赛前接到器件清单的时候,看到带防护圈的多旋翼飞行器赫然在列,又给了一个瑞萨RL78/G13的MCU,于是自然联想到13年的电赛,觉得多半是拿RL78/G13做四旋翼的主控,虽然事后证实我的猜测是错的,但是在赛前我还是完成了相关代码的准备,这其中就包括了MPU6050的DMP库移植.在移植前我大概搜了一下,发现网上还没有相关的源代码.一起准备电赛的同学还买过一份RL78/G13的飞控代码,虽然也是使用MPU6050进行姿态获取,但是对MPU6050的读取并不是通过DMP

MMA7455加速度传感器測量角度

使用加速度传感器应该注意几点: 第一:确保你的IIC是正确的: 第二,首先必须校准系统,校准方法,例如以下:将7455平放,保证z轴向下,这是假设系统是Ok的,那么x轴输出为0,y轴输出为0,z轴输出为63左右,假设不为以上參数,应该做例如以下调整:測量值比实际值小的情况下,往校准寄存器里面写入一个2*误差值:假设測量值假设大于实际值,应该写入一个值为相应误差的负值的ASCII码,比方假设測出值为70,那么应该写入-16,即(0xf0): 下面就是我调试mma7455的代码: #include

android 三轴加速度传感器【转】

一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用,具体如下:(Sensor类) #define SENSOR_TYPE_ACCELEROMETER 1 //加速度#define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力#define SENSOR_TYPE_ORIENTATION 3 //方向#define SENSOR_TYPE_GYROSCOPE 4 //陀螺仪#define SENSOR_TY

OneNET麒麟座应用开发之五:获取加速度传感器ADXL345数据

由于数据采集站基本都安装在野外或者楼顶,安装位置以及震动对检测数据的准确性有一定影响.所以想要有一个位置状态数据,正好发现麒麟作上有ADXL345,这样一个数字输出的加速度传感器.如图中红框所示: 1.ADXL345概述 ADXL345是ADI公司推出的基于iMEMS技术的3轴.数字输出加速度传感器.该加速度传感器的特点如下: 分辨率高.最高13位分辨率. 量程可变.具有+/-2g,+/-4g,+/-8g,+/-16g可变的测量范围. 灵敏度高.最高达3.9mg/LSB,能测量不到1.0°的倾斜

博世传感器调试笔记(一)----加速度传感器BMA253

公司是bosch的代理商,最近一段时间一直在公司开发的传感器demo板上调试bosch sensor器件.涉及到的器件有7,8款,类型包括重力加速度.地磁.陀螺仪.温度.湿度.大气压力传感器等.在调试的过程中做了一些笔记,在此将其简单分享出来. BMA253是3轴12 bit加速度传感器,支持I2C/SPI两种通讯方式,其i2c设备地址0x18. 关键寄存器R0:CHIPID register ,值为 0xfa X轴加速度数据12bitr0x02:ACCD_X_LSB acc_x_lsb[3:0

加速度传感器的原理和应用-手机翻转、失重检测、运动检测、位置识别

本文介绍可穿戴设备加速度传感器-Lis3dh的特性原理和应用场景.意法半导体研发的Lis3dh广泛应用在智能手环.智能计步鞋等智能穿戴产品中. Lis3dh有两种工作方式,一种是其内置了多种算法来处理常见的应用场景(如静止检测.运动检测.屏幕翻转.失重.位置识别.单击和双击等等),用户只需简单配置算法对应的寄存器即可开始检测,一旦检测到目标事件,Lis3dh的外围引脚INT1会产生中断.另一种是支持用户通过SPI/I2C来读取底层加速度数据,并自行通过软件算法来做进一步复杂的处理,如计步等等.

Android加速度传感器的使用:摇一摇功能的实现

一.原理介绍: Android手机中摇一摇的功能已经很常见了,最近接触到了这个功能,原理很简单:使用加速度传感器,在晃动手机时,监听加速度在各个方向的变化,当加速度值超过设定的灵敏度时,则触发摇一摇功能. 二.使用到的类: SensorManager SensorEventListener 三.功能实现: 1.摇一摇功能:我将摇一摇功能封装成了一个类ShakeUtils,在使用时按照注释中的说明使用即可,ShakeUtils.java如下(差的包请CTRL+SHIFT+O导入): /** * 摇

Android 使用加速度传感器实现摇一摇功能及优化

如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 目前很多应用已经实现了摇一摇功能,这里通过讲解该功能的原理及实现回顾一下加速度传感器的使用: 1.首先获得传感器管理器的实例 sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); 2.通过传感器管理器获得加速传感器 accelerateSensor = getSensorManager(cont