社区导航

 

搜索
查看: 1627|回复: 1

[设计过程分享] 体感手套 #2 IMU传感器数据采集

[复制链接]

246

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-9-19 15:31 | 显示全部楼层 |阅读模式
1. 体感手套首先是需要采集传感器的数据,然后进行数据分析。
2. 采用mbed开发,登录developer.mbed.org,然后创建项目,这里选择引用IMU范例作为模板。显示引用了mbedos,max32630fthr,BMI160的库,如下图
1.JPG
3. 程序首先初始化各个模块,启动ImuRegisters的寄存器,这样可以保存传感器的数据。数据的传输用I2C,定义引脚P5_7, P6_0
    I2C i2cBus(P5_7, P6_0);
    i2cBus.frequency(400000);
    BMI160_I2C imu(i2cBus, BMI160_I2C::I2C_ADRS_SDO_LO);

4. 然后分别定义并采集传感器的数据,包括加速度传感器,陀螺传感器,
        BMI160::SensorData accData;
        BMI160::SensorData gyroData;


用以下语句读取传感器的数据,
            imu.getGyroAccXYZandSensorTime(accData, gyroData, sensorTime, accConfig.range, gyroConfig.range);
然后就可以把这些数据打印出来
5. 数据处理
首先设定THRESHOLD阈值,当角度超限就触发动作信号。这个通过对于超限判断实现的,分别按照2,4,6,8表示x-y轴方向的上下左右运动
  1.             if (gyroData.xAxis.scaled > 1*xyTHRESHOLD) {
  2.                 xyDirection=6;}
  3.                 else if (gyroData.xAxis.scaled < (-1)*xyTHRESHOLD) {
  4.                     xyDirection=4;}
  5.                     else if (gyroData.yAxis.scaled > 1*xyTHRESHOLD) {
  6.                         xyDirection=8;}
  7.                         else if (gyroData.yAxis.scaled < (-1)*xyTHRESHOLD) {
  8.                             xyDirection=2;}
复制代码


6. 这个数据通过printf在串口显示出来,具体变化的数据。用putty,波特率9600连接,显示如下,
1.JPG

7. 附件如下,导出为keil文件
FTHR_Gloove_uvision5_max32630fthr.zip (4.74 MB, 下载次数: 3)


回复

使用道具 举报

9488

TA的帖子

133

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-9-21 15:51 | 显示全部楼层
汇总贴在此:
体感手套—by 北方
http://bbs.eeworld.com.cn/thread-564975-1-1.html

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-10-14 12:35 , Processed in 0.102710 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表