Autorul poate fi contactat la adresa: Login pentru adresa
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.
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.
Lista piese:
#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;
}
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.
Datasheet ATmega324A: http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf