Arduino101学习笔记(十三)—— 101六轴传感器

一、相关API

1、begin:需要在其他CUIREIMU前调用

//*********************************************************************************************
//函数名称:CurieImu.begin()
//输入参数:无
//函数返回:无
//函数功能:开六轴传感器,必须第一个调用
//*********************************************************************************************
CurieIMU.begin();

2、得到陀螺仪的采样频率

//*********************************************************************************************
//函数名称:CurieImu.getGyroRate()
//输入参数:无
//函数返回:25  50  100  200  400  800  1600  3200(Hz)
//函数功能:得到陀螺仪的采样频率
//*********************************************************************************************
CurieIMU.getGyroRate();

3、设置陀螺仪的采样频率

他的数据速率也是采样频率,并影响读数的带宽。

//*********************************************************************************************
//函数名称:CurieImu.setGyroRate(int rate)
//输入参数:rate 采样频率   25  50  100  200  400  800  1600  3200(Hz)
//函数返回:无
//函数功能:无
//*********************************************************************************************
CurieImu.setGyroRate(int rate);

4、得到加速度计的采样频率

//*********************************************************************************************
//函数名称:CurieImu.getAccelerometerRate()
//输入参数:无
//函数返回:rate 采样频率 12.5 25 50 100 200 400 800 1600 
//函数功能:返回加速度计的采样频率
//*********************************************************************************************
CurieIMU.getAccelerometerRate()

5、设置加速度计的采样频率

//*********************************************************************************************
//函数名称:CurieImu.setAccelerometerRate(float rate)
//输入参数:rate 采样频率   12.5   25   50   100   200   400   800   1600
//函数返回:无
//函数功能:返回加速度计的采样频率
//*********************************************************************************************
CurieIMU.setAccelerometerRate(float rate)

6、返回陀螺仪测量范围

//*********************************************************************************************
//函数名称:CurieImu.getGyroRange()
//输入参数:无
//函数返回:2000 (+/-2000°/s)
//                 1000 (+/-1000°/s)
//                 500 (+/-500°/s)
//                 250 (+/-250°/s)
//                 125 (+/-125°/s)
//函数功能:返回陀螺仪的测量范围
//*********************************************************************************************
CurieIMU.getGyroRange()

7、设置陀螺仪测量范围

//*********************************************************************************************
//函数名称:CurieImu.setGyroRange()
//输入参数:2000 (+/-2000°/s)
//                 1000 (+/-1000°/s)
//                 500 (+/-500°/s)
//                 250 (+/-250°/s)
//                 125 (+/-125°/s)
//函数返回:无
//函数功能:返回陀螺仪的测量范围
//*********************************************************************************************
CurieIMU.setGyroRange()

8、得到加速度计的测量范围

//*********************************************************************************************
//函数名称:CurieImu.getAccelerometerRange()
//输入参数:无
//函数返回:2 (+/- 2g)
//                 4 (+/- 4g)
//                 8 (+/- 8g)
//                 16 (+/- 16g)
//函数功能:返回陀螺仪的测量范围
//*********************************************************************************************
CurieIMU.getAccelerometerRange()

9、设置加速度计的测量范围

//*********************************************************************************************
//函数名称:CurieImu.setAccelerometerRange(int range)
//输入参数:2 (+/- 2g)
//                 4 (+/- 4g)
//                 8 (+/- 8g)
//                 16 (+/- 16g)
//函数返回:无
//函数功能:返回陀螺仪的测量范围
//*********************************************************************************************
CurieIMU.setAccelerometerRange(int range)

10、自动进行陀螺仪偏移计算

//*********************************************************************************************
//函数名称:CurieImu.autoCalibrateGyroOffset()
//输入参数:无
//函数返回:无
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.autoCalibrateGyroOffset()

11、自动进行加速计偏移计算

