基于面向STM32Cube的功能包设计过程

发布时间:2023-06-19  

FP-AI-MONITOR1是一种多传感器AI数据监控框架(基于面向STM32Cube的功能包),工作于无线工业节点。针对由X-CUBE-AI(面向STM32Cube的扩展包)或NanoEdge AI Studio设计的传感器监测型应用,它有助于快速启动应用的实现和开发。从数据集获取到物理节点上的集成,它涵盖了机器学习周期的整个设计过程。


FP-AI-MONITOR1能在SensorTile无线工业节点开发套件(STEVAL-STWINKT1B)上实时运行学习和推理会话,同时将来自板载传感器的数据作为输入。FP-AI-MONITOR1通过有线交互CLI来配置节点,并使用NanoEdge AI库管理学习、检测和分类阶段。此外,它还支持一种称为双阶段的高级模式,能将来自NanoEdge AI库的检测和使用CNN模型的分类相结合。对于简单的现场操作,独立的电池供电模式也允许用户在不借助控制台的情况下,通过用户按钮进行基本控制。


硬件和软件概述

SensorTile无线工业节点评估套件STEVAL-STWINKT1B

SensorTile无线工业节点(STEVAL-STWINKT1B)是一种开发套件和参考设计,可简化先进工业物联网应用(如状态监测和预测性维护)的原型开发和测试。它由超低功耗Arm Cortex-M4 MCU(运行频率120 MHz,具有FPU和2048-Kb Flash存储器(STM32L4R9))供电。STEVAL-STWINKT1B配备microSD卡插槽,用于独立式数据记录应用。STEVAL-STWINKT1B还配有广泛的物联网传感器,包括但不限于:

✦超宽带宽(高达6 kHz)、低噪声、3轴数字振动传感器(IIS3DWB)。

✦6轴数字加速度计和陀螺仪iNEMO惯性测量单元(IMU),带机器学习内核(ISM330DHCX),以及模拟MEMS麦克风,频率响应可达80 kHz(IMP23ABSU)。

✦参考本文档获取关于STEVAL-STWINKT1B支持的不同传感器和特性的所有信息。

FP-AI-MONITOR1软件描述

FP-AI-MONITOR1功能包的顶层架构如下图所示。

b3913ab2-3f8b-11ed-9e49-dac502259ad0.png

▲图1 FP-AI-MONITOR1架构

先决条件和设置

硬件先决条件和设置

如要将FP-AI-MONITOR1功能包用在STEVAL-STWINKT1B上,需准备以下硬件项目:

✦STEVAL-STWINKT1B开发套件板;

✦采用Windows操作系统的笔记本电脑/台式机(Windows 7、8、或10);

✦两根Micro-USB线缆(一根将传感器板连接到PC, 另一根用于STLINK-V3MINI),以及一个STLINK-V3MINI。

软件要求

✦下载FP-AI-MONITOR1软件包,将.zip文件解压,您将得到项目的软件包。软件包中包含面向传感器板STEVAL-STWINKT1B的二进制文件和源代码。

✦安装以下IDE之一:

意法半导体的STM32CubeIDE版本 1.9.0;

面向Arm(EWARM)工具链(版本9.20.1或更高版本)的IAR Embedded Workbench;

RealView微控制器开发套件(MDK-ARM)工具链(版本5.32)。

✦STM32CubeProgrammer(STM32CubeProg)是一款用于编程STM32产品的全功能多操作系统软件工具。它通过调试接口(JTAG和SWD)和bootloader接口(UART、USB DFU、I2C、SPI和CAN)提供了一个易用高效的环境,用于读取、写入和验证设备内存。STM32CubeProgrammer提供了广泛的功能,可编程STM32内部存储器(如Flash存储器、RAM和OTP)以及外部存储器。FP-AI-MONITOR1通过STM32CubeProgrammer测试基于(版本2.10.0)。该软件可以从STM32CubeProg下载。

