安小芯 发表于 2022-4-21 17:53

基于RT-Thread和N32G457的电机振动检测仪

本帖最后由 安小芯 于 2022-4-21 18:09 编辑

基于RT-Thread和N32G457的电机振动检测仪
作品出处:RT-Thread
作者:潘大伟

[*]一、背景
[*]电机是各行业重要的动力设备,但是如果电机产生故障会严重影响生产,因此有必要对电机故障进行预判,及时采取措施。
[*]电机发生异常时,电机会产生不同的振动信号,因此通过对电机振动情况的检测可以了解电机运行情况。本项目基于RT-Thread Nano操作系统和国民技术开发板开发了一套电机振动检测装置,对电机故障进行诊断,
[*]二、硬件框架
[*]本装置硬件包括N32G457开发板、振动传感器、组态屏。硬件框图如图所示。
https://oss-club.rt-thread.org/uploads/20220116/d51b5d65cd73551ed1c4f3cd005c02f2.jpg
[*]图1 硬件框图
[*]振动传感器黏贴于电动机表面,将电动机的振动情况转换为模拟量送至单片机的PC2口,单片机对模拟量进行AD转换,转换为数字量,连续采集完1024个数字量后,对其进行FFT变换,并将转后的结果显示于组态屏,通过组态屏的显示结果了解振动情况,以帮助工作人员对电机故障进行判断。
[*]三、软件框架
[*]本软件采用RT-Thread Nano操作系统,共共有三个线程,一个中断,软件框架如下图所示。
https://oss-club.rt-thread.org/uploads/20220116/4fb83b157fb226b576e22528668bca4a.jpg
[*]图2 软件框图
[*]1、led_thread。该线程控制一LED定时闪烁,表明系统的工作状态。
[*]2、sample_start_thread。该线程用来启动定时器2,实现每隔2.5秒对电机的振动量进行检测。
[*]3、analysis_thread。该线程用来对采样数据进行分析,并将分析结果上传至组态屏。该线程在接收到信号量后才开始执行。
[*]4、TIM2中断。该定时器中断的定时时间为1/1024s,每次中断采集一个AD至,采集完1024个数据后,发出信号量,启动analysis_thread进行数据分析。
[*]5、AD采样程序。该程序将PC2口设置为AD口,并通过DMA将AD转换结果直接存放于变量。
[*]6、FFT程序。为便于计算,直接采用ARM DSP库中的实数FFT程序。
[*]四、运行
[*]程序完成实际运行时,发现使用的12V直流电机振动太小,振动模块根本无法检测出数据,因此为了保正该项目的完成性,在程序中添加了一些随机数据产生代码,用来代替AD转换的结果。由于是随机数,一次FFT的输出不是那么美观。组态屏显示横轴是频率值,纵轴表示不同频率点数据的对比。
https://oss-club.rt-thread.org/uploads/20220116/787d41893a4ae75f490056b3b0a384b6.jpg.webp
图3 电路图
https://oss-club.rt-thread.org/uploads/20220116/7f66da42bda9810cce94c7335d601624.jpg.webp
图4 开发板
https://oss-club.rt-thread.org/uploads/20220116/a1f76a7fcb591043d80ebbd4424ce400.jpg.webp
图5 电机振动检测模块
https://oss-club.rt-thread.org/uploads/20220116/c22c06687c0df46a511542ebd22603a1.jpg.webp
图6 显示模块
代码地址:GITEE
视频地址:Bilibili
页: [1]
查看完整版本: 基于RT-Thread和N32G457的电机振动检测仪