Carrito Manipulado Con Joystick y Ultrasonico Con Arduino
Carrito Manipulado Con Joystick y Ultrasonico Con Arduino
Carrito Manipulado Con Joystick y Ultrasonico Con Arduino
INGENIERIA EN MECATRNICA
ASIGNATURA:
Microcontroladores.
ALUMNO:
Loeza Lopez Doncan Bruno Ayrton
Facio Chuc Karina Alejandra
CONTENIDO
INTRODUCCION
MATERIALES
2.1
Costo de materiales
DESARROLLO
3.1
Elaboracion de la carcasa
3.2
Componentes
3.3
Conexiones fsicas
3.4
4
4.1
CONCLUSION
Referencias
INTRODUCCION
De un tiempo para ac, los proyectos escolares han incluido mucha ms tecnologa,
vemos que ahora hay competencias a nivel estatal e incluso a nivel nacional, por lo que
los participantes deben tener conocimientos mucho ms all que los bsicos sobre
electrnica y computacin.
Dado a la gran acogida que ha tenido el software libre Arduino, y por sus bajos costos,
los estudios de electrnica e introducirse a ello prcticamente est al alcance de
cualquier interesado.
Aprovechando que el curso involucra el uso de microcontroladores y programacin,
iniciaremos un proyecto que tratara sobre la construccin y programacin de un carrito
que cuente con un joystick como los de los controles de videojuegos- para moverlo y
que, con solo activar un switch, se maneje de forma independiente y su movimiento sea
basado en obstculos que encuentre en su camino.
MATERIALES
Arduino MEGA.
Carcasa de plstico.
1 LED ultra brillante de 3mm.
1 Juego de 8 pilas recargables.
2 switch.
4 motorreductores con llanta.
Soldadura de estao.
Cautn.
Taladro.
Caladora.
Cables tipo Dupont (H-H, M-H, M-M).
Cables.
Joystick.
MotorShield de Adafruit.
Terminales.
1 Ultrasnico HCSR04
Tornillos con tuerca.
Headers.
Caimanes.
Resistencia de 10 k.
DESARROLLO
Elaboracin de la carcasa.
Lo primero que se plane hacer es la carcasa donde iran los motores y que tambin
sera el cuerpo del carrito, por lo que se pens en varias opciones para eso:
-
Se analizaron todas las opciones, 1) el acrlico no es tan sencillo para trabajar, por lo
que tomara mucho tiempo y no quedara exactamente como queramos, 2) comprarlo
en lnea sonaba factible, ya que cuentan con agujeros para los tornillos y nos
ahorraramos mucho tiempo, pero al revisar los precios nos encontramos con el
elevado precio y 3) la madera era ms fcil de manejar, se contaba con las
herramientas, pero era ms frgil que las opciones anteriores.
Por lo que se opt por la 3era opcin, as que nos dispusimos a buscar madera para
empezar a planear el diseo, y en eso estbamos cuando nos encontramos un
refrigerador viejo y por simple curiosidad nos pusimos a revisarlo, encontrando un
pedazo de plstico rgido que, con unos cuantos arreglos, podra servir para nuestro
propsito, as que suspendimos nuestra bsqueda y planeamos un diseo donde se
acoplase nuestro recin hallazgo. Despus de pensar, necesitaba los siguientes
arreglos:
1. Reducir su tamao, ya que era demasiado largo como para sernos til, ya que
podra causar conflictos de peso/potencia.
2. Cambiar su forma, porque los laterales eran curvos, y como ah se colocaran los
motorreductores con sus llantas, tena que ser planos.
3. Perforaciones, donde se colocaran los tornillos que sujetara el Arduino, los
motorreductores con su gua y su eje.
As que empezamos por reducir el tamao, ya que media ms de medio metro y eso es
demasiado peso y tambin afectara la potencia de los motorreductores, por lo que se
utiliz la caladora para acortarlo a unos 28cm aproximadamente, suficientes para
colocar los motores, que las llantas no estn muy cerca y un espacio de sobra para
evitar lastimar los componentes.
Despus, se deba cambiar su forma, y esto era lo ms complejo, ya que el plstico es
rgido y con un anchura de 3mm de grosor, por lo que si se trataba de doblar con
fuerza, se rompera o se quebrara, as que se investig como doblar el plstico y se
encontr que calentndolo, por lo que se intent con agua caliente pero dado por el
Componentes.
A continuacin, se incluye una tabla que contiene cada componente elegido, sus
especificaciones y la razn del porque se ha seleccionado:
Componente
Motorreductor
con llanta.
Especificaciones
kg
Torque = 4.5 cm
RPM = 100
Rev
min
Razn
No necesitamos tanta
velocidad pero si mucha
potencia, por lo que al ser
a 6V sin carga.
un motorreductor,
podemos obtenerlo.
Se controla con un simple
puente H, en este caso, el
MotorShield.
Precio bajo.
Joystick
De fcil manejo.
Tamao reducido.
Switch.
LED ultra
Tamao = 3mm.
brillante.
Color = verde.
perfectamente con 5
Corriente = 10mA.
Voltaje =5V.
Switch
Tipo = 1 polo 2 tiros.
Ultrasnico.
elctrica.
Angulo del sensor = 15
Deteccin de distancia = 2 - 450cm
Cables
Dupont.
que suficiente.
El ultrasnico funciona
autnomo el carrito.
Es de fcil manejo.
Precio bajo.
mucho tiempo en
conexiones.
Al ser multicolor, no hay
problemas de confusin a
la hora de conectar.
Caben perfectamente en
C
Multicolor
componentes.
Arduino
MEGA
conexiones.
Peso = 37 g.
4 puentes H, con proteccin de
de Adafruit.
apagado trmico.
especificaciones, sirve
contragolpe.
carrito.
Tiene pines para
individual de velocidad.
Reset
motores.
Al tener 4 motores, el
Tipo = Recargables.
hacer pruebas.
Conexiones fsicas.
No se pueden ilustrar completamente todas las conexiones, ya que los programas son
limitados y no contienen todos los componentes, por lo que se explicaran sin incluir una
ilustracin.
En esta imagen, se muestra como se conect el joystick y el switch que nos servir
para cambiar de funcin anlogo a autnomo y viceversa. Dado que el joystick cuenta
con 4 pines, dos de ellos debern ser conectados en pines analgicos ya que son los
ejes X y Y que nos servirn para controlar el carrito y los otros dos pines son de
alimentacin y tierra, por lo que no hay complejidad de conexin, solo es cuestin de
recordar en que pines se han conectado para su programacin. Como es obvio que no
es nada
como
estar
consigui un cable de
aproximadamente 2 metros para que se pueda controlar sin necesidad de estar tan
cerca. El LED se coloc al frente del carrito y solo enciende cuando se cambie a modo
autnomo para indicar cuando va hacia adelante y cuando har la accin de evadir.
10
tiende a gastar las bateras en lapsos cortos de tiempo. Por lo que optamos por
bateras recargables, y son sumamente costosas, aproximadamente $160 el par en
cualquier tienda electrnica, igual pensamos en una Batera tipo Lipo, que contienen
mucho amperaje y cierto voltaje, pero solo se encuentran en tiendas on-line y el envo
es tardado y mucho ms costoso, as que al igual que la carcasa, reciclamos un
paquete de bateras recargables de un viejo carrito a control remoto, el nico problema
es que ya no retienen la carga normalmente y deben recargarse constantemente.
Despus, declararemos las variables que necesitamos para controlar los datos, o sea,
4 variables para los motores (una variable por cada motor), 2 variables para los ejes del
joystick (el eje x y l y para controlar los movimientos), dos variables para la velocidad
de los motores (para que no haya variaciones) que en este caso ser de 170 y otro de
45, variables para controlar el encendido del LED, el switch de cambio de modo, la
distancia del ultrasnico, otro ms para leer el estado del switch como una entrada
digital y por ultimo usamos el comando Ultrasonic name (Trigger, Echo) para declarar
los pines que recibirn la informacin recogida por el ultrasnico y le llamaremos
Ultrasonido para evitar confusiones.
11
Seguimos con las declaraciones del Void Setup, aqu declararemos que los motores
son salidas, al igual que incluiremos el comando Serial.begin(####) para visualizar el
comportamiento del programa y del Arduino en la pantalla de la computadora,
terminamos por declarar la variable del LED como salida y la del switch como entrada.
Para que como entrada? Porque cuando dejemos pasar un voltaje, el pin lo lea como
una entrada digital y dar paso a una accin, y viceversa cuando no reciba voltaje.
Continuamos con el Void loop, aqu es donde se desarrollaran las rdenes del carrito
en funcin de la seal que mandemos desde el joystick o reciba desde el ultrasnico.
Antes de escribir algo aqu, primero debemos visualizar todo los comportamientos de
los sensores, as que primero declaramos las variables asignadas a los ejes como una
entrada analgica con el comando analogRead (##).
12
Antes de continuar con el Void loop, primero declararemos unas funciones que nos
servirn para facilitar la lectura de datos, as en lugar de escribir por cada opcin todo
una gran lista de comandos, podemos declarar una funcin, insertar los comandos que
realicen esa accin y cada vez que la necesitemos, mandarla a llamar con un simple
nombre. Cabe destacar que estas funciones van despus del loop, e iniciaran de la
misma manera, con la palabra Void seguido del nombre del comando y los signos ( ),
se agregan imgenes para hacer referencia a lo escrito.
13
Vemos que hay varias funciones, y todas incluyen algo llamado SetVel (#,#,#,#); y su
funcin consiste en darle un valor de velocidad a cada motor, del primero al cuarto en
orden ascendente, as ya no tenemos que declarar cada velocidad en cada funcin, y
funciona de la siguiente manera.
14
Primero, lo declaramos como una funcin, por lo que utilizamos la palabra Void,
seguido del nombre elegido, luego unos parntesis y dentro de ellos declaramos
ah mismo 4 variables, de v1 a v4, que servirn para indicar que cada variable
Con esto, nos ahorramos el tedioso trabajo de declarar velocidades en cada funcin.
15
<, >, &&, == que significan menor que, mayor que, and e igual a respectivamente. Los
acomodaremos de forma que no intervengan otros valores, o sea, limitaremos los
rangos para evitar falseos. Tambin se le agrega la orden on==LOW para indicar que
cuando el switch que controla el modo este apagado, funcionara con el joystick, de lo
contrario, no ser vlido y se hace esto con el fin de evitar entorpecer las acciones del
carrito. Declararemos tambin un breve retraso para que el Arduino no funcione de
manera tan apresurada.
16
Ahora viene lo ms complicado, hacer que pase de un modo a otro. Lograremos esto
primero decidiendo los parmetros requeridos para cambiar de modo, as que
decidiremos que, cuando el carrito se encuentre parado y el switch deje pasar una
corriente hacia el pin del mismo, comenzara a funcionar el modo autnomo, por lo que
las otras funciones quedaran invalidadas dado que el pin on estar en HIGH.
Qu
queremos
que
haga
en
el
modo
autnomo?
Sencillo,
que
avance
17
18
CONCLUSIONES
Al momento de probarse, el modo analgico controlado por joystick funciona a la
perfeccin, solo que a veces se desconectaba un cable y dependiendo de cul era,
dejaba de funcionar correctamente, debido a que los cables Dupont es solo para
simulaciones, no sirven para un proyecto completo dado que son muy largos.
Otra cosa es que el modulo ultrasnico no es del todo fiable, ya que en numerosas
ocasiones dejaba de sensar y provocaba que el carrito se chocara de frente contra los
obstculos, se tuvo que cambiar por otro ya que al parecer vino fallado, pero aun as
tambin el Angulo le afecta, un poco ms angulado y no cumple su objetivo.
Las soldaduras de los cables con los motores igual hay que reforzarlas, ya que un par
de puntos se desoldaron con el movimiento y transportacin del carrito hacia que
terminaran por ceder.
19
REFERENCIAS
https://www.arduino.cc/en/Main/ArduinoBoardMega2560
https://www.arduino.cc/en/Tutorial/JoyStick
https://github.com/adafruit/Fritzing-Library
20