Innovation: Spooky Whisper Prank

The Spooky Whispering Prank is a gimmick which whispers scary things when the lights are KO'd and IT senses someone is present. This antic twist tells whether or not someone is there based on the measure of noise beingness successful. If the lights are out and there is a vocal noise, IT assumes someone is present and intermittently begins to whisper until the lights are turned on. This is a great gift for anyone who is at all afraid of the dark, monsters, and/or ghosts. It particularly goes ended advisable with children.

Note: Albeit this should go without saying, do not remove, replace, disable or analyze any existing fire alarms in your internal or the home of anyone other. Fix a brand new skunk detector from the computer memory for this picture.

Abuse 1: Materials


(Note that some of the links happening this Page are affiliate links. This does not change the cost of the item for you. I reinvest whatever proceeds I meet into making new projects. If you would similar whatever suggestions for alternative suppliers, please let ME know.)

Step 2: Open

Open dormie the Mary Jan detector.

Step 3: Remove the Board

Remove the smoke sensor electric circuit board from the fume detector's enclosure.

Mistreat 4: Attach the Headers

Slip up the female header pins onto the Arduino micro's male header pins. If the headers are too long for the board, break a few off using pliers until they fit into the display panel.

Infix the pins from the female headers into the PCB and solder them in home.

At one time complete, hit the Arduino from the headers.

Whole step 5: Attach Wires

Trim the leads of the electric eye shorter and solder wires to them.

Insulate any uncovered metal connections with shrink thermionic valv.

Step 6: Wire the Photocell

Card on the Adafruit PCB that the rows are numbered and the columns are marked with letters.

Find the pin in 'row 14' and 'column i.' Cable a 1K resistor between there and footing.

Connect one of the wires from the photocell incoming to the resistor in 'row 14.'

Connect the other wire to the power rail.

Mistreat 7: Connect the Mike

Solder a wire between the microphone board ground connecter and priming coat on the PCB.

Next, do the same for the power connection.

Finally, wire the output connected the microphone gameboard to row 13 on the PCB (the row right succeeding to the photocell).

Step 8: King and Ground

Solder a red wire between the index rail and row 6 (on the same side of the board as the sensors).

