月份彙整: 2017 年 2 月

VPhysics試教-物理教與學

VPhysics課程,看見物理 

已開發30堂課程模組,持續開發中,若有超連結失效,請來信告知   歡迎來信洽談演講、出版事宜:wthwth@gs.cgsh.tc.edu.tw     Updated: 202003

2020物聯探實達,上課時間:禮拜四早上10:00-12:00,公 開觀課,欲觀課者請先私訊,以便準備座位…活動記錄:Facebook 社團:“物聯創客探實達” 使用glowscript: https://www.glowscript.org/#/user/wthwth/folder/MyPrograms/

2018物聯探實達,上課時間:禮拜五早上 8:05-8:55 中港高中 501教室,開放公開觀課,欲觀課者請先私訊,以便準備座位…活動記錄:Facebook 社團:“物聯探實達”

聲明:部分程式,PPT改自台大物理系石明豐教授之VPhysics網頁(感謝:南港高中高慧君老師,建中等老師之特色課程提供程式碼)。程式之視覺呈現尚未優化,若有需要,請自行調整參數。

新版:http://vphysics.ntu.edu.tw/      舊版 : http://tcjd71.wixsite.com/vpython

下載,安裝 Python 2.7 與VPthon

各章簡介:

第0章VPython環境介紹,程式語言概論

第1章水平等速度運動,雙車競走

第2章等加速度運動,靜止落體

第3章三維等加速度運動

第4章力的合成與分解,向量

第5章等速率圓周,圓錐擺,單擺,複擺

第6章水平簡諧運動,鉛直簡諧運動

第7章動量

第8章彈性碰撞

第9章行星公轉

第10-14章複雜系統

0.為何要學程式設計(Why Coding)?

PPT:中港高瞻物聯網(0) VPhysics課程簡介-201807

程式設計是一種素養導向的課程,兼具探究與實作能力、創造力、問題解決能力,是適應未來工作與生活重要的高階技能。

程式設計由複雜問題的解構(destruct,將一個大問題分解成數個小問題)、分析、簡化條件、上機測試、偵錯(debug)、程式精緻化(refine)。整個過程,需要耐心、恆心、反思與自我實現。這些做研究的能力,都是很好的人格特質。

程式設計,並不是死背一堆程式碼,或是寫一堆看不懂的機器語言。善用電腦視覺化的優勢,彌補計算的不足。遇到問題,不必急著崩潰,如何上網找資源,是現代科技人必備的IQ與EQ。利用倚天劍(物理)加屠龍刀(VPython),兩把神兵,練就絕世武功(能做出,目前網路尚沒有人會做的事),才是本網頁最重要的宗旨。

發現程式設計的樂趣,是一輩子受用不盡的快樂,享受在程式設計的挑戰與成就感,就是一種取之不盡、用之不竭的智慧。

活動:好玩的遊戲 Blockly games,比賽一:一節課,誰能闖過最多關。比賽二:一學期內,誰能最快破關。

0-1 乾淨的程式碼:用兩行程式,畫一個立體球

訓練能力:快速學習,校準calibration(先確定簡單程式可執行,再進行下一步),簡單化(將程式寫到最簡),性能最佳化(執行速度最快,最節省系統資源)

如果你在大學推甄申請的面試,跟教授說,你會用”兩行程式畫一個立體球,七行程式寫一個立體動畫”,你覺得教授會有興趣看嗎?會優先錄取嗎?

from visual import *

sphere ()

VPython程式碼 0-1 用兩行畫一個立體物件

0-1-1 第一招,變換顏色

VPython 程式碼 0-1-1: 變換顏色

0-1-2 其他立體物件

VPython程式碼 0-1-2 更多立體物件

0-1-3 畫更多球,數學座標(善用POS指令)

VPython程式碼 0-1-3: 四球

0-1-4 畫更多球,需要數學幾何來定座標

VPython程式碼 0-1-4: 畫更多球,如何定座標?

0-1-5 畫一輛車子

VPython程式碼 0-1-5:畫一輛車子

0-1-6 太陽六芒星

VPython 程式碼0-1-6: 太陽六芒星

0-1-7 簡單版俄羅斯方塊

VPython 程式碼 0-1-7: 簡單版俄羅斯方塊

0-2 七行寫一個動畫

VPython程式碼0-2: 七行寫一個動畫程式

VPython程式碼 0-2-1: 讓他停下來

0-2-2 四球等速

VPython程式碼 0-2-2: 四球等速

0-3 用箭頭畫x,y,z軸

VPython程式碼 0-3: x,y,z axis

0-4 偵錯 debug: 

訓練能力:挫折容忍,自我反思,邏輯

程式設計的Coding入門,必須要減少打字的錯誤,不然程式沒辦法執行。抓到打字錯誤,也是一種挑戰與樂趣。先不要用copy paste,自己動手key in這個短程式,看看能不能畫出正確的圖形?

from visual import *

scene = display(title=’1′, width=800, height=800, x=0, y=0, center=(0,0.06,0), background=(0.5,0.6,0.5))
floor = box(pos=(0,-(0.005)/2,0), length=0.3, height=0.005, width=0.1)

萬一打字好幾次都有錯誤,也不必太氣餒,直接copy paste也是可以。即便在台積電這樣大的科技公司,從廠商提供的Python,改寫成工作所需的程式,也是一項成就與貢獻。請記住:要建立自己在職場上的不可取代性,21世紀,學程式語言可能比學英語更重要。

延伸參考Youtube影片:怎麼樣成為一個高手

