miércoles, 4 de mayo de 2016

Proyecto T.A.T.

T.A.T.

TANQUE AUTÓNOMO TELEDIRIGIDO




Este proyecto básicamente es un prototipo temprano que trae consigo una serie de configuraciones y opciones, las cuales le combinan de autonomía y control total, ya sea en modo automático o manual.

En modo automático

Es capaz mediante un sensor de ultrasonidos y un atmega328P de evadir obstáculos que se encuentren en su trayectoria a una distancia no inferior a 30 centímetros, durante la marcha se ayuda de una batería LyPo de 11.1v y 2600mA, mediante la cual alimenta todos los módulos que intervienen en su desplazamiento, la batería se aloja en el interior del tanque, en una zona donde este protegida y otorgue estabilidad.



Con un consumo inferior a 1,5A es capaz de mantenerse en movimiento durante mas de una hora, llegando a cubrir una distancia considerable.
Cuenta ademas con una resistencia LDR la cual activa los múltiples leds frontales, cuando capta una bajada drástica de iluminación, haciendo posible la identificación y ubicación del vehículo mientras se desplaza.



En modo manual

Mediante un juego de conmutadores, se deshabilita el modo automático y se habilita la configuración en modo manual, la cual da control sobre los motores a un PIC-16F877A el cual mediante un modulo bluetooth y receptores de radiofrecuencia, mantiene al tanque a la espera de los distintos comandos necesarios para su desplazamiento y para la activación de los diferentes módulos que lo componen, como un reproductor de sonido, un modulo láser que servirá como guía en su desplazamiento ademas de contar con varios leds frontales y traseros, que ayudaran a identificar su posición con poca visibilidad.

Debido al espacio reducido del vehículo, este integrado se apoya en un demultiplexor ubicado en otra placa, el cual aumenta el numero de opciones y configuraciones.

En definitiva,este prototipo cuenta con estas dos configuraciones, siendo la base para seguir diseñando y fabricando un prototipo posterior que contara con estas y muchas mas mejoras.













Componentes

-Tanque(carrocería) - 9€
-1 x Atmega328P- 2€
-1 x PIC 16F877A – Sample
- 1 Módulo Bluetooth – 2,50€
- 1 x Sensor de ultrasonidos HC-SR04 – 80 cent
-1 x Emisor y receptor de radiofrecuencia -
-2 x L293D 3€
-1 x Demultiplexor bc555 - 50ctnt
-1 x LM7805 – 70ctnt
-1 x Modulo laser – 40cent
-1 x Reproductor de sonido – 1,50€
-1 x LDR – 15cent
- 4 x Diodos 1N4007 -
-2 x Conmutadores 2 posiciones -
-1 x interruptor -
-6 x Resistencias de 220Ohmios – 60cent
-2 x Resistencias de 18 Ohmios – 20 cent
-2 x Resistencias de 10K – 25cent
-10 x Leds -
-2 x Leds SMD -
- 1 x Condensador de 0,1 uF -
-1 x Condensador de 0,3 uF -
- 4 x Condensadores de 22pF -20cent
2 x Osciladores de 16MHz – 30cent
- Cable
- Tiras de pines hembra
-Tiras de pines Macho
- Útiles varios de soldadura y comprobaciones(polímetro)





Planificación del tiempo necesario

Con la ayuda de un diagrama de gantt, organice el tiempo del que disponía repartiéndolo de tal manera que pudiese alcanzar los objetivos, y que sobrase tiempo para hacer correcciones si fuesen necesarias, tanto en la programación como en los componentes internos del tanque.



Con la ayuda de PROTEUS y de su compilación de programas internos, diseñe las placas, ajustándolas tanto a los requerimientos del proyecto como al espacio interno del tanque, al ser un espacio tan reducido, tuve que diseñar 3 placas de 5,5cm x 6cm.

