顯示具有 led 標籤的文章。 顯示所有文章
顯示具有 led 標籤的文章。 顯示所有文章

2015年5月13日 星期三

專題-S4A-燈光調色盤-PWM輸出與類比輸入的練習

專題-S4A-燈光調色盤-PWM輸出與類比輸入的練習


利用S4A偵測旋轉電位計或滑動電位計模組輸入,在RGB全彩LED模組上輸出想要的顏色。


教學目標:

1.         了解Arduino如何使用基礎類比輸入與類比輸出
2.         了解基礎電路運作原理
3.         了解RGB全彩LED與電位計模組使用方式
4.         能使用Scratch程式設定讀取類比輸入、PWM輸出至RGB全彩LED
5.         能使用Scratch程式做多媒體輸出與控制流程進行
6.         能運用上述學習天馬行空產生多元的創意
7.          能克服困難將創意展現製作出自己的作品

設計理念:

學習Arduino所需要的電路基礎常識,這些常識國小五年級其實就已經具備,這裡,我們運用簡單的模組(初步組裝即可)或電路(進階電路DIY),讓學生知道開放式硬體的電路部分其實很簡單,利用簡易的硬體加上千變萬化的程式設計,就能讓自己的創意無限延伸,創gk4ru4sxu3su04造出屬於自己的獨特作品,成為小小發明家。

主題架構:


材料:(本教案使用預設為粗體設備)


1.      Arduino開放式硬體,建議預先上傳好S4A韌體
2.      感測器擴充板V4V5均可使用,有擴充板接線比較簡單,無擴充板也能使用
3.      旋轉電位計(0~1023)、滑動電位計模組均可使用
4.      RGB全彩LED共陰模組(0-255),共陽極也行(數值要取255補數)
5.    雙母頭杜邦彩虹排線

電路連接:


電位計模組電路連接說明:

電位計模組為類比輸入,因此其訊號輸出(OUT)要接到ArduinoA0~A5輸入端(本案例三個輸入接在A0A1A2),使用擴充板則接在A0~A5S端,S代表信號的意思,連接腳位如下:
電位計1   Arduino
=======    ======
OUT  ←→ S(A0)
VCC  ←→ V
GND  ←→ G
電位計2   Arduino
=======    ======
OUT  ←→ S(A1)
VCC  ←→ V
GND  ←→ G
電位計3   Arduino
=======    ======
OUT  ←→ S(A2)
VCC  ←→ V
GND  ←→ G

RGB全彩LED連接電路說明:

RGB全彩LED模組有分共陽或共陰,接線和控制方法各有不同,本例以比較直覺之共陰極模組為主,除了“-”即為接地GND外,另三隻接腳分別為三原色的控制訊號,這次我們使用PWM控制,所以我們把它分別接至擴充板上的S5S6S9,也就是Arduino板上的D5D6D9,連接腳位如下:
   RGB模組     Arduino
   =======       =======
    - (GND)   ←→ G(GND)
    R(RED)   ←→ S5(D5)
    G(GREEN) ←→ S6(D6)
    B(BLUE)  ←→ S9(D9)

模組測試、程式撰寫與說明


電位計測試:

本專題將電位計輸入接在ArduinoA0A1A2類比輸入接腳,因此在S4A中請觀察sensor board上的Analog0Analog1Analog2欄位的值,當我們將連接在A0的電位計逆時針旋轉到最左邊時,Analog0的値為0,當順時針旋轉到最右邊時,Analog0的値為1023,任意旋轉時,Analog0的値為0~1023之間,同樣的方法測試另兩個電位計,會得到一樣的結果,Sensor Board的顯示如下圖。

因為電位計模組將0~5V切分成1024份以數位方式來模擬類比輸入,所以數值1相當於0.00488V的電壓,我們可以用一個小程式來轉換顯示目前的輸入電壓,程式如下圖:
  

我們可以寫一小段程式來轉換電位計類比輸入(0~1023),將它變成音階輸出(50~84),因此靠著轉動電位計我們可以達到不同的音樂音階輸出,範例如下。



