Cristian BRANDE - Pistol airsoft semi-automatizat

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul porneste de la un pistol airsoft cu bile care, este conectat la un motor de tip cooler pentru ai oferi o rotatie de 360 de grade, plus doua motorase ce merg la 5V pentru actionarea tragaciului. Ideea proiectului mi-a venit navigand pe net si dand peste o reclama catre acest pistol.

Descriere generală

Diagrama

Rezultat intermediar:

Rezultat final:

Detalii constructie ansamblu:

Din cauza greutatii pe care o suporta, coolerul nu mai avea destula putere pentru a invarti cu succes pistolul. Astfel am fost nevoit sa creez o cutie din carton care sa preia greutatea pistolului. Pentru a-i permite coolerului sa invarta pistolul am creeat o suprafata care sa creeze o frecare cat mai mica cu putinta intre pistol si cutia de sustinere. Aceasta suprafata am creeat-o cu ajutorul bilelor care au fost achizitionate in acelasi timp cu pistolul.

Pentru a realiza invartirea pistolului, de cooler este atasata o bucata de sarma care strabate cutia si intra in incarcatorul pistolului. Capatul acestei sarme este in forma de “T” si se fixeaza cu succes in interiorul pistolului.

Hardware Design

Lista piese:

  • placuta ATmega
  • baterie 9V
  • motor tip cooler 12V
  • mufa conectare alimenare - baterie
  • butoane 3
  • rezistente 3
  • 2 motorase de 5-6 V
  • fire mama-mama
  • fire tata-tata
  • tranzistor
  • adaptor 220V - 12V

Software Design

  • Mediul de dezvoltare: Programmers Notepad (WinAVR)
  • Compilator folosit: avr-gcc
  • Cod:

#include <avr/io.h>

int main(){

DDRD &= ~(1 << PD6);  // pinul PD6 va fi input rotire
PORTD |= (1 << PD6);  // activam rezistenta de pull-up
DDRD &= ~(1 << PD5);	 // pinul PD6 va fi input fire
PORTD |= (1 << PD5);  // activam rezistenta de pull-up
DDRD |= (1 << PD7);   // pinul corespunzator led-ului USER este output

DDRD |= (1 << PD4);   // pinul corespunzator cooler 1 este output
DDRD |= (1 << PD3);   // pinul corespunzator cooler 0 este output
DDRC |= (1 << PC7);   // pinul corespunzator motoras dreapta este output
DDRA |= (1 << PA7);   // pinul corespunzator motoras stanga este output

while (1){

	if (!(PIND & (1 << PD6)) ){ // daca bitul corespunzator PD6 este 0 fa rotire
		PORTD |= (1 << PD7);    // LED ON
		PORTD |= (1 << PD4);
		PORTD &= ~(1 << PD3);    
	}else {
		PORTD &= ~(1 << PD7);   // LED OFF
		PORTD &= ~(1 << PD4);    
		PORTD |= (1 << PD3);
	}

if(!(PIND & (1 « PD5))){ daca bitul corespunzator PD5 este 0 tragere PORTC |= (1 « PC7); start motoras dreapta

		PORTA |= (1 << PA7);	// start motoras stanga
	}else{
		PORTC &= ~(1 << PC7);
		PORTA &= ~(1 << PA7);
	}
}
return 0;

}

Rezultate Obţinute

Concluzii

Proiectul a fost unul foarte distractiv, dar din pacate se pare ca cele 2 motorase nu au fost de ajuns sa actioneze tragaciul pistolului si lansarea bilei de pe teava.

Bibliografie/Resurse

pm/prj2013/avoinescu/pistol.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0