1.2.3.6.1.14 LSM6DSL(加速度和陀螺仪)

优质
小牛编辑
126浏览
2023-12-01

更新时间:2018-09-18 10:16:51

功能说明

加速度和陀螺仪传感器驱动。lsm6dsl 是一款具有数字加速度计和数字陀螺仪功能的低功耗传感器,通过 I2C 协议进行数据交互。

硬件资源

DevelopKit 开发板上自带有 lsm6dsl 传感器(下图红色圆圈处),并连接到 STM32 的 I2C2 端口;

image | left | 273x330

软件设计

驱动配置

开发板板级管脚配置(board.json) 示范:</span>

  "lsm6dsl":{
    "type":"I2C",
    "port":4,
    "address_width":7,
    "freq":400000,
    "mode":1,
    "dev_addr":214
  }

应用示例

  1. 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 lsm6dsl。
  2. 编写测试 index.js 文件。
var lsm6dsl = require('lsm6dsl');
var handle = new lsm6dsl('lsm6dsl');

 var accVal;
 var gyroVal;
var lsm6dsl_val=[0,0,0,0,0,0];

var t1 = setInterval(function() {
    var flag = 0;
    accVal = handle.getAcc();
    gyroVal = handle.getGyro();

    if((lsm6dsl_val[0]==accVal[0])&&(lsm6dsl_val[1]==accVal[1])&&(lsm6dsl_val[2]==accVal[2])){
        flag += 1;   
    }
    if((lsm6dsl_val[3]==gyroVal[0])&&(lsm6dsl_val[4]==gyroVal[1])&&(lsm6dsl_val[5]==gyroVal[2])){
        flag += 1;   
    }
    console.log('xacc:'+accVal[0] + 'yacc:'+accVal[1] + 'zacc:'+accVal[2]);
    console.log('xgyro:'+gyroVal[0] + 'ygyro:'+gyroVal[1] + 'zgyro:'+gyroVal[2]);
}, 1000);

运行验证

每隔一秒读取 sensor 的值,如果加速度或陀螺仪数据发生变化,则打印出来。