RGB全彩LED測試:

本例中因為要使用PWM控制全彩LED,因此將R(紅色)G(綠色)B()三隻接腳分別接在D5D6D9,每一支接腳單獨控制一個顏色,由於S4APWM輸出可以從0~255一共有256種變化,因此三隻接腳即可變化出全彩1677萬色(256*256*256),我們先來測試單一顏色,確認一下程式輸出與各接腳亮燈是否正常。
首先,拿出三個“analog 9 value 255 ”積木,將接腳全部改成5用來控制紅色,並將值分別改成2551280,然後分別雙擊點選積木,會發現模組紅燈全亮、半亮、不亮,因此可以知道“值”就是輸出的功力(PWM,脈波頻寬調變),可以控制燈的亮度。
   

測試完畢之後,記得點選“analog 5 value 0”積木,將紅燈關掉,以免測試其他顏色時混到色,接下來請以同樣方法依序測試綠燈(D6)和藍燈(D9),以確認你的三個顏色分別都能正常運作。

※如果你的顏色和接腳搭配錯誤,則以實際發生的情形來做設計即可,因為對岸製造的模組品質不一,有時接腳標示會錯誤,有時零件品質有問題某個燈不亮也是常有的事、還有線材接觸不良也會發生,可以交叉測試一下就會知道問題出在哪裡。

燈光調色盤程式製作

首先我們要將Analog 0旋轉電位計的輸入(0~1023)轉化成控制D5PWM輸出範圍(0~255),因此要做一點簡單運算,於是將Analog 0的值除以1023再乘上255,然後因為PWM輸出訊號得用整數,因此再將結果四捨五入即可,將得到的結果放進點亮D5不斷地做PWM輸出,程式如下圖:

當我們按下綠旗執行後,只要旋轉A0上面的旋轉電位計,就能調整紅燈的亮度,同時為了能將亮度數值顯示在螢幕上,我們增加一個紅燈變數“紅燈R

然後我們將剛剛運算的結果先放在這個變數中,然後再以這個變數輸出PWM,所以程式修改成下圖:

這時,再次旋轉A0上面的旋轉電位計,除了能調整紅燈的亮度,還能顯示紅燈R的亮度數值在螢幕上,如圖。

接下來產生“綠燈G”和“藍燈B”的變數,同時將整個程式複製成三份,分別修改第二隻程式使用變數“綠燈G”、“value of sensor Analog 1”、“analog 6 value 綠燈G”、以及第三隻程式改成使用變數“藍燈B”、“value of sensor Analog 2”、“analog 9 value藍燈B”,程式如下圖:



恭喜你,完成這樣就完成本次燈光調色盤專案,你可以參考網路上的RGB配色表,分別調整三個電位計所代表的三原色,自由調配出想要的顏色了!

教學影片



2015年5月4日 星期一

PICOBOARD感測器基礎用法

PICOBOARD感測器基礎用法

驅動程式在這裡

第二章 基礎篇 Scratchboard的能耐-認識Scratchboard上的5種感測器
學習目標:
2-1按鍵感測器的運用
2-2聲音感測器的運用
2-3光線感測器的運用
2-4滑桿感測器的運用
2-5電阻感測器的運用

課程實作
注意事項,在開始使用所有感測器之前,你應該將感測器板連接驅動完成,否則會造成SCRATCH程式抓不到偵測值而當掉。

2-1按鍵感測器的運用:


按鈕感測器位置
2-1-1



觀察按壓按鈕感測器後ScratchBoard監視器的變化,當按下按鈕時,顯示為True,按下按鈕時,顯示為false,如下圖
2-1-2



練習一,一般用法,設定小貓在按壓按鈕時變胖,我們利用「偵測器(按下按鈕)」、「如果否則」並包覆「重複執行」,讓電腦一直重複偵測是否有按下按鈕,如果有按下按鈕,就將魚眼特效設定為100,否則為0,程式(程式2-1A)如下
2-1-3


點選綠旗開始執行,執行結果如下
2-1-4


