謝作如 李琦



在上課過程中,要了解學生的學習掌握情況,教師通常用提問的方式,讓學生舉手反饋。但是,用舉手的方式來統計結果顯然不夠精確,而且只能用于判斷題。在一些智慧課堂中,教師常常會借助可以在線統計結果的答題系統,設計以選擇題為主的課堂練習,學生則使用平板電腦、手機之類的智能終端,及時反饋練習的結果。
因為課堂管理的問題,學生人手一臺平板電腦或者手機,對許多學校來說還很難普及,比較常見的做法是購買手持式課堂答題器。其實,利用創客空間中的開源硬件,可以自主開發一個簡單的課堂答題器,用低成本的方式實現課堂練習的實時反饋。
● 技術分析
課堂答題器是一個典型的信息系統。從原理上看,課堂答題器一般由答題終端、服務器和結果統計模塊三大部分組成。答題終端接受學生輸入的答案,并將身份標識信息和答案發送給服務器;服務器負責接收數據,處理后存入數據庫;統計結果模塊以圖示的形式呈現答題的統計結果,供教師訪問查看。系統工作流程如圖1所示。
筆者在編寫浙江教育出版社出版的教育《開源硬件項目設計》時,曾經用micro:bit設計了一個類似的課堂答題器。因為micro:bit不支持Wi-Fi,所以只能利用無線廣播技術,在服務器上增加一塊micro:bit作為信息接收機,再通過串口采集數據到數據庫,過程有點復雜。在掌控板發布后,筆者修改了代碼,直接在服務器上運行Web服務,掌控板通過Wi-Fi提交答題結果,少了一個環節,操作就簡潔多了。
用Python的Flask框架編寫一個Web服務器并不復雜。在數據庫方面,自然選擇了Python內置的Sqlite。而這個數據庫僅僅用于存儲數據,一個表(STU_ANS)、兩個字段就可以了,如下頁圖2所示。其中STU用來存儲學生標識信息,ANS存儲答案。
● 硬件搭建
因為micro:bit的輸入按鈕只有A和B,作為課堂終端總感覺捉襟見肘。為了能夠正確輸入,筆者借鑒了空調遙控器的控制方式,即用一個按鈕來循環切換答案,另一個按鈕表示確定。
當更換為掌控板后,這個問題就不復存在了:掌控板有6個觸摸鍵,可以組合出很復雜的操作。答題終端只需一塊掌控板和供電底板,不需要外接任何電子模塊。筆者在網上找了一下,發現盛思設計的掌控寶、桃李科教設計的百靈鴿等擴展板,采用的是堆疊式設計,方便手持操作和隨身攜帶,很適合作為答題終端。如圖3所示,就是加了硅膠外套的掌控寶,看起來很有產品的“質感”。
● 代碼編寫
在課堂答題器項目中,軟件設計是重點,大部分功能都需要軟件來支撐。要考慮多終端的區分,還要用友好的界面呈現答題統計結果等。
1.多終端區分的功能設計
“多終端區分”顯然是一個重要的功能需求,因為要記錄每一位學生的答題情況。實現用戶身份標識的方式很多。例如,獲取某一設備的序列號,并將序列號作為唯一標識;給設備進行編號,保證編號是不重復的,便可以作為標識;使用設備的IP地址,用IP地址作為唯一標識等。
如果使用的終端很多,采用IP地址作為唯一標識的方式比較合適,因為這樣做不需要給每一個掌控板燒錄不一樣的固件,只需要在路由器上給掌控板的MAC地址分配固定IP。而如果只有十來個終端,直接編號再刷寫固件也很方便。
2.Web服務器代碼編寫
Web服務器需要提供多個接口,每一個接口都是一個唯一的URL,如接收答題數據、返回統計結果等。返回數據采用標準的Json格式,具體規劃如下表所示。
統計結果的算法比較簡單,只要不斷累加即可,參考代碼如下頁圖5所示。
因為代碼較長,這里就不再提供具體的Python代碼。如有需要,請訪問GitHub:https://github.com/xiezuoru/xzrbook。
3.掌控板的代碼編寫
掌控板的代碼并不長,核心功能是連上Wi-Fi,然后在OLED上顯示操作提示。通過觸摸鍵更新答案,按下B鍵則提交答案到服務器。不得不說,使用MicroPython的urequests庫實現HTTP協議的網頁訪問操作非常簡單。核心代碼如下頁圖6所示。
● 產品測試
將掌控板的代碼下載到掌控板上后,開始測試這個答題系統。首先要運行Web服務,界面如下頁圖7所示。
打開掌控板的電源開關,等待數秒后,掌控板連上Wi-Fi,其OLED屏幕上會顯示操作信息。選擇答案后提交,顯示信息如下頁圖8所示。
打開瀏覽器,訪問http://127.0.0.1:8080,即可看到一個簡單的結果統計網頁,如下頁圖9所示。
為了方便教師上課管理,筆者還特意設計了一個簡單的網頁,用瀏覽器打開后,就能設置正確答案,查看答題情況,或者清除當前答題記錄,如圖10所示。
筆者曾經在一堂小規模的公開課中,使用過這個課堂答題器。無論是從性能的穩定還是使用的便捷方面去比較,它和購買的課堂答題器產品差別并不大。部分學生了解了運行原理后,還提出一些很不錯的想法,如將題目內容直接發送到掌控板上通過OLED顯示屏顯示出來,答題結束后告訴學生是否正確。當學生掌握了開源硬件的基本操作后,就多了一個能實現創意的工具。智慧校園和智慧課堂,都將成為學生發揮創意的技術實踐場,這正是我們努力的方向。