基于MSPM0G3507的非接觸門(mén)禁控制系統(tǒng)
1 項(xiàng)目簡(jiǎn)介
本文引用地址:http://www.biyoush.com/article/202501/466478.htm在一些特殊的場(chǎng)所,比如傳染病病房、手術(shù)室等需要嚴(yán)格區(qū)分污染區(qū)與非污染區(qū)的場(chǎng)景,對(duì)于非接觸來(lái)替換一些按鍵等,就非常有意義。本項(xiàng)目是通過(guò)手勢(shì)傳感器來(lái)控制隔離門(mén)禁的案例。
控制端在正常接收到門(mén)禁端的狀態(tài)信息后,獲門(mén)禁位置信息,同步顯示到OLED 屏上。當(dāng)手勢(shì)傳感器捕捉到指定動(dòng)作后,通過(guò)CAN 總線發(fā)送手勢(shì)指令。
門(mén)禁端在啟動(dòng)后執(zhí)行自檢,將起點(diǎn)到終點(diǎn)的位置檢測(cè)好,并把運(yùn)行一次的時(shí)間打包通過(guò)CAN 總結(jié)發(fā)送出來(lái)。門(mén)禁端在接收到指令后,與本身的位置相結(jié)合,執(zhí)行相應(yīng)的指令。通過(guò)PWM 來(lái)產(chǎn)生指定頻率的脈沖驅(qū)動(dòng)步進(jìn)電機(jī),通過(guò)DIR 高低電平設(shè)置來(lái)改變電機(jī)運(yùn)行方向,通過(guò)滑臺(tái)來(lái)實(shí)現(xiàn)門(mén)禁的打開(kāi)與關(guān)閉功能。
實(shí)現(xiàn)功能,手勢(shì)向上,關(guān)閉門(mén)禁,手勢(shì)向下,打開(kāi)門(mén)禁,手勢(shì)下壓,急停。
2 硬件結(jié)構(gòu)圖
1.1 Bom表(寫(xiě)明器件型號(hào));
1.2 軟件開(kāi)發(fā):
【開(kāi)發(fā)平臺(tái)】
Code Composer Studio Version: 12.7.0.00007
【外設(shè)的配置】
本項(xiàng)目主要的外設(shè)由IIC、PWM、CAN 來(lái)驅(qū)動(dòng)。
1.1.1 IIC 的配置
配置為1M 的速率,同時(shí)開(kāi)啟收接中斷,配置發(fā)送與接收的緩沖區(qū)。
1.1.2 PWM的配置
選擇pwm0,以及通道0 為輸出,配置輸出1KHz的輸出波形,占空比50%。
配置輸出的IO為PB0
1.1.3 CAN的配置
配置仲裁速率為250K,數(shù)據(jù)傳輸速率為2M。
選擇RX為PA13,TX為PA12
保存后生成工程。
【公共代碼】
CAN發(fā)送與接收代碼
1.CAN接收中斷函數(shù)的實(shí)現(xiàn):
代碼中如果有CAN 的數(shù)據(jù)接收,則更新接收標(biāo)志
gServiceInt。
在主循環(huán)中判斷接收接收標(biāo)志位,如果為真則調(diào)用數(shù)據(jù)處理函數(shù)
在數(shù)據(jù)處理函數(shù)中,如果是門(mén)禁端,則判斷是否為命令的ID,如果是則根據(jù)命令設(shè)置電機(jī)運(yùn)行方向:
在控制端則對(duì)接收的ID 進(jìn)行判斷,并進(jìn)行數(shù)據(jù)解析:
CAN發(fā)送:
在進(jìn)入主循環(huán)中,先對(duì)CAN的數(shù)據(jù)進(jìn)行初始化:
【PWM】
在pwm代碼方面只需要啟動(dòng)或者關(guān)閉定時(shí)器就行了。
【IIC 驅(qū)動(dòng)】
在工程中添加i2c 的驅(qū)動(dòng)封裝i2c_app.c/h
這個(gè)驅(qū)動(dòng)封裝了讀寫(xiě)兩個(gè)驅(qū)動(dòng),可實(shí)現(xiàn)與硬件低層的解耦。具體代碼見(jiàn)附件。
【OLED】
使用公有的OLED 驅(qū)動(dòng)庫(kù),只需要封裝OLED_WR_Byte 即可實(shí)現(xiàn)驅(qū)動(dòng)的移植。
手勢(shì)傳感器有現(xiàn)成的驅(qū)動(dòng)庫(kù),我這里只需要添加iic的讀寫(xiě)驅(qū)動(dòng)即可。
【PAJ7620 手勢(shì)傳感器】
PAJ7620 移植驅(qū)動(dòng),與OLED 一樣也只需要重寫(xiě)讀寫(xiě)函數(shù)即可以完成驅(qū)動(dòng)的移植
以上是主要代碼的介紹。
【程序流程圖】
門(mén)禁端
控制端
3 項(xiàng)目總結(jié)
本項(xiàng)目主要是在利用Ti 的MSPM0G3507 這顆優(yōu)秀的MCU 來(lái)實(shí)現(xiàn)特殊環(huán)境下的無(wú)接觸的門(mén)禁控制,可以實(shí)現(xiàn)多點(diǎn)對(duì)一點(diǎn)控制,一對(duì)多的數(shù)據(jù)交互。
整個(gè)項(xiàng)目的亮點(diǎn)就是MSPM0G3507 擁有80M 主頻, 搭載了FDCAN 高速總線, 可以輕松實(shí)現(xiàn)多個(gè)MCU 的組網(wǎng),相比傳感的485 的總線組網(wǎng)有質(zhì)的提升,F(xiàn)DCAN 總線可以實(shí)現(xiàn)多對(duì)多的組網(wǎng)。同時(shí)這個(gè)MCU還有高速的IIC 總線,可以實(shí)現(xiàn)一路IIC 驅(qū)動(dòng)多個(gè)如OLED、PAJ7620 的外設(shè)。
同時(shí)使用了MSPM0G3507 的PWM 外設(shè),可以精準(zhǔn)的驅(qū)動(dòng)步進(jìn)電機(jī)。實(shí)現(xiàn)如門(mén)禁等電機(jī)控制場(chǎng)景。
(本文來(lái)源于《EEPW》202501)
評(píng)論