2-1-5


練習二,按壓按鈕瞬間動作,設定小貓在按下按鈕瞬間變胖,我們利用「如果」迴圈並包覆「重複執行」,讓電腦一直重複偵測是否有按下按鈕,當按鈕狀態由未按下的false→改變成按下的true時,就廣播變胖特效,在廣播程式中為了讓變胖特效被看見,因此使用了等待0.5秒,而使用廣播才不會將程式拖慢導致偵測出現空窗期,程式(2-1B)如下:
2-1B


練習三,放開按鈕瞬間動作
如果是要按鈕放掉時才產生動作,則只要修改顛倒將偵測器按下按鈕偵測器按下按鈕不成立互換即可。
2-1C


2-2聲音感測器的運用


聲音感測器位置
2-2-1


觀察聲音感測器在ScratchBoard監視器的變化,你會發現在聲音的欄位,數字一直跳動,聲音感測值上下限在0-100之間,而聲音越大聲,數字就越大。
2-2-2


練習一,無段用法,我們將聲音的感測值直接放進鬼的特效設定中,因為鬼特效變化的範圍恰好也是0(存在)-100(隱形透明),因此不用額外做調整,並記得設定重複執行,同時為避免程式執行太快,人類眼睛無法捕捉變化,因此迴圈中增加一個0.1秒等待時間(非必要,視情況而定),讓聲音偵測及畫面顯示慢下來,程式如圖
2-2-3


點選綠旗執行後發現,聲音越大,小貓越透明,當聲音到達100時,小貓會消失
2-2-4


2-2-5


練習二,哨兵值用法,選定一個值,在大於、小於或等於此數值時產生動作。我們設定當聲音感測器的值大於50的時候,就讓小貓說請安靜點,小於50的時候,就說你們很乖,由於感測器值本身是一個橢圓形的數值積木,因此必須加上六角形的判斷積木才能放置在控制程式中做為判斷,同時別忘記要隨時判斷的程式,都要加上重複執行,如果怕變動太快,就要加上等待時間,程式如圖
2-2-6


點綠旗後執行結果如圖
2-2-7


2-2-8


練習三,多重範圍選擇,將聲音偵測的結果,切割成多個部分,範例中我們將聲音的偵測值分為三部分,如果在100~67,我們設定小貓的高度停在Y座標=100的位置,如果在66-34,我們設定小貓的高度停在Y座標=0的位置,如果在33-0,我們設定小貓的高度停在Y座標=-100的位置,如下圖
2-2-9


當點選綠旗執行時,聲音的數值一定會落在其中一個區間中,因此小貓的高度會在三個位置中變動,如圖
2-2-10



2-2-11


2-2-12


2-3光線感測器的運用


光線感測器位置
2-3-1


觀察光線的變化對比ScratchBoard監視器上光線偵測器的變化,當光線強時數字變大,當光線弱時,數字變小,可以使用手電筒或開關電燈測試,如下圖
2-3-2


練習一,設計一個會隨著光線無段變化的舞台背景
我們先點選舞台,並在背景選擇匯入一張圖片,並將舊的空白背景刪除。
2-3-3


撰寫舞台背景程式,使用外觀積木裡的亮度特效設定,將光線的偵測值置入,做為亮度的設定值,並設定重複執行,讓程式不斷偵測光線的亮度,然後調整舞台背景所呈現的亮度。程式如2-3-4
2-3-4


執行後你會發現,當光線亮度比較亮時,舞台畫面有些過亮過白,然後光線暗時,舞台背景還是很亮,如圖
2-3-5


2-3-6


我們必須做一點調整,讓光線的值所產生的舞台背景亮度比較適合現場的情況,因此我們使用運算積木,將光線的偵測值預先減掉50,再放進外觀的亮度設定中,如此一來現場的光線和舞台的亮度就會比較吻合了。程式如2-3-7
2-3-7


