照度センサー(CDSセル)を使ってみた。
照度センサー(CDSセル)を使ってみた。
前回のシリアルポートを調べてちょっと組んでみた。
Ardino側に記述した内容
int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogRead(0); // valを0~255の範囲に正規化してP5に送る Serial.write(map(val, 0, 1023, 0, 255)); delay(100); }
Processingで画像を生成するのですが、Ardinoから受けた変数をProcessingに入れる。
Ardinoからの変数 valを定義して図形の横幅に入れる。
Processing側に記述した内容
import processing.serial.*; Serial myPort; int val; void setup() { size(640, 640); String port = Serial.list()[3]; myPort = new Serial(this, port, 9600); noFill(); stroke(0, 255, 150); rectMode(CENTER); } void draw() { background(20, 0, 50); translate(width/2, height/2); for (int i = 0; i < 360; i+=50) { float angle = sin(radians(i/2-frameCount*5))*15; if (angle > 1) { strokeWeight(angle); } else { strokeWeight(1); } pushMatrix(); rotate(radians(i*angle/255)); rect(0, 0, val, i); popMatrix(); } } void serialEvent(Serial p){ // Arduinoからデータを読み取り val = myPort.read(); }
実行結果
照度センサー(CDSセル)の結果です。図形のX大きさ(横幅)は明るさ、暗さで変化するように組みました。
Originally posted 2016-01-01 22:13:37.