~アナログ値で画像回転~
ムサシくんの回転スピードが、圧力センサーを押す強さによって変わります!
目次
int sensors[2];
int inByte;
void setup(){
Serial.begin(9600);
pinMode(A5, INPUT);
pinMode(A1, INPUT);
sensors[0] = 0;
sensors[1] = 0;
inByte = 0;
establishContact();
}
void loop(){
if (Serial.available() > 0) {
inByte = Serial.read();
sensors[0] = analogRead(A5);
sensors[1] = analogRead(A1);
Serial.print(sensors[0]);
Serial.print(",");
Serial.println(sensors[1]);
}
}
void establishContact() {
while (Serial.available() <= 0) {
Serial.println("通信中");
delay(300);
}
}
import processing.serial.*;
Serial myPort;
PImage img;
float fill;
float diameter;
float x = 460;
float y = 460;
int spin = 0;
float rad;
void setup() {
size(980, 980);
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil('\n');
img = loadImage("musashi_face.png");
}
void draw() {
background(255);
imageMode(CENTER);
translate(x, y);
if (diameter > 0) {
if (diameter > 200) {
spin += 5;
if (diameter > 400) {
spin += 15;
if (diameter > 600) {
spin += 30;
if (diameter > 800) {
spin += 60;
}
}
}
}
}
rad = radians(spin);
rotate(rad);
image(img, 0, 0, 600, 600);
}
void serialEvent(Serial myPort) {
String myString = myPort.readStringUntil('\n');
myString = trim(myString);
int sensors[] = int(split(myString, ','));
if (sensors.length > 1) {
diameter = sensors[0] + 20;
fill = sensors[1];
}
myPort.write("A");
}
キャロット
このページのHelloNoは、050007 です!