¿Lo que se hace? Apoya la gente a usar la papelera más (menos basura en el espacio público). Se aplica un 'aspecto de la diversión' tirando la basura en la papelera de. Es el principio de un partido de basket donde consigue un punto para tirar algo en la canasta de baloncesto.
Empezamos con la programación en procesamiento y Arduino, basado en un sensor de distancia ultrasónico >> http://www.parallax.com/tabid/768/ProductID/92/Default.aspx. Este sensor mide la distancia y es perfecto para cualquier número de aplicaciones que requieren realizar mediciones entre objetos móviles o inmóviles.
Cuando alguien lanza una bola de papel en la Tosket de papel, la distancia que se mide por el Sensor de distancia ultrasónico reduce y por lo tanto reducen los números que arduino está ganando demasiado. Utilizamos esta degradación en nuestro código para aumentar la puntuación actual con un punto. Estos puntos aumentan cada vez que se lanza una bola de papel. Cuando el puntaje actual es de 99, el contador restablece y reinicia contados a partir de 0 puntos.
Adicional, agregar algunos sonidos. Hay un sonido jugando cuando alguien lanza en el tosket de papel y consigue un punto, y hay otro sonido tocando cuando estás de 99 quien anota. También muele un marco para nuestra pantalla y una canasta de baloncesto. El nombre sobre nuestra pantalla es hecho por un cortador láser.
Para conectar el sensor al arduino, echa un vistazo a estas web >> http://www.robot-electronics.co.uk/htm/arduino_examples.htm. Búsqueda para 'SRF02'.
También hicimos un video acerca de nuestro proyecto, sin embargo una parte de él está en holandés, todavía puede ser interesante ver >> https://vimeo.com/52013372.
A continuación el código que utilizamos para nuestros Tosket de papel en el proceso y Arduino.
CÓDIGO PARA EL PROCESO
Import ddf.minim.*;
Import ddf.minim.signals.*;
Import ddf.minim.analysis.*;
Import ddf.minim.effects.*;
Import processing.serial.*;
Serie myPort;
PImage bg;
Reproductor AudioPlayer;
AudioPlayer player2;
Mínima mínima;
int currentScore;
int scoreIncrease;
int endScore;
int inByte;
void setup() {}
tamaño (800, 600);
println(serial.List());
String portName = Serial.list() [0];
myPort = serie nueva (este, portName, 9600);
BG = loadImage ("achtergrond. JPG");
mínima = nuevo Minim(this);
jugador = minim.loadFile("Punt.mp3");
jugador 2 = minim.loadFile("Winnaar.mp3");
currentScore = 0;
scoreIncrease = 1;
endScore = 99;
}
void draw() {}
Background(BG);
Text(currentScore,400,545);
Fill(0);
textSize(290);
}
void serialEvent(Serial myPort) {}
int inByte = myPort.read();
println(inByte);
Si (inByte < 60) {}
currentScore += scoreIncrease; aumentar currentScore
println(currentScore);
Player.Rewind();
Player.Play();
if(currentScore == endScore) {}
player2.Play();
currentScore = 0;
}
}
}
CÓDIGO PARA ARDUINO
#include
void setup() {}
Wire.Begin();
Serial.Begin(9600);
}
lectura de int = 0;
void loop() {}
int datos = 0;
int newAddress = 0x70;
Mantenga boolean = false;
{while(1)}
datos = readData(newAddress);
{if(Data!=0)}
Serial.Write(Data);
Si (datos < 50 & & hold == false) {}
Serial.Write = 1;
sostener = true;
}
else if (datos > 200 & & hold == true) {}
sostener = false;
}
}
Else {}
Serial.println("0");
}
Delay(90);
}
}
void changeAddress (int oldAddress, int newAddress)
{
Wire.beginTransmission(oldAddress);
Wire.Write(byte(0x00));
Wire.Write(byte(0XA0));
Wire.endTransmission();
Wire.beginTransmission(oldAddress);
Wire.Write(byte(0x00));
Wire.Write(byte(0xAA));
Wire.endTransmission();
Wire.beginTransmission(oldAddress);
Wire.Write(byte(0x00));
Wire.Write(byte(0xA5));
Wire.endTransmission();
Wire.beginTransmission(oldAddress);
Wire.Write(byte(0x00));
Wire.Write(newAddress);
Wire.endTransmission();
}
int readData (int direccion) {}
lectura de int = 0;
Wire.beginTransmission(address);
Wire.Write(byte(0x00));
Wire.Write(byte(0x51));
Wire.endTransmission();
Delay(70);
Wire.beginTransmission(address);
Wire.Write(byte(0x02));
Wire.endTransmission();
Wire.requestFrom (dirección, 2);
Si (2 < = Wire.available())
{
lectura = Wire.read();
lectura = lectura << 8;
leyendo | = Wire.read();
volver a leer;
}
return 0;
}