基於Jupyter 編寫數位化實驗的交互式教材

2021-02-23 蘑菇雲創造
關於「用Python驅動開源硬體」系列更多內容請查看:

張敬雲 江蘇省鎮江高級中學

隨著開源硬體的廣泛應用和不斷發展,其與實驗教學深度融合,開展數位化實驗教學變得更加容易。因為除了計算機,只要再給學生一些通用的傳感器、主板,他們便能利用信息化手段、數位化設備自由地創造性地完成一些實驗項目,而不再只是單純地利用配套的資源重複教材中的實驗。目前,高中信息技術教材選擇的程式語言是Python語言,那麼如何開展利用Python給開源硬體編程進行數位化實驗的教學呢?Jupyter的應用給我們提供了一種新的思路。筆者認為,基於Jupyter來編寫數位化實驗的交互式教材進行教學大可一試。

Jupyter這個名字是它要服務的Julia、Python和R三種語言的縮寫,但目前能使用的語言Jupyter 都支持。Jupyter全稱為Jupyter Notebook。它是一款免費、開源的交互式Web工具,它能夠讓用戶將軟體代碼、運行結果、說明文本和多媒體資源組合在一個易於共享的文檔中。換句話說,Jupy ter Notebook是以網頁的形式打開,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示。

用Jupyter Notebook進行教學的主要優勢如下:

①集各功能於一體,適合實驗數據分析。Jupyter  Notebook能將所有需要處理的程序、呈現的內容收歸一處,還支持導出HTML、Markdown、PDF等多種格式的文檔。

②交互式展現。頁面結構是以Cell形式組織的,每個Cell都是獨立的單元,能夠實現文字、圖像、表格、程序代碼等混排格式。在交互式插件的支持下,它還可以呈現一些互動的可視化內容,如縮放的地圖或者旋轉的三維模型等。

基於Jupyter編寫的單擺測重力加速度的實驗案例

1.實驗說明

單擺測重力加速度是高中階段的物理實驗,該實驗對掌握單擺測周期等物理知識有重要的意義。傳統物理實驗需要藉助秒表工具,並通過手動計數以及手動計算來完成,不僅費時費力,而且存在一定的人為誤差。因此,筆者利用Arduino和周邊的電子模塊,製作一個自動化的單擺測重力加速度的實驗裝置,使用這款裝置,無需手動計數及計算便可通過計算機及時得到所需數據。

2.實驗目的

學會利用開源硬體及周邊電子模塊自製實驗裝置,配合單擺測重力加速度;培養學生實踐動手能力。

3.實驗原理

單擺在擺角小於5度的震動是簡諧運動,其固有周期T=2π√L/g, 根據這個公式可以換算出g=4π2L/ T2。可見,測出單擺的擺長L和周期T,就可以求出重力加速度。

4.實驗方案設計

使用Arduino配合單擺測重力加速度的設計並不複雜。最主要的是讓學生在理解單擺實驗原理的基礎上,確定使用何種傳感器檢測小球,從而開始自動計時及記錄單擺擺動的次數。綜合考慮實驗目的及課堂時間,筆者設計了如下表所示的實驗方案。

5.硬體搭建

紅外數字避障傳感器也稱紅外接近開關,是一種集發射與接收於一體的光電開關傳感器。傳感器在接收到信號後,會引起後側指示燈的亮滅。這款傳感器背面有一個電位器,可以根據需要調節障礙的檢測距離。當探頭前方無障礙時, 紅外數字避障傳感器輸出高電平, 有障礙時則相反。

硬體搭建的實物圖略,接線圖如下圖所示,本實驗將紅外數字避障傳感器接在了8號數字針腳。

6.編寫程序

程序編寫需解決兩個問題:一是要記錄單擺來回擺動的次數和時間;二是根據檢測到的次數和時間計算單擺的周期,從而計算重力加速度的值並輸出。由於單擺剛開始擺動時不是很穩定,所以有必要略過前幾次擺動的次數及時間,這裡筆者從單擺擺動的第三次開始計時和計數。測出需要的擺動次數和時間後,就可用總時間除以總次數求出單擺的周期,進而計算重力加速度的值。需要注意的是,每次傳感器檢測到小球經過最低點時, 是經過了半個周期,因此,在計算單擺周期時,需將次數除以2,具體程序掃描下方二維碼。(擺長=擺線長+小球半徑,本實驗擺長L設為1米)。

7.效果測試

運 行 程 序,等待 計 算 機與Arduino通過串口完成通信連接。然後釋放小球,待紅外避障傳感器第63次檢測到小球時,周期及重力加速度的值便自動輸出,本次實驗測試的結果約為9.8與實際數值完全一樣,運行結果掃描下方二維碼。

