宜蘭縣教育支援平台 會員登入 會員註冊 我的i教書

« 上一篇 | 下一篇 »

式寫作如果結合外部感應器,可以達成簡單的自動控制功能,進一步讓學生創作一些作品改善生活或是增加樂趣,只要幾百元就可以開始體驗電腦程式控制外部感應器了。

硬體:Arduino Uno(或DiFi) + 感測器(LED、電阻....)

軟體:Scratch2.0 +  WFduino

 

------------------------------------------------

Scratch2本來只是做電腦上的程式寫作,為了能控制外部感應器,我們就利用[添加擴充功能],將控制外部感應器的(積木)新增進來,這樣就可以控制外部感應器。

A.程式選擇:

對於國中小學生(初學者)來說常見的大概就是圖形介面的[WFduino]、[S4A]、[mBlock]、[Webduino Blockly]和[S2A]、[Moto Blockly]還有[Transformer轉譯器]。(註1)

初級班建議選擇Scratch 2.0 + WFduino(chromebook也可以用)

檔案下載:軟體選擇.pdf

WFduino

WFduino 專供 Scatch2 操作 Arduino 的轉譯程式,將Scratch 2.0 的指令轉譯成Arduino的程式執行。

寫作介面為Scaratch2.0

優點:

1.跨作業系統平台:WindowsMacChromebookUbuntu LinuxBananaPI都可以使用。

2.多功能:不管有沒有網路,有沒有接感應器都可以使用,可以擴增Scratch的功能。

3.多樣性:支援多種外部感應器板子,Arduino(UnoNanoLeonardo)系列板子都可以使用,ESP8266ESP32系列等具有wifi無線功能的板子也可以使用。

4.方便性:完全免費的綠色軟體,免安裝,連上網頁,下載,解壓縮,就可以開啟使用,只要打開WFduino,相關服務一次完成,簡單方便。

5.APP 整合 : 支援國際平台Blynk,除了以Scratch為設計核心外,還可以利用Blynk設計視覺化APP,這樣的整合應用可以創造出更多可能。

6.完整的教案,方便老師教學及初學者學習。

 

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碼,可以下載燒錄。

 

Transformer:

Transformer是台灣宇宙機器人 kodorobot 團隊寫的轉譯程式,可以將Scratch 2.0 的指令轉譯成Arduino的程式執行。

寫作介面為Scaratch2.0

優點:設定簡單,使用Scratch 介面,可以在一個程式中同時控制多片Arduino板子。

------------------------

B.外部感應器選擇:

國中小學生初級班只做簡單的練習,建議選擇DiFi 或 Arduino Uno(註3)。

檔案下載:外部感應器1026.pdf

DiFi 學習板

以ESP8266 晶片為基礎設計的實驗板和Arduino基本晶片不同。

優點:加上繼電器、光敏電阻、RGB LED、按鍵開關、紅外線感測器、蜂鳴器、DHT11溫濕度感測器、紅外線發射、接收LED等感測元件,可省去接線的困擾。除了基本的感測器之外,你還是可以很容易的再連接麵包板及其他感測器,因為是以wifi晶片為基礎,也可以做遠端遙控喔!

 

Arduino Uno

市面上相容性板子很多,網路購物就可以買到,原廠較貴大約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控制板

大陸改良板

Nodemcu

是基於 ESP8266 晶片設計的實驗板和Arduino基本晶片不同。

優點:可以直接使用USB連線或無線操控,價格不貴。

 

 

------------------------------------

C.初級班基本課程搭配零件 

USB連接線(TYPE A to B)一條 ,一邊扁頭,一邊方頭。線稍微長一點,方便學生操作。

麵包板一片 (選這種有整排的接地和正極比較方便)

LED(發光二極體)紅、黃、綠各4顆

RGB三色LED一顆

電阻:220歐姆5顆 、1K歐姆2顆、10K歐姆2顆  

10K歐姆可變電阻一顆  ,這裡選用 B 型。

(線性尺度式:電阻值的變化與旋轉角度或移動距離呈線性關係,此種電位器稱為 B 型電位器)

按鍵開關一個   ,小學生建議用2腳的,比較不會接錯方向。

蜂鳴器一個

光敏電阻一顆

公對公杜邦線10條

