Broma de humor de inodoro Arduino Fart-o-matic (3 / 3 paso)

Paso 3: El bosquejo

me encantaria afirman haber escrito el bosquejo de cero pero encontré uno escrito ya que pude modificar para servir a mis propósitos. He incluido el bosquejo alterado pero el dibujo original es del Instructable "Cómo tener un perro parlante" por Schmidtn y es digno de la comprobación hacia fuera en su forma inalterada, y de todos modos, ¿quién no quiere un perro parlante?

El bosquejo puede ser cambiada de modo que pueden agregar clips de audio más, continuar con el mismo patrón - caso: rotura de playcomplete (filename) 35. Usted también tendrá que cambiar el número de archivos que aparecen en la línea randNum, aquí dice al azar (1, 22); , por ejemplo si tuvieras 35 archivos debe decir random(1,35);. Los archivos de audio en la tarjeta SD pueden ser nombrados lo que quieras, yo sólo numeradas, asegúrese de reemplazar los nombres de archivo numerados con su propio nombre, es un ejemplo de ello en este bosquejo dice - playcomplete ("49.WAV") y decir tu archivo se llama "bob", tendría que modificar el 49. WAV en el bosquejo al decir ("bob. WAV").

La broma final está programado para que cualquier momento es el movimiento percibido, reproduce un archivo audio al azar (mina fueron todos los sonidos brutos, es un baño después de todo). Como se puede ver en la foto el aparato se coloca de modo que no puede verse pero el detector de movimiento puede detectar movimiento en cualquier momento alguien acerca al urinario. He puesto unas botas con un par de pantalones sobre ellos para hacer la parada mirada ocupada. El baño lo utilizado en tiene un caudal bastante constante de personas, mediante el montaje de imán y ganso cuello era posible poner esto en marcha en cuestión de segundos. No fue hasta media tarde que mis compañeros de trabajo consiguieron finalmente sospechosos y de investigar, les encantó tanto que no revelan la broma y disfrutar de su nuevo secreto para el resto del día.

#include < FatReader.h >
#include < SdReader.h >
#include < avr/pgmspace.h >
#include "WaveUtil.h"
#include "WaveHC.h"

Tarjeta SdReader;    Este objeto contiene la información de la tarjeta
FatVolume vol;    Contiene la información de la partición en la tarjeta
FatReader raíz;   Esto contiene la información para el sistema de archivos en la tarjeta
FatReader f;      Esto contiene la información del archivo estamos jugamos

Ola WaveHC;      Este es el único objeto (audio) de la onda, puesto que sólo jugaremos uno a la vez

#define gatillo 7
#define LED 13

int val = 0;
int potvalue = 0;
randNum largo;

Esta práctica función devolverá el número de bytes actualmente libres en RAM, ideal para depuración!
int freeRam(void)
{
extern int __bss_end;
extern int * __brkval;
int free_memory;
Si ((int) __brkval == 0) {}
free_memory = ((int) & free_memory)-((int) & __bss_end);
}
Else {}
free_memory = ((int) & free_memory)-((int) __brkval);
}
volver free_memory;
}

void sdErrorCheck(void)
{
Si (! card.errorCode()) retorno;
putstring ("\n\rSD I/O error:");
Serial.Print(Card.ErrorCode(), hexagonal);
putstring (",");
Serial.println(Card.errorData(), hexagonal);
while(1);
}

void setup() {}

Configurar puerto serie
Serial.Begin(9600);
pinMode (gatillo, entrada);
pinMode (LED, salida);
randomSeed(analogRead(0));

putstring ("memoria RAM libre:");       Esto puede ayudar con la depuración, es malo quedarse sin RAM
Serial.println(freeRam());      Si es menor de 150 bytes escribe con problemas!

Configurar los pines de salida para el control de la DAC. Este los pernos se definen en la biblioteca
pinMode (2, salida);
pinMode (3, salida);
pinMode (4, salida);
pinMode (5, salida);

