Construye una calabaza inteligente para Halloween 5/5 (1)





Una calabaza inteligente para dar sustos en Halloween

Ya anteriormente vimos unos cuantos proyectos realizados con Arduino para Halloween, está vez os traemos un tutorial en el que sus creadores nos enseñan a convertir una calabaza en una decoración inteligente para Halloween con Arduino y unos cuantos LEDS.

arduino halloween - Construye una calabaza inteligente para Halloween

Aquí tienes una guía para construir tu propia calabaza inteligente… en este caso es sólo un efecto de llama y cuando la respuesta de una resistencia dependiente de la luz, cuando alguien bloquea la luz, o se para sobre ella cambia de modo – hace un ruido y cambia a luz verde por un corto tiempo.




La que se ve en el siguiente vídeo tiene una tira de 24 neopíxeles para hacer la llama, pero si profundizas un poco en el código puedes usar cualquier LED, y si tienes dos colores puedes usar el modo disparado para encender un circuito diferente.

Debes seguir estos sencillos pasos para crear tu propia calabaza inteligente. En primer lugar tratar la calabaza de manera tradicional, cortar la parte superior (abriendo el cuchillo hacia abajo unos 45 grados para que se asiente bien en el agujero), y proceder a sacar las semillas y la mayoría de la carne, idealmente dejando alrededor de 1 cm de carne y bajo la piel – esto ayudará a eliminar cualquier exceso de humedad, lo que significa que tu calabaza no se pudra tan rápido, y además puedes hacer una buena sopa con el contenido.

Para realizar el proyecto vas a necesitar:

  • Un Arduino UNO
  • Neopixel 24 Ring
  • 70x-200k LDR
  • Altavoz de 8 Ohm
  • Varios Mini breadboard
  • resitencia 5K
  • unos cuantos cables

Sus creadores nos invitan a desarrollar nuestro propio proyecto a partir del suyo, ¿Quieres ampliarlo? ¿Por qué no añadir LEDs separados para los ojos, utilizar un sensor diferente – como un detector de ultrasonidos o un detector de audio, o se podría activar una acción diferente con un interruptor de inclinación o microinterruptor debajo de la calabaza en caso de que se mueva.




El código del proyecto es el siguiente:

#include <Adafruit_NeoPixel.h>
#include "pitches.h"
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(24, PIN, NEO_GRB + NEO_KHZ800);
int randa =0;
int triggered =0;
int delaycount=0;
int LDR_Pin = A0; //analog pin 0
int LDRReading_x =0;
int melody[] = {  
  NOTE_A3, NOTE_C4, NOTE_F3, NOTE_D3};
int noteDurations[] = {  
  2, 2, 1, 1, 0};

// MAPLIN (not so)SMART PUMPKIN 2014

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  Serial.begin(9600);
  int LDRReading = analogRead(LDR_Pin); 
}

void loop() {
  // checks the LDR and runs one of two routines depending on level 
  LDRReading_x = analogRead(LDR_Pin); 
  if(LDRReading_x<400){
    delaycount=1; 
  } //change the 400 here to best suit the placement of your pumpkin
  if(triggered==1){
    delaycount=10;//number of steps to be green - increase to make a longer green period
  }

  if(delaycount>0){
    delaycount--;
    colorWipe(strip.Color(0, 255, 0), 50); // Green
    strip.show();
    makenoise();
    delay(1000);
  }
  else{
    colorWipe(strip.Color(255, 0, 0), 50); // Red
    colorWipe(strip.Color(220, 105, 0), 50); // Red/yellow
    colorWipe(strip.Color(215, 35, 0), 50); // Red/orange
  }
}

// Variation of the Adafruit colorwipe function with a small random parameter (0-20)
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    randa=20-random(20);
    strip.setPixelColor(i, c+(randa*2));
    strip.show();
    delay(wait);
  }
}

//simple noise function with the tone library - actual tones and lengths are defined at top of code
void makenoise(void)
{
  for (int thisNote = 0; thisNote < 4; thisNote++) {
    int noteDuration = 1000/noteDurations[thisNote];
    tone(2, melody[thisNote],noteDuration);
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    noTone(2);
    digitalWrite(2, LOW);    
  }
}

El tutorial completo lo tienes en este enlace.

Califique esto

También te puede interesar

Ayúdanos a crecer!!Comparte con tus amigos¡¡
0

Your Cart