新DiFi第7課色光三原色
一、認識色光:
(1)三原色是哪三種顏色?
三原色可分為色光三原色和繪畫顏料三原色。繪畫顏料三原色是「消減型」的原色系統,三原色是洋紅色、黃色和青色。色光三原色是「疊加型」的原色系統,三原色是紅、綠、藍,三種光相加會成為白色光。
色光三原色是紅、綠、藍,這三種光依不同比例相加就可以讓你看到各種不同的顏色。
這個看到混成後的光是真的[光]嗎?
紅光加綠光混合成的黃光是真的[黃光]嗎?
(2)三原色的原理:
三原色的原理不是出於物理原因,而是由於生理原因造成的,由於人類有三種視錐細胞分別對紅、綠和藍光最敏感。人的眼睛內有幾種辨別顏色的錐形感光細胞,分別對黃綠色、綠色和藍紫色的光最敏感,如果辨別黃綠色的細胞受到的刺激略大於辨別綠色的細胞,人的感覺是黃色;如果辨別黃綠色的細胞受到的刺激大大高於辨別綠色的細胞,人的感覺是紅色。 雖然三種細胞並不是分別對紅色、綠色和藍色最敏感,但這三種光可以分別對三種錐形細胞產生刺激。不同的生物眼中辨別顏色的細胞並不相同。(註)
(3)混成光的特性:
將三原色光以不同的比例複合後,對人的眼睛可以形成與各種頻率的可見光等效的色覺。例如:紅光加綠光混合成的黃光和真正物理上的黃光並不相同,混成的黃光頻率還是紅光和綠光的頻率,不會變成黃光的頻率。
物理上用光譜儀可以看到各顏色的光(頻)譜是特定的,所以混成光並不是真的混成新的頻率的光,只是人眼睛判斷的結果。
科教館林銘照博士拍的影片可以看到光譜儀看到的光和肉眼看到的光確實不一樣。
RGB LED發出的紅、綠、藍三種顏色光,可以混成白光。但並不是按照1:1:1的比例就會真的混成視覺白光,因為RGB的視覺亮度不一樣,還有LED的品質和轉換效率都會影響混成效果。
一般家用的白光LED燈泡其實並不是真的以紅、藍、綠三色發光二極體晶粒所組成的燈泡,而是利用藍光發光二極體晶片所發出的光線激發黃光螢光粉組合成白光。
以下課程利用電腦和DiFi控制板來合成白光,RGB LED裡面有RGB三種顏色的LED,透過電腦程式學生可以調整三種顏色LED不同的輸出功率,研究三種色光的混成顏色和輸出功率之關係,也可以認識LED燈的發光特性,學會如何操作電腦來做簡易的科學實驗。
——————————-
二、認識RGB三色LED:
老師說明三原色的原理、混成光的特性,讓學生練習調整三種顏色LED不同的輸出功率,研究三種色光的混成顏色和輸出功率之關係,也可以認識LED燈的發光特性。
RGB LED 一般分為共陽極和共陰極兩種,有四隻針腳,最長的是共同接腳。
共陽極的RGB LED,共同接腳要接正極,另外三隻腳接GND時會分別亮紅、綠、藍三顏色。
共陰極的RGB LED,共同接腳要接負極,另外三隻腳接正極時會分別亮紅、綠、藍三顏色。
Q:上圖是共陰極或是共陽極的RGB LED?
A:共陰極的RGB LED
一顆RGB三色LED裡面就有RGB(紅、綠、藍)三種顏色的LED,這裡用的是共陰極,有四支腳,其中最長的腳負極(-),其他三支腳分別控制 R、G、B 三個顏色。
————————–
接線圖:
使用Jump直接將D5和LEDB、D6和LEDR、D7和LEDG兩兩接上。
當類比輸出為255(3.3V)時LED亮,類比輸出為0(0V)時LED熄滅。
—————————————-
三、混成色光
1.製做一個變數,讓變數可以用滑鼠左鍵拖曳(滑桿)改變變數大小
先做一個[紅]變數,在舞台區會顯示變數的圖案
————————-
滑鼠游標移到變數上,點滑鼠右鍵,再點滑鼠左鍵選[滑桿]
———————————
或是
在圖案上用滑鼠左鍵快點2下,就會變成下圖(只有數值)
在圖案上快點2下滑鼠左鍵,就會出現下圖
————————–
用滑鼠左鍵拖曳滑桿上的小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小。
依序再設定[綠]、[藍]變數,一樣在變數前要打勾,舞台區上的變數圖形要點按2次,變成可以拖曳改變數值的圖案。
2.主程式
[腳位5類比輸出(藍)],讓腳位5類比輸出的值由變數(藍)來決定。
[腳位6類比輸出(紅)],讓腳位6類比輸出的值由變數(紅)來決定。
[腳位7類比輸出(綠)],讓腳位7類比輸出的值由變數(綠)來決定。
接著用滑鼠左鍵拖曳三原色的小點(滑桿)往左右滑動,就可以改變變數大小,也就是改變輸出值的大小,輸出各種不同的顏色了。
程式下載:RGB.sb2
四、混成色光(修正)
實際測試時發現(滑桿)的移動範圍為0~100,變數值最大為100,無法讓顏色輸出完全變最亮(255才可以最亮)。
程式主要跟上面一樣。
因為類比輸出值範圍為0~255,所以將輸出值做一個轉換,變數值除以100後再乘以255。
這樣就可以完整的調整3原色的輸出值,混成各種顏色。
增加一個[說….]積木來檢查轉換公式結果是否正確。
程式下載:RGB(修正).sb2
學生練習:
1.請學生試試看,轉換公式的排列會影響結果嗎?例如:先乘再除,運算符號的放入順序,變數直接乘以2.25………..
2.請學生依序調出黃光(紅+綠)、洋紅(紅+藍)、青(綠+藍)、白(藍+綠+紅)……..等顏色。
3.讓學生動手後,提醒學生觀察 RGB 三個顏色不同的調整比例和複合後顏色的關係。並不是按照 1:1:1 的比例就會真的混成視覺白光,因為 RGB 的視覺亮度不一樣,還有 LED 的品質和轉換效率都會影響混成效果。
4.請學生依序調出彩虹的七種顏色,並記錄各顏色時所調的RGB值各是多少。
5.直接將滑鼠游標移到[滑桿變數]上,點滑鼠右鍵,再點滑鼠左鍵選[用滑動鈕設定最小值與最大值]
最大值填上[255],按[確定]
[滑桿變數]的最大值就直接變成255了。
五、鍵盤控制調整RGB混成色光
改用鍵盤控制調整RGB三原色變數,混成色光。
注意:
記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。
製做綠、紅、藍三個變數。
先設定3個變數值各為255,(預設輸出高電位,讓RGB LED 一開始先熄滅)
加上[重複執行],讓程式不斷的去檢查按鍵的情形。
[如果(按下….鍵了嗎?)就…],如果按下指定的按鍵,就改變顏色變數。
[腳位(7)類比輸出(綠)],腳位7的輸出值由[綠]變數來決定。
[腳位(6)類比輸出(紅)],腳位5的輸出值由[紅]變數來決定。
[腳位(5)類比輸出(藍)],腳位5的輸出值由[藍]變數來決定。
提醒: RGB LED 是共陽極,所以輸出255讓該顏色變暗,數值愈小,顏色愈亮。
程式下載:鍵盤混成色光.sb2
延伸:
1.範例沒有考慮輸出值大於255或小於0的情形,請修改程式讓輸出值不要超出範圍。
2.使用詢問方式填入想要輸出的RGB值。
六、自動混成三原色
設計程式讓三原色自動組合成所有可能的顏色。
一開始會先全暗,然後從藍色漸亮,再混入紅,再混入綠。
因為全部顏色有1兆多種組合,全部顯示費時太久,所以跳著顯示,共1000種組合。
程式下載:自動混成色光.sb2
延伸:
1.改變顯示的顏色數
2.改變顯示的速度(加等待時間)
七、彩虹燈(隨機顏色)
讓RGB三色LED隨意變化顏色,形成五彩繽紛的彩虹燈
設定腳位7(綠色),腳位6(紅色),腳位5(藍色)的輸出值為隨機,配出來的顏色就會不一樣
程式下載:彩虹燈.sb2
延伸:
改變顯示的速度(加等待時間)
程式下載:彩虹燈(等待).sb2
八、打地鼠
看到紅色燈亮按R鍵、藍色燈亮按B鍵、綠色燈亮按G鍵,按對計分。
請自行設計。
———————————-
參考資料:
(1)網路維基百科http://goo.gl/R7XQhS
(2)http://www.dytc.com.tw/hot_cg4452.html
註:
淺談色盲眼鏡
正常人的視錐細胞按照它們的光譜敏感度之峰值波長被標記為:短(S)、中(M)、長 (L)的三種類型,每一種細胞各有其對應的光譜範圍(ex. M視錐細胞也能感知藍光與紅光,但是對於534nm的敏感度最強)
其中M和L這兩種視錐細胞所接受訊號強度的差異量,使我們能夠區分物體顏色是偏綠還是偏紅。
———————————-
相關連結:
新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192
DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/100870/660551
WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433