1.物體的一維等速運動 [基本架構、while]

訓練能力:迴圈判斷,運動學基本觀念(位置,速度,加速度)

等速度運動,是最簡單的運動。但也是最基礎的運動學三要素,位置、速度、加速度的入門體驗。

VPython程式碼1: 一維等速度

PPT: 中港高瞻物聯網-VPhysics(1)一維等速度運動-201704

測驗-VPhysics(1)

影片-物聯百萬大學堂

Google classroom 課程代碼: 9apgxr

Google classroom作業1

 1-0 簡單等速

VPython程式碼 1-0: 簡單等速 (程式最簡)

1-1黑藍兩車競走

有趣的雙車競走,圖中兩車,哪一台速度快?這個程式,只需要用到等速度運動的程式即可。學程式設計,最重要的,不是寫出很長的程式碼,而是~~”創意”。

VPython程式碼 1-1: 雙車競走

VPython程式碼 1-1:雙車競走(解答版)

1-1-1 雙車競走,改成等加會怎樣?

VPython程式碼 1-1-1: 雙車競走(等加版)

1-2 四角巡航

VPython程式碼 1-2: 四角巡航

1-3 十車,彩色

VPython 1-3: ten colorful cars

1-4作業:

1-4-1 改寫程式(1)將box改成球、(2)變成四球爆炸 (3)變成四cone爆炸,

先不要看解答,想不出來,再參考:將box改成球,四球爆炸,四CONE爆炸參考解答

若參考解答,仿照解答再寫一個程式

2.物體的一維等加速運動 [if]

會了等加速度運動,你便可以稱為動畫師了,因為模擬生活中的運動,就從等加速度運動開始。”你不需要很厲害才開始,但你要開始才會很厲害”。這個程式是球自由落下,再反彈,比較 難。2-0先練習水平等加,與單純的靜止落體

VPython程式碼2: 一維等加速度

PPT: 中港高瞻物聯網-VPhysics(2)自由落體與反彈-201704

Google classroom作業2

2-0 水平一維等加

VPython程式碼 2-0: 簡單一維等加

2-0-1水平面,速度與加速度反向

VPython程式碼 2-0-1: 水平的等加

2-0-2 停止距離=反應距離+煞車距離

開車或騎車時,整個停下來的距離,其實包括兩個部分:

(1)反應距離:從發現前方路況,到開始啟動煞車,此 運動為等速度運動,故反應距離=反應時間(大約0.2秒)*原本車速。

(2)煞車距離:啟動煞車後,依照等加速度,直到車子停下,故煞車距離=原本車速平方/(2*煞車加速度)

VPython程式碼 2-0-2 煞車過程

2-0-3 靜止落體(未反彈)


VPython程式碼 2-0-3 靜止落體

2-1 斜面等加速度:

VPython程式碼2-1斜面等加速度

PPT:中港高瞻物聯網-VPhysics(2-1)斜面-201807

2-2斜面的平拋:

VPython程式碼 2-2 斜面的平拋

2-3 簡單平拋:

VPython程式碼 2-3: 簡單平拋

2-3-1 不同初速的平拋

VPython程式碼 2-3-1: 不同初速的平拋

2-4 知名相對運動:斜拋與靜落

VPython程式碼 2-4: 相對運動

2-5作業:改成四顆球陸續掉下再反彈    不要先偷看參考解答

影片-物聯網狂新聞

3.物體的三維運動 [畫位置時間圖,gcurve]

在物理很重要的函數圖形:x-t圖, v-t圖, a-t圖,都可以畫出來

VPython程式碼3: 三維等加速度

PPT:中港高瞻物聯網-VPhysics(3)三維運動-201704

Google classroom作業3

3-0 簡單斜拋

VPython 程式碼3-0: 簡單斜拋

3-0-1 看見斜拋的速度

VPython程式碼 3-0-1: 看見斜拋的速度

3-0-2 看見斜拋的x等速,y上拋

VPython程式碼3-0-2:看見斜拋的速度變化

3-0-3 簡單函數圖形

VPython 程式碼 3-0-3: 阻尼震盪的函數圖形 

3-0-4 簡單函數圖形 (sin)

VPython程式碼 3-0-4: 簡單函數(sin)

3-0-5 簡單函數 (sin x)

VPython 3-0-5: 簡單函數之sin x

3-1 有無空氣阻力之斜拋比較:

VPython程式碼3-1: 有無空氣阻力之斜拋比較

3-2 運動學著名的斜拋圖:

在高中運動學中,初速相同的斜拋,仰角=45度時,有最大的水平射程;互餘角的水平射程會相同。以前這些知識,你要用背的或算的,現在透過VPython的視覺化,學物理變的很有感!!

VPython程式碼 3-2: 各種角度的斜拋

3-2-1 各種角度斜拋(動量的寫法)

VPython程式碼 3-2-1:各種角度斜拋(動量寫法)

3-3 兩牆反射的平拋:

VPython程式碼 3-3: 兩牆反射的平拋

3-4 箱子內的反射:

VPython程式碼 3-4: 箱內的反射

4.力(向量)的合成 [vector、list、for]

疊加原理superposition theorem,應用向量的加成,在電磁學中,求電場、磁場也可以適用

VPython程式碼4: 力的合成

PPT:中港高瞻物聯網-VPhysics(4)力的合成-201705

Google classroom作業4

5.等速率圓周運動

在高中物理,想要證明法線加速度a=v^2/r,是很複雜而困難的。換個角度想,如果加速度與半徑平方成反比,會怎樣?與速度一次方成正比,會怎樣?

