分類彙整: 107年度科技部高瞻計畫

[國中的物聯探實達] 物聯探實達簡介

上課地點: E化教室         上課時間:20180307     

上課班級:207

課程目標:

1.能初步認識Python與物聯網的概念

2.能完成Python程式輸入,或改參數變化物體運動的概況

3.能體驗新興科技物聯網,對智能生活的便利。

4.對中港高中部的多元選修課程,有初步認識,而列入爾後升學進路考量。

學生作業:

207_15.py

PPT教材

[媒體報導] 20180125中天新聞採訪物聯探實達

感謝中天新聞的報導,還有503班王晨竹,周立恩,吳孟婕,邱詠珊,翁子修,許軒豪的幫忙。感謝Chou Wen-sung校長的推薦,讓中港高中,也成為maker的知名高中

接受採訪前兩天:  1/22(一) 導師辦公室,校長室打來的內線電話

就在學期末的最後一天,原本該忙於大掃除,結業典禮的日子,

在台中市教育局課程督學的推薦之下,周校長通知我們,

中天新聞想要來採訪物聯探實達的多元選修課程,

只有三天可以準備,這下子,又讓”搞操煩”的我,

開始失眠了,因為我們的IoTtalk系統,還沒有正式上線

接受採訪前一天 1/23(二) 20:00 多功能教室

身為設計思維班導師的我,立馬想到,”抱怨之所在,設計之所在”,

找來了六個組長,王晨竹,許軒豪,周立恩,吳孟婕,邱詠珊,翁子修

很不幸的,IoTtalk的操作方法,一直都卡關中,眼看著時間一點一滴流逝,

同學們紛紛打電話跟家長臨時報備,

今天要幫老師準備媒體採訪的事宜,

幸運的是,這群孩子平常很乖,所以即便臨時跟家裡告假,而沒有事先報備,

因為信用很好,

所以,有四個同學,留下來奮鬥。

鋼鐵擂臺是物聯探實達擺攤時的利器,

但是,用手機學物理的VPhysics連結IoTtalk,

才是真正的物聯網,卻還沒成功上線。

深呼吸,不要急,

把王讚彬教授演講的影片拿出來給這四位組長,

一步一步,完成

終於,在晚上八點左右,完成了測試,雖然變數還很多,網路的穩定度,

手機的WIFI連線,都讓人擔心不已。

 

接受採訪當天 1/24(三) 13:00 多功能教室

在考完期末考的最後一節,午休過後,503班,設計思維專班,

整整齊齊地進入多功能教室,

大家投入採訪的工作,把平常最優秀的一面表現出來,

真是讓身為導師的我,感到驕傲。

平常的教誨,沒有白費,

我們登上了全國的媒體了。

短短三天,令人感動的三天,

我們做到了,成為國內知名的maker高中了,

要感謝的人太多了,就謝天吧~~

運算思維(Computational thinking)- Blocky game

https://blockly-games.appspot.com/

Blocky game是專為年輕程式設計師而設計的遊戲,

所謂積木式的程式設計,像Scratch一般的拉放之間,便可完成程式設計。

第一個遊戲:拼圖

這個遊戲主要是介紹如何利用拖拉積木塊,將積木塊放入適當的位置。

主要是(1)將照片嵌入,(2)腳的數目用下拉式選單選出,(3)將兩個特徵放入迴圈裡。

對於熟悉積木式程式設計的人,應該很快就可以破關

 

第二個遊戲:迷宮

第一關:連接兩個指令

第二關:練習下拉式選單

第三關:練習迴圈(while)

第四關:while迴圈+下拉式選單

from visual import *

cube0=box (pos=(0,0,0),color=color.green)
cube=box (pos=(0,0,0),color=color.red)

while (cube.pos.x<10):

rate (1)
cube.pos=cube.pos+(1,0,0)
rate(1)
cube.pos=cube.pos+(0,1,0)

第五關:迴圈內外的差別。只有迴圈內的指令才會不斷被執行,因此不需要重複的指令,可以放在迴圈外。

 

第六關:while迴圈+if then 迴圈。兩個迴圈相加,可以不斷的判斷,重複相同條件。這個訓練開始要慢一點,想清楚一點,因為這個技巧後面會反覆用到,開始變難了。

第七關,真正的迷宮開始,

可以先用自己的話講一遍,

如果前方有路=>前進,然後

(如果右邊有路=>右轉)

第八關,也很難while迴圈包了三個if then 判斷迴圈 (保留給讀者解了)

第九關,接近破關的難題,(保留給讀者解了)

這個遊戲第十關相當難,也有不同的解法,

有興趣的朋友不妨試試自己的code thinking功力,

我自己呢,想了兩天,才解出來。

 

第三個遊戲:鳥

目前這個遊戲還沒破關,繼續努力中…

[物聯探實達課程] 學生作品﹍哪來的靈動?

from visual import*
a=-9.8
v=-4.0
v2=-10.0
vy=0
size=0.2
h=10.0
dt=0.001
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.05)/2,0),length=5.0,height=0.05,width=10.0)
ball=sphere(pos=(0,5,0),radius=size,color=color.red)
while(True):
rate(1000)
vy+=a*dt
if ball.pos.y>size-0.01:
ball.pos.y+=vy*dt
ball.pos.x+=v*dt
ball.pos.z+=v2*dt
if ball.pos.y<=size:
vy=0.9*abs(vy)
if ball.pos.x<=-5:
v=0.9*abs(v)
if ball.pos.x>=5:
v=-0.9*abs(v)
if ball.pos.z<=-2.5:
v2=0.9*abs(v2)
if ball.pos.z>=0.8:
v2=-0.9*abs(v2)
if ball.pos.y<=size-0.01:
ball.pos.y+=0
ball.pos.x+=v*0.7*dt
ball.pos.z+=v2*0.7*dt