ptairsoft.org

Atelier => Projectos DIY => Tópico iniciado por: ext4t1c0 em Janeiro 09, 2012, 22:00:00 pm

Título: Bomba Para S'n'D - HowTo
Enviado por: ext4t1c0 em Janeiro 09, 2012, 22:00:00 pm
Ha pouco tempo coloquei aqui um video da bombinha para Airsoft neste post: http://www.ptairsoft.org/forum/index.php?topic=33501.0 (http://www.ptairsoft.org/forum/index.php?topic=33501.0)

Agora vamos lá partilhar os dados necessário para a construir.

Lista de Componentes:
1x Atmega168
1x LCD 16*2
1x Cristal 16Mhz
2x Resistencia 10k
2x Condensadores 22pF
1x Condensador de 100nF
1x Buzzer
1x Potenciómetro (para o contraste do display)
2x Botões de pressão



Podem encontrar todos os componentes em: http://www.digikey.pt (http://www.digikey.pt)

Esquema das Ligações
(http://s11.postimage.org/gq78vc86b/bomba.jpg) (http://postimage.org/)
free image hosting (http://postimage.org/)


só falta montar e programar o Atmel com o seguinte código:

Código: [Seleccione]
#include <LiquidCrystal.h>


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int buttonPin = 8 ;     // Pin onde está ligado o botão

int time = 300; // Tempo de detonação
int active = 0;
int buttonstate = 0;

// Melodia a ser tocada
int melody[] = {
  262, 196,196, 220, 196,0, 247, 262};
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };
 


void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(13, OUTPUT);
  // Linhas e Colunas do LCD:
  lcd.begin(16, 2);
  // Mensagem Primaria no LCD.
  lcd.print("Power On.....");
 
}

void loop() {
 

 
 buttonstate = digitalRead(buttonPin);
 
   if (buttonstate == HIGH) {
        switch (active)
          {
            case 0:
              active = 1;
              break;
           
            case 1:
              active = 0;
              break;
           
            default:
              active = 0;
          }
 
        }
 
  inicio:
 
 delay(500);
 
  switch  (active)
  {
 
    case 0:
      {
        digitalWrite(13, LOW);
      lcd.setCursor(0, 0);
      lcd.print("StandBy....................."); // mensagem a ser mostrada quando a bomba está desactiva
               lcd.setCursor(0, 7);
          lcd.print("        JP Bombs");
          time =300; // reset ao tempo da detonação
    }
      break;


    case 1:
          if (time > 0)
      {
        digitalWrite(13, HIGH);   // Liga os Leds
            lcd.setCursor(0, 0);
              lcd.print("72 Virgens em");  // mensagem a ser mostrada quando a bomba está activa
          lcd.setCursor(3, 7);
          lcd.print("   ");
          lcd.setCursor(3, 7);
          lcd.print(time);  // contagem decrescente
           lcd.setCursor(7, 7);
          lcd.print("Segundos  ");
          time = time - 1;
         
          if (time > 30)
          {
             
                tone(6, 440, 200);
                delay(200);
                noTone(6);
                buttonstate = digitalRead(buttonPin);
                delay(800);
          }
         
          else
             {
              tone(6, 440, 200);
                delay(100);
                noTone(6);
                buttonstate = digitalRead(buttonPin);
                delay(100);
                tone(6, 440, 200);
                delay(100);
                noTone(6);
                buttonstate = digitalRead(buttonPin);
                delay(100);
                tone(6, 440, 200);
                delay(100);
                noTone(6);
                buttonstate = digitalRead(buttonPin);
                delay(100);
                tone(6, 440, 200);
                delay(100);
                noTone(6);
                buttonstate = digitalRead(buttonPin);
                delay(100);
               
             }
 
   if (buttonstate == HIGH) {
     active =0; 
   
     goto inicio;
     
     
    }
     
      }
          else
          {
           
            // Mensagem exibida na detonação
          lcd.setCursor(0, 0);
          lcd.print("BOOOOOOOOMMMMMM");
          lcd.setCursor(0, 7);
          lcd.print("Beijinhos a Ala!");
     
     
      // Aviso sonoro da detonação
        for (int thisNote = 0; thisNote < 8; thisNote++) {
        int noteDuration = 1000/noteDurations[thisNote];
        tone(6, melody[thisNote],noteDuration);
        int pauseBetweenNotes = noteDuration * 1.30;
        delay(pauseBetweenNotes);
        noTone(6);
              buttonstate = digitalRead(buttonPin);
         
   if (buttonstate == HIGH) {
     active =0; 
   
     goto inicio;
  }
  }
 
  break;
}
  }
}

Estejam á vontade para alterar o código ao vosso gosto, e se não for pedir muito dêem crédito ao programador :)

um abraço
Título: Re: Bomba Para S'n'D - HowTo
Enviado por: Dead_Boy em Janeiro 20, 2012, 21:28:33 pm
Podem Obter um Arduino, e programa-lo através de USB,poupa-vos o trabalho de soldar o cristal e condensadores, pode ser alimentado até 20V(se não estou em erro) , e até o display e buzzer, podem ser ligados e desligados facilmente através das sockets do arduino.

Qualquer duvida...

O famoso: http://www.donatoinfo.com.br/wp-content/uploads/2011/01/arduino.jpg (http://www.donatoinfo.com.br/wp-content/uploads/2011/01/arduino.jpg)
;)
Título: Re: Bomba Para S'n'D - HowTo
Enviado por: MADMAN em Janeiro 21, 2012, 19:36:01 pm
hummm temos que conversar os tres por causa de um projecto de "bomba" que tenho aqui na gaveta a um anito, queria fazer uma coisa  mais para o complexa e parece-me que voces sao capazes de me resolver aqui o problemazito,queria fazer uma senhora "bomba" aqui para a equipa .
Título: Re: Bomba Para S'n'D - HowTo
Enviado por: Dead_Boy em Janeiro 23, 2012, 17:15:30 pm
Por mim.. é quando quiseres.. Eu quero é fazer cenas novas :P

Com o arduino / atmega podemos usar desde sensores variados, a modulos de gps, gsm ect...

Eu penso: Imagina, e torna possivel..

:P

Manda pm com o mail ou assim.  os 2 ;)
Título: Re: Bomba Para S'n'D - HowTo
Enviado por: joOhjoh em Fevereiro 12, 2012, 23:29:22 pm
Yah tasse mesmo a ver aqui uma percentagem absurda de gajos a pegar num microprocessador e a fazer uma bomba FAKE!!
Eu fiz uma engraçada para a minha Equipa com 3 chaves um keypad, pasword e um botao de arm e disarm qualquer dia posto umas fotos
Título: Re: Bomba Para S'n'D - HowTo
Enviado por: Cpt.Paulo em Abril 16, 2012, 23:39:48 pm
funciona com o atmega 368 ?  e que o arduino que tenho acesso e o uno e nao da para programar o 168 .
Título: Re: Bomba Para S'n'D - HowTo
Enviado por: Dead_Boy em Abril 20, 2012, 15:02:44 pm
Sim esse da melhor lol