✦TeraTerm是一款开源免费软件终端仿真器,可用于通过串行连接托管FP-AI-MONITOR1的CLI。下载和安装最新版本的TeraTerm。

✦STM32CubeMX:FP-AI-MONITOR1要求STM32CubeMX版本达到6.5.0。如需下载STM32CubeMX并获取所有特性的详细信息,请访问st.com。

✦X-CUBE-AI:在STM32CubeMX工具(版本7.1.0或更新的版本)安装使用,在UM2526入门用户手册中有相关的介绍。

✦Python 3.7.3:所需软件包的列表及其版本信息以文本文件的形式在/FP-AI-MONITOR1_V2.0.0/Utilities/requirements.txt目录中提供。以下指令用于anaconda提示符或Ubuntu的指令终端,安装配置文件requirements.txt中指定的所有包:


pip install -r requirements.txt


✦NanoEdge AI Studio:NanoEdge AI Studio是一种新型机器学习(ML)技术,可以让终端用户轻松享有真正的创新成果。只需几步,开发人员便可运用少量的数据创建理想的ML库。

在传感器板STEVAL-STWINKT1B上刷写应用程序

下载并解压软件包之后,下一步是使用功能包的二进制文件对传感器节点进行编程。为了方便用户,功能包配备了预构建的项目二进制文件。该二进制文件可通过路径/FP-AI-MONITOR1_V2.0.0/Projects/STM32L4R9ZI-STWIN/Applications/FP-AI-MONITOR1/Binary/FP-AI-MONITOR1.bin获得。只需执行如下图中所示的拖放操作,就可以轻松使用所提供的二进制文件对传感器板进行编程。

b3d7dd00-3f8b-11ed-9e49-dac502259ad0.png

▲图2 在STEVAL-STWINKT1B上刷写应用程序

FP-AI-MONITOR1控制台应用程序

设置控制台

运用项目的二进制文件对传感器板进行编程(如第2.3节中所示)之后,在PC上通过TeraTerm设置板件的串行连接。为此,需启动TeraTerm并创建一个新连接 - 从工具栏中进行选择,或选择适当的端口以建立与板件的串行通信。下面的图片举例了COM10 - USB串行设备(COM 10),但可能根据用户的不同而变化。

配置传感器

通过CLI接口,用户可以配置传感和状态监测应用所支持的传感器。可以在CLI控制台上显示支持的传感器列表,方法是输入指令sensor_info。该指令打印支持的传感器列表及其id,如下图所示。用户可以使用这些id配置这些传感器。这些传感器的可配置选项包括:

✦enable:启用或禁用传感器;

✦ODR:从可用的选项列表中设置传感器的输出数据速率;

✦FS:从可用选项列表中设置满量程范围。

下图显示了获取和设置这些值(以及原有值和更改值)的完整示例。

b4135952-3f8b-11ed-9e49-dac502259ad0.png

b4644132-3f8b-11ed-9e49-dac502259ad0.png

连接建立之后,将显示以下消息。如果情况并非如此,请复位板件。

b4807f6e-3f8b-11ed-9e49-dac502259ad0.png

输入help显示所有可用指令列表及各自的使用说明。

按钮操作模式

该模式旨在使用户能够再没有CLI控制台的情况下操作STWIN上的FP-AI-MONITOR1。在按钮操作模式下,可以通过用户按钮(无需借助交互式CLI控制台)来控制传感器节点。

按钮操作模式可以自行选择是否使用CLI,并且与串口控制台及其命令行接口(CLI)的当前定义完全兼容和一致。

该版本功能包的支持硬件(STEVAL-STWINKT1B)配有三个按钮:

1.用户按钮,唯一通过软件可用的按钮;

2.复位按钮,连接到STM32 MCU复位引脚;

3.电源按钮,连接到电源管理

以及三个LED

1.LED_1(绿色),由软件控制;

