Yo compré uno por primera vez hace un año y medio mas o menos y he hecho muchas tonterías con él. Si os gusta la electrónica es un trasto muy divertido para jugar. Éste verano empecé un nuevo proyecto con él. Comprarme un tanque teledirigido, quitarle toda la electrónica salvo los motores y reemplazarla por un Arduino y otros componentes montados por mi, añadiendo nuevas funciones al tanque y nuevas formas de control; actualmente se puede dirigir con un mando de PS2 inalámbrico, por un móvil Android por Bluetooth, tengo en desarrollo una tercera por internet con una cámara acoplada al tanque y puede que en un futuro un sistema autónomo con sensores de proximidad. No pretendo hacer una guía paso a paso para hacer algo igual, pero si poder servir de inspiración a alguien a quién le surjan problemas parecidos a los míos en algún momento y por supuesto, dejarlo por escrito, para recordarlo yo en un futuro :-)
En éste artículo voy a hablar del tanque en si y del hardware y en el próximo de toda la parte de programación y software.
El tanque es un M41A3 Walker Bulldog a escala a 1:16. A una escala más pequeña sería muy complicado meterle dentro toda la electrónica.
En mi caso hable con un vendedor a ver si tenían algún tanque a esa escala con la electrónica averiada pero con los motores funcionando y tuve la suerte de que si. Me costó 40€ cuando su precio original era de 100€. Eso si, sin batería y sin mando. En cualquier caso la batería de serie era muy flojilla y el mando no pensaba utilizarlo.
Desgraciadamente, no hice fotos durante el proceso de montaje del interior, así que sólo podéis ver el resultado final. Todos los cables y componentes están muy desordenados, para mi próximo proyecto tendré que mejorar ese aspecto. Aquí os dejo un diagrama muy simple de todos los componentes que he metido en el tanque.
Tenemos una batería a 7.4V de LiPo y un regulador de voltaje que consigue sacar 5V estables, independientemente de la carga de la batería. A partir de éste regulador de voltaje se alimentan los circuitos lógicos del Arduino, de los dobles puentes en H, del transistor y del receptor para el mando de la PS2 y del receptor Bluetooth. Los motores van directamente a 7.4V. Paso a explicar brevemente que hace y como funciona cada componente. La mayoría se pueden comprar en cualquier tienda de electrónica o por Ebay.
Arduino
Arduino Mega |
El Arduino en si. Existen varios tipos, pero yo en éste caso he usado un Arduino MEGA, ya que tiene 3 entradas y 3 salidas serie (TX y RX) y aunque ahora mismo sólo utilizo una, creo que en un fururo necesitaré otra. El típico para iniciarse es el Arduino UNO, que es igual pero con menos conexiones. Se puede comprar en muchos sitios, pero como de costumbre, lo más barato es Ebay.
Arduino UNO |
Batería
Baterías Chinas baratas. Aunque no lo parezca, detrás de la sinta aislante, los cables están correctamente soldados |
Batería de calidad |
Regulador de voltaje
Regulador de voltaje basado en un LM2596S |
Primero pensé en bajar el voltaje con diodos o resistencias, pero de ese modo el voltaje de salida dependería del de entrada, y la conversión sería poco eficiente. Entonces descubrí éstos reguladores de voltaje ya montados, basados en integrado LM2596S. Simplemente lo conectas a tu fuente de alimentación y con el potenciómetro azul que se ve en la foto ajustas el voltaje de salida. Da el mismo independientemente del de entrada y su eficiencia es del 92%.
Doble Puente en H
L298N montado en el tanque |
L298N suelto |
Los míos ya estaban montados en el tanque, así que no he podido hacerles fotos, pero aquí dejo uno muy similar con la explicación de para que sirve cada conexión
Transistor
Transistor darlingtop TIP120 |
Valdría cualquier NPN capaz de manejar cargas elevadas, yo he utilizado los mismos que en la página que enlazo, TIP120. Es un darlington (dos transistores en cascada) y para éste menester resulta ideal. Además tenía unos cuantos por casa.
Receptor bluetooth
He utilizado un receptor bluetooth alimentado a 5V y con interfaz de puerto serie. Se conecta directamente a los puertos RX y TX del Arduino.
Indicador de voltaje bajo.
Si las baterías LiPo se descargan por debajo de cierto voltaje se estropean. Para evitar que ésto pase lo mejor es utilizar un indicador de voltaje bajo. Éstos aparatos monitorizan continuamente la tensión, y cuando llega a niveles peligrosos pitan, avisándonos de que hay que cargarla
Indicador conectado a la batería. Se encienden dos leds verdes porque la batería es de dos celdas que están suficientemente cargadas |
Mando inalámbrico PS2
Adaptador para mando inalámbrico conectado |
Y hasta aquí la parte de hardware. Ahora queda mucho cableado y por supuesto programar el Arduino para que todos los componentes funcionen juntos como un reloj. Iba a subir un vídeo del tanque en marcha, pero mi perro no deja de ladrarle... Así que lo subiré en la próxima parte.
Actualización: Ya está la 2ª parte. ¡Con vídeo y todo!
Hola Jorge,
ResponderEliminarSoy Sergio Crespo y tengo en mente un proyecto como el tuyo me gustaria saber como sigue.
Gracias.
Hola,
EliminarQuería haberlo escrito ya, pero al final nunca me pongo, además como no había tenido ningún comentario que me animara...
Voy a intentar escribir la 2ª parte hoy o mañana, espero que te guste.
Y coméntanos algo sobre tu proyecto!
Hola,
EliminarSi por favor que me estoy volviendo loco y de todos las posibilidades y páginas que hasta ahora he encontrado la tuya es la mas completa y mejor explicada.
Gracias.
Mi correo personal es serevalex@hotmail.com por si quiero comentarte algo mas sobre el proyecto.
Hola,
ResponderEliminarJorge no consigo que los motores me inviertan el sentido de giro, haber si pudieras poner algún esquema de la conexión de cables y de los pins exactos ya que según la librería las conexiones de velcidad són el 6 y el 5 uno para cada motor y los pines de dirección son los 3,4,7 y 8 que estos deberian ir conectados a las entradas DIR 1 y Dir 2 de la placa controladora de motores. Pues ami no me invierte el sentido de giro.
Gracias de antemano.
Funciona tal cual dices, te lo explico para el motor 1: El pin 6 controla la velocidad del motor, se le manda una señal PWM con la función "analogWrite". Los pines 7 y 8 son para la dirección, se les manda una señal alta o baja con la función "digitalWrite", el comportamiento es el siguiente:
Eliminar7 y 8 LOW - El motor no se mueve
7 y 8 HIGH - El motor no se mueve
7 HIGH y 8 LOW - Hacia alante
7 LOW y 8 HIGH - Hacia atrás
El pin 6 debe ir a donde pone algo tipo "Enable" y los pines 7 y 8 a las entrada en las que pone algo tipo: "imput 1 y 2" (Supongo que a donde tu dices dir 1 y dir 2).
Ya me cuentas si te he resuelto la duda!
Por cierto, y aprovechando que llevas unos días entrando al blog :D
EliminarNo se si te has fijado en que he estado toqueteando un poco los anuncios, cambiando el tipo, la cantidad y moviéndolos de sitio. ¿Que te parece como están? ¿Te parece que resultan molestos o que queda el blog sobrecargado?
Muchas gracias.
Para nada me resultan molestos, y tampoco queda sobrecargado. El blog esta muy bien.
EliminarHola Jorge,
ResponderEliminarUna (o otra!) de los cables del receptor del mando veo que solo conectamos el clock(pin13), el command(pin11)y attention(pin 10), data(pin12), porque veo que pones true(pressures?)y true(rumble?)eso no lo entiendo.
Según he visto los cables que no se conectan son el de color blanco y el de voltaje de los motores de vibración. Pero el verde(acknoledge)?
Sobre el problema del puente en H que tenia deduzco que es que yo tengo otro diferente, y solo dispone de un pin de dirección. Ya he comprado otro basado en el L298N. El que yo tengo es este: http://www.ebay.es/itm/171012036277?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_2010wt_1037
ResponderEliminarSi, ese es el problema.
EliminarEl circuito que me enseñas es es un doble medio puende en H, que tiene el inconveniente de que no permite invertir el sentido de giro de los motores. El que yo uso es un doble puente en H completo.
¡Además el que me has puesto maneja hasta 15A por canal nada menos! Pedazo de motores le puedes meter a ese...
EliminarSi no recuerdo mal, Pressures es para que el mando detecte la presión con la que pulsas los botones y rumble para que se pueda activar la vibración. Ahora mismo no se usa ninguna de las dos funciones, pero ahí están.
ResponderEliminarEl acknoledge no tengo ni idea de para que es, pero estoy mirando el tanque y tampoco lo tengo conectado.
Muchas gracias y disculpa la pesadez.
EliminarDe nada hombre, me haces una donación con el nuevo botón que he puesto arriba y asunto arreglado :D
EliminarAhora en serio (aunque lo otro también iba en serio) me gusta contestar a los comentarios.
Y por cierto, para cuando acabes el proyecto me encantaría verlo.
Who have code PS2 with arduino?
ResponderEliminarIf you have.Can you give me.
You have the link in the second article.
EliminarTengo una duda
ResponderEliminarNo e entendido como esque el control de ps2 es conectado si no es inalambrico
No se si me puedas explicar paso por paso
Si, claro. Es un mando de éste tipo:
Eliminarhttp://www.ebay.com/itm/Black-New-2-4G-Wireless-Dual-Shock-Game-Controller-For-Sony-Playstation-2-PS2-/131007992820
Aunque de forma nativa el dualshock 2 no dea inalámbrico, existen éstos mandos inalámbricos que funcionan con un adaptador.
y ese como se conecta al arduino
EliminarNo tendras alguna red social donde podamos hablar mas sobre este proyecto bro
En el segundo artículo está el enlace a la web con la explicación de las conexiones y las librerias necesarias para que el Arduino interprete lo que le llega del mando.
EliminarArriba hay una pestaña de contacto desde la que me llega un mail a mi, para no poner datos privados por aquí.
esta el circuito ??? por que no lo e visto
Eliminarhola soy novato en esto pero me gustaria aprender, me encanta la electronica lo malo que vivo en mexico y cosas como el ardino no lo puedo encontrar pero puedo buscar la forma de como hacer y ojala puedan aconsejarme me gustaria mucho, gracias :3
ResponderEliminarSupongo que lo podrás comprar por EBay desde China, igual que hago yo desde España ;)
EliminarUn salio y animo!
hola quisiera hacer lo mismo y me interesa saber como hiciste tu mecanismo de diparo
ResponderEliminarHola,
EliminarEl mecanismo de disparo venía con el tanque, es simplemente un motor de continua que manejo con un transistor que a su vez manejo con una salida lógica del Arduino. (Yo usé un TIP120, que es un BJT NPN en configuración Darlington)
oooooo va esque kiero diseñar un mecanismo no habra forma de que me puedas mandar una foto de ese mecanismo o algo asi como un diagrama porfa te lo agradeceria muchooo mi correo es antonio-t9@hotmail.com
EliminarHola! Yo tambien estoy liado con un tanque similar pero con arduino uno, quisiera saber lo mismo que el compañero, como es el sistema de disparo, yo lo he hecho con bombonas de co2 de pistolas de airsoft y una minielectrovalvula pero cuando se descargan las bombonas hay que reemplazarlas y al final sale caro (entre 1€ y 2€) cada bombona, y solo tienes 15 o 20 disparos jajajaja si me pudieras mandar una foto, driagrama o algo para hacerme una idea... Gracias de antemano mi correo es saturhv93@gmail.com
ResponderEliminarHola! Yo tambien estoy liado con un tanque similar pero con arduino uno, quisiera saber lo mismo que el compañero, como es el sistema de disparo, yo lo he hecho con bombonas de co2 de pistolas de airsoft y una minielectrovalvula pero cuando se descargan las bombonas hay que reemplazarlas y al final sale caro (entre 1€ y 2€) cada bombona, y solo tienes 15 o 20 disparos jajajaja si me pudieras mandar una foto, driagrama o algo para hacerme una idea... Gracias de antemano mi correo es saturhv93@gmail.com
ResponderEliminarHola Jorge no podrías Aser un Manual más detayado y pasármelo Ami tambien me.gusta la electrónica y la verdad se muy poco pero aprendo rápido y de echo estaba aciendo el mismo proyecto del tanque el tanque ya lo tengo nomas k no sé cómo iniciar la verdad
ResponderEliminar