物理老師只能告訴你:軌跡一定不是圓,但是軌跡是什麼?做怎樣的運動?VPython可以告訴你,盡情嘗試吧,因為電腦會幫你畫出來,很快~~

VPython程式碼5: 等速率圓周

PPT:中港高瞻物聯網-VPhysics(5)等速率圓周運動-201707

簡易教案: 簡易教案_等速率圓周運動201707

Google classroom作業5

5-0 簡單圓周

VPython程式碼 5-0: 簡單圓周

5-0-1 用參數式來寫簡單圓周

VPython程式碼 5-0-1: 用參數式來寫簡單圓周

5-0-2 加一個Z軸初速,就成螺旋

高中物理的數學,限制在二維的平面運動,然而卻也讓學生的空間概念不足,常常只具備平面的概念,對於搬家公司疊家具,搬家具;開飛機…等需要空間概念的工作,只能靠直覺或在職訓練。有了電腦的3D立體功能,讓空間概念,比照平面概念,一樣可以用”15行程式碼”,便寫出來!

VPython程式碼 5-0-2: 螺旋

5-1 鉛直圓周(單擺):

單擺,在物理界是知名運動,即便是用算的,也不太容易”體驗”箇中變化的原理,VPython可以幫你算出,你想要得到的各種物理量,動手試試看吧

VPython程式碼5-1: 鉛直圓周(單擺)

PPT:中港高瞻物聯網-VPhysics(5-1)鉛直圓周單擺運動-201807

5-2 單擺+釘子

知名的力學能守恆實驗,用程式模擬,讓結果看得到,有趣的挑戰題

VPython程式碼 5-2: 單擺+釘子 [難題挑戰]

5-3 圓錐擺(錐動擺):

在水平面,等速率圓周運動的圓錐擺,其實,只要用單擺的程式碼,加上”適當”的初速度便可得到。從程式碼中,不只學到資訊科技,更可以印證物理

VPython程式碼 5-3 圓錐擺

5-3-1 圓錐擺變成複擺 (+vy)

VPython程式碼 5-3-1: 圓錐擺變成複擺

5-3-2 正向力的圓錐擺

VPython 程式碼 5-3-2: 正向力的圓錐擺

5-4 知名物理問題:雙星互繞

第一種寫法:運動學。雙星互繞,位置;速度;加速度與質量成反比反向,不再是冷冰冰的物理公式,從本程式可以”看得到”

VPython程式碼 5-4: 雙星互繞

5-4-1 雙星互繞第二種寫法:動力學,重力當作向心力

VPython程式碼 5-4-1:雙星互繞第二種寫法

5-5 知名物理問題:三星互繞

VPython程式碼 5-5: 三星互繞

5-5-1 四星互繞

VPython程式碼 5-5-1: 四星互繞

5-5-2 四星互繞 (3D)

空間概念的實例,讓四球互繞,變程式兩垂直面上的雙星互繞

VPython程式碼 5-5-2: 四星互繞 (3D)

5-5-3 六星互繞

VPython 程式碼 5-5-3: 六星互繞

5-5-4 六球互繞 (3D)

空間概念範例系列,六球分別在x, y, z軸互繞

VPython程式碼 5-5-4: 六球互繞 (3D)

5-6 知名物理問題:複擺之角動量守恆

VPython程式碼 5-6: 複擺之角動量守恆

6.虎克定律和簡諧運動

簡諧運動Simple Harmonic Motion是高中物理最困難的運動,卻也是量子力學模擬複雜系統,如晶格震盪Lattice vibration等,高階物理的基本題型。萬丈高樓平地起,擠身物理高手,就從簡諧運動開始

VPython程式碼6: 虎克與簡諧

PPT:中港高瞻物聯網-VPhysics(6)簡諧運動-201707

Google classroom作業6

6-0 雙球簡諧

VPython程式碼 6-0: 雙球簡諧

6-1 鉛直簡諧:

鉛直簡諧的力學能守恆,包含:動能+重力位能+彈力位能,是力學最難算的題型,從這個模擬程式,讓這些計算,都變成體驗的經驗值,輕輕鬆鬆,練成神功~~

VPython程式碼6-1: 鉛直簡諧

PPT:中港高瞻物聯網-VPhysics(6-1)鉛直簡諧運動-201807

6-1-0 倒立的鉛直簡諧

VPython程式碼 6-1-0: 倒立的鉛直簡諧

6-1-1 鉛直簡諧的速度與加速度

VPython程式碼 6-1-1: 鉛直簡諧的速度與加速度

6-1-2 雙球鉛直簡諧,SHM週期和哪些變數有關?

VPython程式碼 6-1-2: 雙球鉛直簡諧

6-1-3 鉛直簡諧與彈簧波之專題 slinky

VPython程式碼 6-1-3: slinky

6-2 雙質點簡諧:

質心,真的不會動嗎?

VPython程式碼 6-2: 雙質點簡諧

7.動量 [dictionary]

VPython程式碼7: 動量守恆

PPT:中港高瞻物聯網-VPhysics(7)動量,運動慣性-201707

Google classroom 作業7

7-0 單純滾動:

VPython程式碼 7-0: 單純滾動

8.彈性碰撞 [tuple、function]

彈性碰撞,是進入工程力學重要的基礎,透過本程式,完全心領神會

VPython程式碼8: 正向彈碰

PPT:中港高瞻物聯網-VPhysics(8)彈性碰撞-201707