//*********************************************************************************************
//函数名称:CurieImu.autoCalibrateAccelerometerOffset(int, axis, int target)
//输入参数:axis:     X_AXIS
//                              Y_AXIS
//                              Z_AXIS
//                 target: it can be 0 or 1.    1表示要取消重力的影响,即平躺时Z轴应该写1
//函数返回:无
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.autoCalibrateAccelerometerOffset(int, axis, int target)

12、偏移修正开关

//关闭
CurieIMU.noGyroOffset();
CurieIMU.noAccelerometerOffset();

//打开
CurieIMU.gyroOffsetEnabled();
CurieIMU.accelerometerOffsetEnabled();

13、得到陀螺仪偏移修正的数值

//*********************************************************************************************
//函数名称:CurieImu.getGyroOffset(int axis)
//输入参数:axis:     X_AXIS
//                              Y_AXIS
//                              Z_AXIS
//函数返回:修正的偏移值,The returned value is from -31.25 °/s to +31.25 °/s in discrete steps of 0.061 °/s.
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.getGyroOffset(int axis)

14、设置陀螺仪偏移

//*********************************************************************************************
//函数名称:CurieImu.setGyroOffset(int axis, int offset)
//输入参数:axis:     X_AXIS
//                    Y_AXIS
//                    Z_AXIS
//                  offset   偏移
//函数返回:
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.setGyroOffset(int axis, int offset)

15、得到陀螺仪偏移

//*********************************************************************************************
//函数名称:CurieImu.getAccelerometerOffset(int axis)
//输入参数:axis:     X_AXIS
//                    Y_AXIS
//                    Z_AXIS
//函数返回:
//函数功能:
//*********************************************************************************************
CurieIMU.getAccelerometerOffset(int axis)

16、设置陀螺仪偏移

//*********************************************************************************************
//函数名称:CurieImu.setAccelerometerOffset(int axis, int offset)
//输入参数:axis:     X_AXIS
//                    Y_AXIS
//                    Z_AXIS
//                  offset   偏移
//函数返回:
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.setAccelerometerOffset(int axis, int offset)

17、得到检测阈值

//*********************************************************************************************
//函数名称:CurieImu.getDetectionThreshold(int feature)
//输入参数:feature: the requested feature. It can assume one of these values:
//                  CURIE_IMU_FREEFALL
//                  CURIE_IMU_SHOCK
//                  CURIE_IMU_MOTION
//                  CURIE_IMU_ZERO_MOTION
//                  CURIE_IMU_TAP
//函数返回:
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.getDetectionThreshold(int feature)

18、设置检测阈值

//*********************************************************************************************
//函数名称:CurieImu.setDetectionThreshold(int feature, float value)
//输入参数:feature: the requested feature. It can assume one of these values:
//                  CURIE_IMU_FREEFALL
//                  CURIE_IMU_SHOCK
//                  CURIE_IMU_MOTION
//                  CURIE_IMU_ZERO_MOTION
//                  CURIE_IMU_TAP
//函数返回:
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.setDetectionThreshold(int feature, float value)

19、得到检测的持续时间

//*********************************************************************************************
//函数名称:CurieImu.getDetectionDuration(int feature)
//输入参数:feature: the requested feature. It can assume one of these values:                
  • CURIE_IMU_TAP
  • CURIE_IMU_TAP_QUIET
  • CURIE_IMU_DOUBLE_TAP
  • CURIE_IMU_ZERO_MOTION
//函数返回:
//函数功能:检测持续时间
//*********************************************************************************************
CurieIMU.getDetectionDuration(int feature)

20、设置检测的持续时间

//*********************************************************************************************
//函数名称:CurieImu.setDetectionDuration(int feature, float value)
//输入参数:feature: the requested feature. It can assume one of these values:
//                  CURIE_IMU_FREEFALL
//                  CURIE_IMU_SHOCK
//                  CURIE_IMU_MOTION
//                  CURIE_IMU_ZERO_MOTION
//                  CURIE_IMU_DOUBLE_TAP
//                  CURIE_IMU_TAP_SHOCK
//                  CURIE_IMU_TAP_QUIET P
//函数返回:
//函数功能:检测持续时间
//*********************************************************************************************
CurieIMU.setDetectionDuration(int feature, float value)

