林鵬程
(廈門理工學(xué)院 繼續(xù)教育學(xué)院,福建 廈門 361005)
智慧教室是指為教學(xué)活動(dòng)提供智慧應(yīng)用服務(wù)的教室空間及其軟硬件裝備的總和[1]。物聯(lián)網(wǎng)技術(shù)的發(fā)展讓智慧教室在全國各個(gè)高校逐漸普及。作為技術(shù)與教育相結(jié)合的產(chǎn)物,智慧教室不僅僅是教師教授知識(shí)的場所,更是教師探索新方式、完成課程改革的重要手段。全國各學(xué)校也紛紛圍繞智慧教室展開了一系列改革,甚至將智慧教室所提供的技術(shù)完全融入到課堂當(dāng)中。因此,建設(shè)智慧教室,實(shí)現(xiàn)智能化教學(xué)、智能化管理、智能化學(xué)習(xí)是每所學(xué)校都要考慮的事情。
關(guān)于智慧教室的建設(shè)已有諸多研究。王建[2]系統(tǒng)闡述了智慧教室的建設(shè)原則與目標(biāo),并從體系架構(gòu)、功能模塊設(shè)計(jì)、技術(shù)實(shí)現(xiàn)3 個(gè)層面展開論述;程敏[3]在智慧教室中加入了智能控制和管理、顯示系統(tǒng)、分組協(xié)作互動(dòng)、課程錄播、遠(yuǎn)程教學(xué)、學(xué)習(xí)資源、數(shù)據(jù)存儲(chǔ)、AI 系統(tǒng)、VR 系統(tǒng)和課堂支持等,以應(yīng)對不同的教學(xué)模式;陳志華[4]采用ZigBee、RFID 技術(shù),結(jié)合各種傳感器開發(fā)了一套智慧教室控制管理系統(tǒng),實(shí)現(xiàn)了信息化、智能化、集成化管理。盧志翠同樣采用ZigBee 技術(shù)實(shí)現(xiàn)智慧教室多網(wǎng)絡(luò)節(jié)點(diǎn)的感知與控制,并且使用PID 控制算法來保持智慧教室的環(huán)境參數(shù);孟秉恒[5]、侯恩碩[6]則是在智慧教室中引入手勢識(shí)別、腦電設(shè)備以滿足各自對智慧教室應(yīng)用場景的需求。
智慧教室朝著豐富的應(yīng)用方向發(fā)展,但隨之而來的是復(fù)雜的操作流程以及臃腫的硬件設(shè)施。針對該問題,設(shè)計(jì)了一套基于STM32 控制板與Python、Window 客戶端相結(jié)合的高度集成的智慧教室系統(tǒng)[7-8]。
圖1 所示為系統(tǒng)框架。計(jì)算機(jī)是距離教師最近的設(shè)備,也是本系統(tǒng)的核心機(jī)器之一。計(jì)算機(jī)首先需要連接路由器(或者交換機(jī))并獲取IP 地址才能與因特網(wǎng)連接;其次,電腦也是控制智慧教室內(nèi)設(shè)備的主要控制端,在該系統(tǒng)中,電腦需經(jīng)過一塊控制卡間接與設(shè)備相連,控制卡與講臺(tái)計(jì)算機(jī)間采用串口通信??刂瓶ㄍㄟ^各種接口連接至智慧教室的常見終端設(shè)備。智慧教室中常見的終端設(shè)備,如投影儀、幕布、音響、有線及無線麥克風(fēng)、功率放大器、燈以及用于投屏的多臺(tái)電視機(jī)構(gòu)成的矩陣電視。終端設(shè)備需要220 V 交流電供電,系統(tǒng)采用6 路繼電器分別控制設(shè)備的電源。此外,有的設(shè)備還需要額外的控制線,比如,投影儀需要RS 232 控制線;電視需要紅外發(fā)射器控制電視;燈光除可以通過命令來控制外,系統(tǒng)還設(shè)置了實(shí)體按鍵控制。
該系統(tǒng)包含了一塊STM32 控制卡,根據(jù)系統(tǒng)框架及接口需求,STM32 控制燈光、繼電器組使用普通的GPIO 即可,紅外發(fā)射與接收器也需要2 個(gè)具有復(fù)用功能的GPIO口,另需兩個(gè)串口用來進(jìn)行通信與控制,因此系統(tǒng)選擇STM32F103RCT6 作為主控芯片。
該芯片的最小系統(tǒng)已在圖2 的硬件原理圖中給出,驅(qū)動(dòng)該芯片需由復(fù)位電路、外部晶振、啟動(dòng)模式配合。此外,為了確保芯片穩(wěn)定工作,系統(tǒng)額外增加了濾波電容電路。通信方面,系統(tǒng)采用JTAG-SW 接口燒錄程序,與外圍通信所需的串口則使用芯片提供的1 號(hào)及5 號(hào)串口;電源模塊使用AMS1117 芯片將5 V 直流電壓降壓至STM32 芯片的工作電壓3.3 V。
圖2 硬件原理
系統(tǒng)外設(shè)接口也在圖2 給出,紅外發(fā)射接收模塊用于控制智慧教室內(nèi)的矩陣電視、空調(diào)等需要遙控的設(shè)備;燈光實(shí)體按鍵用于控制教室內(nèi)的燈光,教室燈分成兩組,因此使用兩個(gè)實(shí)體按鍵;系統(tǒng)中各設(shè)備的電源采用六路繼電器控制,燈光、音響功放電源接至繼電器常閉接口,其他設(shè)備電源接至繼電器常開接口,方便平常使用[9]。
圖3 是該STM32 控制端采用的軟件流程,主要完成數(shù)據(jù)通信解析與外接設(shè)備的控制。上電后,芯片首先進(jìn)行初始化,初始化1 號(hào)UART 的波特率為115 200 bit/s,5 號(hào)串口的波特率則根據(jù)連接的投影儀型號(hào)更改,接著完成控制繼電器組、實(shí)體按鍵、紅外發(fā)射接收GPIO 口的初始化。在設(shè)置紅外發(fā)射接收GPIO 口時(shí),對定時(shí)器1 和定時(shí)器4 進(jìn)行初始化,定時(shí)器1 將用于捕獲紅外接收管接收的信號(hào),因此初始化時(shí)將其設(shè)置為上升沿捕獲;定時(shí)器4 將用于產(chǎn)生待發(fā)射信號(hào)及38 kHz 載波,因此在初始化時(shí),使用定時(shí)器4 的脈寬調(diào)制功能。
圖3 STM32 軟件主體流程
初始化完成后,程序進(jìn)入循環(huán)狀態(tài),處理按鍵及1 號(hào)串口接收的數(shù)據(jù)。當(dāng)檢測到實(shí)體按鍵開關(guān)狀態(tài)發(fā)生改變后,芯片將控制燈光的繼電器做出相應(yīng)改變;當(dāng)1 號(hào)串口接收到講臺(tái)電腦發(fā)來的數(shù)據(jù)時(shí),將解析并控制外設(shè)做出相應(yīng)的動(dòng)作。1 號(hào)串口的數(shù)據(jù)格式如圖4 所示,數(shù)據(jù)幀共占4 個(gè)字節(jié),2 個(gè)起始字節(jié),1 個(gè)結(jié)束字節(jié),有效數(shù)據(jù)1 個(gè)字節(jié)。有效數(shù)據(jù)字節(jié)中,高4 位用于標(biāo)識(shí)繼電器狀態(tài),接下來2 位用于標(biāo)識(shí)投影儀及矩陣電視的開關(guān),低2 位作為數(shù)據(jù)類型的標(biāo)識(shí)。標(biāo)識(shí)繼電器的數(shù)據(jù)位中,將第一位用于標(biāo)識(shí)燈光狀態(tài)是否發(fā)生改變,以免與實(shí)體按鍵發(fā)生沖突。矩陣電視的控制將通過紅外發(fā)射管發(fā)射的紅外信號(hào)控制,投影儀的控制將通過5 號(hào)串口根據(jù)投影儀的型號(hào)傳輸相應(yīng)代碼。以索尼投影儀為例,需將串口5 波特率設(shè)置為38 400 bit/s,當(dāng)需開機(jī)時(shí)發(fā)送代碼A9172E0000003F9A 即可。數(shù)據(jù)類型用于判斷該數(shù)據(jù)包屬于查詢數(shù)據(jù)包還是控制數(shù)據(jù)包,“00”表示查詢數(shù)據(jù)包,“01”表示控制數(shù)據(jù)包,“10”與“11”保留。
圖4 串口數(shù)據(jù)格式
根據(jù)系統(tǒng)框架,客戶端完成外設(shè)操作并與STM32 控制板通信。客戶端運(yùn)行于講臺(tái)計(jì)算機(jī)的Windows 系統(tǒng),采用Python 的Tkinter 庫設(shè)計(jì)。該系統(tǒng)使用的組件框架如圖5 所示,在一個(gè)窗口內(nèi)設(shè)計(jì)2 個(gè)LabelFrame,分別用于集成化一鍵控制和設(shè)備單獨(dú)控制。
圖5 界面組件框架
系統(tǒng)使用串口與STM32 控制板通信,故在“一鍵設(shè)置”界面中配合Label 和Button 組件以連接串口建立通信?!耙绘I上課”與“一鍵下課”為多設(shè)備同時(shí)控制按鈕,例如,當(dāng)按下“一鍵上課”按鈕,就能同時(shí)打開投影儀、燈光、電視、功放等設(shè)備。
設(shè)備狀態(tài)與設(shè)置用于顯示當(dāng)前設(shè)備的狀態(tài)并可通過按鈕控制各設(shè)備的開關(guān)。設(shè)備狀態(tài)的顯示采用TreeView 組件設(shè)計(jì)2 行6 列的表格,設(shè)備的控制則使用8 組打開、關(guān)閉的按鈕,按鈕使用Button 組件設(shè)計(jì),并關(guān)聯(lián)至串口數(shù)據(jù)生成函數(shù),最終界面如圖6 所示。
圖6 客戶端界面
圖7 是Windows 客戶端軟件的主要流程,創(chuàng)建完UI界面后即進(jìn)入循環(huán)狀態(tài)等待按鍵按下。當(dāng)按下UI 界面的“關(guān)閉”后,流程結(jié)束。若檢測到圖6 界面中的控制按鍵按下,則跳轉(zhuǎn)到按鍵綁定的響應(yīng)函數(shù),作出相應(yīng)動(dòng)作。例如,當(dāng)檢測到“一鍵上課”按鈕按下,則進(jìn)入one_begin 函數(shù)。在函數(shù)內(nèi)部將生成待發(fā)送的數(shù)據(jù)0x5D7EFD00,最后調(diào)用串口數(shù)據(jù)發(fā)送函數(shù)write_bytes 將數(shù)據(jù)發(fā)送至STM32 控制板[10]。
圖7 客戶端軟件流程
本文根據(jù)智慧教室的發(fā)展現(xiàn)狀,結(jié)合STM32 與Python技術(shù),設(shè)計(jì)了集成化的智慧教室控制系統(tǒng)。該系統(tǒng)能通過客戶端控制智慧教室內(nèi)的所有設(shè)備,硬件高度集成,操作簡單,應(yīng)用前景廣泛。