Una de las placas contendría el integrado 16F877A, otra de las placas contendría el Atmega328p.
A su vez ambas placas conectaban directamente con una tercera que contaba con los integrados L293D, el demultiplexor, así como la entrada de alimentación, regulación y estabilización necesarias para alimentar las dos placas anteriores.



Aquí se puede apreciar el esquema de una de las placas en ISIS y su posterior manipulación en ARES



En esta fotografía se aprecia el emplazamiento de los distintos componentes sobre la placa





 
Acabado el diseño y ayudado por una herramienta 3D que incorpora el mismo programa ARES, verifique que todos los componentes, así como sus pistas y anclajes coincidieran, de acuerdo a la idea que tenia de como debían encajar tanto las placas como el volumen que ocuparía cada uno de los componentes que iban a ir soldados a ellas.




 

Una vez alcanzado el objetivo de encajar todos los componentes en el tamaño establecido, toca fabricar las placas.

Al ser un número de placas considerable, las fabrique en paralelo, de tal modo que la fabricación y la posterior serigrafía de las 3 placas acabasen al mismo tiempo, dándome margen para solucionar cualquier error que haya podido hacer o ocurrir durante el proceso.

Básicamente el proceso que use para la fabricación de las 3 placas fue el siguiente:
Mediante un proceso de revelado y en una habitación acondicionada para tal fin, genere los negativos que contendrían las pistas de las placas.
En esta imagen se puede apreciar el resultado final de los negativos que se obtienen,la impresora láser dibuja las pistas sobre el papel fotosensible, dejándolas transparentes.






En la siguiente foto se aprecia el taladrado de una de las placas, dibuje su contorno y su centro como medida de seguridad.

Usando los archivos generados por el ARES llamados drill, perfore las 3 placas dejándolas listas para el siguiente paso.




Tras comprobar que los agujeros han sido efectuados de manera correcta, con la ayuda de una pantalla retroiluminada y de los negativos generados por la impresora láser, me asegure de que todo estaba en su sitio y de que los agujeros coincidan tanto en diámetro como en posición.



 

La generación de las pistas en la placa se efectúa mediante un proceso de insolación de un papel fotosensible que se adhiere a la placa por las pistas que recorren el negativo, marcando así las pistas.



Tras este paso y después de someter a las placas a las diferentes soluciones químicas para remover el cobre que no ha sido impregnado con el papel fotosensible, el resultado es una placa como la de la siguiente imagen.





Se aprecian las pistas perfectamente definidas, así como los anclajes donde irán soldados los diferentes componentes que componentes de esa placa.





Serigrafía


Este es el ultimo paso de la realización de la placa.

En primer lugar tendremos que obtener del programa ARES los archivos requeridos para este paso(TOP SILK), y seleccionando la opción mirror.

Necesitaremos poner el esquema en la parte central superior de un folio y realizar una primera

impresión, esta primera impresión nos servirá de guía.

Tendremos que cortar un pedazo de papel amarillo del tamaño de la impresión y colocarlo encima

del folio, repetiremos el proceso, en esta ocasión la impresión saldrá en el papel amarillo, como se

aprecia en las siguientes imagen.





Con la ayuda de una fuente de luz o de la pantalla retroiluminada , hacemos encajar de la mejor manera posible los componentes en sus anclajes y con cinta adhesiva aseguramos la placa para que no se mueva.


Procederemos a dar calor al folio por la parte de la serigrafía , para que de este modo la tinta se transfiera a la placa, podemos usar una plancha o una maquina como la de la imagen, que consiste en rodillos que aplican presión y temperatura.


En la siguiente imagen se aprecia el resultado final del proceso.




Al ser una placa a doble cara es necesario el colocar vías que comuniquen la cara delantera con la
trasera, las vías hay que colocarlas y abrirlas para asegurar su correcta sujeción.






De este modo acaba la fabricación de las placas que componen mi proyecto, obviamente el proceso es mucho mas detallado, pero de este modo se puede entender el proceso básico, y en definitiva el proceso que he seguido.