2.LED_2(橙色),由软件控制;

3.LED_C(红色),由软件控制,指示通过USB数据线充电时的充电状态。

因此,按钮操作的基本用户交互是通过两个按钮(用户和复位)和两个LED(绿色和橙色)完成的。下面详细介绍如何分配这些资源,以便向用户显示哪些执行阶段是活动的,或者报告传感器节点的状态。

可用应用程序

✦NanoEdge AI异常检测短线

✦n-class分类短线

FP-AI-MONITOR1包括一些预先集成的短线,这些短线可轻松被NanoEdge AI Studio所生成和提供的AI状态监测库所替代。该短线模拟NanoEdge AI相关功能,例如在边缘运行学习和检测阶段。

✦惯性数据分类

这是一个CLI应用程序,具有预先构建的人类活动识别模型。

✦双模式应用程序

除了上面章节中描述的三个应用程序之外,FP-AI-MONITOR1还提供一个高级执行阶段,我们称之为双应用程序模式。该模式使用基于NanoEdge AI库的异常检测,并使用基于模拟麦克风的预构建ANN模型进行分类。双模式工作于省电配置。基于NanoEdge AI库的低功耗异常检测算法始终基于振动数据运行,而基于高频模拟麦克风管道的ANN分类仅在检测到异常时才触发。除此之外,两个应用程序是彼此独立的。值得一提的是,双模式是针对以最高速度运行的USB风扇而创建的,在其他速度下进行测试时的表现较差。应用程序的工作原理非常简单。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    ();//按键检测  } } 如果理解了这些,那么面向对象的精髓你基本已经掌握了,接下来就是不断地去练习和实践了。 三、为什么要面向对象? 我们知道,现有的编程范式主要是:面向过程编程、面向......
    雷达水位计怎么调试水位;雷达水位计是具有水面波动滤波处理的地表水水位测量产品。可以连续准确地测量 雷达液位计的探头与介质表面无接触宽范围的输入电压,专门设计于野外露天的场工作,雷达......
    制造工艺必然存在的,在这段时间,三极管是工作在放大区,是最容易受到干扰。因此需要接个下拉电阻R2,这个电阻一是给三极管提供了个放电回路,二是为点A提供一个能量分散的通路。 放电回路怎么理解? 如下图,三极......
    了深入分析和探讨。包括选型的过程。 案例2: 某个物联网项目的需求跟踪表 2、硬件总体设计报告 硬件总体设计报告是根据需求说明书的要求进行总体设计后出的报告,它是硬件详细设 计的依据。编写硬件总体设计......
    、STM32,用C++编写流水灯程序的一些内容。1、为什么很少用C++开发单片机不知道大家对面向过程和面向对象的理解有多少?C语言面向过程的语言,C++是面向对象的编程语言。结合本文来说,面向过程相比面向......
    基于第三种方式实现程序的PLC顺序控制;一、问题引出 PLC程序经常会遇到程序按照12345的方式一步步顺序控制,这种情况我们叫做顺序控制,也比较符合PLC面向过程的控制模式。 在以......
    模式为导向的ASPICE软件过程域,从客户需求、系统架构、软件需求、软件架构、软件详细设计、单元构建到测试验证之间都存在一致性与双向追溯性关系,从最初的系统需求分析开始,测试人员就参与进行对应验证标准的设计,将设计......
    式液位计的“沉筒距”此参数用户必须了解,该参数与介质密度有关,根据浮力原理,浮子组件的长度与介质密度有关,故在选用、设计时必须考虑不同的介质有不同的详细   磁性浮子液位计怎么调整液位   磁性......
    讲讲基于Keil、STM32,用C++编写流水灯程序的一些内容。 1 为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言是面向过程的语言,C++是面向对象的编程语言。结合......
    、STM32,用C++编程点亮LED,给初学者提供一下思路。 为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言是面向过程的语言,C++是面向对象的编程语言。结合......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>