Papper Tosket
Vad är den gjord? Den stödjer människor att använda papperskorgen mer (mindre sopor i det offentliga rummet). Det gäller en "rolig aspekt" kasta dina sopor i de papperskorgen. Det är principen om en basket match där du får en punkt för att kasta något i basket netto.
Vi började med programmering i bearbetning och Arduino, baserat på en Ultraljuds avstånd sensor >> http://www.parallax.com/tabid/768/ProductID/92/Default.aspx. Denna sensor mäter avstånd och är perfekt för valfritt antal program som kräver att du utför mätningar mellan stilla objekt.
När någon kastar en boll av papper i papper Tosket, distansera, som mäts genom ultraljud avstånd sensorn minskar och därför minska siffrorna som arduino vinner också. Vi använder denna nedbrytning i vår kod för att öka den nuvarande poängen med en punkt. Dessa punkter öka varje gång en boll av papper kastas i. När den nuvarande poängen är 99, räknaren återställs och det startar om räknar från 0 poäng.
Ytterligare, vi lägger till vissa ljud. Det finns en sund spela när någon kastar i papper tosket och får en punkt, och finns det ett annat ljud spelar när du är den de 99th som noter. Vi slipat också en ram för vår skärm och en basket netto. Namnet ovanför skärmen är gjord av en laserskärare.
För att ansluta sensorn till arduino ta en titt på dessa webbplats >> http://www.robot-electronics.co.uk/htm/arduino_examples.htm. Sök efter "SRF02".
Vi har också gjort en video om vårt projekt, ändå är en del av det nederländska, det kan fortfarande vara intressant att titta på >> https://vimeo.com/52013372.
Nedan koden använde vi för våra papper Tosket bearbetning och Arduino.
KOD FÖR BEARBETNING
import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import processing.serial.*;
Seriella myPort;
PImage bg;
AudioPlayer spelaren;
AudioPlayer spelare2;
Minim minim;
int currentScore;
int scoreIncrease;
int endScore;
int inByte;
void setup() {
storlek (800, 600);
println(Serial.list());
Sträng portName = Serial.list() [0];
myPort = ny följetong (här, portName, 9600);
BG = loadImage ("achtergrond. JPG");
Minim = nya Minim(this);
Player = minim.loadFile("Punt.mp3");
spelare2 = 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);
om (inByte < 60) {
currentScore += scoreIncrease; öka currentScore
println(currentScore);
Player.Rewind();
Player.Play();
IF(currentScore == endScore) {
player2.Play();
currentScore = 0;
}
}
}
KOD FÖR ARDUINO
#include
void setup() {
Wire.BEGIN();
Serial.BEGIN(9600);
}
int läsa = 0;
void loop() {
int data = 0;
int NyAdress = 0x70;
booleska håll = false;
While(1) {
data = readData(newAddress);
IF(data!=0) {
Serial.write(data);
om (data < 50 & & hålla == false) {
Serial.Write = 1;
Håll = sant;
}
annars om (data > 200 & & hålla == true) {
Håll = false;
}
}
annat {
Serial.println("0");
}
Delay(90);
}
}
void changeAddress (int oldAddress, int NyAdress)
{
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 adress) {
int läsa = 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 (adress, 2);
om (2 < = Wire.available())
{
läsning = Wire.read();
läsning = läsning << 8.
läst | = Wire.read();
returnera behandlingen.
}
Return 0;
}