Algunos de los componentes que iban soldados a esa palca se pueden apreciar en la siguiente foto.









Programación

En el apartado de programación dejo fragmentos del código.




Código usado para el Atmega328P





void loop()
{
if(digitalRead(4)==HIGH)
{
int estado = analogRead(analog1);
Serial.println(analogRead(analog1));
if(estado>800)
{
digitalWrite(A5,HIGH);
delay(15);
}
else
{
digitalWrite(A5,LOW);
}
if(y==1)
{
y--;
}
sensor=ultrasonidos(echo, trig);
Serial.print("Medida: ");
Serial.println(sensor);
delayMicroseconds(50);
if (sensor>=10) /*Sentencia para poner en marcha el motor*/
{
digitalWrite(2,LOW);
digitalWrite(A4,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
for (i=i;i<=255;i++)
{
Serial.println(digitalRead(7));
Serial.println(digitalRead(8));
digitalWrite(13,LOW);
analogWrite(3,i);
delay(15);
}
}
if (sensor<=9)
{
for (i=i;i>=0;i--)
{
analogWrite(3,i);
delay(20);
}
i=0;

 while(z<15)
            {
            digitalWrite(13,HIGH);
            delay(20);
            digitalWrite(13,LOW);
            delay(80);
            digitalWrite(13,HIGH);
            z++;
            }
            z=0;
           digitalWrite(2,HIGH);
           digitalWrite(A4,LOW);
           digitalWrite(A0,HIGH);
           Serial.println("Direccion");
           Serial.println(digitalRead(2));
           Serial.println(digitalRead(A4));
           delay(15);






Código usado para el PIC 16-F877A





void main()
{
int i=0;
set_tris_a(0xff);
set_tris_b(0x00);
set_tris_d(0x00);

while(TRUE)
{
char a;
a=getch();
if(a==('A'))// Hacia adelante
{
output_low(PIN_B6);
output_low(PIN_B7);
delay_ms(15);
output_high(PIN_D0);
delay_ms(15);
output_high(PIN_B1);
output_low(PIN_B2);
delay_ms(15);
output_low(PIN_B3);
output_low(PIN_B4);
delay_ms(15);
output_low(PIN_B5);
delay_ms(15);
}
if(a==('B')) //PARADA
{
output_low(PIN_B6);
output_low(PIN_B7);
delay_ms(15);
output_low(PIN_D0);
delay_ms(15);
output_low(PIN_B1);
output_low(PIN_B2);
delay_ms(15);
output_low(PIN_B3);
output_low(PIN_B4);
delay_ms(15);
output_low(PIN_B5);
delay_ms(15);
}
if(a==('C')) // Hacia atras
{
output_low(PIN_B6);
output_low(PIN_B7);
delay_ms(15);
output_high(PIN_D0);
delay_ms(15);
output_high(PIN_B2);
output_low(PIN_B1);
delay_ms(15);
output_low(PIN_B3);
output_low(PIN_B4);
delay_ms(15);
output_high(PIN_B5);
delay_ms(15);
}



Para terminar y no menos importante, debido al reducido espacio que otorgaba la carrocería del tanque, coloque unas chapas que protegiesen y aislasen la electrónica, al mismo tiempo que le aportaban peso y robustez a todo el conjunto.



A modo de curiosidad, el tanque se puede controlar mediante una aplicación android diseñada para tal fin, sin embargo mediante los sensores de radiofrecuencia y la programación adecuada se puede utilizar cualquier dispositivo capaz de enviar los caracteres, a una velocidad preestablecida de 9600 baudios.

En este caso es un telégrafo el mando del tanque.




En este enlace se puede apreciar con mas detalle la grabación.

https://vimeo.com/159814621

 


Por último doy las gracias a mis compañeros y profesorado por los consejos y ayudas durante el diseño y la fabricación de este proyecto.

No hay comentarios:

Publicar un comentario