Si (! card.init(true)) {//play con spi de 4 MHz si 8MHz no funciona para usted
Si (! card.init()) {//play con spi de 8 MHz (por defecto más rápido!)
putstring_nl ("tarjeta init. no se pudo!");  Algo salió mal, permite imprimir por qué
sdErrorCheck();
while(1);                            entonces 'detener': ¡ no!
}

permiten optimizar la lectura - algunas tarjetas pueden tiempo de espera. Desactivar si tienes problemas
card.partialBlockRead(true);

Ahora buscaremos una partición FAT!
parte de uint8_t;
para (parte = 0; parte < 5; parte ++) {/ / tenemos hasta 5 ranuras en
Si (vol.init (tarjeta, parte))
rotura;                             encontró uno, permite la libertad bajo fianza
}
Si (parte == 5) {/ / si terminamos por no encontrar uno :(
putstring_nl ("No válida partición FAT!");
sdErrorCheck();      Algo salió mal, permite imprimir por qué
while(1);                            entonces 'detener': ¡ no!
}

Permite decir que el usuario lo que encontramos
putstring ("partición de uso");
Serial.Print (parte, DEC);
putstring (", el tipo es grasa");
Serial.println(Vol.fatType(),DEC);     ¿FAT16 o FAT32?

Intente abrir el directorio raíz
Si (! {root.openRoot(vol))}
putstring_nl ("no se puede abrir raíz dir!"); Algo salió mal,
while(1);                             entonces 'detener': ¡ no!
}

¡ UF! Llegamos pasado las partes difíciles.
putstring_nl("Ready!");

/ * TCCR2A = 0;
TCCR2B = 1 << CS22 | 1 << CS21 | 1 << CS20;

Permiten interrumpir el desbordamiento del TIMER2
TIMSK2 | = 1 << TOIE2;
*/

}

void loop()
{
Val = digitalRead(TRIGGER);
potvalue = analogRead(1);
Serial.println (potvalue, DEC);

Si (val == alto & & potvalue > = 0 & & potvalue < = 1023)
{
randNum = al azar (1, 22);
Delay(1000);
interruptor (randNum)
{
caso 1:
Serial.println(1);
playcomplete("49.wav");
rotura;
caso 2:
Serial.println(2);
playcomplete("50.wav");
rotura;
caso 3:
Serial.println(3);
playcomplete("51.wav");
rotura;
caso 4:
Serial.println(4);
playcomplete("52.wav");
rotura;
caso 5:
Serial.println(5);
playcomplete("53.wav");
rotura;
caso 6:
Serial.println(6);
playcomplete("54.wav");
rotura;
caso 7:
Serial.println(7);
playcomplete("55.wav");
rotura;
caso 8:
Serial.println(8);
playcomplete("56.wav");
rotura;
caso 9:
Serial.println(9);
playcomplete("57.wav");
rotura;
caso 10:
Serial.println(10);
playcomplete("58.wav");
rotura;
caso 11:
Serial.println(11);
playcomplete("59.wav");
rotura;
caso 12:
Serial.println(12);
playcomplete("60.wav");
rotura;
caso 13:
Serial.println(13);
playcomplete("61.wav");
rotura;
caso 14:
Serial.println(14);
playcomplete("62.wav");
rotura;
caso 15:
Serial.println(15);
playcomplete("63.wav");
rotura;
caso 16:
Serial.println(16);
playcomplete("64.wav");
rotura;
caso 17:
Serial.println(17);
playcomplete("65.wav");
rotura;
caso 18:
Serial.println(18);
playcomplete("66.wav");
rotura;
caso 19:
Serial.println(19);
playcomplete("67.wav");
rotura;
caso 20:
Serial.println(20);
playcomplete("68.wav");
rotura;
caso 21:
Serial.println(21);
playcomplete("69.wav");
rotura;
caso 22:
Serial.println(22);
playcomplete("70.wav");
rotura;
por defecto:
rotura;
}
}


}

Reproduce un archivo completo de principio a fin sin pausa.
void playcomplete(char *name) {}
llamar a nuestro ayudante para buscar y reproducir este nombre
playfile(Name);
mientras (wave.isplaying) {}
no hacer nada durante la reproducción de su
}
su hecho reproduciendo
}

void playfile(char *name) {}
ver si el objeto ola está haciendo algo
Si (wave.isplaying) {/ / así que ya está reproduciendo algo, stop!
Wave.STOP(); Basta
}
Buscar en el directorio raíz y abre el archivo
Si (! f.open (raíz, nombre)) {}
putstring ("no puede abrir archivo"); Serial.Print(Name); retorno;
}
Leer bien el archivo y convertirlo en un objeto de onda
Si (! {wave.create(f))}
putstring_nl ("no un válido WAV"); retorno;
}

OK el tiempo para jugar! iniciar la reproducción
Wave.Play();
}

Artículos Relacionados

Arduino-Fart-O-Meter

Arduino-Fart-O-Meter

OH NO! No lo hizo!Sí lo hice!Mi proyecto es simple: pedos en una silla y enviando la señal de forma inalámbrica a un panel que muestra la intensidad del pedo!Palabras de PRECAUCIÓN: Por favor, no lo fuerce a pedo, podría cagar en los pantalones si tr
Broma de ratón con Arduino