Google classroom 作業8

8-0 兩種一維彈碰:

VPython程式碼 8-0: 兩種一維彈碰

8-1 鉛直彈碰:兩球鉛直放置,上面為小質量,自由釋放後,會如何?

有趣的物理實作,把網球放在籃球上,一起釋放,這樣看似複雜的問題,程式也寫的出來,而且,不長

VPython程式碼 8-1: 鉛直彈碰

PPT:中港高瞻物聯網-VPhysics(8-1)鉛直彈性碰撞-201807

8-2 斜向彈碰:

二維彈碰很複雜?花式撞球的顆星,如何實踐?先看看本程式,再下定論吧

VPython程式碼 8-2: 斜向彈碰

PPT:中港高瞻物聯網-VPhysics(8-2)二維彈性碰撞-201807

8-3 牛頓擺:

VPython程式碼 8-3: 牛頓擺

9.行星公轉 [class]

牛頓當年,為何從一介書生,爆紅於物理界,成為執牛耳的大師?證明出克卜勒定律,讓當時的幾位學院派教授大老們懾服,是很重要的原因

VPython程式碼9: 行星公轉

PPT:中港高瞻物聯網-VPhysics(9)行星公轉-201707

Google classroom作業9

9-0 簡單重力:

VPython程式碼 9-0: 簡單重力

9-1 陀螺轉動:

好玩的程式,就不多說,自己慢慢體會

VPython程式碼 9-1: 陀螺

PPT:中港高瞻物聯網-VPhysics(9-1)陀螺-201807

9-2 地球自轉:

VPython程式碼 9-2: 地球自轉

9-2-0 公轉與自轉

VPython程式碼 9-2-0: 公轉與自轉

9-3 哈雷彗星:

哈雷彗星的週期是76年,以前是用克卜勒第三定律算出來,現在,你還可以用”看見”的方式知道這個數據喔~~

VPython程式碼 9-3: 哈雷彗星

9-3-1 克卜勒第一定率律:橢圓軌道

VPython程式碼 9-3-1: 橢圓軌道

9-4 同步衛星與極軸衛星:

VPython程式碼 9-4: 同步衛星與極軸衛星

9-5 轉動與進動:

VPython程式碼 9-5: 轉動與進動

9-6 飛輪之角動量守恆:

VPython程式碼 9-6:飛輪之角動量守恆

10.熱力學: 

嘆為觀止,不想用拙劣的言詞污染畫面的美麗

VPython程式碼 10:理想氣體

10-1 壓縮氣體:

VPython程式碼 10-1 壓縮氣體

10-2 晶格:

VPython程式碼: 10-2: 晶格

11.光學:

11-1 凹面鏡平行光束聚焦:

VPython程式碼 11-1:凹面鏡平行光束聚焦

11-2 凹面鏡成像:

VPython程式碼 11-2 凹面鏡成像

11-3 都卜勒效應:

原程式碼參考於網路

VPython程式碼 11-3: 都卜勒效應

11-4 RGB and HSV:

VPython程式碼 11-4: 三原色與透明度

11-4-1 RGB 三原色座標

VPython程式碼 11-4-1: RGB三原色座標

11-5 波的反射:

VPython程式碼 11-5: 波的反射

12.電磁學:

12-1 電力線:

VPython程式碼12-1: 電力線

12-2 磁力線:

VPython程式碼 12-2: 磁力線

12-3 電達:

VPython程式碼 12-3: 馬達

12-4 帶電粒子在磁場中運動:

VPython程式碼 12-4: 帶電粒子在磁場中運動

12-5 電磁波

VPython程式碼 12-5: 電磁波

12-6 波耳氫原子模型

VPython程式碼 12-6: 波耳氫原子模型

12-6-1 氦原子(Z=2)

VPython程式碼 12-6-1: 氦原子

12-6-2 鋰原子 (Z=3)

VPython程式碼 12-6-2: 鋰原子

12-6-3: 鈹原子(Z=4)

VPython程式碼 12-6-3: 鈹原子

12-6-4 氖原子Z=10

VPython程式碼 12-6-4: Z=10

13.專題製作:模擬書本的三種轉軸轉動

課程目標:國中生很喜歡轉課本,可以常轉課本的人大概都知道,課本有三個轉軸,其中兩個才可以穩定轉動,如果以最長的邊轉動,很快就進入不穩定的轉動。

物理觀念:在剛體轉動中,如果轉軸固定,則可維持穩定轉動。因此我們必須用以上所學技巧去模擬剛體。解構問題,簡化問題,規劃變成可研究步驟,執行偵錯,是本專題的四大步驟。

13-0 從雙質點簡諧出發

VPython程式碼 13-0: 雙質點簡諧

13-0-1 另一種出發程式: 雙球簡諧

VPython 程式碼 13-0-1: 雙球簡諧

13-1 第一種:穩定轉動

VPython程式碼 13-1:穩定轉動

13-2 第二種:穩定轉動

VPython程式碼 13-2:穩定轉動

13-3 第三種:不穩定轉動

VPython程式碼 13-3:不穩定轉動 

14.跨領域:

14-1 數學幾何:VMath:

VPython程式碼 14-1: VMath

14-2 找出共有幾塊

VPython程式碼: 14-2三維矩陣

14-3 三視圖練習

14-3-1 簡單的立體圖,請畫出三視圖

VPython程式碼 14-3-1 簡單的立體圖

14-3-2 簡單的立體圖,請畫出三視圖

VPython程式碼 14-3-2 簡單立體圖(2)

