Está en la página 1de 7

27/8/2019

Un pequeño robot con tracción 4x4 | Tienda y Tutoriales Arduino

robot con tracción 4x4 | Tienda y Tutoriales Arduino (https://www.prometec.net) T IENDAS
robot con tracción 4x4 | Tienda y Tutoriales Arduino (https://www.prometec.net) T IENDAS
simultaneamente CONTACTO (HTTPS://WWW.PROMETEC.NET/CONTACT/) O BJETIVOS   Seguimos jugando con los motores

O BJETIVOS

Seguimos jugando con los motores de corriente continua.

Presentar los Motor Shield V1 de Adafruit.

Vemos cómo manejarlos con la librería adecuada.

Montar un pequeño robot con tracción 4×4.

MATERIAL REQUERIDO.

[product id=”8811″]

[product id=”8811″]

CONTROLANDO VARIOS MOTORES DE CC

En las sesiones previas hemos visto cómo manejar los motores de corriente continua típicos. Hemos visto cómo hacerlos girar y como modi car esta velocidad de giro, así como la forma de invertir el sentido de rotación mediante un H bridge integrado como el L293D.

¿Y qué hace un hombre normal, cuando consigue controlar un motor (y más uno que esté leyendo esto)? Pues naturalmente, probar a manejar varios motores a la vez, digamos 4, y empezar a pensar en hacer un pequeño cochecito con tracción a las 4 ruedas y control remoto inalámbrico y…. ¡Quieto parado!

Vayamos por partes. De momento solo hemos gobernado un motor, aunque sabemos que el L293D dispone de capacidad para manejar un segundo motor. Podríamos diseñar un circuito con dos L293D para mover 4 motores y quizás hacer un Shield para montar todo en la chepa de nuestro Arduino.

27/8/2019

Un pequeño robot con tracción 4x4 | Tienda y Tutoriales Arduino

Pero como siempre os digo, si existe una necesidad en este mundo electrónico, siempre hay alguien presto a vendernos la solución de forma conveniente. Y como podréis imaginar, ni somos los primeros que hemos tenido esta idea (Ni seremos los últimos) ni es precisamente una novedad la solución, el mercado nos ofrece toda una (https://www.prometec.net) variedad de Shields para controlar motores muy interesantes, dependiendo del tamaño de los motores, su consumo, la tensión y cualquier otra cosa que podáis imaginaros.

la tensión y cualquier otra cosa que podáis imaginaros. C omo en esta humilde casa pensamos

A DAFRUIT MOTOR SHIELD V1.0

Aquí tenéis una foto del Motor Shield V1.0, que podéis encontrar fácilmente en cualquier proveedor:

que podéis encontrar fácilmente en cualquier proveedor:

Las características principales son:

4 H Bridges incluidos con dos L293D chips.

son:  4 H Bridges incluidos con dos L293D chips.  Hasta 4 motores CC con

Hasta 4 motores CC con control bidireccional y selección de velocidad de 8 bits.

control bidireccional y selección de velocidad de 8 bits.  Máxima corriente de 0,6 Amperios (Aunque

Máxima corriente de 0,6 Amperios (Aunque acepta picos de hasta 1,2) con una protección de sobre temperatura.

Acepta motores cuya alimentación va desde 4,5 a 25V.

Podemos añadir otros dos motores Servos o paso a paso.

Dispone de alimentación de motores, separada de la del Shield para evitar ruido e interferencias.

Bajo precio (En serio).

Compatible con UNOs y Megas por lo menos.

Dispone de una librería cómoda para manejar los motores.

En resumen, es un Shield barato y práctico para manejar pequeños motores de 5V, pero que se quedará corto si necesitas una cierta potencia en los motores, ya que la intensidad que estos demandaran superará con facilidad los 0,6A que tiene como límite este Shield.

Es ideal para construir robots autónomos con pequeños motores y sin peso y sobre todo como elemento de aprendizaje antes de invertir una pasta gansa en otras opciones mas so sticadas.

27/8/2019

Un pequeño robot con tracción 4x4 | Tienda y Tutoriales Arduino

C ONECTANDO EL MOTOR SHIELD
C ONECTANDO EL MOTOR SHIELD

pines 2 y 13, así como el 0 y 1 que se usan para la comunicación USB con nuestro PC.

Los pines A0 a A5 están disponibles para nuestro uso y recordar que a una mala, podeos usarlos como pines digitales también.

a una mala, podeos usarlos como pines digitales también.

Hay conexiones para los bornes de 4 motores, marcados como M1, M2, M3 y M4 y conviene que al conectar sigas el mismo criterio en los bornes y en el Shield porque de lo contrario conseguirás que alguno de los motores gire al revés de lo que pretendes. Lo que no es muy grave porque se arregla con facilidad.

Una cosa interesante de este shield es que nos permite separar la alimentación de los motores de la alimentación de Arduino y es de agradecer porque los motores generan mucha interferencia electromagnética que puede hacer que nuestro Arduino Mega (https://www.prometec.net/producto/arduino-mega/) se comporte de forma errática.

Por eso siempre que sea posible conviene que separéis la alimentación de uno y otro (Aunque en un robot autónomo va a ser difícil). Para ello basta con que quites el “power jumper” y la alimentación estará separada. Esto será imprescindible si tus motores son de digamos 9 0 12V porque tu Arduino solo funciona con 5V (So pena de hacer barbacoa de Arduino).

Vamos a conectar un primer motor al Shield para probar. Lo primero montad el Shield a vuestro Arduino. Yo os recomiendo un MEGA para que podamos seguir haciendo cosas en el futuro, pero también vale cualquier otro.

Conectad los bornes del motor a los tornillos A y B del Motor Shield, dejando libre el pin central marcado como GND.

No es importante que borne a que pin, porque lo único que ocurrirá si lo invertís es que el motor girará al revés. Lo que sí es recomendable es que mantengáis el mismo criterio para todos los motores, porque os ahorrará dolores de cabeza.

Como en este primer ejemplo vamos a alimentar el motor desde Arduino y el USB, no olvidéis conectar el power jumper, para que alimentemos los motores directamente desde Arduino.

Seria sencillo manejar el motor a través del Shield directamente, recurriendo a los pines de control, y os lo propongo como ejercicio si os parece, pero aquí vamos a descargar ahora una librería de Adafruit para manejar el Shield directamente, que nos permitirá abstraernos del detalle de pines.

27/8/2019

Un pequeño robot con tracción 4x4 | Tienda y Tutoriales Arduino

Para usarla, lo primero que tenemos que hacer es este par de instrucciones:

#include <AFMotor.h> AF_DCMotor Motor1(1); (https://www.prometec.net)
#include <AFMotor.h>
AF_DCMotor Motor1(1);
(https://www.prometec.net)

La primera línea pone el motor a 200 / 255 del tope de revoluciones, y la segunda línea indica que queremos dejar el motor en punto muerto.

Si

queremos que el motor avance usamos:

 

Motor1.run(FORDWARD);

 

Y

para que retroceda hacemos

 

Motor1.run(BACKWARD);

 

Y

eso es todo lo necesario para controlar un motor. Si queremos hacer un primer programa sencillo que haga avanzar el motor unos segundos y

#include <AFMotor.h> AF_DCMotor Motor1(1);

void setup()

{

void loop()

Motor1.run(RELEASE);

}

{

Motor1.run(FORWARD);

delay (2000);

Motor1.setSpeed(180);

Motor1.run(BACKWARD);

delay (2000);

}

Aquí os pongo un mini video con el resultado:

M OVIENDO VARIOS MOTORES SIMULTÁNEAMENTE

27/8/2019

Un pequeño robot con tracción 4x4 | Tienda y Tutoriales Arduino

Vamos a conectar ahora, 4 motores a nuestro Motor Shield. Yo tengo por aquí rodando un bastidor con 4 ruedas y motores que voy a usar como base para hace un robot con tracción a las 4 ruedas.

uedas, a condición de que podamos subirle nuestro Arduino m as el motor Shield. Una caja

De nimos la velociodad de los 4 motores en el setup:

void setup()

{

Serial.begin(9600);

// set up Serial library at 9600 bps

Motor1.setSpeed(255);

Motor2.setSpeed(255);

Motor3.setSpeed(255);

Motor4.setSpeed(255);

}

Y por ultimo vamos a mandar moverse adelante y atrás y para los 4 motores simultáneamente:

Motor1.run(RELEASE);

Motor2.run(RELEASE);

Motor3.run(RELEASE);

Motor4.run(RELEASE);

delay (1000) ;

Motor1.run(FORWARD) ;

Motor2.run(FORWARD);

Motor3.run(FORWARD);

Motor4.run(FORWARD);

delay (2000);

Motor1.run(BACKWARD);

Motor2.run(BACKWARD);

Motor3.run(BACKWARD);

Motor4.run(BACKWARD);

delay (2000);

Es conveniente que comprobéis en vuestro montaje que todas las ruedas giran en la misma dirección y que no hay ninguna rotando al revés, porque cuando queramos avanzar seria un problema.

Aquí os dejo un pequeño video con el trest de giro

27/8/2019

Un pequeño robot con tracción 4x4 | Tienda y Tutoriales Arduino

Con esto, confío en que con esto hayamos dejado listo el hardware de nuestro robot para empezar a programarlo en serio. Pero parece mas

conveniente cortar aqui esta sesión y dejar algo para la próxima sesión, en la que veremos como mover el robot y hacerlo girar además de variar

y hacerlo girar además de variar (https://www.prometec.net) la velocidad de crucero. D etalle del uso de
 

Pin 1

 

Disponible

Pin 2

 

Disponible

Pin D3

DC

Motor #2 / Stepper #1

Pin D4

Reservado para gobernar el Shift Register 74HC595

Pin D5

DC

Motor #3 / Stepper #2

Pin D6

DC

Motor #4 / Stepper #2

Pin D7

Reservado para gobernar el Shift Register 74HC595

Pin D8

Reservado para gobernar el Shift Register 74HC595

Pin D9

Servo #1, Disponible si no se usa el servo

Pin D10

Servo #2, Disponible si no se usa el servo

Pin D11

DC

Motor #1 / Stepper #1

Pin D12

Reservado para gobernar el Shift Register 74HC595

Pin D13

 

Disponible

A0,A1,A2,A3,A4,A5

Disponibles. Recuerda que pueden usarse como digitales

Tened presente que no hay ningun pin de Arduino conectado a los motores directamente. La gestión de los motores se realiza a traves del shift register para ahorra pines y por eso tenéis necesariamente que usar la libreria para manejarlos.

RESUMEN DE LA SESIÓN

 

Hemos presentado el Motor Shield V1 de Adafruit, que un Shield muy barato además de útil para mover pequeños motores y como nuestra primera controladora.

Vimos sus características y limitación pero siempre es mas comodo un Shield que hacerse un invento.

Instalamos la librería de control de motores y empezamos con las nociones básicas de programación de los motores.

Dejamos el Motor Shield conectado a un pequeño robot de 4 ruedas y prbamos que todo funcionaba como se esperaba, dejando listo el hardware para que podamos empezar a programar el movimiento del robot.

del robot. Anterior (https://www.prometec.net/hbridge/ ) (https://www.facebook.com/prometecnet-

N O COMMENTS