HellScreamer
This was our final project.
We like to call it... The HellScreamer.
We basically made a remote controlled car that ran off of a infra-red DVD remote
we could make it go forward, backwards, left, right
in addition to movement, we added a speaker to it so when you are driving it, you could push the center button on the DVD remote and it would play a loud noise, in a way a horn.
Our initial plan was to make our version of a police car with lights attached along with more speakers to act as sirens but we did not have the time.
But what actually happened was Due to the loud and obnoxious noise the motor made every time you ran it, it received the name the HellScreamer
Problems we encountered was a lack of time... Also the board we used was broken in the middle so it was very difficult to attach wires. Everything ran perfectly fine a week before school ended, but due to a severe sodering incident, HellScreamers wires got fried and reversed which caused only some buttons to work.
I highly encourage someone next year to take up HellScreamer but I do recommend getting a brand new board...
here is our code, along with a video.
Luke Geiger
Nic Mosley
/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#include <IRremote.h>
#include "pitches.h"
int RECV_PIN = 11;
int ledPin = 6; // LED connected to digital pin 13
int ledPinTwo = 7;
int ledPinThree = 3;
int ledPinFour = 4;
int pin5= 5;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(ledPin, OUTPUT);
pinMode(ledPinTwo, OUTPUT);
pinMode(ledPinThree, OUTPUT);
pinMode(ledPinFour, OUTPUT);
pinMode(pin5, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16744575) {
Serial.println("forward");
digitalWrite(ledPinTwo, HIGH);//7
digitalWrite(ledPin, LOW); //6
digitalWrite(ledPinThree, LOW);//3
digitalWrite(ledPinFour, HIGH); //4
delay(2000);
}
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16748655) {
Serial.println("backwards");
digitalWrite(ledPinTwo, LOW);//7
digitalWrite(ledPin, HIGH); //6
digitalWrite(ledPinThree, HIGH);//3
digitalWrite(ledPinFour, LOW); //4
delay(2000);
}
}
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16750695) {
Serial.println("left");
digitalWrite(ledPinTwo, LOW);//7
digitalWrite(ledPin, HIGH); //6
digitalWrite(ledPinThree, HIGH);//3
digitalWrite(ledPinFour, HIGH); //4
delay(500);
}}
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16746615) {
Serial.println("right");
digitalWrite(ledPinTwo, HIGH);//7
digitalWrite(ledPin, LOW); //6
digitalWrite(ledPinThree, LOW);//3
digitalWrite(ledPinFour, LOW); //4
delay(500);
}}
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16712445) {
Serial.println("STOP");
digitalWrite(ledPinTwo, LOW);//7
digitalWrite(ledPin, LOW); //6
digitalWrite(ledPinThree, LOW);//3
digitalWrite(ledPinFour, LOW); //4
delay(1000); //4294967295
}}
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 4294967295) {
Serial.println("NEVA STOP");
digitalWrite(ledPinTwo, HIGH);//7
digitalWrite(ledPin, LOW); //6
digitalWrite(ledPinThree, LOW);//3
digitalWrite(ledPinFour, HIGH); //4
delay(1000); //4294967295
}}
if (irrecv.decode(&results)) {
Serial.println(results.value);
if (results.value == 16712445) {
Serial.println("SCREAM");
//nt sensorReading = analogRead(0);
// map the results from the sensor reading's range
// to the desired pitch range:
//int pitch = map(sensorReading, 200, 900, 100, 1000);
// change the pitch, play for 10 ms:
tone(5, 500, 1000);
}}
irrecv.resume(); // Receive the next value
}
digitalWrite(ledPinTwo, LOW);
digitalWrite(ledPin, LOW);
digitalWrite(ledPinThree, LOW);
digitalWrite(ledPinFour, LOW);
}