練習二,哨兵值用法,選定一個值,在大於、小於或等於此數值時觸發某個事件,本例中,我們讓光線大於80時,小貓會說早安,否則就閉嘴。所以我們使用如果否則來控制流程,並不斷的重複偵測。
2-3-8


當光線值大於80時,小貓會說早安
2-3-9


當光線值小於80時,小貓不說話
2-3-10


練習三,多重範圍選擇,將光線偵測的結果,切割成多個部分,按照光線偵測值的落點,範例中我們將光線的偵測值分為三部分,如果在100~67,我們設定小貓因為太陽太大,快被蒸發而求救,如果在66-34,我們設定小貓抱怨太陽太熱,如果在33-0,我們設定小貓最舒服自在
2-3-11


執行之後,光線很強時,小貓快要消失,且說要被蒸發了
2-3-12

執行之後,光線中等時,小貓消失一半,抱怨太陽太大
2-3-13


執行之後,光線很暗時,小貓最舒適
2-3-14


2-4滑桿感測器的運用


滑桿感測器的位置
2-4-1


觀察移動滑桿時ScratchBoard監視器上滑桿偵測器的數字變化,數字會從0-100變化
練習一,無段用法,我們來做一個塔防遊戲的炮台,讓滑桿可以控制炮口轉動的方向。
首先,新增一個巫師角色,並設定其造型中心在背部與魔術棒同一高度的位置, 以利巫師轉向時看起來比較自然,並將巫師位置置放於左側中間,我們假定巫師棒的位置向右。
2-4-2


設定外觀的『面向』積木,將滑桿偵測值置入,並設定重複執行,如程式2-4-3
2-4-3


因為滑桿的偵測值是0-100,與角色的轉向方位不同,因此我們要將偵測值做一點調整,我們先用100將它減去,目的是為了讓角色旋轉方向反轉,並和滑桿移動方向配合,然後將結果乘上1.75倍,這是目測並調整出來的值,讓主角旋轉的角度控制在右方,0-180度位置。程式如2-4-4
2-4-4


點選綠旗後執行結果如下,當我們滑動滑桿時,巫師會拿著魔術棒在右邊180度的範圍內旋轉
2-4-5

2-4-6

2-4-7


2-5電阻感測器的運用

電阻感測器的位置
2-5-1

一共有四個電阻感測器可以任意使用,我們將鱷魚夾線連接在電阻感測器D的插孔,然後觀察ScratchBoard監視器上電阻感測器D的數字變化,你會發現當鱷魚夾分開時,D的數值停留在100
2-5-2


2-5-3


當鱷魚夾互碰時,D的數值則停留在0
2-5-4


2-5-5


有趣的是,鱷魚夾果中間接上含有水分,或是會導電的東西的話
例如把鱷魚夾夾在2B鉛筆畫的兩端
如圖2-5-6

你會發現電阻感應D的數字竟然會變化,本例D的值約95
如圖2-5-7


例如把鱷魚夾夾在檸檬皮的兩端
如圖2-5-8

你會發現電阻感應D的數字停留在約79
如圖2-5-9


把鱷魚夾夾在檸檬比較多水分的果肉而且靠近一點的話
如圖2-5-10

你會發現電阻感應D的數字變得更小,本例約為71
如圖2-5-11


如果把鱷魚夾夾在水杯的兩端
如圖2-5-12


你會發現電阻感應D的數字停留在約71
如圖2-5-13

如果把水杯擠些檸檬汁下去,把檸檬也丟進去
如圖2-5-14

你會發現電阻感應D的數字縮小到46
如圖2-5-15



是不是很有趣?你可以多多做一些嘗試,你會發現原來越會導電的東西,在這裡的數字越小,而越不會導電的東西,在這裡的數字越大,有沒有想起國小自然課物體的導電性實驗、還有水溶液酸鹼性導電的實驗呢?有沒有想到一些有趣的應用呢?人體其實也會導電的哦,你可以試試用兩隻手分別握住鱷魚夾兩端,你會發現數字跳動,而且如果雙手是潮濕的效果更明顯,所以手如果濕濕的,最好不要按電燈開關,以免容易觸電啦!