<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于MSPM0G3507的非接觸門(mén)禁控制系統

基于MSPM0G3507的非接觸門(mén)禁控制系統

作者:lulugl 時(shí)間:2025-01-20 來(lái)源:EEPW 收藏

1   項目簡(jiǎn)介

本文引用地址:http://dyxdggzs.com/article/202501/466478.htm

在一些特殊的場(chǎng)所,比如傳染病病房、手術(shù)室等需要嚴格區分污染區與非污染區的場(chǎng)景,對于非接觸來(lái)替換一些按鍵等,就非常有意義。本項目是通過(guò)手勢傳感器來(lái)控制隔離門(mén)禁的案例。

控制端在正常接收到門(mén)禁端的狀態(tài)信息后,獲門(mén)禁位置信息,同步顯示到OLED 屏上。當手勢傳感器捕捉到指定動(dòng)作后,通過(guò)CAN 總線(xiàn)發(fā)送手勢指令。

門(mén)禁端在啟動(dòng)后執行自檢,將起點(diǎn)到終點(diǎn)的位置檢測好,并把運行一次的時(shí)間打包通過(guò)CAN 總結發(fā)送出來(lái)。門(mén)禁端在接收到指令后,與本身的位置相結合,執行相應的指令。通過(guò)PWM 來(lái)產(chǎn)生指定頻率的脈沖驅動(dòng)步進(jìn)電機,通過(guò)DIR 高低電平設置來(lái)改變電機運行方向,通過(guò)滑臺來(lái)實(shí)現門(mén)禁的打開(kāi)與關(guān)閉功能。

實(shí)現功能,手勢向上,關(guān)閉門(mén)禁,手勢向下,打開(kāi)門(mén)禁,手勢下壓,急停。

2   硬件結構圖

1737348244363568.png

1.1 Bom表(寫(xiě)明器件型號);

image.png

1.2 軟件開(kāi)發(fā):

【開(kāi)發(fā)平臺】

Code Composer Studio Version: 12.7.0.00007

【外設的配置】

本項目主要的外設由IIC、PWM、CAN 來(lái)驅動(dòng)。

1.1.1 IIC 的配置

配置為1M 的速率,同時(shí)開(kāi)啟收接中斷,配置發(fā)送與接收的緩沖區。

1737349319860761.png

1.1.2 PWM的配置

選擇pwm0,以及通道0 為輸出,配置輸出1KHz的輸出波形,占空比50%。

配置輸出的IO為PB0

1737349419733440.png

1.1.3 CAN的配置

配置仲裁速率為250K,數據傳輸速率為2M。

1737349454208931.png

選擇RX為PA13,TX為PA12

1737349495484449.png

保存后生成工程。

【公共代碼】

CAN發(fā)送與接收代碼

1.CAN接收中斷函數的實(shí)現:

image.png

代碼中如果有CAN 的數據接收,則更新接收標志

gServiceInt。

在主循環(huán)中判斷接收接收標志位,如果為真則調用數據處理函數

image.png

image.png

在數據處理函數中,如果是門(mén)禁端,則判斷是否為命令的ID,如果是則根據命令設置電機運行方向:

image.png

image.png

在控制端則對接收的ID 進(jìn)行判斷,并進(jìn)行數據解析:

image.png

image.png

CAN發(fā)送:

在進(jìn)入主循環(huán)中,先對CAN的數據進(jìn)行初始化:

image.png

image.png

【PWM】

在pwm代碼方面只需要啟動(dòng)或者關(guān)閉定時(shí)器就行了。

image.png

image.png

【IIC 驅動(dòng)】

在工程中添加i2c 的驅動(dòng)封裝i2c_app.c/h

1737349808208842.png

這個(gè)驅動(dòng)封裝了讀寫(xiě)兩個(gè)驅動(dòng),可實(shí)現與硬件低層的解耦。具體代碼見(jiàn)附件。

1737349838768886.png

【OLED】

使用公有的OLED 驅動(dòng)庫,只需要封裝OLED_WR_Byte 即可實(shí)現驅動(dòng)的移植。

image.png

手勢傳感器有現成的驅動(dòng)庫,我這里只需要添加iic的讀寫(xiě)驅動(dòng)即可。

【PAJ7620 手勢傳感器】

PAJ7620 移植驅動(dòng),與OLED 一樣也只需要重寫(xiě)讀寫(xiě)函數即可以完成驅動(dòng)的移植

image.png

image.png

以上是主要代碼的介紹。

【程序流程圖】

門(mén)禁端

image.png

控制端

1737350048469611.png

3   項目總結

本項目主要是在利用Ti 的G3507 這顆優(yōu)秀的MCU 來(lái)實(shí)現特殊環(huán)境下的無(wú)接觸的門(mén)禁控制,可以實(shí)現多點(diǎn)對一點(diǎn)控制,一對多的數據交互。

整個(gè)項目的亮點(diǎn)就是G3507 擁有80M 主頻, 搭載了FDCAN 高速總線(xiàn), 可以輕松實(shí)現多個(gè)MCU 的組網(wǎng),相比傳感的485 的總線(xiàn)組網(wǎng)有質(zhì)的提升,FDCAN 總線(xiàn)可以實(shí)現多對多的組網(wǎng)。同時(shí)這個(gè)MCU還有高速的IIC 總線(xiàn),可以實(shí)現一路IIC 驅動(dòng)多個(gè)如OLED、PAJ7620 的外設。

同時(shí)使用了G3507 的PWM 外設,可以精準的驅動(dòng)步進(jìn)電機。實(shí)現如門(mén)禁等電機控制場(chǎng)景。

(本文來(lái)源于《EEPW》



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>