1. 体感手套首先是需要采集传感器的数据,然后进行数据分析。
2. 采用mbed开发,登录developer.mbed.org,然后创建项目,这里选择引用IMU范例作为模板。显示引用了mbedos,max32630fthr,BMI160的库,如下图
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轴方向的上下左右运动
- if (gyroData.xAxis.scaled > 1*xyTHRESHOLD) {
- xyDirection=6;}
- else if (gyroData.xAxis.scaled < (-1)*xyTHRESHOLD) {
- xyDirection=4;}
- else if (gyroData.yAxis.scaled > 1*xyTHRESHOLD) {
- xyDirection=8;}
- else if (gyroData.yAxis.scaled < (-1)*xyTHRESHOLD) {
- xyDirection=2;}
复制代码
6. 这个数据通过printf在串口显示出来,具体变化的数据。用putty,波特率9600连接,显示如下,
7. 附件如下,导出为keil文件
FTHR_Gloove_uvision5_max32630fthr.zip
(4.74 MB, 下载次数: 5)
FTHR_Gloove_MAX32630FTHR.bin
(25.39 KB, 下载次数: 2)
FTHR_Gloove_uvision5_max32630fthr.zip
(4.74 MB, 下载次数: 5)
FTHR_Gloove_MAX32630FTHR.bin
(25.39 KB, 下载次数: 2)