2015年2月28日 星期六

模組-RGB LED 輸出模組

模組-RGB LED 輸出模組(共陽極)


















本模組為輸出模組,這個模組可以把ARDUINO的數位輸出、類比輸出全部教完,是我基礎課程必備的重要模組,可惜的是它是共陽極設計,因此輸出的數值大小要相反...(待會說明)。

腳位連接四種方式

  • 使用S4A類比型(可控制全彩,每一種0-255階,256*256*256=1677萬種顏色)


模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D5、D6、D9任意,錯開即可
B(藍)   ←→D5、D6、D9任意,錯開即可
G(綠)   ←→D5、D6、D9任意,錯開即可





  • 使用S4A數位型(只有8種狀態,ON/OFF,2*2*2=8種,S4A1.5版之後D12腳也能使用)


模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D10、D11、D13任意,錯開即可
B(藍)   ←→D10、D11、D13任意,錯開即可
G(綠)   ←→D10、D11、D13任意,錯開即可


  • 使用MBLOCK類比型(可控制全彩,每一種0-255階,256*256*256=1677萬種顏色)

    (未完待續...)



模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D5、D6、D9、D10、D11任意,錯開即可
B(藍)   ←→D5、D6、D9、D10、D11任意,錯開即可
G(綠)   ←→D5、D6、D9、D10、D11任意,錯開即可


  • 使用MBLOCK數位型(只有8種狀態,ON/OFF,2*2*2=8種,S4A1.5版之後D12腳也能使用)

    (未完待續...)



模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D4、D7、D8、D12、D13任意,錯開即可
B(藍)   ←→D4、D7、D8、D12、D13任意,錯開即可
G(綠)   ←→D4、D7、D8、D12、D13任意,錯開即可

控制方式


由於是共陽模組,所以輸出得反向才是想要的輸出,也就是說:
本來類比的控制應該輸出ON才是開燈,現在要輸出OFF才是開燈,因為5V→5V沒有電位差,電流流不過去,5V→0V,電流才能留過去,燈才會亮,同樣的道理,類比的控制,輸出0才會全亮,輸出255變成關燈,輸出200亮度只有255-200=55/255的亮度,而RGB三個顏色分別控制九能組合出你所想要的顏色。

RGB配色表可參考這個網站:http://www.colorspire.com/

範例如下

影片:S4A數位控制-霓虹燈

影片:S4A類比控制-呼吸燈

影片:MBLOCK數位控制(待續)

影片:MBLOCK類比控制(待續)

備註:因為RGB LED是由三原色利用各色色階去組合出全彩,因此可以參考網路上RGB的色階組合來組成想要的顏色,若LED太亮看不清楚顏色,建議可在其上方放置一張白紙,將更能看清楚其組合成的顏色。








2015年2月26日 星期四

感測器模組-總論

感測器輸入模組-總論


感測器乃是指能偵測人類物理世界,產生訊號的零件,例如:紅外線測距離、光線亮度感測、碰觸感測、濕度感測、壓力感測、氣體感測....等,將這些零件做成模組,將真實物理世界所偵測的訊號,透過電子零件轉變成ARDUINO所能判斷的類比或數位輸入的訊號者,即為感測器模組,對岸稱為傳感器模塊。

我們這裡僅討論在S4A、MBLOCK能用的感測器模組,因為網路上能採購模組眾多,但是並非每個感測器都能直接在S4A或MBLOCK中使用,能使用的模組其輸出訊號必須為0-5V的電壓訊號,因為ARDUINO的A0-A5輸入,或是D0-D13(S4A僅能用D2、D3其餘,但MBLOCK可已使用所有腳位當輸入)均是以電壓來模擬的輸入。

模組的輸出接腳與ARDUINO連接


圖為旋轉電位計(可變電阻)模組


大部分感測器模組都會3個以上的接腳,其中兩隻一定是+5V(V、V+、VCC、VIN、電壓、正電、OUT)、GND(G、接地、V-、負電)的接腳,用來提供模組工作電源,只要將電源與接地接對,模組即可正常工作,如果接反了,有些便宜的模組恐怕會燒毀。

