4217| 7
|
[项目] 智能哑铃 |
本帖最后由 云天 于 2023-8-20 10:28 编辑 【项目背景】 闺女开学就要升入高中了,据说衡水中学的军训很累,还有远足活动。所以这几天每天早起陪闺女晨跑,孩儿她妈还给买了哑铃,哑铃是每个5KG,孩子觉得锻炼起来还可以,但她妈觉得有些重,不适合闺女。又买了更小的3KG,大的就给我了。我微微一笑,“造”起来。 【项目设计】 设计原则:不能太影响哑铃原有重量,不影响活动过程,不影响存放。 设计原理:使用哑铃锻炼过程中,哑铃上升下降,运动速度会有快慢变化即产生加速度变化,可由加速度传感器测得。 硬件选择:主板使用micro:bit,Micro:bit板载加速度传感器。 【设计亮点】 1.使用X轴、Y轴向量和的模来判断运动状态 2.使用指数移动平均(EMA)滤波算法 3.使用二进制点阵进行计数 【制作过程】 1、方案一,将Micro:bit固定在正面。 编写程序,获取三轴加速度值 在Excel中处理,并使用图表进行分析 可发现,运动过程中,Z轴加速度有明显变化。通过程序分析Z轴加速度值,可得运行状态。但同时,也发现,这样放置主控板,不利于存放(有可能放下时朝下压坏)。 2.方案二,将Micro:bit固定在侧面。 经数据分析发现,主控板如上图朝向运动时,Y轴加速度值变化明显。 经数据分析发现,主控板如上图朝向运动时,X轴加速度值变化明显。 3.矢量和的模 当主控板安装在侧面时,运动时,只有Z轴加速度值变化不明显。当主控板在侧面朝向不同时,运动时,xy两轴的数据是不确定的,但是二者矢量和的模却是有规律的(其实真正的加速度被正交分解了)。 4.(EMA)滤波 记第i个时间单位获取到的加速度的二个矢量和的模大小为xi,为了使数据更加平滑,分别使用两次的指数滤波(EMA)。 其中a i 是拟合曲线,b i均值,因此Δ h = a i − b i 即波峰波谷的高度差,得到Δ h后再跟设置好的阈值比较。 Δ h>highLimit 往高 Δ h<lowLimit 往低 p1=0.5 p2=0.002 highLimit=300 lowLimit=-300 上图是带入这些参数得到的曲线,我们可以看到经过p1参数的滤波得到的曲线(红色),已经大致拟合原数据(蓝色),而经过p2 参数得到的曲线(绿色)大致为均值 5.记录个数 通过上图与实际运动情况对比分析,两个大波峰这间的小波峰是运动到最上时平行回拉的过程,此波峰可通过设定的阈值忽略掉。此时,只需要判断一个上升接一个下降,就可将计数器加1。具体程序如下: 6.使用二进制点阵显示计数 使用Micro:bit点阵屏最中间一行,使用二进制方式亮灯显示计数。因只有五位,所以最大可显示计数31。如要显示更大的计数,可将其它点阵灯利用上。 (显示计数9) 【演示视频】 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed