按下物理按鍵後,Processing的顯示屏幕會由白色轉為黑色,再按多一次,會由黑色轉為白色。

x1byte push_button = 2;2boolean button_state, last_button_state;3unsigned long button_counter;4
5void setup(){6 Serial.begin(115200);7 pinMode(push_button, INPUT);8}9
10void loop(){11 button_state = digitalRead(push_button);12
13 if(button_state != last_button_state && button_state == HIGH){14 button_counter++; 15 }16 17 if(button_counter % 2 == 0) Serial.println(0); 18 else Serial.println(1);19
20 last_button_state = button_state;21}xxxxxxxxxx291import processing.serial.*;2Serial myPort;3
4int x_position, y_position;5
6void setup() {7 size(512, 512);8 println(Serial.list());9 myPort = new Serial(this, Serial.list()[0], 115200);10 myPort.bufferUntil('\n');11}12
13void draw() {14 //此處為空15}16
17void serialEvent(Serial myPort){18 String myString = myPort.readStringUntil('\n');19 myString = trim(myString);20
21 int data[] = int(split(myString, ','));22
23 for (int i = 0; i < data.length; i++) {24 print(data[i] + " ");25 }26 println();27 if (data[0] == 0) background(0);28 else if (data[0] == 1) background(255);29}整段程式碼幾乎和上一章的一樣。
Processing在Arduino中收到一個數據,非0就是255。再把這個數據用background(data[0]);顯示出來。
background()有幾種用法,Processing預設顏色模式是RGB mode:
background(red, green, blue);
三個數值都是介乎於0-255之間,例如(255,0,0)就是紅色,(0,255,0)就是綠色。 也可以只輸入一個0-255間的數值,代表灰度,0就是黑色,255就是白色。詳細可參考這裡。
將上面的例程改進,參考模式轉換,每按一下,背景顏色分別順序變成:黑、啡、紅、橙、黃、綠、藍、紫、灰、白。(p.s. Processing本身有顏色選擇器,在"Tools --> Color Selector")