外部感應器初體驗:軟、硬體選擇建議(舊)
程式寫作如果結合外部感應器,可以達成簡單的自動控制功能,進一步讓學生創作一些作品改善生活或是增加樂趣,只要幾百元就可以開始體驗電腦程式控制外部感應器了。
硬體:Arduino Uno + 感測器(LED、電阻….)
軟體:Scratch2.0 + WFduino
————————————————
A.程式選擇:
對於國中小學生(初學者)來說常見的大概就是圖形介面的[S4A]、[mBlock]、[Webduino Blockly]和[S2A]、[scratchX]還有[Transformer轉譯器]、[WFduino]。(註1)
初級班建議選擇(Scratch 2.0 + WFduino)或mBlock,chromebook可以選WFduino
PS:mBlock程式有些bug,比較適合初級班,進階課程建議改用其他程式。
WFduino
WFduino 專供 Scatch2 操作 Arduino 的轉譯程式,將Scratch 2.0 的指令轉譯成Arduino的程式執行。
寫作介面為Scaratch2.0
優點:
- 支援chromebook使用USB連線,設定簡單,使用方便,操作使用容易,可以和scratch2.0網路線上版或離線版接軌。
- 使用學生孰悉的Scratch 2.0介面,因為完全尊重MIT Scratch 2.0 原創,所以可以直接繼承隨時更新的改版。
- 可以使用網路線上版scratch2.0操控arduino,網路存取超方便的,只要有網路隨時可以修改程式。不接arduino也可以直接使用擴充積木功能,讓scratch2如虎添翼,增加許多功能。
- 免安裝版本可以放在隨身碟直接帶著使用,不用網路,不怕影響電腦系統效能。更新韌體超簡單,按下去,就等他更新完,然後開始使用。
S4A:
Scratch For Arduino(將sratch改寫來控制arduino)
寫作介面類似Scaratch1.4
優點:發展很久、程式穩定,有一些搭配特定功能的開發板。
缺點:安裝程式對初學者有些困難,限定了一些Arduino連接埠的功能,無法將程式上傳到Arduino板,因此必須連接USB線使用(可以用藍芽、wifi設定有些複雜)。
S2A:
Scratch2.0 to Arduino(將sratch2.0改寫增加arduino擴充積木指令)
寫作介面類似Scaratch2.0
優點:使用MIT原廠sratch2.0,程式穩定,有一些搭配特定功能的開發板。
缺點:安裝程式對初學者有些困難,無法將程式上傳到Arduino板,因此必須連接USB線使用(可以用藍芽、wifi設定有些複雜)。
mBlock:
大陸深圳市創客工場科技有限公司基於開源Scaratch2.0研發出來的免費程式,除了搭配該公司的零件,也可以選擇一般市售的Arduino控制板使用。
寫作介面類似Scaratch2.0
優點:安裝簡單,一鍵完成,程式寫完之後,還可以轉換成Arduino程式語言直接上傳到Arduino控制板,離線執行程式。
缺點:程式不夠穩定。
Webduino Blockly:
台灣慶奇科技公司寫的使用瀏覽器就能控制Arduino的程式,只要在Arduino板上加一片[Webduino Fly (雲端擴充板 )],就可以雲端無線控制了。
寫作介面為網頁Blockly式
優點:支援電腦、平板、手機各式平台,不受作業系統限制(支援chromebook),不須特別安裝程式(韌體除外),可以USB連線和wifi無線使用。機動方便,線上寫程式,不受機器限制,只要有網路連線就可以寫程式。可以遠端控制arduino板。可以同時控制多片Arduino板子。
缺點:需要連接公司伺服器(也可以自行架設伺服器),無線連接時需要wifi環境(USB連線只要能上網即可)
Moto Blockly:
台灣慧手科技公司寫的使用瀏覽器就能控制Arduino的程式。
寫作介面為網頁Blockly式
優點:積木式程式,可以轉換為arduino IDE程式碼及XML碼,可以下載燒錄。
缺點:測試發展中。
Scratch 2.0 + Transformer:
Transformer是台灣宇宙機器人 kodorobot 團隊寫的轉譯程式,可以將Scratch 2.0 的指令轉譯成Arduino的程式執行。
寫作介面為Scaratch2.0
優點:設定簡單,使用Scratch 介面,可以在一個程式中同時控制多片Arduino板子。
缺點:測試發展中。
ScratchX(for wf8266r)
寫作介面為類似Scaratch2.0
優點:網頁式,不受作業系統限制(支援chromebook),不須特別安裝程式(韌體除外),使用wifi無線,可以遠端無線操控。
缺點:網路傳輸,操控時有一點點延遲,scratch的指令不能太快(指令間要加[等待..秒])。
————————
B.外部感應器選擇1:一般電腦(windows)
國中小學生初級班只做簡單的練習,建議選擇Arduino Uno、或DiFi(註3)。
市面上相容性板子很多,網路購物就可以買到,原廠較貴大約1000元,仿製的大約200~300元,大陸改良板大約110~180元左右。
主要差別在:大陸改良板用的USB連接晶片不同,使用時要另外安裝CH340系列的驅動程式(上網搜尋[CH341SER.EXE]安裝)。
1.標準(仿製)板:S4A、mBlock、Webduino Blockly、Scratch 2.0 + Transformer、WFduino完全支援
2.大陸改良板:好像除了Webduino Blockly使用USB連線時不支援,其他都可以支援
標準(仿製)的Arduino Uno控制板
大陸改良板
DiFi
是基於 ESP8266 晶片設計的實驗板和Arduino基本晶片不同。
優點:以ESP8266系列wifi晶片為基礎,加上繼電器、光敏電阻、RGB LED、按鍵開關、紅外線感測器、蜂鳴器、DHT11溫濕度感測器等感測元件,可省去接線的困擾。。
Nodemcu
是基於 ESP8266 晶片設計的實驗板和Arduino基本晶片不同。
優點:可以直接使用USB連線或無線操控,價格不貴。
B.外部感應器選擇2:(chromebook)
使用wifi連接:WF8266R、DiFi、Nodemcu、馬克 1 號、(Webduino Fly + Arduino UNO);
使用USB連線:Arduino Uno
WF8266R
是基於 ESP8266 晶片設計的實驗板和Arduino基本晶片不同。
優點:可以遠端無線操控,可以使用手機、平板的APP直接操控,也可以使用scratch2.0或scratchX操控,可以遠端新韌體,價格不貴,Chromebook也可以使用。
缺點:網路傳輸,操控時有一點點延遲,scratch的指令不能太快(指令間要加[等待..秒])。
馬克 1 號、(Webduino Fly + Arduino UNO)
以Arduino UNO+wifi晶片為主體,搭配Webduino Blockly來操控。
優點:可以使用手機、平板或各種電腦的網頁直接操控,無線遠端操控,也可以有線USB連接
缺點:價格稍貴
————————————
C.初級班基本課程搭配零件
USB連接線(TYPE A to B)一條,一邊扁頭,一邊方頭。線稍微長一點,方便學生操作。
RGB三色LED一顆
(線性尺度式:電阻值的變化與旋轉角度或移動距離呈線性關係,此種電位器稱為 B 型電位器)
——————
為什麼要推Arduino初級班課程為正式課程?
A:
1.程式寫作如果結合外部感應器,可以達成簡單的自動控制功能,進一步讓學生創作一些作品改善生活或是增加樂趣。課程內容適合小孩或初學者,完成初級班課程後,發揮創意再加上市面上的各種感應器,就可以創造各種有用、有趣的作品,讓資訊課不再只是[電腦課]。
2.教育機會均等:適合國小六年級以上學生,全年級都上一個學期課的型態,讓全校學生都能接受基礎的Maker資訊課,讓家裡沒有電腦、沒錢上社團、科學班的學生享有平等的受教權。
3.本系列課程使用Arduino Uno控制板搭配scratch2.0程式來教學,材料便宜(初級班基本材料費每校只要幾千元),程式安裝簡便,學生學習容易(簡單的電子零件,搭配積木式拖拉來完成程式寫作),有完整的教材教案提供老師教學(老師只要依照課程示範,學生創意無限)。
——————————–
註1:
arduino板原來接受的是如下圖的Arduino Software IDE程式,這種文字式的寫法對中小學生(初學者)來說太難了,可能為了某個指令少打一個字就無法成功。
因此利用圖形介面的積木式拖拉來完成程式寫作,減少困難度,讓初學者可以容易的操控arduino。
學生利用這些圖形介面的[程式語言]完成程式後,需要透過[轉譯]的動作,將積木程式轉譯成Arduino Software IDE程式才能執行,這個轉譯的過程如果出差錯,執行結果就不如預期。
[S4A]、[S2A]、[scratchX]、[Transformer轉譯器]、[WFduino]都是以scratch為基礎,程式直接在電腦上執行完成後,再將執行結果傳送給arduino做動作。例如:要讓腳位13的LED一閃一閃,除了擴充積木指令,其他指令都是原來的scratch指令。當綠旗被點一下後,看到[腳位13輸出1],轉譯程式就將[腳位13輸出1]翻譯好傳給arduino(燈亮),然後[等待0.5秒],電腦程式再叫轉譯程式將[腳位13輸出0]翻譯好傳給arduino(燈滅),然後[等待0.5秒],[重複執行],不斷的在電腦裏執行,不停地轉譯傳給arduino訊號。
mBlock是自己改寫scratch2.0指令,所以程式執行會和MIT原廠scratch2.0有些差異。Webduino Blockly也是自己寫指令,還有很多相關的程式都是自己寫積木指令。
目前看起來mBlock和Webduino Blockly似乎都有一些指令不夠準確的問題。
改寫的優點就是可以自由發揮,mBlock還可以直接翻譯成arduino的程式語言直接燒錄到arduino裡面。但是缺點就是積木指令要寫得夠完整執行時才不會卡卡的,或是出錯。
以MIT原廠scratch為基礎的優點是程式經過原廠測試過,執行程序比較不會有問題,但是缺點就是程式無法燒進arduino。
註2:
購買Arduino或Raspberry Pi?
摘自:http://www.makezine.com.tw/make2599131456/arduinoraspberry-pi
兩者之間的區別是什麼?
Arduino是微控制板。微控制板是一種簡單的電腦,一次只能重複執行一個程式。使用方法非常簡單。
Raspberry Pi是萬用電腦。通常採用Linux作業系統,能夠同時執行好幾個程式。這可以執行比Arduino還複雜的工作。
該用哪個才好?
Arduino適合做簡單重複的工作。像是開關車庫門、測量外界氣溫再用推特報告,或是驅動構造簡單的機器人。
Raspberry Pi適合在需要功能完善的電腦時使用。包括操控構造複雜的機器人、同時進行多項工作,以及進行複雜的運算。
註3:
Arduino UNO控制板是架構在一塊單晶片上,並不像電腦有大型的記憶體可供使用,Atmega328的記憶體並不大只有2kbyte的SRAM,所以太複雜的系統其實並不適合使用。
國中小學生學習使用圖形介面程式練習設計控制感測器,只是希望讓學生學習邏輯思考及基本的電路、電子學概念,引起學生對maker的興趣,因此不需要太高級的硬體需求。
DiFi 是一塊整合感測元件在板子上的學習板,可省去接線的困擾。
註4:
從OS支援度看Maker開發板的四個層次
http://makerpro.cc/2016/04/4-levels-of-maker-development-boards/
Arduino 硬體介紹
http://www.powenko.com/wordpress/?p=4167
Arduino 硬體外觀
http://www.powenko.com/wordpress/?p=4394
——————————-
初學者如果想要入門學外部感應器怎麼選?
個人建議:
初級班:
硬體:Arduino Uno 軟體:WFduino
wifi無線使用:硬體:WF8266R 軟體:ScratchX (可以和scratch接軌)
———————————-
———————–
相關連結:
初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433
WFduino課前準備
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665
WFduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745
WFduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840
WFduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841
WFduino第四課(3顆LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850
WFduino第五課(PWM模擬類比輸出)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450
WFduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508
WFduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509
WFduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090
WFduino顏色猜猜機(第8-1課)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091
WFduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092
WFduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093
WFduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094
WFduino第十二課(超音波感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095
WFduino第十三課(繼電器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096
WFduino第十四課(人體紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850
WFduino第十五課(主動式紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852
WFduino第十六課(七段顯示器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853
英文聽音打字練習(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484
會說時間的鬧鐘(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772
會說話的九九乘法表(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482
WFduino Chrome App
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303
WFduino語音控制(forcratchX)
http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592
WFduino無線操控arduino
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819
WFduino原廠使用方法介紹網頁
http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks
WFduino for ScratchX
http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190
WF8266R雲端外部感應器