Broma de ratón con Arduino

el Atmega 32U4 chip tiene la capacidad de emular un ratón y un teclado a través del puerto USB.Con tarjetas como la Olympia circuitosArno LeOlympia, Arduino Leonardo o Sparkfun Micro, puede utilizar esta capacidad para pasar un buen rato.  Nosotros h
Control remoto de iluminación del humor de Arduino

Control remoto de iluminación del humor de Arduino

Combinar una franja de luz de LED de cierre con un minúsculo tablero de Arduino Pro Mini, agregar control remoto y tiene una configuración de iluminación de humor barato, versátil!La luz de mi dormitorio es en el techo. Es bonito y brillante, que es
Como trampa un tablero de Clip! (Broma de oficina/escuela)

Como trampa un tablero de Clip! (Broma de oficina/escuela)

¿Quien dice trabajo o escuela tiene que ser aburridas? Siempre hay formas de divertirse, por ejemplo, aquí es una poco trampa que puede configurar en su compañeros de clase o compañeros de trabajo. Se trata de un tablero de clip con documentos import
TORTAS de la taza del orinal

TORTAS de la taza del orinal

Mi entrada de alimentos para el concurso de comida de Halloween, parecen pasteles de desodorante del orinal, con una "P" añadida para el efecto.Paso 1: ingredientes Ingredientes:Mezcla para pastelColorante azul del alimentoFormación de hielo/esc
Jajaja

Jajaja

este es un grupo de bromas como abril está a la vuelta de la esquina!Paso 1: El truco de ratón molesto Pegue un poco de cinta adhesiva en la parte inferior de un ratón de ordenador y ver como la siguiente persona utilizarlo hurga alrededor tratando d
Iluminación del humor de Arduino

Iluminación del humor de Arduino

este instructable le mostrará que para construir un sistema de iluminación rgb con un arduino. También se puede controlar con un ipod/iphone/ipad con touchOSC. En mi anterior instructable mostré cómo controlar un rgb llevado montones en esto que se p
Arduino Powered RGB humor lámpara además Simon

Arduino Powered RGB humor lámpara además Simon

esto es básicamente una lámpara de estado de ánimo de arduino powered RGB y el simon dice juego, dos en uno.Modo de empleo: El dispositivo se inicia con el programa de humor de RGB lámpara por defecto, al pulsar cualquiera de las cuatro teclas en la
Arduino todas las cosas - humor detectar luz

Arduino todas las cosas - humor detectar luz

esto es una bola de cristal mágico estado de ánimo se puede hacer con arduino así que vamosPaso 1: necesita!!!!!! para hacer este truco de mascota estúpida he utilizado 5 LEDs RGB (salida Digital), resistencias, cables, un sensor de temperatura TMP36
Final de Arduino de broma! ¿

Final de Arduino de broma! ¿

Necesita una buena broma? ¿Qué tal uno que puede durar por días en extremo?mientras que esto no es el mejor proyecto construido que he construido (tuvo que implementar en una línea bastante tiempo rápido) la mayoría sin duda, uno de los proyectos más
Simple broma Mac usando Arduino (actualización 22/03/10)

Simple broma Mac usando Arduino (actualización 22/03/10)

Hola,Voy a mostrarle cómo puede molestar a un usuario de mac con sólo un par piezas simples.Mac disponen de un sensor de infrarrojos que le permite controlar a través de una manzana de distancia, esto los hace un blanco fácil para esta broma. Vamos a
Luz del humor de Arduino

Luz del humor de Arduino

Este es un proyecto simple basado en Adafruit Arduino - Lección 3. RGB LEDhttps://Learn.Adafruit.com/Adafruit-Arduino-Lesson-3-RGB-LEDs/Arduino-SketchEncontrarás un montón de información útil sobre LEDs RGB si sigues el enlace.El programa original er
Arduino Kit humor lámpara

Arduino Kit humor lámpara

Hoy estamos haciendo la lámpara de estado de ánimo de Arduino del kit con algunas alteraciones. Esta lámpara cambiará colores fluida. Tenga en cuenta que este no es mi código, y le mostrará donde obtuve el código aquí (clic para el código si el códig
Cubo de humor Arduino Led (pequeño) (Video incluido)

Cubo de humor Arduino Led (pequeño) (Video incluido)

va a mostrar cómo hacer un pequeño cubo de Led estado de ánimo con un arduino.Esto es bueno para principiantes y personas que no tienen acceso a RGB led de todavía.video sobre el último paso, mira a ver lo que se veríaPaso 1: fuentes deSe necesita:Ar