另一隻(或以上)接腳則是提供訊號輸出,這些輸出必須連接至ARDUINO的輸入端,也就是類比輸入A0-A5或是數位輸入D2、D3(S4A僅有兩個數位輸入,但MBLOCK的所有接腳都能當輸入);通常模組端會標示成D0(數位輸出,僅有兩種狀態,做為開關用),或是A0(類比輸出,0-5V中間任何狀態),我比較偏好有A0(類比輸出)的,因為也能當D0(數位開關)用,只要在程式中做設定即可。

所以一般感測器模組至少會有3隻腳,購買時要注意輸出是數位還是類比,是否符合需求;另外有的模組會兼具類比及數位可同時輸出,是不錯的選擇,另外也有2個以上的輸出,例如搖桿有X、Y兩方向的輸出值、RGB_LED會有三個顏色的輸入端、或是八通道的繼電器會有八個輸入訊號。

S4A、MBLOCK不能直接用的模組


有些模組因為輸出是串列數位資料,例如:溫度的感測,採DHT22晶片的就不能用,溫度必須找LM35晶片或是使用熱敏電阻的才能使用,或是超音波SR-04的也不行,得要用U-016的才行。

特別注意品質不佳的模組


有些網路買來的模組標示並不清楚,我曾經買過七彩光盃模組接腳標示錯誤,燒毀三片ARDUINO NANO之後才發現,該模組標示V和G的位置,其內部電路竟然是短路的...真是令人無言以對。

還有買過RGB全彩LED模組,接腳亂標還用貼紙貼起來,難怪怎麼接都不會亮...,還以為自己買錯模組...。



2015年2月24日 星期二

課程-點亮學習光明燈-數位類比輸出的練習

課程-點亮學習光明燈-S4A


這可以是學習ARDUINO的首部曲,這第一顆LED可以學習到數位/類比輸出的概念,在S4A1.6版裡,數位輸出有D10~D13,一共4隻腳可做數位輸出,因此想做數位輸出,就能接在這4隻腳其中1隻。

我們先將電路連接如圖,LED有分正負極,長腳正極接在ARDUINO的D13作為輸出送電控制,短腳負極接在GND使LED形成迴路(這是偷懶的做法,因為ARDUINO UNO輸出有內電阻,所以我們省略的220歐姆的限流用電阻,同樣的做法在ARDUINO NANO上會燒毀LED)。


















最正確的連接方法應該是下圖,要串連一個220或300歐姆的限流電阻如下圖,電阻沒有正負極之分,因此接在正極或是負極都沒有關係。





數位輸出是甚麼?

數位就是非黑即白,有電或沒電、有輸出或沒輸出、在ARDUINO裡就是5V或0V,沒有其他種狀況,輸出就是給出要控制別人的訊號,只有兩種訊號,開或關,我們用一個簡單的S4A例子來說明,這個程式控制D13腳位上的LED,一直重複開關各1秒鐘,範例如下:










執行程式後有沒有發現LED會隔一秒亮隔一秒暗的閃爍呢?其實你會發現主板上有一顆燈會跟著LED一起亮,因為這個燈和D13是並聯的。

影片在這裡:利用LED學數位輸出
舊版1.4版數位輸出
舊版1.4版紅綠燈01
舊版1.4版紅綠燈02

翻轉:

  1. 請你讓這LED燈閃爍頻率加快
  2. 請你利用這一個LED燈配合按鍵,做出摩斯密碼電報機
  3. 請你利用紅黃綠3的LED燈,模擬出紅綠燈

類比輸出又是甚麼?


類比簡單的說,在ARDUINO上就是在0V~5V中,可以給出任意電壓而非只有ON/OFF訊號,換句話說就是可以控制輸出功力的大小(想像一下武俠小說,都可以用0-10成功力來出招,就是這個意思),在ARDUINO中專業術語叫做PWM頻寬脈波調變,在S4A中因為是數位模擬類比,因此他把0-5V切割成0~255等分,你可以選擇輸出的比重(0~255),而可以控制的腳位是D5、D6、D9這3個腳位,因此如果你想控制輸出的功率,也就是LED的亮度,就得接在這3隻腳上的任1隻腳,而且輸出0和255等同於數位輸出的ON和OFF。我們用一個簡單的S4A例子來說明,這次把LED接在D9,電路如下:



