15. 成為專家的第一步:讀VPython手冊

這張圖片的 alt 屬性值為空,它的檔案名稱為 1_axes.gif

16.專題製作

OK Go @ VPhython

1.觀看 OK Go MV YOUTUBE “This Too Shall Pass”

2.找出有幾種連動裝置

3.用VPython寫出模擬程式

 

 

VPhysics試教-課程簡介

課程概要

學年:                      105-2

科目名稱:              愛創客2-中港探實達

開設年級.學期:     高三下學期

學分數:                  1學分

授課教師:              高瞻教師社群

師資來源                內聘

選修方式                跑班上課

使用教材                自編教材

教學目標                1、願景聚核力: 翔(呼應學校願景: 從中港展翅)

2、課程共核力: 體驗力、表達力、創造力、行動力、貫徹力、實踐力

3、單元單核力: 結合物聯網與Python程式設計,製作出中港的文創動畫。

評量方式                學習歷程檔案:50% 期末專題發表:50%

資源配合                創客實驗室

課程進度表 

第1週 課程簡介

第2週 VPhysics探究(1)

第3週 VPhysics探究(2) 

第4週 VPhysics實作(1)

第5週 VPhysics實作(2)

第6週 進度調整

第7週 IoTtalk探究(1)

第8週 IoTtalk探究(2)

第9週 IoTtalk實作(1)

第10週 IoTtalk實作(2)

第11週 專題製作(1)形成問題

第12週 專題製作(2)規畫研究

第13週 進度調整

第14週 專題製作(3)論證建模

第15週 專題製作(4)發表分享

第16週 發表

第17週 畢業

第18週 “

第19週 “

第20週 “

高瞻計畫文件-構想書

()研究背景及目的

原作者: 臺中教育大學王讚彬教授、靜宜大學劉國有教授

近年來「翻轉教室」之理念,越來越受到關注,對於學習能更有效率且讓學生更專注及主動,一直是所有老師皆希望能達成的,而「翻轉教室」正是實現所有師長的期許而提出之概念。因此,有愈來愈多的研究者開始導入資訊科技進行「翻轉教室」研究。其中,葉丙成教授也對此做出了實際的行動,葉教授與多位資訊相關科系的學生共同攜手合作,設計程式,建構出一套線上學習遊戲平臺「PaGamO」[1][2],讓學生能透過遊戲解題,如線上遊戲般占領地盤、擴大勢力,引發學生的學習動機,讓學生能夠主動的邊玩邊學。另一方面,台大石明豐教授團隊則開發「VPhysics」[3]視覺化物理程式模組,結合物理以及程式語言VPython,能夠讓抽象的物理公式透過VPython轉換成一張張動畫,讓學生能夠輕易的理解物理現象中的所有動作,老師也能夠快速地講解物理及訓練程式語言。

而隨著物聯網的快速發展,生活中廣泛的應用,改變了人們許多方面的習慣,智慧型手機的普及,更是讓物聯網的發展空間更加寬闊,各大廠牌的手機也不斷推出新機種及功能,使的使用上越來越方便,透過手機及物聯網的技術,手機本身即可作為各種感測器,包括感測加速度、磁力、方向、光線感應等等,也可傳回數據,因此生活中容易取得之手機即是一個重要的感測裝置。

物聯網感測的部分好比人體的末梢神經,可識別、感測與控制末端裝置的各種狀態及資訊,再透過低功率低頻寬之網路通訊裝置,將資訊傳至網路層。而無線感測區域網路的技術,可用於移動中的物體以及不必布線的環境,如遙感探測、物流等等,目前較主流的無線網路標準如RFID、ZigBee、藍芽及Wi-fi等。將智能嵌入至設備物件中,是物聯網(Internet of Thing)中最重要的部分,這些嵌入式設備通常被設計成低成本和低功耗,其設備特性主要包括受限制的電力、處理能力以及儲存空間,因此必須長時間的休眠以節省電力。另一方面,網路特性則包括高封包遺失率、低通訊能力、拓撲頻繁改變和低有效的payload。目前現存的網路通訊技術及協定並不一定適用於能力受限的設備,經過許多學者和IETF的努力,受限的設備朝著以IP網際網路協定為基礎的標準化協定。

     為有效管理眾多物聯網設備,交通大學林一平教授團隊開發了一套IoTtalk物聯網管理系統[4][5],IoTtalk是一個專門為物聯網設計的系統,讓使用者能夠簡單地管理及快速地連接多個物聯網設備。然而為了管理多個物聯網設備,它將定義各種設備的主要功能特徵(Features),像是溫度感測、三軸感測和螢幕顯示等等,並將每個Feature模組化,這樣一來就能夠快速地建立連結並可重複使用。IoTtalk的操作相當簡單,讓不同領域的專家也能夠輕易地使用這套系統,快速且有效地將創意實作出來。

Figure 1

Figure 2

圖1:IoTtalk系統架構

上圖為IoTtalk之系統架構,其中,A部分物聯網設備(IoT Device),使用無線傳輸並利用IDA傳送訊息到行動設備(Mobile Device)(例如,智慧手機)。B部分Mobile Device,將DA安裝在Mobile Device上,DA由ADI與DAG組成,DAI與IoT設備由IDA所指定的消息格式進行通訊,DAG與GSCL則幫IDA進行設備登記和數據交換通訊,C部分OpenMTC,利用OpenMTC物聯網平台軟體建置進行註冊,來達到M2M的通信,D部分IoTtalk,提供了GUI(Graphical user interface)讓使用者能夠快速建立IoT設備之間的連接與互動,CCM的功能則是自動配置IDFs和ODFs,並負責指令來儲存數據庫,Database儲存相關數值,EC包含Comm和Exec,Comm與下層的M2M系統進行溝通,Exec負責執行與連接IDFs和IDFs。

