实现计步器功能,用陀螺仪来计算步数
计步器主要根据https://blog.csdn.net/Dancer__Sky/article/details/81504778
这篇文章中提到的,滤波算法以及一些常见的计步算法,根据x,y,z 3轴的加速度来判断步数
计时主要用软件RTC模拟
显示器主要用oled,通过gpio模拟SPI来实现显示功能
硬件介绍(控制器及外设,应用方向及应用场景)
该开发板有的外设有, 2个SPI(SPI+I2S), 2个UART, 2个I2C, 14个GPIO脚, 3个Timer
应用方向:智能穿戴,低功耗
应用场景: 智能手表
这个开发板比较简单,板子上只有DAPLINK和一个LED 一个button。
然后就是简单的14个GPIO管教。
这边需要注意的是
UART1是P0_10 P0_11 尽量不要用
SWD是P0_0 P0_1 这个也尽量不要用
设计思路(用板子的哪些模块实现了什么功能)显示屏
显示我用了SPI模块,用的是oled模块,是一个ssd1306的比较常见的点阵显示屏,0.96英寸的12864OLED显示屏
这颗屏幕我用的是SPI通信,GUI我选择使用u8g2来显示,这个在github上有开源的工程可以直接拿来用。
时间
时间我采用的是软件RTC,因为我这边上了RTTHREAD系统,所有采用软件RTC比较方便,只能每秒记录时间,因为暂时没有和手机或者以太网通信的工具,所以这边时间并不是实时的。
计步器
计步器我采用的是一颗陀螺仪LSM6DSOX,可以测量加速度的传感器,这颗传感器用的是IIC接口,读取出来X,Y,Z的值之后,根据加速度来滤波判断计步器的步数。
系统
这边我采用的是RTTHREAD操作系统,这款操作系统最大的特色就是软件包,这边其实用了很多软件包,计步器读取,采用了Sensor框架,读取数据非常简单,当然不得不说这个还是有一定的学习曲线的,上手稍微难一些,但是上手了之后,再构建项目就方便多了。当然也希望大家能够积极参与进去,看到哪些地方可以优化的,可以大胆的提交代码。