TOYMACHINE
TOYMACHINE
Grupo 14:
Sara Lucas Hernández
Ernesto Pedrero Real
Ioana Peperigeanu
1. Introducción
proyecto se trata de una máquina con un gancho que es manejado a través de un
joystick en un tiempo determinado con el objetivo de poder agarrar un objeto
contenido en la máquina para que pueda ser expendido si el usuario es capaz de
alcanzarlo correctamente.
2. Presupuesto
|
3. Construcción
la garra mecánica, ya que no encontramos ninguna en Internet que se adaptara a
nuestras necesidades y que llegara en un tiempo razonable. Por lo tanto,
decidimos hacerla nosotros manualmente con palillos de helado y utilizamos el
hilo de tejer para articular los movimientos. Consta de dos hilos, uno para
abrir la garra y otro para cerrarla. Una vez concluida su construcción la
pintamos con temperas.
parte de arriba de la maquina ya que es la que lleva los ejes que dirigen la
garra para así hacer ir haciendo el circuito y manejar los motores. Montamos
primero los tablones de madera con los rodamientos de monopatín y los hilos que
nos proporcionan el movimiento por la caja, después diseñamos unas poleas de
cartón para cada uno de los dos ejes y las pegamos encima de los rodamientos.
la caja y la base con tablones y aglomerado de madera respectivamente. En la
parte delantera colocamos una caja diseñada a medida de aglomerado de madera
para posicionar en ella el joystick, la pantalla y el pulsador. También la utilizamos
para contener todo el circuito del proyecto, tanto cables como protoboard, etc.
A continuación, elaboramos unas poleas de cartón para hacer subir y
bajar la garra, estructura que va sujeta en la parte superior del proyecto,
sobre los ejes que son manejados por el joystick.
empezamos a decorar nuestro proyecto forrándolo con papel de regalo por los
bordes de madera y utilizamos plástico para los laterales de la máquina y así
obtener el efecto de cristal de las máquinas de juguetes normales.
4. Implementación
La tabla
adjuntada continuación corresponde con las señales que reciben los motores en
función de la acción que marquemos con el joystick, para INX (donde x es
1,2,3,4), o con el botón de subida y bajada de la garra, para INXG (donde x es
1,2) :
Abajo |
Arriba |
Derecha |
Izquierda |
|
IN1 |
High |
Low |
||
IN2 |
Low |
High |
||
IN3 |
Low |
High |
||
IN4 |
High |
Low |
||
IN1G |
High |
Low |
||
IN2G |
Low |
High |
El
circuito resultante es el siguiente:
Arduino del proyecto. Este consta de estados simulados mediante booleanos, pues
solo se debe permitir la activación de una serie de componentes en función del
tiempo transcurrido desde el inicio de la máquina. Haciendo uso de la pantalla
LCD, se le transmitirá al usuario la acción permitida en ese momento, “Mover
joystick”, “Pulsa el botón para bajar” …
programación:
- Uso de los
puertos analógicos como digitales para el módulo L298N. - Uso de la función
millis () para simular multitarea: el uso de esta función permite evaluar el
tiempo transcurrido desde que se inicia el circuito, haciendo así la distinción
de si ha expirado el tiempo suficiente para una acción u otra. - Enlazando con el
punto anterior, se toma como margen de interferencias entre componentes unos
250 ms.
<LiquidCrystal.h>
lcd (8, 9, 10, 11, 12, 13);
pulsadorAbajo=4;
pulsadorIzq=5;
pulsadorArriba=6;
pulsadorDch=7;
pulsadorGarra=3;
pulsadorGarraState=LOW;
pulsadorArribaState = LOW;
pulsadorDchState = LOW;
pulsadorAbajoState = LOW;
pulsadorIzqState = LOW;
IN3=A2;
IN4=A3;
IN2=A1;
IN1=A0;
IN2G=A4;
IN1G=A5;
estado1=false;
estado0=true;
estado2=false;
estado3=false;
estado4=false;
estado5=false;
long previousMillis1 = 0;
long previousMillis2 = 0;
long previousMillis3 = 0;
long previousMillis4 = 0;
long previousMillisEstado2 = 0;
OnTime1 = 250;
OffTime1 = 300;
OnTime2 = 300;
OffTime2 = 300;
OnTime3 = 250;
OffTime3 = 250;
OnTime4 = 300;
OffTime4 = 300;
setup() {
pinMode(IN1G,OUTPUT);
loop() {
estadoCero(){
estadoUno(){
estadoDos(){
estadoTres(){
estadoCuatro(){
estadoCinco(){
moverGarra(){
pulsadorArribaState=digitalRead(pulsadorArriba);
(currentMillis – previousMillis1 >= OnTime1))
HIGH){
Remember the time
actual MOTOR
&& (currentMillis – previousMillis1 >= OffTime1))
Remember the time
//_____________________________________________________________________________________________________
(currentMillis – previousMillis2 >= OnTime2))
Remember the time
actual MOTOR
(currentMillis – previousMillis2 >= OffTime2))
Remember the time
(currentMillis – previousMillis3 >= OnTime3))
Remember the time
actual MOTOR
&& (currentMillis – previousMillis3 >= OffTime3))
Remember the time
//_____________________________________________________________________________________________________
(currentMillis – previousMillis4 >= OnTime4))
Remember the time
actual MOTOR
(currentMillis – previousMillis4 >= OffTime4))
Remember the time
subirGarra(){
millis();
actual MOTOR
bajarGarra(){
millis();
pulsadorGarraState=digitalRead(pulsadorGarra);
actual MOTOR
digitalWrite(IN1G,LOW);
}
5. Problemas
encontrados
y ejes.
tornillos y tuercas junto a rodamientos de patín con lija y estaño, simulando
el tope del carril.
El estaño no se adhería correctamente al
rodamiento, lo que ocasionaba que la cuerda no circulase correctamente.
Las cuerdas debían de tener un orden, tanto para
su correcto movimiento, como para su unión con las barras. Además de que la
tensión de las mismas debía ser lo suficientemente fuerte como para no resbalar
en la polea y el rodamiento.
Las barras debían de haber sido más largas pues
estas se enganchan con la cuerda de algún eje como consecuencia del movimiento
de la garra.
movimiento de subida y bajada de la garra, consta de 3 poleas y dos topes de
metal (trozo de varilla de aluminio).
La presión ejercida sobre las poleas no fue la
suficiente en un principio y estas no se movían adecuadamente.
Es importante tanto el sentido como la cantidad
de cuerda enrollada que se debe colocar previamente antes de pegar la cuerda
con pegamento a la polea. 1 vuelta de diferencia en la polea grande antes de
pegar en la pequeña concretamente.
(delay y multitarea).
la programación de Arduino, se intentaron programar los componentes con la
función delay(). Más tarde y en consecuencia de que los componentes no
respondían de manera adecuada a las señales, se hizo uso de millis(), como se
comenta en el apartado anterior de implementación.
pantalla.
de tamaño reducido y demasiado próximos unos a otros, esto ocasiono que en
primer momento se visualizaran mensajes incomprensibles en lugar de los
correctos. Como solución, soldamos con estaño fino los cables a los contactos.
todo.
componentes juntos, como la programación de los mismos en su conjunto. Lo
primero debido a que se debe de medir el tamaño de los cables y tener una idea
previa de la colocación de los componentes en la estructura. Lo segundo, en
relación al gran numero de componentes y señales empleadas en el código,
conseguir que todo funcionase adecuadamente fue resultado de múltiples ajustes.
H y consumo de energía
joystick y la respuesta correcta de los motores se probo en un primer momento
sin la goma elástica que conecta la polea y el motor. Esta respuesta era
correcta pero al incorporar la goma elástica el motor perdía potencia y no era
capaz de mover adecuadamente el Sistema de ejes. Mediante el multímetro
comprobamos que el Puente H no le enviaba el voltaje suficiente a los motores
puesto que este sin razón aparente descendía debido al rozamiento de la goma
elastica. Como solución, comprobamos el amperaje de las pilas que teníamos en
posesión y colocamos en serie las de mayor amperaje. Gracias a esto nos fuimos
conscientes de que aunque nuestras pilas eran de nueve voltios, las que usamos
en un primer momento no poseían el amperaje, y la potencia, suficiente.
6. Conclusiones
- Barras de ejes más grandes. En la parte del diseño y del montaje debíamos de haber hecho los ejes unos centímetros más largos ya que uno de los problemas que teníamos era que no se deslizaban bien porque se quedaban sin superficie, es decir, debíamos de haberles dado algo más de margen en cuanto al tablero que los contiene.
- Mejorar la colocación de la caja de mandos. Hacerla más grande ya que los cables no caben y e quedan en la superficie de movimiento de la garra.
- Cuerda de los ejes más resistentes. Encontrar un tipo de cuerda (o material similar) mejor para que los ejes de deslicen con mayor facilidad. Esto de debe a las numerosas ocasiones en las que hemos tenido que cambiar las cuerdas porque se aflojaban, se deshilaban o simplemente el material no era el adecuado por lo que los ejes no se podían mover.
- Estabilizar el problema de la garra con un contrapeso. Es decir, ponerle algo para que no se enreden las cuerdas que la sujeten, pero que a la vez no sea muy pesado ya que en caso contrario las poleas no tendrían la fuerza necesaria para tirar de ella.