徐屹恒 丁當(dāng) 張昕楊
研究背景
目前中小學(xué)教師或課代表每天手工登記交作業(yè)情況、核查出沒(méi)有交作業(yè)的學(xué)生,耗時(shí)耗力,且容易發(fā)生差錯(cuò)而需要二次核實(shí),部分科目的作業(yè)批改后還要人工登記作業(yè)成績(jī)等。人工收作業(yè)登記效率低下常常讓教師們苦惱。發(fā)現(xiàn)這個(gè)問(wèn)題后,我們走訪了幾個(gè)小學(xué)、初中的教師,得知他們常常為找出誰(shuí)沒(méi)交作業(yè)而花費(fèi)大量時(shí)間。因此,開發(fā)一套提高作業(yè)情況登記效率和記錄分析作業(yè)成績(jī)等第的系統(tǒng)是非常有意義的。
研究思路
圖書館的圖書借還系統(tǒng)給了我們靈感,該系統(tǒng)是基于RFID技術(shù)實(shí)現(xiàn)的。每本書里都有電子標(biāo)簽,當(dāng)把圖書放置在操作臺(tái)上時(shí),RFID讀卡器便能識(shí)別一疊借/還的圖書,一兩秒時(shí)間操作屏幕上就能顯示書目列表。系統(tǒng)自動(dòng)與圖書館數(shù)據(jù)庫(kù)聯(lián)網(wǎng),實(shí)現(xiàn)圖書的借/還記錄。借鑒這個(gè)思路,我們研發(fā)了一套基于RFID技術(shù)的作業(yè)快速收評(píng)系統(tǒng),在每本作業(yè)上都貼上電子標(biāo)簽,教師收完作業(yè),把本子放在操作臺(tái)上,系統(tǒng)就能自動(dòng)讀取出哪些同學(xué)交了作業(yè),再和數(shù)據(jù)庫(kù)中學(xué)生信息比對(duì),沒(méi)交作業(yè)的學(xué)生清單便立刻顯示在屏幕上。
研究方案
為了實(shí)現(xiàn)基于RFID的作業(yè)收交,我們首先需要從RFID的工作原理、RFID的種類、RFID標(biāo)簽的價(jià)格研究項(xiàng)目的可行性。確定了基于RFID作業(yè)收評(píng)系統(tǒng)的硬件結(jié)構(gòu)、軟件功能,接著我們采購(gòu)RFID讀寫器和標(biāo)簽,研究讀寫器的功能和標(biāo)簽數(shù)據(jù)的讀寫方法,調(diào)測(cè)RFID和電腦連接的軟件代碼。硬件調(diào)試成功后,按照制定的軟件功能,設(shè)計(jì)數(shù)據(jù)庫(kù),完成客戶端、服務(wù)器端程序的編寫。
研究過(guò)程
在每個(gè)作業(yè)本上貼上有學(xué)生信息的RFID標(biāo)簽,在客戶端控制超高頻RFID讀寫模塊,同時(shí)讀取一疊作業(yè)本信息,并將讀取到的信息寫入服務(wù)器端數(shù)據(jù)庫(kù),教師還可選擇寫入作業(yè)成績(jī)功能將作業(yè)等第寫入數(shù)據(jù)庫(kù)。教師、家長(zhǎng)、學(xué)生可以訪問(wèn)服務(wù)器端,獲取未交作業(yè)學(xué)生名單、作業(yè)評(píng)分等信息。系統(tǒng)的數(shù)據(jù)庫(kù)采用廣泛用于嵌入式設(shè)備的輕量型數(shù)據(jù)庫(kù)SQLite,客戶端和服務(wù)器端軟件都采用Python語(yǔ)言進(jìn)行編程。
圖1為系統(tǒng)軟件功能及實(shí)現(xiàn)方法的思維導(dǎo)圖。通過(guò)此圖,我們明確了收作業(yè)客戶端、Web查詢客戶端和服務(wù)器數(shù)據(jù)庫(kù)的功能和相互之間的關(guān)系,明確了系統(tǒng)需要設(shè)計(jì)的用戶界面、數(shù)據(jù)庫(kù)內(nèi)容和要實(shí)現(xiàn)的軟件功能。
RFID選型
每個(gè)作業(yè)本上都需粘貼標(biāo)簽,因此標(biāo)簽必須為無(wú)源型的而且要小,同時(shí)成本要低;另外基于作業(yè)快速收交的需求,系統(tǒng)需要使用具有高速地多重標(biāo)簽識(shí)別功能的RFID識(shí)讀器。通過(guò)查閱資料,我們采購(gòu)了超高頻RFID讀寫器UHFReader188和超高頻RFID標(biāo)簽。
外殼制作
為了保護(hù)RFID讀寫器并方便堆放作業(yè)本,我們?yōu)镽FID讀寫器制作了外殼。外殼采用椴木板,在makercase網(wǎng)站上輸入外殼尺寸生成設(shè)計(jì)圖紙,由激光切割機(jī)切割,用熱熔膠粘合成型。
RFID標(biāo)簽學(xué)生信息寫入
本系統(tǒng)設(shè)置學(xué)號(hào)為“入學(xué)年份+班級(jí)號(hào)+學(xué)號(hào)”,如20170301為2017年入學(xué)的3班1號(hào)學(xué)生。在標(biāo)簽中不設(shè)置科目信息,是為了方便標(biāo)簽重復(fù)利用。把RFID讀寫器連接到電腦串口,用讀寫器軟件設(shè)置正確串口號(hào),打開所連接的串口,然后將標(biāo)簽逐一放到RFID讀寫器上,使用RFID讀寫器自帶的軟件對(duì)標(biāo)簽編碼進(jìn)行改寫。如果電腦沒(méi)有串口,可采用串口轉(zhuǎn)USB線將讀寫器連接至電腦USB口。
RFID讀寫器串口調(diào)試
本項(xiàng)目用到的串口命令有:打開串口、向RFID讀寫器發(fā)送讀取標(biāo)簽命令、接收串口數(shù)據(jù)、關(guān)閉串口。
打開串口、接收串口數(shù)據(jù)、關(guān)閉串口
調(diào)用Python中pyserial模塊的語(yǔ)句。
·打開串口:ser=serial.Serial(ser=serial.Serial(port=comport,baudrate=57600,bytesize=8,parity='N',stopbits=1,timeout=10》。經(jīng)過(guò)測(cè)試,超時(shí)參數(shù)設(shè)為10秒能穩(wěn)定讀出32個(gè)標(biāo)簽數(shù)據(jù)。
·接收數(shù)據(jù):ser.read(20480)。20480表示緩沖區(qū)字節(jié)數(shù)。
·關(guān)閉串口:ser.close()
向讀寫器發(fā)送讀取標(biāo)簽的命令需按照RFID串口協(xié)議,向讀寫器發(fā)送一串十六進(jìn)制命令代碼。Python語(yǔ)句為:
d=bytearray.fromhex(06 FF 01 05 01 2F FB)
ser.write(d)
發(fā)送了詢查命令后,使用語(yǔ)句:c=ser.read(20480),將RFID讀寫器應(yīng)答的一串十六進(jìn)制數(shù)據(jù)讀到列表c,最后對(duì)讀到的串口數(shù)據(jù)c進(jìn)行解析,分離出本次讀取到的學(xué)號(hào)信息并排序。
數(shù)據(jù)庫(kù)設(shè)計(jì)
系統(tǒng)數(shù)據(jù)庫(kù)采用soLlite數(shù)據(jù)庫(kù)。它能夠支持Windows、Linux、Unix等主流操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合。系統(tǒng)的設(shè)計(jì)主要是2個(gè)數(shù)據(jù)表學(xué)生信息表(記錄學(xué)生基本信息),以及提交作業(yè)的信息表。
用戶界面設(shè)計(jì)
系統(tǒng)的用戶界面有收作業(yè)客戶端用戶界面和Web查詢客戶端用戶界面。收作業(yè)客戶端用戶界面采用Python tkinter設(shè)計(jì),使用了Menu組件、Button組件、OptionMenu組件、ListView組件等。Web查詢客戶端用戶界面采用PYthon flask實(shí)現(xiàn),F(xiàn)lask是Python中的一個(gè)微型Web開發(fā)框架。
軟件實(shí)現(xiàn)
收作業(yè)客戶端基于Windows下Python2.7+pyserrial模塊開發(fā),并采用Python內(nèi)置組件包tkinter實(shí)現(xiàn)圖形界面,實(shí)現(xiàn)串口初始化、RFID數(shù)據(jù)讀取和解析、數(shù)據(jù)顯示、數(shù)據(jù)提交、數(shù)據(jù)清除等功能。收作業(yè)客戶端將作業(yè)數(shù)據(jù)提交到soLite數(shù)據(jù)庫(kù)里。軟件流程如圖2所示。
服務(wù)器端軟件采用Python的flask框架實(shí)現(xiàn)了一個(gè)簡(jiǎn)易的WebServer,提供了單日作業(yè)統(tǒng)計(jì)、個(gè)人作業(yè)情況匯總、平時(shí)作業(yè)總評(píng)等功能。flask框架提供了webserver的基本架構(gòu),只需要增加相應(yīng)的模塊和頁(yè)面模板,即可實(shí)現(xiàn)相應(yīng)的功能。每個(gè)模塊獲取用戶的請(qǐng)求,分析需要實(shí)現(xiàn)的功能,從數(shù)據(jù)庫(kù)中取出滿足條件的數(shù)據(jù),利用模板構(gòu)造相應(yīng)的頁(yè)面,返回給客戶端瀏覽器。
研究結(jié)果
基于RFID的作業(yè)快速收評(píng)系統(tǒng)的創(chuàng)新點(diǎn)在于能快速、同時(shí)、準(zhǔn)確讀取一疊作業(yè)本信息。此功能采用了高速多重識(shí)別標(biāo)簽、性能卓越的超高頻RFID讀寫器,精心調(diào)整相關(guān)串口參數(shù),使其能穩(wěn)定可靠地同時(shí)讀人多本作業(yè)信息。
教師可在批改時(shí)將作業(yè)本根據(jù)作業(yè)等第分開擺放,最后將作業(yè)等第相同的學(xué)生信息和等第信息一起由收作業(yè)客戶端讀人數(shù)據(jù)庫(kù)。每天單個(gè)班級(jí)一項(xiàng)作業(yè)情況登記和成績(jī)等第登記的工作時(shí)長(zhǎng)由10~20分鐘縮短至1~2分鐘。
系統(tǒng)還具有自動(dòng)計(jì)算學(xué)期作業(yè)成績(jī)總評(píng)分的功能,能客觀公正評(píng)價(jià)學(xué)生的平時(shí)學(xué)習(xí)情況。另外,Web查詢頁(yè)面還提供了單個(gè)學(xué)生的某段時(shí)間內(nèi)作業(yè)情況分析功能,方便督促學(xué)生提高作業(yè)質(zhì)量。
本系統(tǒng)可以廣泛應(yīng)用于中小學(xué),將教師、課代表每日統(tǒng)計(jì)交作業(yè)情況的工作量大大降低。另外根據(jù)教育減負(fù)的要求,中小學(xué)作業(yè)成績(jī)都采用等第制,本系統(tǒng)方便將成績(jī)等第信息化,使作業(yè)等第數(shù)據(jù)具有后續(xù)分析價(jià)值。本系統(tǒng)在班級(jí)中進(jìn)行了試用,得到了教師的好評(píng),具有很好的推廣價(jià)值。
該項(xiàng)目獲得第33屆全國(guó)青少年科技創(chuàng)新大賽創(chuàng)新成果競(jìng)賽項(xiàng)目中學(xué)組工程學(xué)一等獎(jiǎng)。
專家評(píng)語(yǔ)
項(xiàng)目基于RFID技術(shù)開發(fā)了一套作業(yè)快速收評(píng)系統(tǒng),制作了相應(yīng)的實(shí)物裝置,實(shí)現(xiàn)了實(shí)時(shí)準(zhǔn)確讀入作業(yè)本信息功能,解決了學(xué)生作業(yè)收集評(píng)價(jià)效率低的問(wèn)題。項(xiàng)目源自生活,方案合理,構(gòu)思新穎,符合中學(xué)生創(chuàng)新的特點(diǎn),有較好的推廣應(yīng)用價(jià)值。建議進(jìn)一步提高系統(tǒng)的可靠性和適用性,并在學(xué)校推廣使用。