鄭文豪,錢文龍,黃河,蔡兵(通訊作者)
(湖北文理學(xué)院物理與電子工程學(xué)院,湖北襄陽,441053 )
當(dāng)代大學(xué)生因自控能力差而逃課,或者在課堂上時(shí)把玩手機(jī),導(dǎo)致其上課效果欠佳。因此,在課堂上禁止學(xué)生玩手機(jī)并對全班學(xué)生上課率進(jìn)行考勤,是十分必要的?,F(xiàn)教室雖有手機(jī)存放袋等考勤系統(tǒng),但由于學(xué)生人數(shù)較多,總會有極個(gè)別學(xué)生投機(jī)取巧不上交手機(jī)或提前早退,或頻繁出現(xiàn)上交模型機(jī)的情況,所以不能將全班每位學(xué)生的手機(jī)存放情況和上課率及時(shí)的反應(yīng)出來。為此,本文設(shè)計(jì)了一種基于工型永久磁鐵的存放手機(jī)考勤系統(tǒng)。
系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。其主要結(jié)構(gòu)由工型永久磁鐵、霍爾傳感器模塊、上位機(jī)、STM32、語音模塊、顯示模塊、讀卡模塊組成;工型永久磁鐵、霍爾傳感器模塊數(shù)量相等;MCU模塊分別與霍爾傳感器模塊、顯示模塊、語音模塊、讀卡模塊、上位機(jī)通過有線方式依次連接。系統(tǒng)主控為STM32核心板,通過讀卡模塊對學(xué)生卡進(jìn)行信息采集,通過由工型永久磁鐵構(gòu)成的霍爾傳感器模塊對模型手機(jī)進(jìn)行檢測,這些信息由MCU模塊上傳至上位機(jī),同時(shí)由顯示模塊顯示[1]。
圖1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)圖
在存放手機(jī)考勤系統(tǒng)中,MCU模塊采用STM32作為主控芯片將語音模塊、讀卡模塊、顯示模塊、霍爾傳感器模塊共同組成一個(gè)完備的硬件系統(tǒng),實(shí)現(xiàn)對存放手機(jī)的情況信息進(jìn)行采集。其中,霍爾傳感器模塊是本硬件系統(tǒng)的核心所在。以下將詳細(xì)的對這幾個(gè)模塊進(jìn)行介紹。
霍爾傳感器模塊中的集成電路IC1采用線性型霍爾集成電路UGN3501T[2],電阻R1為10k,電阻R2為5k,可調(diào)電阻RP1和可調(diào)電阻RP2都為100k,電阻R3為5k,電阻R4為5k,集成電路IC2和集成電路IC3采用LM339比較器, 集成電路IC2的同相端選用LM339的7腳,集成電路IC2的反相端選用LM339的6腳,集成電路IC2的輸出端為LM339的1腳,集成電路IC3的同相端選用LM339的5腳,集成電路IC3的反相端選用LM339的4腳,集成電路IC3的輸出端為LM339的2腳,集成電路IC4采用CD4066開關(guān)電路,集成電路IC4的輸入端選用CD4066的1端,集成電路IC4的輸出端選用CD4066的2端,集成電路IC4的控制端選 用CD4066的13端,CD4066的輸入端1端接地。其硬件連接圖如圖2所示。
圖2 霍爾傳感器模塊具體集成電路連接圖
由于模型手機(jī)的含鐵量比真機(jī)的含鐵量高,導(dǎo)致施加于霍爾集成電路UGN3501T的磁場強(qiáng)度不同[3],從而通過IC2、IC3比較器識別出來。
讀卡模塊的芯片采用RC522芯片,三極管T1為9012,R5為1kΩ,語音模塊由三極管T1、電阻R5和揚(yáng)聲器BY組成。其硬件連接圖如圖3所示。
圖3 STM32F103V8T6與RC522電路具體連接圖
圖3中的STM32F103V8T6的PB12、PB13、PB14、PB15、PC7端分別與RC522的SDE、D5、D7、D6、/RST端相連。讀卡模塊中的RC522與STM32F103V8T6之間的通信采用SPI模式,RC522的EA端硬件接高電平,RC522的I2C端硬件接低電平,讀卡模塊采用市售的讀卡模塊。STM32F103V8T6的PE1端與語音模塊連接。在學(xué)生刷卡后,RC522讀取學(xué)生卡中的學(xué)生信息(如學(xué)生姓名、學(xué)號和班級等信息),并送到STM32F103V8T6中保存。不管是先存放手機(jī)后刷卡,還是先刷卡后存放手機(jī),只要在2分鐘的軟件定時(shí)器定時(shí)過程中完成刷卡并存放手機(jī),經(jīng)程序運(yùn)算后,使STM32F103V8T6的PE1端輸出一個(gè)低電平,三極管T1導(dǎo)通,揚(yáng)聲器發(fā)出“滴滴”聲,表明刷卡考勤成功。只要在2分鐘的軟件定時(shí)器定時(shí)過程中沒有完成刷卡并存放手機(jī),經(jīng)程序運(yùn)算后,使STM32F103V8T6的PE1端輸出一個(gè)高電平時(shí),三極管T1不導(dǎo)通,揚(yáng)聲器不發(fā)出“滴滴”聲,表明刷卡考勤不成功[4]。
顯示模塊的芯片采用LCD12864芯片,可調(diào)電位器RP3為100kΩ。其硬件連接圖如圖4所示。
圖4 STM32F103V8T6與LCD12864電路具體連接圖
圖2給出了MCU模塊中的STM32F103V8T6的PB5、PB6、PB7、PE8、PE9、PE10、PE11、PE12、PE13、PE14和PE15端 分 別 與LCD12864的 第4、5、6、7、8、9、10、11、12、13和14引腳的具體電路連接。通過電位器RP3調(diào)節(jié)LCD12864第3管腳電位來改變屏幕亮度,LCD12864的第15引腳直接硬件接+VCC,選擇并行方式[5]。在STM32F103V8T6接收排盒的手機(jī)存放總數(shù)后,通過STM32F103V8T6的PE8、PE9、PE10、PE11、PE12、PE13、PE14和PE15端 送 到LCD12864顯 示。STM32F103V8T6會將每堂課的全班每位學(xué)生手機(jī)存放情況和刷卡考勤信息數(shù)據(jù)打包,及時(shí)通過PA9、PA10端上傳到上位機(jī)中的教學(xué)管理系統(tǒng)平臺。
本系統(tǒng)所使用的STM32F1系列常用的開發(fā)工具主流為主要為IAR EWARM和Keil MDK,這兩者都為基于ARM7、ARM9、Cortex-R4、Cortex-M處理器的設(shè)備提供了一個(gè)完整的開發(fā)環(huán)境。但考慮到學(xué)習(xí)的簡易程度以及使用的方便性,本設(shè)計(jì)采用專為微控制器應(yīng)用而設(shè)計(jì)的Keil MDK作為軟件的開發(fā)調(diào)試環(huán)境。
本系統(tǒng)除使用STM32F103V8T6外,還使用了較多外設(shè),因此軟件設(shè)計(jì)采用模塊化設(shè)計(jì),能使程序更加簡潔明了,主要包含主程序、顯示子程序、中斷子程序、射頻控制子程序等。以下簡要說明系統(tǒng)主程序以及顯示子程序[6]。
主程序流程圖主要分為三部分,分別為“存”、“取”、“復(fù)位”,對應(yīng)手機(jī)存放柜的三個(gè)按鍵。系統(tǒng)上電之后各模塊進(jìn)入初始化,通過按鍵即可進(jìn)入“存”、“取”、“復(fù)位”三個(gè)操作之一。系統(tǒng)主程序流程圖如圖5所示。
顯示子程序的作用主要是根據(jù)單片機(jī)的指令按照需求將要顯示的內(nèi)容呈現(xiàn)在液晶顯示屏上。為避免LCD12864顯示出現(xiàn)亂碼,在程序設(shè)計(jì)時(shí),首先就是初始化以及清屏,其次再接收單片機(jī)的命令,顯示出所需畫面。顯示子程序流程圖如圖6所示。
結(jié)合圖5、圖6流程圖,系統(tǒng)上電后,初始化LCD12864顯示程序,外部中斷等應(yīng)用程序后,等待判斷按鍵狀態(tài)。
圖5 主程序流程圖
圖6 子程序流程圖
在教室上課前10分鐘,學(xué)生通過按下“存”手機(jī)按鍵的同時(shí),將自己的學(xué)生卡放在刷卡區(qū),讀卡模塊讀取學(xué)生卡中的學(xué)生信息后,將學(xué)生信息送到MCU模塊并保存,對應(yīng)柜門開啟,即可存放手機(jī),接著學(xué)生將自己的手機(jī)放進(jìn)手機(jī)存放盒里并關(guān)閉柜門,手機(jī)存放盒上的霍爾傳感器模塊檢測到真機(jī)存放后,輸出一個(gè)高電平給MCU模塊進(jìn)行處理,MCU模塊控制語音模塊使其發(fā)出“滴滴”二聲,表明學(xué)生刷卡考勤成功,同時(shí)將學(xué)生信息上傳到上位機(jī)中的教學(xué)管理系統(tǒng)平臺,這時(shí)顯示模塊顯示出柜體中的手機(jī)存放總數(shù)。在此過程中,每存放一只手機(jī),顯示模塊顯示的手機(jī)存放總數(shù)增加一個(gè)1。
在上述存放手機(jī)過程中,如果學(xué)生只存放手機(jī)而不刷學(xué)生卡(即沒有讀取學(xué)生信息),或者只刷學(xué)生卡而不存放手機(jī)或存放為模型機(jī)(即沒有檢測到一個(gè)上升沿),則經(jīng)MCU模塊不會把學(xué)生信息上傳到上位機(jī)中的教學(xué)管理系統(tǒng)平臺。此時(shí)語音模塊也不發(fā)出“滴滴”二聲,表明學(xué)生刷卡考勤不成功。若用NFC手機(jī)讀取學(xué)生卡中的學(xué)生信息(如姓名、學(xué)號等),且NFC手機(jī)被設(shè)置成卡模擬模式。這時(shí),NFC手機(jī)能替代學(xué)生卡在刷卡區(qū)刷卡考勤[7]。
學(xué)生在將手機(jī)存放在手機(jī)存放盒完畢后,如果在其后,比如在第一節(jié)和第二節(jié)課之間的10分鐘休息期間需要取出手機(jī),學(xué)生需按下“取”按鍵并再次刷卡進(jìn)行信息對比,成功后可將手機(jī)從手機(jī)存放盒中取出。每取出一只手機(jī),顯示模塊顯示的手機(jī)存放總數(shù)減少一個(gè)1。與此同時(shí),MCU模塊中的程序會進(jìn)行8分鐘的軟件定時(shí)。若在定時(shí)時(shí)間內(nèi)學(xué)生還沒有將手機(jī)放回手機(jī)存放盒,所述MCU模塊控制所述語音模塊不斷發(fā)出報(bào)警提示音,迫使這位學(xué)生將手機(jī)再次存放于手機(jī)存放盒里。
下課后,任課老師按下“復(fù)位”鍵,系統(tǒng)會將本次課程考勤的所有數(shù)據(jù)清除同時(shí)打開所有柜門,顯示屏上手機(jī)存放數(shù)清零。等待學(xué)生全部取出手機(jī)后,利用鎖具關(guān)閉柜體的有機(jī)玻璃門,等待對下一個(gè)班級學(xué)生的考勤。
該系統(tǒng)設(shè)計(jì)主要利用性能較為強(qiáng)大的STM32單片機(jī)對讀卡信息和霍爾傳感器的電平信息進(jìn)行處理,采用工型永久磁鐵識別模型手機(jī),通過控制蜂鳴器提醒學(xué)生上交手機(jī),最后利用顯示屏把主要信息進(jìn)行智能化顯示。因此擁有較強(qiáng)的實(shí)用價(jià)值。該系統(tǒng)擁有完備的功能,具有實(shí)用性和高可靠性,特別是在對模型機(jī)的監(jiān)控上,擁有獨(dú)創(chuàng)的技術(shù)方法,在信息化教育領(lǐng)域中,具備一定的市場前景。在當(dāng)今的社會形勢下,此系統(tǒng)將會極大提高學(xué)生們的課程學(xué)習(xí)效率,最終使學(xué)生們都能為今后的社會開拓屬于自己的一番領(lǐng)域。