ptairsoft.org
[PT] Airsoft


Bomba Para S'n'D - HowTo

ext4t1c0

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 9
    • Ver Perfil
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

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

Esquema das Ligações

free image hosting


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


Dead_Boy

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 98
    • Ver Perfil
Responder #1 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
;)
« Última modificação: Janeiro 20, 2012, 21:32:44 pm por Dead_Boy »


MADMAN

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 392
    • Ver Perfil
  • Equipa: BAT-Brigada Assalto Tactico
Responder #2 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 .
____________________________
BIFANAS FIDELIS!!!
http://batairsoft.com/
http://batairsoft.com/forum/


Dead_Boy

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 98
    • Ver Perfil
Responder #3 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 ;)


joOhjoh

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 17
    • Ver Perfil
  • Equipa: Ferrel Delta Force
Responder #4 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


Cpt.Paulo

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 126
    • Ver Perfil
Responder #5 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 .
Aug aficionado  :D


Dead_Boy

  • [PT]Airsoft - New Member
  • *
    • Mensagens: 98
    • Ver Perfil
Responder #6 em: Abril 20, 2012, 15:02:44 pm
Sim esse da melhor lol