私のプロジェクトは、光と圧力の 2 つのセンサーを備えたロボット Arduino フラワーを作成することです。このセンサーは、これら 2 つのセンサーの値に応じて開閉し、同時に、それらの値に応じて処理を通じてさまざまなビデオを再生します。
Arduinoのアナログセンサーからの値を処理するのにも苦労しています。これは私がこれまでに持っているものです:
アルドゥイーノ
#include <Servo.h>
Servo myservo;
int pressure = 0;
int light = 1;
int pre;
int val;
void setup()
{
Serial.begin(9600);
myservo.attach(2);
}
void loop() {
pre = analogRead(pressure);
pre = map(pre, 918, 1023, 255, 0);
val = analogRead(light);
val = map(val, 0, 255, 0, 127);
Serial.print(val, DEC);
/*if (val>50) {
Serial.print(1);
}
else {
Serial.print(0);
}*/
myservo.write(val);
}
処理
import processing.video.*;
import processing.serial.*; //arduino
Serial myPort; // Create object from Serial class
int val;
Movie movie;
void setup() {
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
size(640, 360);
background(0);
movie = new Movie(this, "transit.mov");
movie.loop();
}
void movieEvent(Movie m) {
m.read();
}
void draw() {
val = myPort.read();
println(val);
//if (movie.available() == true) {
// movie.read();
//}
image(movie, 0, 0, width, height);
if (val==49) {
movie.jump(1);
}
}
今のところ、ビデオを光センサーに反応させようとしているだけですが、できていません。処理中の読み取り値から得られるのは 48 だけです。モーターはセンサーに正常に反応します。