程式如下,執行後有沒有發現LED的亮度都不同呢?















影片在這裡:利用LED說明類比輸出
舊版1.4版:類比輸出

翻轉:

  1. 請你利用類比輸出的功能做出呼吸燈,就是慢慢變亮又慢慢變暗,像在呼吸一樣的燈,還得知道如何調整速度
  2. 請你用3個LED,做出類似李麥克霹靂車前方能左右掃描的跑馬燈,或是招牌上的霓虹燈


P.S.電阻不用背顏色,有APP可用,都甚麼時代了...




2015年2月23日 星期一

馬達使用-連續旋轉伺服機-S4A

馬達使用-連續旋轉伺服機-S4A


本單元使用DS04-NFC連續旋轉伺服機為例:


正確電路圖可參考下圖,伺服機的紅線(Vin)建議拉到ARDUINO的Vin,或是直接接到電池盒的紅線上,本電池盒裝4顆鹼性電池,電壓為1.5*4=6V,如果裝4顆充電電池,那電壓就是1.2V*4=4.8V,都在伺服機的運作範圍內。

當我們在練習時,其實可以不接電池盒

直接由ARDUINO上擴充板的D4排針插座上的G、V、S的V來供電,這裡的V其實就是ARDUINO機板供電的5V,但是由於ARDUINO機板的供電電流可能不足以提供伺服機運轉所需的比較大的啟動電流,因此ARDUINO可能會當機,如果當機只要拔除USB,再插回即可,一會兒就會重新連接,如此,在練習階段其實也能不使用外接電,就能練習伺服機的使用,電路連接如下圖:



正確的接法

但是如果你控制不只一個伺服機,我還是強烈建議把伺服機的電源(紅線)直接拉進外加電源中,或是從Vin接腳座連接(前提要有外接電),就不會有因為供電不足而當機的情形,最正確的電路應該如下圖所示,S4A1.6版可以一次控制3組(D4/D7/D8)連續旋轉伺服機,供電部分並聯即可,訊號線則個別控制。

有擴充板的連接方式:

記得跳線帽要接上,主板的外接電才會接通到擴充板上。



無擴充板的連接方式:

本圖是從Vin拉出來的電壓,會比直接接外電的電壓少0.XV,因為中間經過一個二極體,其實可以直接從電池盒拉出來。

S4A程式參考如下:



影片部分請參考:基礎-連續旋轉馬達控制-S4A

2015年2月22日 星期日

馬達-總論

馬達-總論

開放式硬體(Arduino)在使用圖形化程式(S4A、MBLOCK)控制時,教學上最常用上面四種:

  1. 連續旋轉伺服機:可以正轉、逆轉、停止,通常用來做車輪、收放線裝置...等。
  2. 方向機(舵機):可以控制0-180度精準的旋轉角度,通常用來做方向舵、裝置舉起放下、移動位置、機器人關節、...等運用,由於是機械裝置,因此轉到指定角度需要時間,寫程式要注意預留等待時間。
  3. 直流馬達(含震動馬達):轉速快、扭力小,可正轉、逆轉、調整輸出功率,但是需要L298N模組配合控制,直接用ARDUINO輸出,可能會因為電流過大造成當機。
  4. 直流減速馬達:轉速慢、扭力大,有點像連續旋轉伺服機,可正轉、逆轉、調整輸出功率,但是需要L298N模組配合控制,直接用ARDUINO輸出,可能會因為電流過大造成當機。
  5. 步進馬達:
  6. 直流、交流大功率馬達:因使用大電壓電流,因此必須使用繼電器來分離大小電迴路,ARDUINO僅提供控制訊號而已。

教學常用馬達型號:

連續旋轉伺服機(線材多以黑紅白為主):GWS-S35/STD、Parallax、DS04-NFC












方向機(舵機)(線材多以棕紅橘為主):SG90、SG92、MG995、GWS-S03TXF STD、FUTABA S3003















直流馬達:就我們自然科做實驗那種小馬達

















圖片取自:http://goods.ruten.com.tw/


直流減速馬達:




















圖片取自:http://big5.made-in-china.com/


震動馬達












片取自:big5.made-in-china.com


