• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

【RT-Thread作品秀】基于深度學(xué)習(xí)的機(jī)器故障智能檢測設(shè)備

2020/12/14
597
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

代碼地址.txt

共2個文件

基于深度學(xué)習(xí)的機(jī)器故障智能檢測設(shè)備

作者:徐華

應(yīng)用背景

  在智能制造時代,隨著工廠設(shè)備自動化程度不斷越高,設(shè)備的預(yù)測性維護(hù)工作在生產(chǎn)中起著越來越重要的作用。預(yù)測性維護(hù)技術(shù)是未來智慧工廠重要構(gòu)成部分,通過部署各種傳感器,采集工廠設(shè)備各種運(yùn)行狀態(tài)數(shù)據(jù),研究檢測數(shù)據(jù)分析、預(yù)測算法微型化實現(xiàn),快速便捷的對工業(yè)設(shè)備健康狀況進(jìn)行檢測,在設(shè)備健康狀況發(fā)生惡化之前做出合理的維護(hù)決策,消除設(shè)備的安全隱患。

實現(xiàn)功能

  本項目基于RT-Thread、STM32開發(fā)板(NUCLEO-H743ZI2做了演示版本,ART-Pi只驗證調(diào)試了傳感器,跑通了流程,存在模擬i2c通信效率問題)、STM32 LSM6DSOX傳感器、1.12OLED屏,SHT31溫濕度傳感器(溫濕度數(shù)據(jù)暫時未參與建模)以及按鍵和指示燈設(shè)計一個MEMS振動監(jiān)控設(shè)備。實際要求是利用檢測設(shè)備運(yùn)行狀態(tài)數(shù)據(jù)預(yù)測機(jī)器的健康狀況,但本項目只是一個原型設(shè)計,驗證MCU采集傳感器數(shù)據(jù),并驗證運(yùn)行CNN學(xué)習(xí)模型離線預(yù)測的可行性,最終預(yù)測結(jié)果輸出到OLED屏。

RT-Thread 使用情況概述

本項目功能基于RT-Thread開發(fā),由于使用了Tensorflow,采用C/C++混合編程。NUCLEO-H743ZI2ART-Pi開發(fā)板分別基于KEIL MDKRT-Thread Studio開發(fā)。I2C分別采用了STM32HAL庫(H743)和RT-Thread  GPIO軟件模擬(H750)調(diào)試開發(fā)。

硬件框架說明

NUCLEO-H743ZI2開發(fā)板,傳感器OLED屏幕接I2C2_SDAI2C2_SCL。BUTTONPD_1, 指示燈接PD_0。引腳對照如下:

ART-Pi開發(fā)板,傳感器及OLED屏幕接PH11PH12BUTTONPH14, 指示燈接PC7。

軟件框架說明

程序大體工作流程如下:

 

軟件模塊說明

NUCLEO-H743ZI2開發(fā)板軟件:

Source目錄:Tensorflow Lite for Micro相關(guān)代碼,收集傳感器數(shù)據(jù),基于訓(xùn)練的模型預(yù)測傳感器狀態(tài),并在OLED上顯示結(jié)果;

Applications目錄:main.c主程序,其中增加了RT-Thread shell commands用于測試和調(diào)試。Sht31_sensor命令用于讀取溫濕度傳感器值,實際暫時未參與建模和預(yù)測;sh1107g_oled命令為OLED顯示測試命令;collect命令采集各狀態(tài)傳感器數(shù)據(jù),輸出到PC側(cè),整理標(biāo)注后用于建模。Check命令為采集預(yù)測功能。主程序啟動后,屏幕上顯示提示信息,按button,開始運(yùn)行。

Sensors:分別為LSM6DSOXSHT31,OLED驅(qū)動程序。

首先以RT-Thread shell commands形式,調(diào)試用到的各個外圍設(shè)備。其中collect命令調(diào)試LSM6DSOX,并采集數(shù)據(jù)用于建模,采集的數(shù)據(jù)歸為四類,在PC上構(gòu)建CNN并訓(xùn)練模型,并保存模型文件。

通過xxd -i my_model.tflite > my_model_.cc命令,把模型文件轉(zhuǎn)為數(shù)組形式。

Tensorflow相關(guān)代碼用C++寫,直接編譯可能報如下錯誤,需要調(diào)整ARM Compile,以及不勾選Use MicroLIB。

ART-Pi開發(fā)板軟件:

NUCLEO-H743ZI2基本類似,最大區(qū)別是Tensorflow Lite是通過RT-Thread Settings添加的,i2cgpio軟件模擬的。檢測識別代碼放于下圖紅色標(biāo)注處。

作品完整圖片

視頻演示效果 

  首先是復(fù)位狀態(tài),屏幕上顯示

Measuring System

Test for RT-Thread

Test for Tensorflow Lite Micro

Press button to start or stop

button,開始運(yùn)行,屏幕顯示預(yù)測狀態(tài)。

調(diào)整傳感器狀態(tài),MCU依據(jù)訓(xùn)練好的深度學(xué)習(xí)模型進(jìn)行預(yù)測,屏幕上結(jié)果也跟著變化。

串口工具顯示預(yù)測過程日志信息。

 

 

寫在最后:

      

     首先感謝活動的組織者。作品只是一個原型設(shè)計,跑通了基本流程。算法沒有優(yōu)化。同時在ART-Pi上模擬I2C還在存在通信效率問題,還在優(yōu)化。最后再次感謝組織者??!

  • 代碼地址.txt
    下載
    描述:代碼地址
  • RTThread.docx
    下載

相關(guān)推薦