Gure proiektua bluetooth bidez konektatutako traktorean oinarritzen da, eta bluetooth teknologiarekin sekuentzien aldaketa egitea ahalbidetezen du gure mugikorraren bitartez, guk nahi duguna egin dezan traktoreak.
Proiektu honek dituen teknologiak:
1-Bluetooth: dispositibo inalambriko bat da, non mugikorrarekin konektatzean mikrokontroladoreari mugikorraren bitartez aginduak bidaltzea ahalbidetzen digu. Hau bluecontrol aplikazioaren bitartez kontrola dezakegu, eta aplikazio hau play-estoretik deskargatu daiteke.
2-L293D: Teknologia honen bitartez, motorren kontrola lortzen dugu, bi aldetara bira dezaketelako. Txip honek 2 motor kontrola ditzazke gehienez, bainan beti ahal izango diozu txertatu besteren bat beste bi motor erabiltzeko.
Proiektuaren funtzionamendua:
Bluetooth-aren bitartez komando bat sartuko diogu gure mikrokontroladoreari, eta honek komando bat ala beste jasotzean mikrokontroladoreari barneratutako programaren sekuentzi bat edo beste martxan jartzen da. 5 sekuentzi modu egin ditugu, lehenengoa aurreraka joateko, bigarrena atzeraka joateko, hirugarrena ezkerrera biratzeko, laugarrena eskuinera biratzeko, eta bostgarrena eta azkena motorrak geldi geratzeko.
Proiektua aurrera eramateko pausuak:
1-Eskemaren edizioa:
Lehenik eta behin proteus programaren isis atalean eskema bat egitea beharrezkoa da, gure plakan beharrezkoak diren elementuekin, funtzionamendua bermatzeko eta sortutako programarekin simulazioari ekiditeko. Isisa eginda eduki ondoren, hau modifikatu egingo dugu Ares-a sortzeko, eta hau sortu ondoren hurrengo atalera pasatzen gera.
Bigarren hau ares-a egiteko da, eraldatuta:
2- PCB-aren fabrikazioa:
Issis eko eskema aresera pasa eta pistak eraiki ondoren, LPKF makinara goaz guk egindako plaka imprimatzeko. Hau ongi egiteko, aresean gerberrak sortu behar dira, eta LYT-arekin, boar master programan .lmd duen beste bat lortuko dugu, eta honekin LPKF-ak ulertu dezan bere lanarekin hasteko.
-Hau da lpkf-arentzat egindako ares-a.
3-Konponenteak plakan jartzea:
Plaka ondo eginda dagoela zihurtatu ondoren, hautatutako konponenteak plakan soldatzen jarri ginen, kontuan hartzen bakoitzaren posizioa eta bakoitzaren kokalekua. Hau egiteko dexente denbora tardatu genuen, plakan soldatzeko eremuak ez baitziren guztiz guk esperotakoak, baino lortu genuen ongi soldatzea.
4- Pic-aren programazioa:
Komentarioekin dator, eta hauek gazteleraz daude denek ulertzeko zer egiten duen programaren zati bakoitzak.
Komentarioekin dator, eta hauek gazteleraz daude denek ulertzeko zer egiten duen programaren zati bakoitzak.
/*-------------------------------------------*\
| proyecto del control de tractor: Iñigo
Lazkano
el programa consiste en controlar un tractor
desde el dispositivo android.
\*-------------------------------------------*/
#include
<16f87.h>
#FUSES
NOWDT //No Watch Dog
Timer
#FUSES
INTRC_IO //Internal RC
Osc, no CLKOUT
#FUSES
PUT //Power Up Timer
//#FUSES
MCLR //Master Clear
pin enabled
#FUSES
NOBROWNOUT //No brownout
reset
#FUSES
NOCPD //No EE
protection
#FUSES
NOWRT //Program memory
not write protected
#FUSES
NODEBUG //No Debug mode
for ICD
#FUSES
NOPROTECT //Code not
protected from reading
#FUSES
NOFCMEN //Fail-safe
clock monitor disabled
#FUSES
NOIESO //Internal
External Switch Over mode disabled
#use
delay(clock=4000000)
#use
RS232(baud=9600, xmit=PIN_B5, rcv=PIN_B2) //#use
rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A2,bits=8)
#use
i2c(Master,sda=PIN_B1,scl=PIN_B4)
int8
sekuentzia='E'; //declaramos que para empzar esten los motores apagados
void
serie(void);
/****************************************************************************
FUNCION PRINCIPAL
****************************************************************************/
void
main(void)
{
int8 i;
setup_adc_ports(NO_ANALOGS); // para que los puertos sean digitales
set_tris_b(0b00000100);
// set_tris_a(0xff);
while(1)
{
serie(); //leer
bluetooth
if(sekuentzia=='E') //si esta detectando una E entra en este ciclo
{
while(sekuentzia=='E')
{
output_low(PIN_B0),output_low(PIN_B3),output_low(PIN_B1),output_low(PIN_B4); //parar los motores
serie(); //lee la
entrada del bloetooth
if(sekuentzia!='E') //si lo que lee es diferente a E
break; //sal del ciclo
}
}
else if(sekuentzia=='B')
{
while(sekuentzia=='B') //Si lee un B entra en este
ciclo
{
output_low(PIN_B0),output_low(PIN_B3),output_high(PIN_B1),output_high(PIN_B4);//Motores
hacia atras
serie(); //lee la entrada del bloetooth
if(sekuentzia!='B') //si canbia de valor la entrada
break; //sal del ciclo
}
}
else if(sekuentzia=='C') //Si lee un C entra en este ciclo
{
while(sekuentzia=='C')
{
output_high(PIN_B0),output_low(PIN_B3),output_low(PIN_B1),output_low(PIN_B4); //girar izquierda
serie(); //lee la entrada del bloetooth
if(sekuentzia!='C') //si canbia de valor la entrada
break; //sal del ciclo
}
}
//fin else if sek C
else if(sekuentzia=='D') //Si lee un D entra en este ciclo
{
while(sekuentzia=='D')
{
output_low(PIN_B0),output_high(PIN_B3),output_low(PIN_B1),output_low(PIN_B4);
//girar derecha
serie(); //lee la entrada del bloetooth
if(sekuentzia!='D') //si canbia
de valor la entrada
break; //sal del ciclo
}
}
else if(sekuentzia=='A') //Si lee un A
entra en este ciclo
{
while(sekuentzia=='A')
{
output_high(PIN_B0),output_high(PIN_B3),output_low(PIN_B1),output_low(PIN_B4);//Motores hacia delante
serie(); //lee la entrada del bloetooth
if(sekuentzia!='A') //si canbia de valor la entrada
break; //sal del ciclo
}
}
} //fin while 1
} //fin main
/****************************************************************************
FUNCION Serie
****************************************************************************/
void
serie(void)
{
if(kbhit() !=0)
//si canbia la entrada del bloetooth,
{
sekuentzia=getc(); //guarda lo
que recibas en la variable llamado sekuentzia
}
}
5- Sekuentziak:
Hemen ikus daiteken moduan, pin bakoitza zein egoeratan egon behar den momentu bakoitzean adierazten digu.
Sekuentzia A: bi motoreak aurreraka.
Sekuentzia B: bi motoreak atzeraka.
Sekuentzia C: ezkerreko motorea martxan eta eskuinekoa geldirik.
Sekuentzia D: eskuineko motorea martxan eta ezkerrekoa geldirik.
Sekuentzia E: bi motoreak geldirik.
Sekuentzia A: bi motoreak aurreraka.
Sekuentzia B: bi motoreak atzeraka.
Sekuentzia C: ezkerreko motorea martxan eta eskuinekoa geldirik.
Sekuentzia D: eskuineko motorea martxan eta ezkerrekoa geldirik.
Sekuentzia E: bi motoreak geldirik.
Edozein mugikorretan aplikazio hau instalatzean bluetooth-a kontrola dezakezu, baina mugikor batekin konektatuta dagoenean ezin da beste gailuren batekin konektatu. honekin, denbora errealean guk aplikatu nahieko sekuentzia aukeratzean datza.
7- -Prototipoa eraikitzea
Plastikozko piezekin sorturiko traktorea da, ABS edo PLA materialak erabili daitezke.Plastikozko piezak eraikitzeari ekin genion, 3D-ko impresoran erraza baizen piezak egitea. Hontaz gain, plastikozko piezak pisu gutxikoak eta arinak dira, eta traktorearen estrukturarako gogorrak ziren.3D-ko imprimagailuak, donbosko ikastolakoak erabili ditugu.
8- -dena kableatzea:
7- -Prototipoa eraikitzea
Plastikozko piezekin sorturiko traktorea da, ABS edo PLA materialak erabili daitezke.Plastikozko piezak eraikitzeari ekin genion, 3D-ko impresoran erraza baizen piezak egitea. Hontaz gain, plastikozko piezak pisu gutxikoak eta arinak dira, eta traktorearen estrukturarako gogorrak ziren.3D-ko imprimagailuak, donbosko ikastolakoak erabili ditugu.
Honako piezak atera dira:
Hau da azken atala, eta plaka basetik motorretara dijoazen kableak eraikitzean datza. Horretarako, kontuan hartu behar da nora dijoan irteera bakoitzeko seinalea, gaizki eraman ezkero beste motore bat piztuko baita.
Erabilitako materiala
-Pic 16f87 (1)
-L293D (1)
-L293D (1)
-RES 10k (1)
-Condensador 220nf (1)
-Condensador 27pf (2)
-Cristal de cuarzo (1)
-Condensador 220nf (1)
-Condensador 27pf (2)
-Cristal de cuarzo (1)
-Bluetooth (1)
Hemen ikusi dezakezute proiektuaren eboluzioa:
Egilea: Iñigo Lazkano
No hay comentarios:
Publicar un comentario