控制直流馬達、直流減速馬達、震動馬達用的L298N模組





















使用馬達注意事項:

  1. 依作品需求挑選適用輸出功率及功能的馬達。
  2. 馬達都需要大電流,因此要另外供電,ARDUINO僅供訊號控制及共地連接。
  3. 供電須注意馬達的容忍範圍,切勿超過燒毀馬達,或是電路連接錯誤燒毀ARDUINO。
  4. 上面教學用四種馬達,大部分的供電範圍都在4.8-6V左右,如果超過或不足可使用昇降壓模組,配合廢棄3C變壓器、電池盒、行動電源使用。
  5. 使用1個伺服機馬達時,電腦的USB供應電流量都有500mA,因此ArduinoUNO板子的輸出能力也有700mA,應該直接可用無須外加電源,如擔心穩定性,可於UNO電源插座外加電源供應。使用2個以上伺服機馬達時,因為受限於USB的輸出電流不足,而且即使使用了UNO板子的插座外接電源,仍會因為UNO的輸出電流能力不足而無法使用,必須手工將馬達的電源(紅線)另外不經過UNO而直接接到額外提供的電源,例如電池盒、攜帶型電源、變壓器等。

S4A使用馬達圖解


外接電源注意事項:



四節三號電池盒,裝充電電池時1.2V*4=4.8V,裝鹼性電池時1.5V*4=6V,不管是小顆的SG90或是大顆的S35伺服機都能正常動作,我個人最建議這個組合,尤其是辦研習或學校上課時使用。


兩節18650電池盒,18650電池是遙控飛機在用的,一顆是3.7V,兩顆串在一起是7.7V,因此只能用在大顆的伺服機,如果用在小的SG90可能會有損壞的危險。
行動電源,固定5V輸出,但是要挑至少1A輸出能力,最好有2A,我試過1A可以驅動兩顆SG90和兩顆S35,但是你要把USB線剪開,才能把兩條線(5V,GND)拉出來(沒有現成的線材),我認為比較貴,不適合辦研習,自己用倒是很好用。



零件-麵包板

零件-麵包板

麵包板有大中小的分別,下圖是一般國中小上課適用的中型麵包板


也有更小的麵包板,適合小單一小型作品












圖片取自:http://goods.ruten.com.tw/

或是直接是擴充板,堆疊在ARDUINO UNO上頭















圖片取自:http://appsduino.com/


麵包板基本用法




國中小教學建議

國中小的教學中,對於沒有電子零件概念的學生或老師,如果不想有太多的困擾,或是造成學習的困難,其實麵包板並非必要選項,老師大可全部選擇感測器模組來教學,即使有少量電路的連接,也可以直接手工連接或使用連接套環夾緊即可。

但是其實國小四五年級的自然課已經有相關的單元,探討LED的用法、電路的正負極、電路的連接是通路還是斷路、串聯還是並聯...等,因此如果為了要省錢自行製作模組,或是用來教育孩子一般基礎的電子電路的連接、電器原理,甚至是DIY加工自己的作品...等,其實也是可以使用的。

在國小教學裏,你可用下列的策略讓學生學會基本電路的連接,同時減少錯誤的產生:


  1. 一開始只要將原理講清楚
  2. 給予清楚的電路示意圖
  3. 用網路攝影機操作連接過程
  4. 實際作品給予觀察
  5. 用彩虹排線規定好連接顏色(電子業常用習慣:紅接正5V、黑接負GND、其他顏色傳遞訊號)
  6. 先用簡單的LED迴路讓他們練習

一般電路製作學習的順序:

手工旋轉連接或使用套環(可以用彈珠檯法取代)→麵包板→焊接

另外老師做講義或說明時可以採用Fritzing這套電路模擬軟體











官方網站:http://fritzing.org/home/

給初學者的建議-圖形化程式語言的挑選

給初學者的建議-圖形化程式語言的挑選


這裡所挑選的都是基於MIT麻省理工多媒體實驗室所設計出來的SCRATCH,適合Coding初學者的圖形化程式語言,其共通的優點如下,目前我仍偏愛S4A的成熟穩定,但是正向MBLOCK和Webduino的強大效能學習中:

  1. 簡單易懂,圖形化積木堆疊即可使用
  2. 多國語言沒有門檻
  3. 具多工,不用擔心程式如何分工
  4. 多媒體製作設計超級簡單
  5. 用途太多無法一一說明