設計物理、化學、生物等學科的實驗項目很多,拿物理學科來講,可以利用紅外避障傳感器測單擺周期及重力加速度,利用聲音傳感器探究噪聲的波形,利用光線傳感器探究不同物質的透光性能等。利用開源軟體和開源硬體中的各類傳感器進行實驗教學,不僅加強了學生實驗探究和工程實踐的結合,同時也激發了學生的創造性思維,提升了學生數位化學習能力和科學素養。這是進行數位化實驗教學的一種新的嘗試,本文主要對物理實驗做了研究,我們期待更多不同學科的教師能夠參與其中。

參考文獻:

[1]劉徵,郭君紅.探究Jupyter Notebook編程工具在項目式學習中的應用[J].教育科技應用,2020(07):29-33.

[2]吳建惠,黃凱宇.基於arduino開源項目的自主開發物理數位化實驗室[J].中學物理,2017(10):29-31.

本文來源:《中國信息技術教育》

相關焦點

  • 如何部署Jupyter Notebook用於交互式Python開發?
    Jupyter Notebook相當於一種交互式計算環境,以便開發人員編寫筆記本文檔,這類文檔含有實時Python 3代碼、交互式窗口組件、圖形、敘述性文本、方程式、圖像和視頻等。可以將其視為開發項目的數字剪貼簿,還讓您可以從Web瀏覽器裡面運行Python 3代碼。
  • Jupyter Notebook介紹、安裝及配置教程
    Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種程式語言。Jupyter Notebook 的本質是一個 Web 應用程式,便於創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和 markdown。用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等。二、組成部分1.
  • Jupyterlab:超強的下一代Jupyter Notebook
    5、增強的Notebook功能Jupyterlab 不是Notebook格式的重新實現,而是一個基於所有現有架構之上的新前端。這種新的前端,使得我們可以實現在經典Notebook中無法實現的功能。7、交互式計算Jupyter的真正強大之處,在於它支持交互式計算,尤其對於數據科學非常有用。為輸出創建新視圖我將使用官方Jupyter Github頁面中的 Lorenz微分方程Notebook。運行幾個單元格後,我們將交互式Lorenz atrractor 作為輸出。但是當我們有一個交互式輸出時,必須向上和向下滾動才能查看相關代碼。
  • jupyter notebook 一個編程交互式的記事本
    好奇計算機語言,近期想學一些東西,想要留下一些記錄什麼的供自己以後翻閱,想想還是將每日所操作的記錄下來:在利用python進行大數據分析一書中看到了jupyter這個工具,就照著做了,感覺還可以可以代替繼承的開發環境,對於感興趣的來說新奇有夠用
  • Jupyter/IPython筆記本集合 !(附大量資源連結)-上篇
    交互式曲線擬合,該lmfit軟體包為SciPy中的曲線擬合算法提供基於小部件的界面。交互式曲線擬合https://nbviewer.jupyter.org/gist/danielballan/1c2db3d4f2f7780cf52fJeff Thompson 撰寫的為分布式計算提供Python Spark API的可視指南。
  • jupyter notebook在線平臺和教程
    jupyter logo很多同學都在了解學習python過程中,都聽過jupyter和jupyter notebook的大名,但默認的python安裝是不包含jupyter的,因此很多人還不了解jupyter是幹什麼用的
  • 15個應該掌握的Jupyter Notebook 使用技巧
    Jupyter Notebook是一個基於瀏覽器的交互式編程環境(REPL, read eval print loop),它主要構建在IPython等開源庫上,允許我們在瀏覽器上運行交互式python代碼。並且有許多有趣的插件和神奇的命令,大大增強了python的編程體驗。1.
  • 好用到飛起的12個jupyter lab插件
    1 簡介  jupyter lab作為jupyter notebook的升級改造版,除了更加人性化的交互界面以及更多的用戶自主定製功能之外,最吸引人的就是其豐富多樣的拓展插件,使得每個使用jupyter lab的人都可以按照自己所需挑選安裝插件
  • Python學習|Anaconda、Jupyter Notebook、pycharm安裝使用詳解
    Jupyter Notebook 是基於網頁的用於交互計算的應用程式,可被應用於開發、文檔編寫、運行代碼和展示結果。可以直接在網頁頁面中編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示,如在編程過程中需要編寫說明文檔,可在同一個頁面中直接編寫,便於作及時的說明和解釋。將Spyder恢復默認設置Spyder
  • 入門 | 始於Jupyter Notebooks:一份全面的初學者實用指南
    使用神奇的功能不只限於 Python——在 Jupyter Notebooks 中使用 R、Julia 和 JavaScriptJupyter Notebooks 中的交互式儀錶盤——何樂不為?鍵盤快捷鍵——節省時間且更有生產力!
  • 入門|始於Jupyter Notebooks:一份全面的初學者實用指南
    #For Python3pip3 install jupyter你可以在這裡查看官方的 Jupyter 安裝文檔:https://jupyter.readthedocs.io/en/latest/install.html開始上手!
  • 數字教材在數位化教學中的應用策略研究
    通過查閱文獻資料可以發現,國內最早的數字教材由人教社於2001年左右研發,數字教材的發展先後經歷了靜態數字教材、多媒體數字教材、交互式數字教材等多種類型。教育出版行業圍繞數字教材的定義和內涵進行了深入探討,但由於數字教材的內容、形式和功能等隨著教育教學和信息技術的發展也在不斷變化和發展,所以一直以來都沒有形成得到普遍認可的數字教材的統一定義。
  • 用Jupyter Notebooks隱藏優勢打開新世界大門
    ;& jupyter contrib nbextension install#incase you get permission errors on MacOS,pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install –user
  • Python安裝Jupyter Notebook配置使用教程
    Jupyter Notebook是什麼Jupyter Notebook是一個開源的web應用程式,一個交互式筆記本,支持運行 40 多種程式語言。它允許您創建和共享文檔,包含代碼,方程,可視化和敘事文本。用途包括:數據清洗和轉換,數值模擬,統計建模、數據可視化、機器學習等等。
  • Jupyter Notebook——也許你總在使用她,但也許你從未嘗試過去了解她?
    Jupyter Notebook(曾被稱為:IPython notebook),可以將其簡單理解為由IPython 和 Notebook組成的一個集成架構,是一個介於IDE(Pycharm, Spider等)以及Editor(Sublime text, Atom, VScode, txt記事本)之間的交互式筆記本或web應用程式。
  • 讓學生編寫教材靠譜嗎?
    學生是協助教材編寫的最佳人選2015年,普利茅斯州立大學跨學科研究教授羅賓・德羅薩與學生一起編寫了一本有關美國早期文學的開放式教科書。她這麼做的初衷很簡單,就是希望讓學生節省大約85美元的課本費。當有人質疑讓剛剛開始學習課程內容的學生參與編寫課程教材是否妥當時,德羅薩認為學生恰恰是協助開展這項工作的最佳人選。因為教科書是為學生提供的,他們是某個特定學術領域的新學者,可以敏銳地覺察到其他學生需要教材提供哪些內容。
  • 「多元交互式」課堂教學評價系統
    「多元交互式」課堂教學評價是基於證據採集的行動研究,即依據定量與定性相結合的觀察表,獲取表現性行為數據與信息,對偏差性教學行為,建立以人為本的「評估-指導-塑造-再評估」循環跟進式行為矯正路徑(如圖1),從行為評估、行為指導、行為重塑等三個維度構建矯正策略,其中「評估」是基於課堂觀察進行診斷與分析,「指導」是基於行為標準制定改進方案,「塑造」是基於課堂實踐施行刺激與強化。
  • Jupyter Notebooks嵌入Excel並使用Python替代VBA宏
    使用pip安裝pyxll-jupyter包:  >> pip install pyxll-jupyter  一旦安裝了PyXLL Excel加載項和PyXLL-Jupyter軟體包後,啟動Excel將在PyXLL選項卡中看到一個新的「 Jupyter」按鈕。
  • 姚泰:我們當年是怎樣編寫教材的?
    這對於我這樣一個青年助教來說,真是一次極其難得的學習機會,我不僅學到了很多新的知識,更重要的是學習和領會了教授們對待科學的嚴謹態度和編寫教材的嚴肅認真的作風。上世紀八十年代中期,我第一次得到參加編寫教材的機會。那時張鏡如教授接到主編全國統編教材《生理學》(第三版)的任務。他讓我參加編寫了書中的一章。
  • 藏文教材編寫中的幾點思考
    為進一步推進課程改革,教育部於2011年7月啟動了義務教育課程標準實驗教材的修訂工作。修訂義務教育課程標準實驗教材,是落實教育規劃綱要精神、進一步推進課程改革的迫切需要。藏文教材編寫是建設有民族特色、符合少數民族地區文化特點的編輯工作,是應對日益激烈的社會競爭、迎接未來挑戰的需要。現今大部分藏文教材編寫是由出版社發起的,整個編寫過程需要做大量的組織、溝通、協調。