02雙機互動(網路功能)

題目一: 點亮遠端一顆燈

  1. 將一顆LED燈接在Arduino Uno板的D13腳位上 ( 長腳接D13、短腳接GND)
  2. 利用USB線將Arduino Uno板與電腦B連接
  3. 啟動Transfor­mer v2.0程式 (請參閱前面說明
  4. 進入Scratch2.0程式(離線版),並且發現s2a_fm出現「綠燈」,連線成功!
  5. 硬體圖如下
  1. 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=1http://127.0.0.1:50209/sensor_update/s0=0

如果在「電腦A」就要下電腦B的網址,如下 (電腦A不用執行Transformer程式)

http://192.168.2.102:50209/sensor_update/s0=1http://192.168.2.102:50209/sensor_update/s0=0

當然也可以寫成網頁的方式來執行!!

題目二: 空中傳情

  1. MAX7219+8X8 LED 與Arduino Uno板連接 ( VCC接 5V、GND 接 GND 、DIN 接 D11 、CS 接 D10、 CLK 接 D13)
  2. 利用USB線將Arduino Uno板與電腦B連接
  3. 啟動Transfor­mer v2.0程式 ,要選擇「LCD/LED顯示器』(請參閱前面說明
  1. 進入Scratch2.0程式(離線版),並且發現s2a_fm出現「綠燈」,連線成功!
  2. 硬體圖如下
  1. 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=Lovehttp://127.0.0.1:50209/sensor_update/s0=1

如果在「電腦A」就要下電腦B的網址,如下 (電腦A不用執行Transformer程式)

http://192.168.2.102:50209/sensor_update/s1=Lovehttp://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也可以達到同樣功效!!!

註:由於筆者測試時,只有利用兩台電腦來測試,並沒有同時利用多台來測試,因此不知多台電腦同時連到一台電腦的時侯,會不會出問題????

所以此題等下次再試!!!