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);
{
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