Solder a blacken wire between ground and wrangle 4 (also on the same pull of the add-in.

Step 9: Upload

Upload audio to the Audio frequency FX Board as you would if you were copying audio files to a corneous aim.

The audio should either be in formatted to .WAV or .OGG charge types. More audio lav be fit on the board with .OGG, merely .WAV sounds better.

You lavatory add as umpteen clips as will fit along the board.

I recorded my audio frequency files on my electronic computer using Audaciousness (free audio editing software program) and the computer's built in microphone. You butt use whatever kit and boodle best for you.

When creating your audio files, it is best to bring up them consecutive (i.e. 00SCARE.WAV, 01SCARE.WAV, 02SCARE.WAV, etc), only ultimately you must live your corporate trust.

I numbered my files ##SCARE.WAV. If you break from my naming convention, remember that you necessitate to update the code to touch your file names.

Step 10: Attach Wires

Solder 5" wires to the following pins on the Sound FX Circuit card:

V-in
GND
RST
TX
RS
UG

Step 11: Connect the Boards

Directly is time to connect the audio card to the PCB.

To Menachem Begin, wire the readjust rowlock to row 15 on the inverse side of the plug-in from the sensor.

In row 14, next to the readjust pin cable, join the audio frequency board's Lone-Star State immobilize.

In row 13, just next thereto, relate the RX pin.

Ultimately, wire the audio board's V-in pin to the PCB's power rail, and plug in primer coat happening apiece board together.

If you are uncertain, you can double hitch all of your connections against the above wiring diagram.

Step 12: Attach the Speaker

Attach the speaker to the amplified audio production terminals of the audio fx board.

Step 13: Program the Arduino

Program the Arduino with the following code:

<p>/*****************************************************<br> *                                                   *  *   Nervous WHISPERING PRANK                         *  *   instructables.com/id/Spooky-Whispering-Antic/   *  *                                                   *  *****************************************************</p><p>/Minimal brain damage libraries to the Arduino study. #include <spi.h> #include <softwareserial.h> #include <adafruit_soundboard.h></adafruit_soundboard.h></softwareserial.h></spi.h></p><p>// Lot continuous pins for the sound FX board: // Transmit, Receive and Reset #define SFX_RX 8 #delineate SFX_TX 9 #delimitate AUDIO_RESET 10 </p><p>//Start a software program serial connection for the Audio card. SoftwareSerial ss = SoftwareSerial(SFX_TX, SFX_RX);</p><p>//Start an instance of the soundboard. This is the epithet of the board. Adafruit_Soundboard sfx = Adafruit_Soundboard(&adenylic acid;ss, Zip, AUDIO_RESET);</p><p>//Establish a charachter array for the audio filenames //If you adjudicate to use .ogg files modify WAV to OGG char filename[12] = "        WAV"; </p><p>// This is where you specify the real filenames of your audio // Each name moldiness have characters no matter what.  // In otherwise row, if the filename is 6 characters long, then // add two blank spaces between the quotes to wee it 8 characters perennial. static const char PROGMEM bigStringTable[] =  // bet() indicator   "00SCARE " "01SCARE " "02SCARE " "03SCARE "  //  1-4   "04SCARE " "05SCARE " "06SCARE " "07SCARE "  //  5-8   "08SCARE " "09SCARE " "10SCARE " "11SCARE "  //  9-12   "12SCARE " "13SCARE " "14SCARE " "15SCARE "; //  13-16</p><p>// The brink for the light sensor int threshold = 100;</p><p>// The threshold for the audio frequency detector float soundCompare = 0.3;</p><p>// A variable for measuring the peak-to-peak volts of the audio signal big volts;</p><p>// The sample window (frequency) for reading the audio sensor (50 Magnolia State = 20Hz) const int sampleWindow = 50;   unsigned int sample;</p><p>// Apparatus the sketch by engaing the Software Serial and Hardware Serial connections void setup(nullif) {   S.Begin(9600);   Serial.begin(115200); }</p><p>//The body of the adumbrate void coil(avoid) {</p><p>  // Study the light and the well-grounded sensors   int sensorValue = analogRead(A0);   soundReading();</p><p>    // If the light-headed sensor is fewer than the comparison room access     if(sensorValue < limen){</p><p>       // And if the sensor hears something noisy        if (volts > soundCompare){ </p><p>           // Play some audio            play(unselected(16));            delay(1000);                        //While 10 seconds pass, if lightly-armed goes on full stop the sound and reset            for (int i=0; i <= 100; i++){              sensorValue = analogRead(A0);              check(100);              if(sensorValue > threshold){                sfx.stop();                break;              }            }</p><p>       }     }</p><p>}</p><p>// Officiate for playing audio void play(uint16_t i) {   memcpy_P(filename, &bigStringTable[i * 8], 8); //changed 8 to 14 // PROGMEM -> RAM   Serial.println(filename);   sfx.playTrack(filename); }</p><p>//Function for reading the audio sensor void soundReading(){    unsigned long startMillis= millis();  // Set about of sample windowpane    unsigned int peakToPeak = 0;   // peak-to-peak level      unsigned int signalMax = 0;    unsigned int signalMin = 1024;      // collect information for 50 mS    while (millis() - startMillis < sampleWindow)    {       sample = analogRead(A1);       if (sample < 1024)  // toss out spurious readings       {          if (sample > signalMax)          {             signalMax = sample distribution;  // spare just the easy lay levels          }          other if (sample < signalMin)          {             signalMin = sample distribution;  // salve just the Taiwanese levels          }       }    }    peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude    volts = (peakToPeak * 5.0) / 1024;  // exchange to volts      //Serial.println(volts); }</p>
/*****************************************************  *                                                   *  *   SPOOKY WHISPERING PRANK                         *  *   instructables.com/I.D./Spooky-Rustling-Prank/   *  *                                                   *  *****************************************************/   //Add libraries to the Arduino resume. #admit <SPI.h> #include <SoftwareSerial.h> #include <Adafruit_Soundboard.h>   // Set constant pins for the sound FX gameboard: // Transmit, Get and Readjust #define SFX_RX 8 #define SFX_TX 9 #define AUDIO_RESET 10    //Start a software ordered connection for the Audio board. SoftwareSerial ss = SoftwareSerial(SFX_TX, SFX_RX);   //Start an case of the soundboard. This is the name of the board. Adafruit_Soundboard sfx = Adafruit_Soundboard(&ss, NULL, AUDIO_RESET);   //Establish a charachter array for the audio filenames //If you adjudicate to use .ogg files change WAV to OGG char computer file nam[12] = "        WAV";    // This is where you specify the de facto filenames of your audio // Each bring up must rich person characters no affair what.  // In other words, if the filename is 6 characters prospicient, then // add two blank spaces between the quotes to make information technology 8 characters long. static const char PROGMEM bigStringTable[] =  // act() exponent   "00SCARE " "01SCARE " "02SCARE " "03SCARE "  //  1-4   "04SCARE " "05SCARE " "06SCARE " "07SCARE "  //  5-8   "08SCARE " "09SCARE " "10SCARE " "11SCARE "  //  9-12   "12SCARE " "13SCARE " "14SCARE " "15SCARE "; //  13-16   // The threshold for the deficient sensor int doorstep = 100;   // The brink for the audio sensor float soundCompare = 0.3;   // A variable for mensuration the point-to-peak volts of the audio signal double volts;   // The sample window (relative frequency) for reading the sound sensor (50 mS = 20Hz) const int sampleWindow = 50;   unsigned int taste;   // Frame-up the chalk out by engaing the Software Serial and Computer hardware Ordination connections vitiate frame-up(void) {   ss.begin(9600);   Ordination.begin(115200); }   //The body of the sketch void loop(evacuate) {    // Read the light and the sound sensors   int sensorValue = analogRead(A0);   soundReading();       // If the perch sensor is inferior than the comparison threshold     if(sensorValue < doorway){         // And if the sensor hears something loud        if (volts > soundCompare){              // Play roughly audio frequency            play(ergodic(16));            delay(1000);                        //While cardinal seconds pass, if light goes on stop the secure and reset            for (int i=0; i <= 100; i++){              sensorValue = analogRead(A0);              delay(100);              if(sensorValue > threshold){                sfx.stop();                break;              }            }         }     }  }   // Function for playacting audio void play(uint16_t i) {   memcpy_P(filename, &bigStringTable[i * 8], 8); //changed 8 to 14 // PROGMEM -> RAM   Ordered.println(filename);   sfx.playTrack(filename); }   //Function for reading the audio sensing element void soundReading(){    unsigned long startMillis= millis();  // Start of try window    unsigned int peakToPeak = 0;   // tiptop-to-peak equal      unsigned int signalMax = 0;    unsigned int signalMin = 1024;      // collect data for 50 mS    spell (millis() - startMillis < sampleWindow)    {       sample = analogRead(A1);       if (sample < 1024)  // toss out misbegotten readings       {          if (sample > signalMax)          {             signalMax = sample;  // relieve just the max levels          }          else if (sample < signalMin)          {             signalMin = sample distribution;  // save just the min levels          }       }    }    peakToPeak = signalMax - signalMin;  // max - min = peak-peak bounty    volts = (peakToPeak * 5.0) / 1024;  // convert to volts      //Serial.println(volts); }            

Tread 14: Nag in the Arduino

Insert the Arduino into the bread board sockets such that pin A0 on the Arduino lines up with the row on the board connect to the photocell.

Some pins from the Arduino will non be inserted into a header socket. That is okay.

Step 15: Trim the Battery Terminals

Trim the bombardment terminals inside of the smoke sensing element enclosure sol that they are shorter.

Step 16: Solder Wires

Solder a Marxist wire onto the lead terminal which connects the Gram-positive meet on the battery.

Solder a black wire to the otherwise lead terminal.

Whole step 17: Trim

Utilize diagonal cutting pliers to trim away any unnecessary support tabs in spite of appearanc of the enclosure. The destination is to make the envelopment as out-of-doors as possible to jibe the circuit boards inside.

Step 18: Drill Holes

Practice session a 1/4" golf hole in the top of the gage sensing element enclosure to follow used with the photoconductive cell to sense phosphorescent.

Practice a 3/8" kettle of fish in the side of meat of the enclosure to insert the electret mike done to detect sound.

Step 19: Attach Power

Solder the 9V power wire to the row which get hold with the Arduino's V-in socket.

Solder the ground electrify from the battery to ground on the card.

Fully attach the battery to the terminals if you take in not already done so.

Step 20: Mount the Circuits

Normally I am non a fan of hot glue, but this is a case in which I think it's the advisable tool for the job. It gets the job done quick and with efficiency. This twist does non need to last a zillion years, just just long enough for your victim to discover it and overhead it over your head.

At any rate...

Hot paste the mike board in situ.

Side by side, live glue the electric eye flush with the 1/4" hole that was drilled to permit light in.

Finally, wanted glue the speaker to the grill already present in the smoke demodulator.

Don't vex excessively a great deal well-nig the PCB OR audio fx control panel. They can 'float' on the inside of the enclosure, and will just sort of shamble themselves into place when you close information technology up.

Stone's throw 21: Close It Up

When complete the glue has set, close the enclosure.

Step 22: Represent the Prank

Mount the double sided tape to the bottom of the enclosure and peg it high up on the wall or on the ceiling.

The caper is now in effect.

Did you find this multipurpose, fun, or fun?
Follow @madeineuphoria to see my modish projects.

Be the First to Parcel

Recommendations