21、允许某个特征产生中断

//*********************************************************************************************
//函数名称:CurieImu.interrupts(int feature)
//输入参数:feature: the requested feature. It can assume one of these values:
//                 CURIE_IMU_FREEFALL
//                 CURIE_IMU_SHOCK
//                 CURIE_IMU_MOTION
//                 CURIE_IMU_ZERO_MOTION
//                 CURIE_IMU_STEP
//                 CURIE_IMU_TAP
//                 CURIE_IMU_TAP_SHOCK
//                 CURIE_IMU_TAP_QUIET
//                 CURIE_IMU_DOUBLE_TAP
//函数返回:
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.interrupts(int feature)

22、关闭某个特征产生中断

//*********************************************************************************************
//函数名称:CurieImu.noInterrupts(int feature)
//输入参数:feature: the requested feature. It can assume one of these values:
//                 CURIE_IMU_FREEFALL
//                 CURIE_IMU_SHOCK
//                 CURIE_IMU_MOTION
//                 CURIE_IMU_ZERO_MOTION
//                 CURIE_IMU_STEP
//                 CURIE_IMU_TAP
//                 CURIE_IMU_TAP_SHOCK
//                 CURIE_IMU_TAP_QUIET
//                 CURIE_IMU_DOUBLE_TAP
//函数返回:
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.noInterrupts(int feature)

23、返回某个特征是否开了中断

//*********************************************************************************************
//函数名称:CurieImu.interruptEnabled(int feature)
//输入参数:feature: the requested feature. It can assume one of these values:
//                 CURIE_IMU_FREEFALL
//                 CURIE_IMU_SHOCK
//                 CURIE_IMU_MOTION
//                 CURIE_IMU_ZERO_MOTION
//                 CURIE_IMU_STEP
//                 CURIE_IMU_TAP
//                 CURIE_IMU_TAP_SHOCK
//                 CURIE_IMU_TAP_QUIET
//                 CURIE_IMU_DOUBLE_TAP
//函数返回:TURE   FALSE
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.interruptEnabled(int feature)

24、检测是否进入中断状态

//*********************************************************************************************
//函数名称:CurieImu.getInterruptStatus(int feature)
//输入参数:feature: the requested feature. It can assume one of these values:
//                 CURIE_IMU_FREEFALL
//                 CURIE_IMU_SHOCK
//                 CURIE_IMU_MOTION
//                 CURIE_IMU_ZERO_MOTION
//                 CURIE_IMU_STEP
//                 CURIE_IMU_TAP
//                 CURIE_IMU_TAP_SHOCK
//                 CURIE_IMU_TAP_QUIET
//                 CURIE_IMU_DOUBLE_TAP
//函数返回:TURE   FALSE
//函数功能:进行陀螺仪偏移计算
//*********************************************************************************************
CurieIMU.getInterruptStatus(int feature)

25、返回步进检测模式的值

//*********************************************************************************************
//函数名称:CurieImu.getStepDetectionMode()
//输入参数:CURIE_IMU_STEP_MODE_NORMAL
//                  CURIE_IMU_STEP_MODE_SENSITIVE
//                  CURIE_IMU_STEP_MODE_ROBUST
//                  CURIE_IMU_STEP_MODE_UNKNOWN
//函数返回:TURE   FALSE
//*********************************************************************************************
CurieIMU.getStepDetectionMode()

26、设置步进检测模式的值

//*********************************************************************************************
//函数名称:CurieImu.setStepDetectionMode(int mode)
//输入参数:CURIE_IMU_STEP_MODE_NORMAL
//                  CURIE_IMU_STEP_MODE_SENSITIVE
//                  CURIE_IMU_STEP_MODE_ROBUST
//                  CURIE_IMU_STEP_MODE_UNKNOWN
//函数返回:TURE   FALSE
//*********************************************************************************************
CurieIMU.setStepDetectionMode(in mode)

