動機: 因為在高一高二有參與過類似的課程,對於寫程式碼焊接線路有著強 大的好奇心,高三的選課就再次選了機器相關的課程,雖然只有一節 課,不過還是讓我受益良多。 課程內容: 以往過去的課程通常都以讓我們動手操作,老師一步一步的指導,高 三開辦的課程則較多是先給予我們一個觀念,然後再慢慢讓我們去創 造出更多種的樣式,課堂的尾聲老師也會出一些加分題讓我們動腦做 出老師要求的模樣。 最初: 從一開始的接線路到寫程式,每一步驟都是環環相扣的,只要稍有接 錯線或是程是多或少字,就會導致無法產出結果,在接線這項任務裡, 我常常把 GND 接長短腳搞混,最終造成程式沒反應。 實作: 從簡單的兩顆燈泡交替閃爍開始,入手後老師給了我們三顆燈泡交替 閃爍的額外加分任務,我覺得這困難的點在於要設法在第三顆燈泡亮 的時候前兩顆燈保持不亮,一開始我們總是忽略了時間交疊的問題, 導致會出現兩顆燈泡同時亮的問題。
最印象深刻的課程:
每堂課都有不同的主題,例如:遞迴程式、交通號誌燈控、霹靂燈、
控制 LED 燈的明暗......等等。
其中,最令我印象深刻的是七彩霓虹燈-RGB 的課程了。
R=RED,G=GREEN,B=BLUE
起初,我本來以為只使用三個顏色的燈要如何變出各種不同顏色,直
到老師和我們講解了如何寫出程式來調控三個不同顏色燈的亮度,才
發現使用程式可以讓原本單調的三色燈演變出千變萬化的霓虹燈。
int redPin = 9;
int greenPin = 10;
int bluePin = 11;
void setup(){
pinMode(redPin,OUTPUT);
pinMode(greenPin,OUTPUT);
pinMode(bluePin,OUTPUT);
}
void loop(){
colorRGB(random(0,255),random(0,255),random(0,255));
delay(100);
}
void colorRGB(int red, int green, int blue){
analogWrite(redPin,constrain(red,0,255));
analogWrite(greenPin,constrain(green,0,255));
analogWrite(bluePin,constrain(blue,0,255));
0~255 是顏色的亮度,
藉由三顆紅綠藍顏色亮度的不同,可以創造出各種不同的顏色
巧妙的部分是如果同時將三顆燈的亮度都調至最大亮度 255
所呈現出燈的顏色會是白色,與美術課的色相環不同。
這是老師提供給我們色碼網址讓我們利用亮度數字不同來配
出不同顏色的燈
顏色色碼轉換網址:
https://www.ginifab.com.tw/tools/colors/cmyk_to_rgb.html
沒有留言:
張貼留言