FUNPACK第九期任务一传感器检测
SENSORTILE.BOX传感器任务一检测,通过algobuilder来编程,完成不同面的检测
标签
嵌入式系统
飞跃1989
更新2021-06-17
626

 

简介

本人是Thomas,参加了FUNPACK第九期的活动,这次活动是一个STM32的传感器开发板。

本项目实现了一个类似于骰子的功能,一个长方体的小盒子,根据不同面朝上,实现不同的功能,例如

FosDlEMNhOEpsZAjzVWKTttEec5C

  • 面1,测量桌面倾斜程度;

  • 面2,测量温度;

  • 面3,测量湿度;

  • 面4,测量气压;

根据直播老师的指导,直播地址

任务思路解析

根据直播老师指导,这个STM32有很多种编程方式,有

  • 手机APK编程ble sensor

  • AlgoBuilder 编程

  • CUBEMX编程

  • 裸机编程

本来本人尝试了使用手机APK编程,但是发现无法细化到某个面朝上的编程,所以决定官方应该建议使用AlgoBuilder 来编程。学习了下algoBuilder里面的example

发现图形化编程很方便,

主要功能

方向判断

参考example中的例程,可以得出以下功能框图

Fge4c6YiJrQSvSU62fYmdpLsEzLq

首先从sensor hub中获取重力加速度的x,y,z轴的值, Demux可以理解为拆分,把Acceleration的值拆分成3个x,y,z 参考的代码

Accelero_Sensor_GetData(Sensor_Hub_1_out, Acceleration_g_1_data);
Demux_3_float(Acceleration_g_1_data, Demux_Float_1_out1, Demux_Float_1_out2, Demux_Float_1_out3);
接着从这3个浮点数的正负值,可以判断出6个不同的面,而这个值的范围基本是

例如x,y 平面水平的时候,z轴的绝对值趋向于1,我们可以选择大于某个角度,

如何根据角度算出某个常量呢?

Input_Value_Float_1_out[0] = 50;
Input_Value_Init(Input_Value_Float_1_out, &display_info_list[3]);
Dec_To_Rad_1_out[0] = (3.14159265f * Input_Value_Float_1_out[0]) / 180.0f;
Sin_1_out[0] = sinf(Dec_To_Rad_1_out[0]);

根据输入的角度不同,可以得出不同的值,这边我用的是50度,角速度约等于0.766

这边可以用如下所示的value值打印出来

FsBS4q0a3WJudRKbHi7eLNs2mlnB

然后根据不同的正负值,大于小于符号,判断出6个面

FqYop_hiv_dJLUGA7WgKHr0XWsYB

接着还是可以用Mux来合并为一个数组,用value来显示,这样可以方便来调试数据的正确性。

数值判断

接着根据每个面的对应的垂直的x,y,z的值来判断当前哪一个面朝上,用一个switch,如果朝上则用value2如果不朝上,则选择输出值为0.

Fm24MRshXsmQYhi6104gc7cxNbIA

最后将值合并Mux到value上

倾斜角度判断

倾斜角度的判断,根据Tilt Sensing模块,可以获取当前的倾斜角度,最后通过Angle Level来转换

FqoAUZPN4unfefZPPI1BcUnNiXI_

Fn73yb0DZYzmH5Vc5pWZ41DPzdIw

 

同时,为了方便显示,可以用一个四元组来显示当前的状态

Fs2XUM5tLTnnF-5xVafpOLjW5DQd

FnPg7dRfID4PmEA6wdkoKbFErv84

 

最后演示结果显示

面1:测量桌面倾斜程度

FtYHTLwWipv9tB6Ak6dX0y1WKoXL

面2: 测量温度

Fgljs8bj_LeOnV9bbqDolqnsP_y7

面3: 测量湿度

Fjzlb96MmRIoVxUK-fhf0CUXlAZj

面4: 测量大气压

FpoGwF3cWPaTqdUOkM_7AxMwp4kv

 

本活动的心得体会

这次活动实在是太好了,之前的STM32图形化CUBEMX编程已经让我体会到STM32的强大,现在通过各种STM32的生态,了解到STM32的传感器的MEMS的生态的强大。从此,传感器的编程再也不会枯燥化了。可以让工程师更加专注于上层应用的构建,和产品的debug调试。这次任务学到的东西非常多。

 

附件下载
SensorTile.box-Project.hex
可以执行hex文件
project.xml
工程文件
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号