27、读取6轴传感器的数值

//*********************************************************************************************
//函数名称:CurieImu.readMotionSensor(int ax, int ay, int az, int gx, int gy, int gz)
//输入参数:ax: a variable in which the accelerometer‘s value along x will be stored.
//                 ay: a variable in which the accelerometer‘s value along y will be stored.
//                 az: a variable in which the accelerometer‘s value along z will be stored.
//                 gx: a variable in which the gyro‘s value along x will be stored.
//                 gy: a variable in which the gyro‘s value along y will be stored.
//                 gz: a variable in which the gyro‘s value along z will be stored.
//函数返回:
//*********************************************************************************************
CurieIMU.readMotionSensor(int ax, int ay, int az, int gx, int gy, int gz)

28、读取加速度的数值

//*********************************************************************************************
//函数名称:CurieImu.readAccelerometer(int ax, int ay, int az)
//输入参数:ax: a variable in which the accelerometer‘s value along x will be stored.
//                 ay: a variable in which the accelerometer‘s value along y will be stored.
//                 az: a variable in which the accelerometer‘s value along z will be stored.
//函数返回:
//*********************************************************************************************
CurieIMU.readAccelerometer(int ax, int ay, int az)

29、读取陀螺仪的数值

//*********************************************************************************************
//函数名称:CurieImu.readGyro(int gx, int gy, int gz)
//输入参数:
//                 gx: a variable in which the gyro‘s value along x will be stored.
//                 gy: a variable in which the gyro‘s value along y will be stored.
//                 gz: a variable in which the gyro‘s value along z will be stored.
//函数返回:
//*********************************************************************************************
CurieIMU.readGyro(int gx, int gy, int gz)

30、读取温度值

//*********************************************************************************************
//函数名称:CurieImu.readTemperature()
//输入参数:
//函数返回:Celsius=(raw/32767.0)+23  16位的
//*********************************************************************************************
CurieIMU.readTemperature()

31、检测晃动

//*********************************************************************************************
//函数名称:CurieIMU.shockDetected(int axis, int direction)
//输入参数:axis: the axis to check for shock detection. It must have one of these values:
//                          X_AXIS
//                          Y_AXIS
//                          Z_AXIS
//                  direction: the direction to check for shock detection. It must have one of these values:
//                          POSITIVE from zero to positive axis values
//                          NEGATIVE from zero to negative axis values
//函数返回:Ture False
//*********************************************************************************************
CurieIMU.shockDetected(int axis, int direction)

32、检测动作

//*********************************************************************************************
//函数名称:CurieImu.motionDetected(int axis, int direction)
//输入参数:axis: the axis to check for shock detection. It must have one of these values:
//                          X_AXIS
//                          Y_AXIS
//                          Z_AXIS
//                  direction: the direction to check for shock detection. It must have one of these values:
//                          POSITIVE from zero to positive axis values
//                          NEGATIVE from zero to negative axis values
//函数返回:Ture False
//*********************************************************************************************
CurieIMU.motionDetected(int axis, int direction)

33、其他检测

CurieIMU.tapDetected(int axis, int direction)

CurieIMU.stepsDetected()

34、注册中断函数

//*********************************************************************************************
//函数名称:CurieIMU.attachInterrupt(voidFuncPtr callback)
//输入参数:注册中断函数
//函数返回:无
//*********************************************************************************************
CurieIMU.attachInterrupt(voidFuncPtr callback)

35、取消注册中断函数

CurieIMU.detachInterrupt()

二、

时间: 2024-10-07 21:49:20

Arduino101学习笔记(十三)—— 101六轴传感器的相关文章

【Unity 3D】学习笔记二十六:unity游戏脚本(六)

在3D游戏世界中,任何一个游戏对象在创建的时候都会附带Transform(变换)组件,并且该组件是无法删除的,也不应该删除.在unity中,Transform面板一共有3个属性: Position  (位置) Rotation(旋转) Scale(缩放) 这三个值都是用来调整游戏对象在游戏界面中的位置,状态等相关参数. Position  (位置) 任何一个游戏对象的三维坐标都保存在Vector3容器中,该容器记录对象在X轴,Y轴,Z轴的坐标.一旦Vector33容器中的坐标发生变化,那么Sce

Android学习笔记(十六)——碎片之间进行交互(附源码)

碎片之间进行交互 点击下载源码 很多时候,一个活动中包含一个或者多个碎片,它们彼此协作,向用户展示一个一致的UI.在这种情况下,碎片之间能进行通信并交换数据十分重要. 1.使用上一篇中创建的同一个项目,在fragment.xml中添加TextView的标识id: android:id="@+id/lblFragment1" 2.在fragment2.xml中添加一个Button,用于与fragment1进行交互: <Button android:id="@+id/btn

《Javascript权威指南》学习笔记之十六:BOM之源---BOM基本应用

BOM的基本应用包括:管理浏览器历史.解析地址和获取浏览器信息,本文将介绍这些应用. 一.浏览历史管理 1.history对象的方法和属性 History 对象包含用户(在浏览器窗口中)访问过的 URL,是 window 对象的一部分,可通过 window.history 属性对其进行访问.没有应用于 History 对象的公开标准,不过所有浏览器都支持该对象. length属性:返回浏览器历史列表中的URl数量.是"前进"和"后退"两个按钮之下包含的地址数的总和.

angular学习笔记(二十六)-$http(4)-设置请求超时

本篇主要讲解$http(config)的config中的timeout项: $http({ timeout: number }) 数值,从发出请求开始计算,等待的毫秒数,超过这个数还没有响应,则返回错误 demo: html: <!DOCTYPE html> <html ng-app = 'HttpGet'> <head> <title>18.4 $http(2)</title> <meta charset="utf-8"

java之jvm学习笔记十三(jvm基本结构)

java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信.当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多.在你看完本节之后,后续我们还会来学jvm的细节,但是如果你在学习完本节的前提下去学习,再学习其他jvm的细节会事半功倍. 为了让你每一个知识点都有迹

APUE学习笔记:第六章 系统数据文件和信息

6.1 引言 UNIX系统的正常运行需要使用大量与系统有关的数据文件,针对这些数据文件的可移植接口是本章的主题.本章还介绍了系统标识函数.时间和日期函数 6.2 口令文件 UNIX系统的口令文件包含了下列各字段,这些字段包含在<pwd.h>中定义的passwd结构中 用户名 char *pw_name 加密口令 char *pw_passwd 数值用户ID uid_t pw_uid 数值组ID gid_t pw_gid 注释字段 char *pw_gecos 初始工作目录 char *pw_d

马哥学习笔记二十六——MySQL主从复制

配置MySQL复制基本步骤: 一.master 1.启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2.选择一个惟一server-id server-id = {0-2^32} 3.创建具有复制权限的用户 REPLICATION SLAVE REPLICATION CLIENT 二.slave 1.启用中继日志 relay-log = relay-log relay-log-index = 2.选择一个惟一的server

Swift学习笔记十三:继承

一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性 一.基本语法 class Human{ var name :String init(){ name = "human" println(name) } func description(){ println("name:\(name)") } } class Student:Human{ var score = 0 init(){ super.init() name

【Unity 3D】学习笔记四十六:输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走.都需要在程序中监听玩家的输入.unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件.本文主要回顾键盘事件,以后会逐文复习鼠标以及触摸事件. 键盘事件 一般的PC键盘有104个不同的按键,在程序中通过监听这些按键事件,从而进一步执行逻辑操作.如:射击游戏中,W表示前进,S表示后退,A表示左移,D表示右移. 按下事件 在脚本中,用input.GetKeyDown( )方法将按键值作为参数,监听此按键是否被按下.按下返回true,否