------------------------

為什麼要推Arduino初級班課程為正式課程?

A:

1.程式寫作如果結合外部感應器,可以達成簡單的自動控制功能,進一步讓學生創作一些作品改善生活或是增加樂趣。課程內容適合小孩或初學者,完成初級班課程後,發揮創意再加上市面上的各種感應器,就可以創造各種有用、有趣的作品,讓資訊課不再只是[電腦課]。

2.教育機會均等:適合國小五、六年級以上學生,全年級都上一個學期課的型態,讓全校學生都能接受基礎的Maker資訊課,讓家裡沒有電腦、沒錢上社團、科學班的學生享有平等的受教權。

3.本系列課程,材料便宜(初級班基本材料費每校只要幾千元),程式安裝簡便,學生學習容易(簡單的電子零件,搭配積木式拖拉來完成程式寫作),有完整的教材教案提供老師教學(老師只要依照課程示範,學生創意無限)。

-------------------------

WFduino  是一個可以搭配Scatch2、ScratchX的多功能應用程式。

1.跨作業系統平台:Windows、Mac、Chromebook、Ubuntu Linux、BananaPI都可以使用。

2.多功能:不管有沒有網路,有沒有接感應器都可以使用,可以擴增Scratch的功能。

3.多樣性:支援多種外部感應器板子,Arduino(Uno、Nano、Leonardo)系列板子都可以使用,ESP8266及ESP32系列等具有wifi無線功能的板子也可以使用。

4.方便性:完全免費的綠色軟體,免安裝,連上網頁,下載,解壓縮,就可以開啟使用,只要打開WFduino,相關服務一次完成,簡單方便。

5.APP 整合 : 支援國際平台Blynk,除了以Scratch為設計核心外,還可以利用Blynk設計視覺化APP,這樣的整合應用可以創造出更多可能。

6.完整的教案,方便老師教學及初學者學習。

--------------------------------

註1:

arduino板原來接受的是如下圖的Arduino Software IDE程式,這種文字式的寫法對中小學生(初學者)來說太難了,可能為了某個指令少打一個字就無法成功。

因此利用圖形介面的積木式拖拉來完成程式寫作,減少困難度,讓初學者可以容易的操控arduino。

學生利用這些圖形介面的[程式語言]完成程式後,需要透過[轉譯]的動作,將積木程式轉譯成Arduino Software IDE程式才能執行,這個轉譯的過程如果出差錯,執行結果就不如預期。

[S4A]、[S2A]、[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、Moto Blockly也是自己寫指令,還有很多相關的程式都是自己寫積木指令。

目前看起來mBlock和Webduino Blockly似乎都有一些指令不夠準確的問題。

改寫的優點就是可以自由發揮,mBlock、Moto Blockly還可以直接翻譯成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:

DiFi 是一塊整合感測元件在板子上的學習板,可省去接線的困擾。

Arduino UNO控制板是架構在一塊單晶片上,並不像電腦有大型的記憶體可供使用,Atmega328的記憶體並不大只有2kbyte的SRAM,所以太複雜的系統其實並不適合使用。

國中小學生學習使用圖形介面程式練習設計控制感測器,只是希望讓學生學習邏輯思考及基本的電路、電子學概念,引起學生對maker的興趣,因此不需要太高級的硬體需求。

參考資料:
http://yehnan.blogspot.tw/2013/08/arduino.html

Flash memory(快閃記憶體):負責存放程式與任何初始資料的地方。(韌體燒錄的地方)

SRAM:可讀可寫,拔掉電源後裡頭的東西就會消失不見。(程式執行的地方)

EEPROM:可讀可寫,儲存長期性的資料。

Arduino UNO(ATmega328P):含有32KB Flash memory、2KB SRAM、1KB EEPROM

micro:bit: 含有256 KB Flash、 16 KB RAM

DiFi:含有4M Flash,36KB RAM  

註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

-------------------------------

初學者如果想要入門學外部感應器怎麼選?

個人建議:

初級班:

硬體:DiFi或Arduino Uno    軟體:WFduino

wifi無線使用:硬體:DiFi  或Nodemcu    軟體:WFduino

-----------------------

相關連結:

新DiFi課程目錄 
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433




 
 
 
用LINE傳送