加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

【RT-Thread作品秀】車載環(huán)境參數(shù)采集終端

2020/12/22
550
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數(shù)字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
方塊圖(3)
  • 方案介紹
  • 相關文件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

概述

車載環(huán)境參數(shù)采集終端基于STM32H750 系列芯片(RT-ART-PI開發(fā)板)開發(fā),支持采集多種環(huán)境參數(shù),包括車內溫度,濕度,氣壓,噪音,有毒有害氣體,車輛震動沖擊加速度等。本地通過串口與 PC 端通訊,上位機實時顯示并存儲數(shù)據(jù)。該系統(tǒng)適用于記錄車輛的行駛車況及車內的環(huán)境參數(shù)等。

開發(fā)環(huán)境

硬件:STM32H750-RT-ART-Pi開發(fā)板

擴展板:博士BME280溫濕度氣壓三合一傳感器擴展板、ADI ADXL375擴展板、精訊暢通CO、NH3有害氣體模組、噪聲板卡等。

RT-Thread版本:RT-Thread V 4.0.2

開發(fā)工具及版本:RT-Thread-Studio

RT-Thread使用情況概述

內核部分:調度器,信號量,線程,中斷,設備。

調度器:創(chuàng)建多個線程來實現(xiàn)不同的工作。

信號量:用來同步線程和資源分配。

SPI框架:使用 SPI 框架來驅動ADXL375。

I2C框架:使用 I2C 框架來驅動BME280。

串口驅動框架:使用串口框架來采集CO濃度,NH3濃度和噪音分貝。

設備:使用了SPI總線,SPI設備,uart,I2C總線等。

硬件框架

軟件框架

MCU 上電之后初始化外設接口和傳感器工作參數(shù)配置,之后會持續(xù)獲取傳感器采樣值并通過串口以50Hz的速率發(fā)送數(shù)據(jù)到上位機。

軟件模塊說明

設備:

UART:  uart1、uart4

SPI:SPI2總線,SPI20設備(ADXL375)

I2C:  I2C4

PIN:GPIOI8、GPIOC15、GPIOD13、GPIOH4

線程

1、LED_Blink:  LED閃爍線程,用來指示當前系統(tǒng)的運行狀態(tài),輸出數(shù)據(jù)時藍燈閃爍,否則紅燈閃爍。

2、Print_Task:  通過串口4將采集到的數(shù)據(jù)以50Hz頻率、字符形式上傳至PC端。

3、Noise_Task:  通過串口1以5Hz的速率讀取噪音分貝。

4、NH3_Task:  通過串口1以2Hz的速率讀取NH3氣體濃度。

5、CO_Task:  通過串口1以2Hz的速率讀取CO氣體濃度。

6、BMP280_Task:  通過I2C4讀取讀取溫度、濕度、氣壓等原始數(shù)據(jù)并轉換為實際數(shù)值。

7、ADXL375_Task:  通過SPI2總線讀取加速度數(shù)值,加速度采樣頻率為3200Hz,并記錄20ms內絕對最大值。

8、button_Task:    讀取GPIOH4電平,低電平輸出數(shù)據(jù),高電平停止輸出。

信號量:

1、water_mark_sem:  ADXL375水印中斷,通過GPIOD13中斷輸入,用來同步ADXL375_Task 線程及時從器件FIFO中讀取樣本。

2、serial1_sem: 用來指示串口1可用狀況,線程CO_Task、NH3_Task、Noise_Task會先獲取此信號量,只有獲取到之后才能使用串口1,并在使用完之后釋放此信號量。此信號量用來避免串口訪問沖突。

3、serial1_tx_sem:  串口1通過中斷模式發(fā)送數(shù)據(jù),此信號指示數(shù)據(jù)發(fā)送完成。

4、serial1_rx_sem: 串口1通過中斷模式接收數(shù)據(jù),此信號指示數(shù)據(jù)接收完成。

演示效果

比賽感悟

非常感謝主辦方提供的這次契機,讓我有幸一窺當下MCU發(fā)展的主流趨勢。通過學習RT-Thread,我學到了很多很多以前從未接觸到的概念,編程思想等等,讓我對MCU編程有了全新的認識。尤其是其  對象  的概念,讓我對嵌入式編程有了全新的理解。在此之前我還在裸機,寄存器,外設,驅動包等等之間徘徊,深陷其中不能自拔。偶然有幸接觸到RT-Thread,讓我醍醐灌頂。原來還有這樣騷操作。

遙想大學還在玩51,畢業(yè)之后種種原因并未從事單片機嵌入式方向的工作。轉眼間五六年過去,去年重拾MCU,又誤入AVR mage64系列(手動狗頭)。當真正開始學習STM32系列單片機系列之后,和寄存器大眼瞪小眼,外設五花八門,標準庫,HAL庫等等資料多到眼花繚亂,各種參考資料久久不得啃下,自學之路崎嶇又坎坷。此次大賽有幸初次相識RT-thread,一見方恨晚。

時代的發(fā)展,MCU的性能也越來越強,萬物互聯(lián)的需求也愈加強烈,使用RTOS來實現(xiàn)物與網的鏈接,是時代發(fā)展的潮流。接下來的嵌入式開發(fā)里緊繞RT-Thread這顆大樹,汲取難得的養(yǎng)料。

最后感謝主辦方提供了這么好的一個平臺,不僅能展示自我,也能學到很多知識,還要感謝論壇上那些解決我問題以及制作軟件包的大佬,希望有朝一日我也能給開源社區(qū)貢獻一份自己力量。

  • RT-Thread_ENV0.2.zip
  • 代碼地址.txt
  • 車載環(huán)境參數(shù)采集終端設計說明.docx

相關推薦

電子產業(yè)圖譜