王國芳
《中小學(xué)綜合實踐活動課程指導(dǎo)綱要》的附件中提供了一個活動范例,名稱為《用計算機(jī)做科學(xué)實驗》?;顒觾?nèi)容是借助計算機(jī)程序獲取傳感器實時采集的信息,并把這些信息記錄在數(shù)據(jù)庫中,然后對數(shù)據(jù)進(jìn)行二次分析,驗證假設(shè)甚至發(fā)現(xiàn)新的規(guī)律。通過這一活動讓學(xué)生體驗大數(shù)據(jù)時代的研究方法,提高探究真實問題、發(fā)現(xiàn)新規(guī)律的能力。
計算機(jī)采集實驗數(shù)據(jù)的一般方式
科學(xué)實驗的數(shù)據(jù)采集需要借助傳感器,而現(xiàn)在絕大多數(shù)的計算機(jī)沒有傳感器的接口,一般的做法是利用具備模數(shù)轉(zhuǎn)換器(也稱A/D轉(zhuǎn)換器)功能的單片機(jī)來讀取傳感器的數(shù)值,再通過通信技術(shù)將數(shù)值傳輸?shù)接嬎銠C(jī)上。Arduino、micro:bit和掌控板等開源硬件就是中小學(xué)教學(xué)中最常用的單片機(jī)。
按照通信的方式,物聯(lián)網(wǎng)通信技術(shù)大致分為有線傳輸、短距離無線傳輸、長距離無線傳輸和傳統(tǒng)網(wǎng)絡(luò)傳輸四類。在如下表所示的通信技術(shù)中,采用USB線虛擬串行通信和Wi-Fi最為常用,如Arduino和micro:bit采用的是串行通信,而掌控板不僅支持串行通信,還支持藍(lán)牙和Wi-Fi。
不管采用的是下表中哪一種通信方式,計算機(jī)端都需要采用專業(yè)工具,或者編寫程序來讀取并存儲數(shù)據(jù),然后進(jìn)行數(shù)據(jù)的統(tǒng)計和分析。對于這些技術(shù)普通的信息技術(shù)教師來說都有點陌生,更不用說科學(xué)、數(shù)學(xué)學(xué)科的教師了。其實大可不必?fù)?dān)心,完成這類實驗還有更加簡單的實施方案,如采用藍(lán)牙鍵盤的方式。
用藍(lán)牙鍵盤方式采集實驗數(shù)據(jù)的方案分析
掌控板采用的是ESP32芯片,本來就自帶了藍(lán)牙4.0,而且能夠模擬為HID設(shè)備,如PPT遙控器、空中飛鼠等。那么,一個大膽的想法就產(chǎn)生了:既然可以將掌控板模擬為一個藍(lán)牙鍵盤或者鼠標(biāo),那能不能將傳感器的數(shù)據(jù),以鍵盤輸入的形式傳送給電腦?
答案當(dāng)然是肯定的。我們可以將借助于藍(lán)牙鍵盤方式采集數(shù)據(jù)的方式,想象成一個工作敏捷的“輸入員”一邊看傳感器數(shù)據(jù),一邊用藍(lán)牙鍵盤將其快速輸入到電腦中,工作流程如圖1所示。
這樣的做法雖然看起來有點“另類”,但優(yōu)勢卻非常明顯。
首先是通用性好。HID設(shè)備在不同操作系統(tǒng)下都是通用的,不用考慮操作系統(tǒng),不用考慮硬件的兼容問題,電腦端也不需要做任何設(shè)置,只要連接上掌控板這一藍(lán)牙設(shè)備即可。
其次是操作簡單。因為數(shù)據(jù)是以鍵盤的形式輸入,所以對數(shù)據(jù)的存儲軟件沒有任何特殊要求。如果僅僅需要記錄數(shù)據(jù)的“和”,就只需要用計算器軟件即可。當(dāng)然,對于科學(xué)實驗中的數(shù)據(jù),肯定需要保存下來,進(jìn)行詳細(xì)的統(tǒng)計,如平均值、最大值、最小值、眾數(shù)、標(biāo)準(zhǔn)差等,還要繪制如柱狀圖、折線圖之類的各種圖形。那么普通用戶只要打開Excel或者WPS軟件即可完成。
模擬藍(lán)牙鍵盤采集數(shù)據(jù)的代碼實現(xiàn)
新版本的Mind+和mPython都提供了將掌控板模擬為HID設(shè)備的語句。這里強(qiáng)烈推薦創(chuàng)客鐵熊為Mind+編寫的“ESP32藍(lán)牙鍵盤”庫。筆者以Mind+為例,編寫了一個很簡單的程序:按下B開始采集光線數(shù)據(jù),按下A鍵則停止,每隔5秒鐘采集并輸出一次數(shù)據(jù),并用回車鍵進(jìn)行換行。參考代碼如圖2所示。
將代碼下載到掌控板上,重新啟動后,電腦很快就能發(fā)現(xiàn)名稱為“handpy”的藍(lán)牙設(shè)備。連接方式、使用方法和其他藍(lán)牙鍵盤、音箱幾乎完全一致。
電腦端接收實驗數(shù)據(jù)的多種方案
當(dāng)藍(lán)牙鍵盤不斷輸入數(shù)字,并且按下回車時,電腦端應(yīng)該如何接收數(shù)據(jù)呢?方法當(dāng)然很多了,這里提供三種方案,供大家參考。
方案1:使用Excel軟件
Excel是最常見的數(shù)據(jù)統(tǒng)計工具,當(dāng)藍(lán)牙鍵盤連接上后,新建一個表格,選中“A1”單元格后按下掌控板的B鍵,每隔5秒鐘光線傳感器的數(shù)據(jù)就會自動輸入到單元格中,并會自動換行,如圖3所示。
方案2:用Mind+編程
因為Mind+中不能識別回車鍵這一動作,所以掌控板的代碼中除了輸出回車鍵外,還要輸出另一種按鍵信息,如空格、箭頭等。筆者寫了一個簡單的程序,能夠?qū)?shù)據(jù)存到列表,并且能夠?qū)崟r統(tǒng)計,如圖4所示。
方案3:用Python編程
用Python編程肯定是一個不錯的選擇,如圖5所示。如果想更加直觀一些,還可以利用Matplotlib庫進(jìn)行實時的繪圖。
結(jié)語和啟示
《用計算機(jī)做科學(xué)實驗》是一個經(jīng)典的STEM案例,涉及數(shù)據(jù)探究、傳感器、開源硬件等方面的知識,甚至可以結(jié)合物聯(lián)網(wǎng)技術(shù)做實驗數(shù)據(jù)的遠(yuǎn)程采集。本文提供了一個操作簡單且切實可行的解決方案,旨在降低技術(shù)門檻,讓更多的老師對用傳感器做科學(xué)實驗產(chǎn)生興趣。當(dāng)然,用藍(lán)牙鍵盤方式發(fā)送數(shù)據(jù)也有缺點,那就是兩次發(fā)送數(shù)據(jù)的間隔時間不能太短,不能做頻率特別快的實驗。俗話說“尺有所短,寸有所長”。我們要根據(jù)真實的實驗需求來選擇合適的技術(shù),沒有必要追求高端和新奇。