02雙機互動(網路功能)
題目一: 點亮遠端一顆燈
- 將一顆LED燈接在Arduino Uno板的D13腳位上 ( 長腳接D13、短腳接GND)
- 利用USB線將Arduino Uno板與電腦B連接
- 啟動Transformer v2.0程式 (請參閱前面說明)
- 進入Scratch2.0程式(離線版),並且發現s2a_fm出現「綠燈」,連線成功!
- 硬體圖如下
- Sctatch 2.0程式
- 這邊要利用「電腦A」去開啟「電腦B」13腳位的LED燈
- 電腦B的程式如下:
- 當s0=1時,LED燈會亮,並且小貓咪會上下跳動
- 一開始先在本機測試,本機的IP有兩個,一個是127.0.0.1、一個是真正IP(可能是虛擬IP,若是虛擬IP必須是同一網段才能互相控制,本例的192.168.X.X就是虛擬IP)!後面的的數字50209是埠數,也就是一個門,電腦B開這個門讓對方(電腦A)能夠進出,在Scratch這個埠是固定為50209,不能用其他數字!
- 電腦A的程式:當按「向上鍵」時會傳一個變數(s0)其值為1到電腦B,這時電腦B的LED燈就會亮起來
小朋友,試看看你能不能點亮旁邊同學的LED燈?雙方互相試試~~光點一顆LED燈可能不夠癮,接下來下一單元要來點亮8X8的LED燈,並將文字呈現在8X8的LED上!
註:
小朋友,您也可以直接在「電腦B」的瀏覽器的「網址列」下以下的網址達到同樣的功效:
http://127.0.0.1:50209/sensor_update/s0=1 或 http://127.0.0.1:50209/sensor_update/s0=0
如果在「電腦A」就要下電腦B的網址,如下 (電腦A不用執行Transformer程式)
http://192.168.2.102:50209/sensor_update/s0=1 或 http://192.168.2.102:50209/sensor_update/s0=0
當然也可以寫成網頁的方式來執行!!
題目二: 空中傳情
- 將MAX7219+8X8 LED 與Arduino Uno板連接 ( VCC接 5V、GND 接 GND 、DIN 接 D11 、CS 接 D10、 CLK 接 D13)
- 利用USB線將Arduino Uno板與電腦B連接
- 啟動Transformer v2.0程式 ,要選擇「LCD/LED顯示器』(請參閱前面說明)
- 進入Scratch2.0程式(離線版),並且發現s2a_fm出現「綠燈」,連線成功!
- 硬體圖如下
- Sctatch 2.0程式
- 這邊要利用「電腦A」傳送一串字到「電腦B」的8X8LED上
- 電腦B的程式如下:
- 8X8LED一開始呈現「0」的文字,當s0=1時,8X8LED會出現s1變數的值以「跑馬燈」的方式出現2遍,然後呈現「1」的文字表示結束。
- 記得,不要讓文字一直重複循環,不然8X8LED很容易當機!!
- 電腦A的程式:當按「空白鍵」時會傳一個變數(s1)的內容及另一個變數(s0)其值為1到電腦B,這時電腦B的8X8LED燈就會呈現出S1的內容!
小朋友,目前Transformer 2.0只能傳文字,不能傳圖形!但可傳圖形(如愛心)的版本很快就會釋放出來,大家拭目以待!另外,如果覺得8X8的螢幕很小,你也可以將多個8X8LED結合在一起形成一個大或長的螢幕,那時就更震撼了!
小朋友,您也可以直接在「電腦B」的瀏覽器的「網址列」下以下的網址達到同樣的功效:
http://127.0.0.1:50209/sensor_update/s1=Love 及 http://127.0.0.1:50209/sensor_update/s0=1
如果在「電腦A」就要下電腦B的網址,如下 (電腦A不用執行Transformer程式)
http://192.168.2.102:50209/sensor_update/s1=Love 及 http://192.168.2.102:50209/sensor_update/s0=1
當然也可以寫成網頁的方式來執行!!
題目三: 你的貓咪聽我話
- 問題:由上面得知Transformer 2.0提供的「virtual sensor」只有s0及s1兩個,如果兩電腦間需要多個virtual sensor 來傳輸,應如何處理?
- 先到以下路徑C:\Users\user\Documents\Scratch Projects\kodorobot\S2E\額外積木(通用) 找到 Virtual_sensor.js 檔,按右鍵「編輯」它,如下圖
- 看你需要幾個virtual sensor ,就在此檔中加入,如下圖
- 存檔後,啟動Transformer 2.0,發現virtual sensor 還是只有二個,沒有增加啊?
- 再重新啟動Transformer 2.0,檔案選「自動開啟Scratch」,不要含「網路積木」
- 開啟Scratch後,長按Shift不放,利用滑鼠點選「檔案」,如下圖
- 點擊「匯入實驗性HTTP擴充功能」,並找到剛剛上面所修改的virtual sensor.js檔
- 這時,你就會發現,你有4個Virtual sensor 了,成功!!!
- 題目:利用A電腦的上下左右鍵控制B電腦的小貓咪上下左右移動
- scratch 2.0的程式
- 這邊要利用「電腦A」的上下左右鍵去控制「電腦B」上的小貓咪上下左右移動
- 電腦B的程式如下:
- 電腦A的程式:建立一個變數來放「欲連結的電腦IP」
小朋友,跟好朋友一人執行電腦A的程式,一人執行電腦B的程底,看小貓咪會聽誰的話???
註:其實這個題目只要一個變數s0就可達成,如s0=1向上、s0=2向下、s0=3向左、s0=4向右,但為了引入多個變數的使用,才用此法!!
題目四: 再戰雙人桌球
有關雙人桌球賽,我們已經教過很多次,包括純軟體的教學,請看「阿玉Scratch作品集的11雙人桌球」及「利用兩塊Arduino的雙人對戰」,如果我們沒有兩塊Arduino板,而且我們也不想兩個人同用一個鍵盤(好擠),這時我們就可以利用電腦A去控制電腦B(主程式)的「藍方」,電腦B控制「紅方」,來戰鬥!甚至主程式放在電腦C,電腦A控制「藍方」,電腦B控制「紅方」,一共使用了三台電腦!
- 啟動Transformer 2.0,由於我們這題沒有用到Arduino板,所以介面就直接選用「不使用Arduino(default)」
- 開啟附件的「雙人桌球賽(不含硬體)」檔案(或到「阿玉Scratch作品集的11雙人桌球」下載)
- 利用上題的方法叫出四個Virtual sensor 的相關積木,並s0、s1給藍方用、s2、s3給紅方用
- 修改「藍棒」的程式(如下)
- 同理,修改「藍棒」的程式(如下)
- 這樣電腦C的主程式就改好了
- 電腦A的程式如下:(控制藍棒)
- 電腦B的程式如下:(控制紅棒)
小朋友,有沒有很期待要對戰了,GO!!
註:由於筆者測試時,只有利用兩台電腦來測試,並沒有同時利用三台(電腦A、電腦B、電腦C)來測試,因此不知有二台電腦同時連到一台電腦的時侯,會不會出問題????
題目五: 多機一起來搶答
這一題目的發想與上一題一樣!也就是有一台電腦(主程式)來出題,底下有多台電腦分別由學生操作來答題,這個應用可以非常廣,可以用在搶答,看哪一位(組)學生動作最快;也可以用在每個人的答題,答完後馬上可以知道答題結果,立即回饋!雖然市面上已有很多這方面的軟體,原來Scratch+Transformer 2.0也可以達到同樣功效!!!
註:由於筆者測試時,只有利用兩台電腦來測試,並沒有同時利用多台來測試,因此不知多台電腦同時連到一台電腦的時侯,會不會出問題????
所以此題等下次再試!!!