Figure 3

圖2:IoTtalk圖形化介面

IoTtalk的圖形化介面使得管理非常容易,並已將常用的設備和設備的Feature模組化,因此相當容易操作與進行修改,IoTtalk也提供了許多函數(Function),能夠將輸入與輸出進行處理,還能夠自行的新增設備跟feature並撰寫屬於自己的Function。IoTtalk不但提供簡易的操作方式,也能夠依照需求自行增加需求,並且能夠快速地結合不同的裝置,對於創作者是一個非常好用的平台,能夠結合在不同的領域上面。

IoTtalk必須建置伺服器,IoTtalk伺服器的設置主要有兩種方式。第一種方式將IoTtalk伺服器放在雲端平台,再以虛擬機器(Virtual Machine)提供給用戶。第二種方式則是將IoTtalk伺服器軟體下載於WiFi分享器,如宏碁的雲教授(Cloud Professor)。基本上,這兩種方式都不需要用戶下載特殊軟體,就可以直接以網頁來操作IoTtalk,相當便利。而IoTtalk平台也可以幫助學生學習Python程式撰寫,經由做中學,很容易開發出各種實際的應用,例如,連結溫溼度控制器的自動植物照護系統、智慧家電控制系統等等應用。

近年來,台灣大學物理系石明豐教授在大一普通物理課程上融入Python程式,不但提升了對物理的興趣,也能夠學習撰寫程式,以達到跨領域學習的成效。而且透過物理公式和3D動畫的方式,讓物理現象不單單只是在課本上,而是能完整地呈現在你的面前,這樣學生就不用光憑想象,而是親眼所見物理現象,提升學生對物理的興趣,也能透過撰寫程式來增強邏輯,提升實作能力。

