Interactive Graffiti Wall
I made an Interactive Graffiti Wall:
CONCEPT:
It resembles a character spraying my tag "SOUL" onto a wall and while he's doing that, he gets caught by a police car. Once the police car gets him, he immediately stops spraying and the lightbar of the police car starts too flicker. The police car also has a siren which can be activated by a pushing a button on the board.
HOW IT WORKS:
The arm of the character moves by using a Servomotor, which constantly moves at an angle of 0 - 30 degrees.
The police car can be moved manually and when he reaches a certain point, his lightbar starts to flicker. The carton of the police car holds a magnet and when it reaches that exact point, the magnet touches a HAL-sensor, which causes the LED-lights to flicker.
The motherboard also holds a pushbutton and when you push the button the buzzer on the board will make a noise which resembles a siren. (In the video I replaced the buzzer with a LED, because my buzzer was broken).
Downloads
Supplies
- Arduino Uno and motherboard
- 2 LEDS
- A servomotor
- A button and a buzzer
- A HAL-sensor (and a magnet)
Photos and Videos From the Board.
Detailphotos and Videos
Disclaimer: the buzzer was replaced by a LED, because the buzzer was broken.
Arduino Sketch
#include
Servo servo;
const int servoPin = 6;
const int hallPin = 2;
int hallReading;
int buttonPin = 5;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(hallPin, INPUT);
pinMode(12, OUTPUT); //Left Red
pinMode(10, OUTPUT); //Right Red
pinMode(buttonPin, INPUT); //indrukknop
servo.attach(servoPin);
}
void loop() {
//hallReading = digitalRead(hallPin);
//Serial.println(hallReading);
Serial.print(digitalRead(buttonPin));
if (digitalRead(hallPin) == 0) { //als magneet detecteerd > rood en blauw led aan
redAndBlue();
}
if (digitalRead(buttonPin) == 1) {
sirene();
}
if (digitalRead(hallPin) == 1) {
servo.write (0);
delay(1000);
servo.write (30);
delay(1000);
}
}
void sirene (){
//on and off buzzer
Serial.print("Buzz, Buzz");
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
delay(100);
}
void redAndBlue () {
//2 leds on and off lights
digitalWrite(12, HIGH);
delay(100);
digitalWrite(12, LOW);
delay(100);
//alternate
digitalWrite(10, HIGH);
delay(100);
digitalWrite(10, LOW);
delay(100);
}