SCRATCH

官方網站:https://scratch.mit.edu/

  1. 目前已經到2.0版,有單機安裝版、雲端網頁版(手機平板可用)
  2. 可直接支援LEGO WEDO教育系列的樂高積木
  3. 可直接支援PICOBOARD開放式硬體學習外部感測器


S4A

官方網站:http://s4a.cat/

  1. 修改自SCRATCH1.4,支援開放式硬體Arduino大部分板子。
  2. 可惜改版比較慢,目前版本為1.6桌面單機安裝版。
  3. 使用時需驅動ARDUINO版子、用Arduino IDE上傳S4A韌體、才能與S4A溝通,這些動作在不同程式介面才能完成,建議燒錄韌體部分由老師先行處理,請參考我的教學,下方直接有影片。
  4. 必須使用USB或藍芽與電腦連線,無法脫機。
  5. Linux的版本Ezgo中內建。
  6. 不挑Arduino板子,標準、相容板皆可使用。


MBLOCK


官方網站:http://www.makeblock.cc/

  1. 修改自SCRATCH2.0,支援開放式硬體 Arduino UNO 、 Leonardo、Nano、Mega和自家公司的板子
  2. 自家公司支援改版快速,但是針對UNO、NANO等開放硬體就有點緩慢...BUG頗多,目前版本使用類似SCRATCH2.0桌面單機安裝版
  3. 舊版使用前必須安裝Arduino IDE、Adobe AIR插件、Mblock主程式,新版本以經全部打包在一起了,連上傳韌體都是一鍵完成,厲害厲害。
  4. 兼具有兩種使用模式:一是SCARTCH的模擬環境,點選綠旗後直接模擬,類似S4A,此種模式必須先上傳韌體(固件)目前對開放硬體部分BUG比較多,自家產品部分比較沒問題;另一模式是直接將程式上傳寫入,可以離線執行,此種模式可以使用版子上的所有腳位。兩種方式都可在同一個程式介面完成,動作而強大。
  5. 可使用USB或藍芽與電腦連線,亦可將程式燒錄至ARDUINO板子,脫機獨立運作是最大的特點。
  6. 燒錄模式可以使用板子上所有的腳位,並可自由定義使用。
  7. 不挑Arduino板子,標準、相容板皆可使用。

S2A

官方網站:http://opensource.ntpc.edu.tw/

  1. 含在新北市為教育學習所打造的作業系統之中,使用Ubuntu系統
  2. 採SCRATCH2.0介面,目前已經支援UNO與NANO
  3. 有任何問題請向陳國全老師反映
WebDuino

關方網站:https://webduino.io/
  1. 新創公司(慶奇科技,2015)所開發,可以讓Arduino直接上雲端互動,功能強大
  2. 介面類似ArduBlock,不像SCRATCH有電腦多媒體功能,但是可以控制更多的模組,而且控制超級簡單。
  3. 適合製作專案、或國中以上學習。
  4. 官網有教學,網頁直接操作,Chrome Book也可使用(上述其他都不能用)
  5. 目前有Arduino FLY擴充板和馬克1號產品,讓Arduino直接上雲端。
  6. 即使沒有買上述產品,UNO標準板及相容板依然可以使用USB直接連線,或透過藍芽連線,使用網頁介面的開發程式。
  7. 使用前必須先將標準韌體“Stardfirmata”燒錄至板子上,然後在Chrome瀏覽器的Webstore中安裝API PROXY AGENT 和API PROXY兩隻程式,即可以使用Webduino的網頁開發介面來控制Arduino。
  8. ※如果你用的是Chrome Book不是PC,則請勿使用相容板,因為Chrome Book尚無Ch340的驅動程式。
  9. Webduino的程式積木有些不太直覺,例如LED的閃爍,或重複迴圈的控制,目前均在修正中...。

但是,以上這些,在Transformer出現後,版圖重新排列
請參考以下這篇
http://dshps.blogspot.tw/2016/03/scratch20transformer.html