石明豐教授團隊所開發之系統稱為VPhysics (http://tcjd71.wix.com/vpython),它結合物理以及程式語言VPython,能夠讓抽象的物理公式透過VPython轉換成一張張動畫,不僅讓學生能夠輕易地理解物理現象中的所有動作,同時,老師也能夠快速且有效地講解物理及訓練程式語言。當中V所代表的是視覺化(Visual)、虛擬化(Virtual)的意思,再透過VPython(Python程式語言加上3D圖形模組,稱為”Visual”)來模擬出高中的物理實驗及大學物理實驗,最後邁向Victory of Physics。

Figure 4

圖3:VPhysics系統網頁

如上圖所示,除了大一普通物理課程外,石明豐教授亦開發並推廣高中物理課程實作(http://tcjd71.wixsite.com/vpython/blank-rll77),當中包含了高一的基礎物理、自然組的選修物理,VPhysics裡面已經實作出相當多的物理實驗,同學們能透過3D動畫來觀察物理現象。這些實驗會隨著時間的推進而有所變化,老師能夠一步一步的去分析、講解物理現象的變化,學生就能夠快速的學習,3D動畫能夠取代課本中的圖片,提升學生學習的效率,降低學生錯誤的理解,進行有效率的學科學習。。

目前,VPhysics 模組裡面已經使用VPython實作出許多物理實驗,並且公開程式碼,提供給需要的人使用。同時也教大家如何安裝VPython,並一步步地解說,讓第一次接觸程式語言的人也能夠快速地上手,安裝完成後,則有簡單的VPython使用教學,教你如何載入模組,讓你能夠快速地建立3D圖形,並開始一一介紹每個實驗、每一行程式碼所代表的意義,讓你能夠自行地去修改參數,以實現不同環境底下對於實驗結果的差異。基本上,VPhysics的高中物理實驗沒有包含課程上所有的物理現象,VPhysics鼓勵同學、老師們也能夠自己來撰寫程式,創造出屬於自己的作品。只要對程式有興趣的能夠透過VPhysics裡的程式碼教學來學習VPython,VPython環境建置十分容易而且非常適合剛接觸程式的新手,這麼一來就能夠透過撰寫程式將自己的想法及創意實作出來。

VPhysics 模組內容已經相當豐富,可以為我們奠定很好的基礎,進一步整合物聯網設備,進行互動科學實驗。在這個計畫中,我們預計將輔助物理學科學習的VPhysics和IoTtalk物聯網管理系統整合起來,目前,VPhysics裡的物理實驗都尚無法即時性地回饋參數,學生必須透過修改Python程式碼,改變各項物理參數,才能造成實驗結果的不同,如此一來,中學生必須對Python程式有初步了解,才有可能進行操作。為了進一步降低入門門檻,我們預計加入物聯網的技術,利用感測器所偵測到的數值,經過IoTtalk的處理及連接,快速的將數值傳入VPython裡,而VPython可以立即顯示出實驗的差異。這麼一來學生就能手動的去控制感測器、調整感測出的參數,就能夠直接觀察這些參數對於實驗結果的影響,讓學生能透過物聯網進行科學實驗互動,從學中做,做中學,同時,如對科學上有些創意想法,亦可透過此系統,讓科學創意融入物聯網的概念,做到跨領域的學習。

Figure 5

圖4:我們所提出的整合互動式科學實驗系統

我們所提出的整合互動式科學實驗系統可參考上圖所示,其中圖之左側為感測器輸入功能,包括麥克風,三軸加速器,溫度感測器,色彩感測器等功能。感測器可透過無線網路技術連接至圖中間之IoTtalk物聯網系統,IoTtalk除了可安裝於宏碁之雲教授設備外,亦可安裝於雲端伺服器。圖之右側說明我們的系統輸出將可於手機或平板電腦,而顯示之內容主要為修改VPhysics之視覺化結果顯示。

由於IoTtalk將輸入與輸出的設備都加入了特徵功能Feature的概念,如果有新的設備要加入,而設備並沒有預設在IoTtalk中,我們能夠透過簡單的幾個步驟,來新增Device Feature,就能夠將新的設備運用在IoTtalk上。IoTtalk能夠輕易的結合物聯網設備,過去已經創造出許多藝術方面的作品,相信要讓課程融入科學實驗互動也是具體可行的,所以在感測器輸入端,我們僅需維護管理IoTtalk系統即可,我們必須確保系統之穩定度,最後在輸出端,我們再結合並修改VPython程式碼,使其與物聯網系統進一步整合,當有感測器參數改變時,能快速地將3D動畫呈現出來,讓學生能進行互動式科學實驗,對於課程的研發與教學實驗是非常有效的,也讓學生學習到物聯網的概念。

我們整合VPhysics與IoTtalk兩大系統,優勢主要有三點:

第一點,兩系統都不約而同選用Python程式語言,Python語法簡單,程式碼的呈現方式易於閱讀,撰寫完後不須編譯,可以馬上執行,有助於快速開發應用;

第二點,當VPhysics有了新課程實驗時,甚至應用到化學、生物等學科時,我們也得以快速將其與物聯網整合;第三點,特別是高中生進行新科學創意實驗時,當使用到一個新的或多個物聯網感測器時,亦可透過IoTtalk管理新增,不會增加使用學生的負擔,讓學生可以全力專注於其科學創意,而非感測器設備本身。我們預期可將物聯網技術融入到國高中物理課程之中,期望能使學生從「學中做,做中學」,在物聯網的環境下,透過物聯網感測器即時改變參數,讓學生能夠與科學實驗互動,同時觀察當中的變化,在操作的過程中,學生們就能夠印證想法是否正確,減少錯誤的理解,進行有效率的學科學習。

本計畫將在台中市立中港高中進行物聯網裝置對話互動科學實驗之課堂實踐,中港高中為台中市的九所市立高中其中一所,具有高中19班,國中37班,學生共計930人。在100學年到102學年期間,中港高中曾與國立聯合大學副校長王正祥副座、國立台中教育大學品牌中心主任拾已寰教授,共同執行三年期的高瞻計畫,主題為”設計思維融入高中科技教育之行動研究”,國科會科教處計畫NSC 100-2514-S-791-011、NSC 101-2514-S-791-001、NSC 102-2514-S-791-001。近年來,少子化的問題嚴重,海線各級學校紛紛減班;再加上國立高中改隸台中市政府教育局;鄰近的龍津國中(相距僅數公里)成立高中部升格為新設立之第十所市立完全中學,使中港高中升學與招生都面臨嚴峻的考驗。藉由本計畫,由台中教育大學團隊與靜宜大學團隊結合中港高中教師團隊,分別進行部分教材修改開發與試教實驗,未來將有更多學生可以從做中學,以物聯網互動科學實驗,學習相關科學概念,並進一步快速完成科學創意,參與科展,進而提升中港高中整體競爭力,實為刻不容緩的當務之急。

另外,我們亦將與惠文高中、興大附中、二林高中等學校教師進行合作,除了直接以我們開發之整合互動科學實驗系統進行試教之外,亦將合作開發適合各班學生之教材,透過各校教師之回饋,亦有助於我們系統之改進,未來將更能適合教學現場與課後學習。另一方面,靜宜大學團隊將導入執行”札根高中職資訊科學能力計畫”之經驗,除協助參與高中學校進行教學教材的導入與推廣外,更希望能進一步締結中部地區高中職校參與,安排相關教師培訓研習課程,增加相關教師對於系統的熟悉與操作,提高教學現場實務導入之機會。此外,物聯網感測技術的創新應用與整合,若能藉由本計畫之推廣,提升高中職生創意思考能力與科展創作思維能量,將有助於互動科學實驗系統的實質運用與產出效益。故將安排1場營隊活動,期透過密集的物聯網技術體驗,與Kinect、Arduino等設備之結合,讓學生有機會體驗與實作物聯網感測器的相關操作與設計,讓同學從中獲取相關設計邏輯思考及問題解決能力,為學生奠定良好的科學實驗基礎,提高資訊系統融入教學對於學生之興趣與認同。

參考文獻:

[1] 學習如「打Game」 葉丙成翻轉大學教育               http://epaper.heeact.edu.tw/archive/2014/11/01/6251.aspx

[2] paGamo   https://pagamo.com.tw/

[3] VPhysics (http://tcjd71.wix.com/vpython)

[4] Y.-B. Lin, Y.-W. Lin, C.-Y. Chih, T.-Y. Li, C.-C. Tai, Y.-C. Wang, F. J. Lin, H. C. Kuo, C.-C. Huang, S.-C. Hsu, “EasyConnect: A Management System for IoT Devices and Its Applications for Interactive Design and Art”, IEEE Internet of Things Journal, 2(6), Dec. 2015

[5] Yi-Bing Lin, Yun-Wei Lin, Chun-Ming Huang, Chang-Yen Chih, and Phone Lin. “IoTtalk: A Management Platform for Reconfigurable Sensor Devices”

(二)預期效益(KPI

本計畫將在台中市立中港高中進行物聯網裝置對話互動科學實驗之課堂實踐,未來有機會長期配合IoTtalk與VPhysics系統發展,持續進行各種學科開發與推廣,總計畫與子計畫1將分別於高中部與國中部進行教材開發與試教,目前第一階段主要以整合物理學科實驗試教,預期效益如下:

預期效益(KPI):

1.試教:高中物理試教10小時、國中理化試教4小時。

2.科展:高中科展1隊。

3.論文發表:國內會議論文1篇、國內期刊發表1篇。

4.成果冊:理論與實務推廣手冊1本。

5.網路平台:建置師生互動平台,互動次數200人次。

過去幾年子計畫2申請人王讚彬一直擔任高中資訊學科中心(台南二中)諮詢委員,也審查過多種高中教師所撰寫之資訊課程教材,內容包括程式設計、機器人、Arduino 系統開發等課程,仔細檢視這些教材,大都依循傳統的程式撰寫或操作訓練方式,製作認真嚴謹。然而,過去高中的資訊課程皆為選修,一則這些資訊課程學生不見得願意選修,即使選修,時間亦短,還沒熟悉各種程式語法、專有名稱與設備,課程就結束了,更遑論深入理解程式邏輯呢?基本上,高中生必須學習的核心課程(如圖文、英文、數學、物理、化學等)已經太多,為了大學入學,大都無暇顧及資訊課程,我參與了幾年,自覺成效並不好,「陳力就列,不能者止」,幫不上忙,因此去年起申請人便不再續任高中資訊學科中心諮詢委員一職。然而,後來接觸到林一平教授與石明豐教授的想法顯然與傳統不同,他們主要將程式訓練植入到核心課程的學習之中,以輔助教學的方式,製作物理實驗之電腦動畫程式。例如,製作拋物線的動畫程式,除了可以讓學生經由動畫了解拋物線的運動軌跡之外,亦可同時引導學生熟悉程式邏輯,修改程式中之運動參數,讓學生可以同時學到物理理論以及電腦程式的邏輯。這種不同做法讓人覺得很有機會成功。因此,先投入了一些時間,熟悉過去幾年台大石明豐教授團隊所開發的一系列輔助物理學科學習之python程式,以及交大林一平教授團隊所開發之IoTtalk物聯網管理平台,最後在台中市教育局的協助下,結合中港高中提出本計畫,預期完成一個整合台大石明豐教授與交大林一平教授所開發之系統與實驗,完成物聯網裝置對話互動科學實驗,使中學生可以從做中學翻轉教育。而子計畫3靜宜大學團隊在遊戲式學習方面一直持續投入研究,並也協助博幼基金會開發相關教學平台,在資訊技術融入教學方面經驗豐富。且在執行104學年度札根高中職資訊學科能力計畫中,亦從中瞭解許多高中職端教師與學生在教學部份所面臨的種種資源不足問題,故希望能藉由本計畫之執行,除了讓更多相關教師瞭解物聯網裝置對話互動科學實驗系統在實務教學的導入與應用外,亦希望能從學生端進行更深入的物聯網感測相關設計與應用的教學活動,從根本做起,讓學生瞭解資訊教學的可行性、必要性與未來性。

未來有機會希望能長期配合IoTtalk與VPhysics系統發展,持續進行各種學科開發與推廣,目前第一階段主要以整合物理學科實驗開發與推廣為主,預期效益如下:

  • 物聯網互動科學實驗:

我們將分階段整合林一平教授團隊之物聯網IoTtalk系統與石明豐教授團隊之python程式科學實驗,第一階段將優先完成下列實驗:

VPhysics 高中學生版課程(http://tcjd71.wixsite.com/vpython/blank-rll77):

1.物體的一維等速度運動

2.物體的一維等加速度運動

3.物體的三維運動

4.力(向量)的合成

5.虎克定律和簡諧運動

6.等速率圓周運動

7.動量

8.彈性碰撞

9.行星公轉

第一階段完成後,未來將依序完成其他實驗:

  • 高中試教與推廣:

除了開發系統之外,我們也將分別由台中教育大學結合惠文高中與興大附中教師團隊、靜宜大學團隊結合中港高中與二林高中教師團隊,分別進行部分教材修改開發與試教實驗,我們已經與台中市教育局秘書室李昭嫻專員與許家豪股長、資網中心阮志偉主任等人取得聯繫,國立高中已經改隸台中市政府教育局,最後將可再推廣至台中地區各高中,未來將有更多學生可以從做中學,以物聯網互動科學實驗,學習相關科學概念,並進一步快速完成科學創意,參與科展。

預期效益(KPI):每一階段(11個月)試教學校4間、研習2場、營隊活動1場(參與國高中至少10間)。

 

用Python學物理,中港高瞻計畫FB社團

“用Python學物理,中港高瞻計畫”是中港高中高瞻計畫的FB社團,歡迎對Python有興趣的舊雨新知,一起共學~~

在社團中,將不定期發表我們社群的研究成果,也歡迎對電腦輔助教學有興趣的夥伴,踴躍發文 ^^

相關連結: 石明豐教授 VPhysics 網站 http://vphysics.ntu.edu.tw

中港高中高瞻計畫網誌 http://cgblue.cgsh.tc.edu.tw/wordpress/hsp/

https://www.facebook.com/groups/1441593979207944/