Si aún no eres usuario, puedes crear una cuenta o entrar
Tutorial: Robot 4x4 con Arduino

Mucha gente me pregunta sobre cómo hacer un pequeño robot. La verdad es que es una pregunta un póco dificil de responder ya que hay muchas maneras de hacerlo y por supuesto muchos tipos de robots diferentes. En la gran mayoría de los casos, se suelen montar robots tipo coche con servomotores o motores de corriente contínua. Esto es lo que os voy a mostrar hoy, un robot con tracción a las cuatro ruedas con motores de corriente contínua. La idea aqui no es hacer un gran robot inteligente que sea capaz de traernos el desayuno a cama (aunque sería la leche!), sino la base para crear un pequeño robot con tracción a las cuatro ruedas basado en Arduino que os pueda servir de base para un robot más completo e inteligente, incluyendo distintos tipo de sensores como los de distancia, GPS o incluso telemetría.

Es un tutorial muy básico que todo el mundo puede realizar de forma sencilla y en muy poco tiempo. Luego de tener la base, podemos ir añadiendo más complejidad. Por supuesto no dudeis en dejar vuestro comentario, dudas y sugerencias!





Robot 4x4 con Arduino

Como he dicho antes, éste pequeño tutorial pretende ofrecer una base de locomoción para un robot, con su chasis, motores, driver de motores y placa Arduino. Digamos que es la parte fundamental para que un robot pueda desplazarse. Una vez que tenemos un sistema el cual somos capaces de controlar (adelante, atrás y giros), podremos ir incluyendo algunos sensores adicionales en función del tipo de robot que deseemos. En éste punto, ya depende en gran medida de la imaginación de cada uno, que puede ir desde un sencillo robot que circule con unos patrones predeterminados y fijos, hasta un completo robot capaz de esquivar obstáculos mediante sensores de distancia o incluso guiado por GPS.

Sin más preambulos, comenzamos!

Las partes fundamentales para un robot de éstas características son las siguientes:

  1. Chasis
  2. Sistema programable de control (Arduino)
  3. Controlador de motores
  4. Alimentación
  5. Conexiones
  6. Código fuente
  7. Video!

El chasis

Por supuesto, podemos realizar un chasis a medida ya sea de madera, PVC o otros materiales ligeros, pero necesitaremos más tiempo y planificación. Además, no siempre se sabe con exactitud qué componentes se van a utilizar con sus respectivas dimensiones y los posibles inconvenientes que van surgiendo. Luego si optamos por contruir el chasis desde cero, necesitaremos herramientas y útiles que muchas veces no tenemos a mano. En mi caso, he optado por utilizar un chasis ya hecho que además es compatible con la placa Arduino Duemilanove o la nueva Arduino UNO. Éste chasis es muy robusto y está fabricado en aluminio, incluye cuatro motores de corriente contínua de 6V con reductora incorporada, ruedas, tornillos, plataforma para añadir sensores, interruptor de alimentación, caja de pilas 5xAA y algunos cables. Con él tenemos la parte mecánica practicamente resuelta y nos podemos dedicar a la siguiente fase del proyecto.

Chasis robot 4x4 Arduino

Chasis robot 4x4 con motores

Sistema programable de control (Arduino)

Obviamente, necesitamos algo que nos permita programar a nuestro antojo el robot. Dado que el chasis ya dispone de agujeros para atornillar un Arduino USB, he utilizado dicho modelo. En mi caso es un Arduino Duemilanove, pero podeis utilizar igualmente un Arduino UNO o Arduino Pro 328 de Sparkfun, ya que las características son iguales y el código es completamente compatible.

Arduino UNO

Arduino UNO

Controlador de motores

Una placa Arduino no puede gestionar directamente motores de corriente contínua, dado que la máxima intensidad que es capaz de proporcionar en sus pines de salida es de unos escasos 20mA. Por lo tanto, necesitamos un controlador de motores que sea capaz de soportar la carga de los motores. Dicho controlador será gestionado a su vez por el Arduino. Debemos seleccionar siempre un controlador con potencia suficiente para los motores que vallamos a utilizar. Los cuatro motores incluidos con el chasis funcionan a 6 V y consumen unos 300 mA a plena carga. Dado que tenemos cuatro motores, obtenemos un consumo aproximado total de 4 x 300 = 1,2 Amperios aproximadamente.

Controlador de motores doble puente H - L298

Controlador de motores doble puente H - L298

Un buen candidato tanto por sus dimensiones como sus prestaciones, es el controlador en doble puente H basado en el conocido driver L298. Con sus dos salidas, tiene potencia suficiente (25W) para alimentar los cuatros motores. Un momento... cómo que dos salidas? pero si tenemos cuatro motores, entonces cómo hacemos?

Pues no pasa nada, ya que a pesar de que éste controlador tan sólo dispone de dos salidas, utilizaremos cada una de ellas para alimentar los motores en parejas. Agruparemos los motores de tal forma que los dos correspondientes a la parte izquierda del chasis serán cableados en pararelo y lo mismo para los dos motores correspondientes a la parte derecha del chasis. Con esto, podremos conectar los dos motores izquierdos a la salida A y los dos motores derechos a la salida B, tal y como se muestra en la imagen:

Debemos prestar atención a cómo cableamos los motores ya que como se puede ver, cada pareja está en sentido opuesto, por lo que debemos cruzar los cables para que giren en el mismo sentido cuando los alimentemos. Antes de continuar, es recomendable aplicar tensión una vez cableados para comprobar el sentido de giro.

Alimentación

La alimentación es bien sencilla ya que disponemos de un zócalo para 5 pilas de tipo AA que nos dan un total de 7,5 Voltios. Esto nos será suficiente para alimentar los motores y nuestra placa Arduino. La dejaremos atronillada a la base de chasis por la parte baja.

Mientras tanto, montamos el Arduino y el controlador de motores en su sitio. Utilizaremos unos soportes de metal con sus respectivos tornillos, ya que nos dará un montaje seguro y fiable.

Conexiones

A continuación, cableamos todo bien colocado con el largo de los cables justo para que no molesten. Fijaros que al cablear los motores en grupos de dos, sólo tendremos cuatro cables, que son los que irán al controlador.

No olvidemos de soldar los cables al interruptor de encendido. El chasis incluye uno de tres contactos, pero yo he preferido montar uno de seis.

Una vez conectados los motores al controlador, es el turno de conectarlo al Arduino. En la imagen de arriba no se muestra, pero no olvideis de contactar también los cables de alimentación que vienen del interruptor! Irán conectados a VMS y GND.

Las conexiones a la placa Arduino serán así:

  • Arduino PIN 8 -> I1
  • Arduino PIN 9 -> I2
  • Arduino PIN 11 -> EA
  • Arduino PIN 6 -> I3
  • Arduino PIN 7 -> I4
  • Arduino PIN 10 -> EB

Éstas son las señales de control ya que además estamos utilizando los pines PWM para luego poder variar la velocidad de los motores. También necesitareis conectar la salida del controlador marcada como +5V al pin de arduino señalado como VIN. Esto hace que el controlador de motores le proporcione corriente a la placa Arduino. No olvideis también de unir las masas con los pines GND.

He utilizado cables de prototipo Macho/Hembra para que sea más fácil:

Set de cables Premium para protoboard (100 Unid.)

Código fuente

No hay mucho que decir acerca del código fuente. He realizado un pequeño conjunto de funciones que permiten hacer avanzar o retroceder a la velocidad y el sentido que queramos. Al inicio del programa, en la función Setup() defino los pines como salidas y luego en el bucle principal, en la función Loop(), he puesto una secuencia de avance durante dos segundos, retroceso durante otros dos segundos, giro izquierda y giroderecha de dos segundos también. Luego el programa vuelve a comenzar. Es una buena forma de hacer las primeras pruebas y ver cómo se comporta el robot. Fijaros que para girar, se necesita hacer girar la parte izquierda al contrario de la parte derecha. Es el mismo sistema que los tanques. Con distintas velocidades podremos girar más o menos según sea necesario.

 

/*********************************************************************************************

  Tutorial: Robot 4x4 con Arduino
  Autor: Oscar Gonzalez - 16 Octubre 2010
  http://blog.bricogeek.com/noticias/tutoriales/tutorial-robot-4x4-con-arduino/

 ********************************************************************************************/
#define MOTOR1_CTL1  8  // I1
#define MOTOR1_CTL2  9  // I2
#define MOTOR1_PWM   11 // EA

#define MOTOR2_CTL1  6  // I3
#define MOTOR2_CTL2  7  // I4
#define MOTOR2_PWM   10 // EB

#define MOTOR_DIR_FORWARD  0
#define MOTOR_DIR_BACKWARD   1

void setup()
{
  // Setup pins for motor 1
   pinMode(MOTOR1_CTL1,OUTPUT);
   pinMode(MOTOR1_CTL2,OUTPUT);
   pinMode(MOTOR1_PWM,OUTPUT);
   
  // Setup pins for motor 2
   pinMode(MOTOR2_CTL1,OUTPUT);
   pinMode(MOTOR2_CTL2,OUTPUT);
   pinMode(MOTOR2_PWM,OUTPUT);   
}

void setSpeed(char motor_num, char motor_speed)
{
   if (motor_num == 1)
   {
      analogWrite(MOTOR1_PWM, motor_speed);
   }   
   else
   {
      analogWrite(MOTOR2_PWM, motor_speed);
   }
}

void motorStart(char motor_num, byte direction)
{
  
   char pin_ctl1;
   char pin_ctl2;
   
   if (motor_num == 1)
   {
      pin_ctl1 = MOTOR1_CTL1;
      pin_ctl2 = MOTOR1_CTL2;
   }   
   else
   {
      pin_ctl1 = MOTOR2_CTL1;
      pin_ctl2 = MOTOR2_CTL2;     
   }
  
   switch (direction)
   {
     case MOTOR_DIR_FORWARD:
     {
       digitalWrite(pin_ctl1,LOW);
       digitalWrite(pin_ctl2,HIGH);          
     }
     break; 
          
     case MOTOR_DIR_BACKWARD:
     {
        digitalWrite(pin_ctl1,HIGH);
        digitalWrite(pin_ctl2,LOW);          
     }
     break;         
   }
}

void motorStop(char motor_num)
{
   setSpeed(motor_num, 0);
   if (motor_num == 1)
   {
     digitalWrite(MOTOR1_CTL1,HIGH);
     digitalWrite(MOTOR1_CTL2,HIGH);     
   }
   else
   {
     digitalWrite(MOTOR2_CTL1,HIGH);
     digitalWrite(MOTOR2_CTL2,HIGH);     
   }
}

void loop()
{
  // Start motors!
  motorStart(1, MOTOR_DIR_FORWARD);  
  setSpeed(1, 200);
  motorStart(2, MOTOR_DIR_FORWARD);      
  setSpeed(2, 200);
  
  delay(2000);
  
  motorStart(1, MOTOR_DIR_BACKWARD);  
  setSpeed(1, 200);
  motorStart(2, MOTOR_DIR_BACKWARD);      
  setSpeed(2, 200);
  
  delay(2000);
  
  motorStart(1, MOTOR_DIR_FORWARD);  
  setSpeed(1, 140);
  motorStart(2, MOTOR_DIR_BACKWARD);      
  setSpeed(2, 140);  
  
  delay(2000);
  
  motorStart(1, MOTOR_DIR_BACKWARD);  
  setSpeed(1, 140);
  motorStart(2, MOTOR_DIR_FORWARD);      
  setSpeed(2, 140);  
  
  delay(2000);  
  
}

 

Más adelante, cuando incorporemos sensores, podremos utilizar las funciones motorStart(), motorStop() y setSpeed() según nos sea necesario en función de los datos leidos por los sensores y lo que queremos que haga el robot.

Video

Ha llegado el momento triunfal en el cual estamos listos para el primer arranque de nuestro robot casero! Sólo nos queda asegurarse de tener las pilas puestas (y cargadas ya que las mias estaban en las últimas...) y conectar la alimentación mediante el interruptor trasero. Aqui os dejo un video del resultado final, aunque durante la gravación del video las pilas estaban más muertas que vivas y apenas tenía fuerza. Pero os puedo asegurar que con pilas nuevas o unas baterías bien cargadas, los motores ofrecen una fuerza no despreciable!

Bueno, pues espero que os halla gustado éste pequeño tutorial y por supuesto, si haceis vuestro própio robot o evolucionais éste, queremos verlo! asi que no dudeis en enviar vuestras fotos y dejar vuestro comentario!

En la tienda

Chasis robot 4x4 con motores Controlador de motores doble puente H - L298 Arduino UNO Batería LiPo 1800mAh / 11.1V 25C


Comparte esto con tus amigos!

Si te ha gustado, quizás también te interese...
Juego 2048 portátil con Arduino
Publicado el 16/07/2014

Comentarios:


Adrian Martinez
Enviado el 16/10/2010 (20:40)
Excelente tutorial, ahora solo le falta el radiocontrol :)

Sergio Maeso
Enviado el 16/10/2010 (21:16)
Excelente tutorial! Esta fantásticamente explicado...pero leyéndolo me ha entrado una duda... en el tutorial dices que el pin 5v del L298 da energía al arduino... yo tengo el L239 y siempre pensé (estúpido) que el pin era de entrada pero no de salida...se supone entonces que podemos alimentar al arduino con el L298 o en mi caso el L239? Y las masa del arduino y el controlador irían unidas a las de los motores y al polo negativo de la batería de 7,5v?


Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 16/10/2010 (21:22)
Correcto, puedes conectar hasta un máximo de 9 Voltios en la entrada VIN de Arduino, ya que ese pin pasa por el regulador de tensión interno. La salida 5V del L298 o L239 proporciona suficiente corriente para alimentarlo y de hecho está pensado para eso :)

Saludos!

Miguel ngel de Frutos Carro Miguel ngel de Frutos Carro es un colaborador!
Enviado el 18/10/2010 (00:50)
Hola! Me ha gustado tanto el tutorial y ya que tenía los materiales a mano y una tarde larga de domingo me he montado mi propio Rover-4x4.
He utilizado un Arduino UNO, y como driver de motor el SERIAL QIK 2S9V1...
La única novedad es que he añadido un NUNCHUCK de la wii para controlar el robot (de momento solo con el joystick). Creo que es un paso bastante facilito pero que puede dar mucho juego a otros novatos que quieran seguir "trasteando" con su Rover 4X4.
El nunchuck es muy fácil de conectar vía I2C y hay multitud de esquemas y buenas bibliotecas en la red. De todos modos, estoy a vuestra disposición.
Video de Youtube: http://www.youtube.com/watch?v=q3HBQDNPYCE
Zip
Fotos + Código:: http://dl.dropbox.com/u/7085078/Rover%204x4.zip

Miguel Angel Roman Forcada
Enviado el 18/10/2010 (17:21)
Esto es 1 WOW MY GOOD!!
aun no me lo leido detalladamente, PERO IMPRESIONANTE y perfecto para mi proyecto, jeje
Os dejo 1 link de mi blog para que veais, no vereis demasiado ya que aun esta todo muy misterioso jeje ytal. pero jeje.
y como dice Adrian Martinez, solo falta el RadioControl xP
pero Oscar enserio, IMPRESIONANTE, y creo que hablo en nombre de todos, por darte las gracias por todo lo que haceis y aguantarnos a tanto como ami como a muchos de los que te mandamos emails de dudas de materiales de los que dispones etc.

Eres 1 Crack.



Miguel Angel Roman Forcada
Enviado el 18/10/2010 (17:37)
PD: se me olvido el link de mi blog.
http://roma0712.blogspot.com/

Saludos

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 18/10/2010 (17:51)
Gracias Miguel, pero no olvides mostrarnos tu proyecto secreto, tiene muy buena pinta y queremos verlo! :)

Saludos

Miguel Angel Roman Forcada
Enviado el 20/10/2010 (09:49)
Oscar una de mis preguntas clave es la siguiente, si lo que tenemos son 2 controladores y 4 motores.
que seria mejor conectar los de alante a 1 controlador o los de 1 lateral.
o indiferente.
y a la hora hacer conexiones en un Mega?

PD: Haber cuando nos haces 1 manual de xbee Radiocontrol ejejej

SAaludos

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 20/10/2010 (11:09)
Hola Miguel,
Necesitas conectar siempre dos motores en cada lateral, ya que así podrás girar el chasis invirtiendo los sentidos de giro de ambos. Si conectas las parejas adelante y atras, no podrás girar :)

Y el tutorial sobre XBee está de camino... ;)

Saludos!

kevin lachos
Enviado el 26/12/2010 (20:45)
He Osquitar porfisss haber cuando haces el siguiente tutorial de los sensores ... para la continuacion de este robot e ir ampliando de esa manera sus virtudes

saludos gracias

Juan Dermeyer Martinez Estrada
Enviado el 12/03/2011 (05:03)
grasis


Juan Dermeyer Martinez Estrada
Enviado el 12/03/2011 (05:09)
perdon gracias

José de Jesús Zermeño Escalan
Enviado el 25/05/2011 (22:35)
Hola Oscar , el tutorial me parece muy interesante , de antemano te agradezco por tu granito de arena en este fantastico mundo de la robotica.Espero con ansia el tutorial
sobre xBee,saludos!

Germán Iglesias
Enviado el 10/07/2011 (22:14)
Muy bueno el tutorial, si alguien tiene un Netduino y necesita ayuda yo he pasado el codigo a c# para el Netduino utilizando los mismos materiales que pone el tutorial.

Antonio Ortas
Enviado el 15/09/2011 (13:24)
Yo estoy bastante interesado en el codigo C# para Netduino.

Daniel Pino
Enviado el 09/10/2011 (12:36)
Hola !!
Muy agradecido de la guía y sobre todo de la simplicidad.
Tengo harto conocimiento en programación pero casi nulo en electrónica. Justamente buscaba en Internet alguna guía para armar un robot de carrera usando Arduino y me encanto este blog. Mi pregunta es la siguiente:
Quiero comprar esta placa

http://www.olimex.cl/product_info.php?cPath=76_78_163&products_id=757&product__name=Arduino_Mega_2560

pero me gustaría saber si será compatible con la arduino wifi shield? ya que pretendo controlar el robot utilizando un wii mote mediante comandos desde una Notebook.

Este es el enlace
http://www.olimex.cl/product_info.php?cPath=76_78_155_157&products_id=768&product__name=Arduino_WiFi_Shield_(WIZ610)

y otra consulta, que necesitaría para poder añadir una camara web al robot y así poder ver vía el robot desde el notebook?

De ante mano Muchísimas Gracias !


Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 11/10/2011 (11:51)
Hola Daniel,
El MEGA 2560 lo tienes aquí:

http://www.bricogeek.com/shop/arduino/306-arduino-mega-2560.html

La Wifly Shield aquí:
http://www.bricogeek.com/shop/arduino/238-arduino-wifly-shield.html

La Wifly Shield es compatible con el mega ya que se comunica por el UART y además, como el Arduino MEGA 2560 tiene 4 puertos, te quedarán aún 3 disponibles para otras cosas. Para la cámara web, mucha gente monta una cámara IP y un pequeño punto de acceso Wifi para emitir su señal.

Saludos!

candid fernandez anello
Enviado el 02/11/2011 (01:59)
Hola Oscar!!
genial tu tutorial..
soy nuevo, muy nuevo en esto y estoy pensando en hacer tu 4x4..
Quiero hacer una Dolly motorizada para time lapse, y me pregunto si el 4x4 podria con una camara de fotos de unos 2 kilos?? y si esos motores me servirian para que se moviera paso a paso de manera muy lenta, mas o menos 1 metro a la hora?
Gracias!!

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 02/11/2011 (10:53)
Hola Candid, Es posible que valga pero date cuenta que deberás tener una superficie muy plana y regular para desplazar el robot sino, se te moverá la imagen. Lo suyo es hacerlo sobre un rail pero la idea de utilizar un robot como este no está mal.

Saludos!

Jorge Antonio
Enviado el 03/11/2011 (00:53)
Disculpa, como puedo pedir los motores en alguna tienda de electronica para que me funcionen para este proyecto?

Pablo Novo
Enviado el 05/11/2011 (13:48)
Hola soy un niño de 12 años que estoy haciendo un robot y me gustaría saber como conectar un sensor sharp a una placa arduino y hacer que funcione y el código para utilizar motores con el nunchuck ( tengo el adaptador, y un controlador de motores de doble puente) gracias.

José Miguel Lineros De Haro
Enviado el 08/11/2011 (16:40)
Hola Jorge Antonio, puedes encontrar los motores y el chasis en la tienda;

http://www.bricogeek.com/shop/robotica/283-chasis-robot-4x4-con-motores.html

Un saludo y suerte

Marcelo Rodriguez
Enviado el 02/01/2012 (02:15)
Hola, exelente tuto pero me quedo una duda, si nosotros hacemos el chasis, sirve cualquier placa?. Sirve alguno de estos: Arduino 4 Relay Board - 24v Avr, Pic, Dsp,8051
Arduino ,controlador Dos Motor 2a High Power H-bridge L298n
Arduino Sensor Shield V4 Digital Analog Module & Servos
Arduino Microcontroler Dc 5v Stepper Motor Pic Mcu Diy
Arduino Multi Rotary Sensor Proyectos De Robotica
Arduino Potentiometer Module For Sensor Shied Rotation

Juan Pedro Gallardo Duperier
Enviado el 10/02/2012 (22:40)
Hola:
Estupendo tutorial. Solo tengo un problema. Mis conocimientos de electronica se limitan a que cuando aprieto el interruptor se enciende la luz. Del tutorial lo único que no tengo claro son las conexiones. Me he quedado en que de la alimentación salen dos cables y que una vez cabreados los motores tengo dos pares de cables que son los que van al controlador de motores. Entonces ¿Qué cables se conectan al interruptor de encendido? Dos supongo que salen de la alimentación. Y los otros?. Y cuales son los que van al arduino?

Disculpa mi torpeza, pero es que quiero entender todo el proceso antes de comprar el Rover e intentar copiar el proyecto.
Cuando vas a explicar como poner sensores para que esquive objetos?

Muchas gracias


Sebastián Beceiro
Enviado el 17/02/2012 (13:46)
Hola Gente, les escribo desde Paysandú - Uruguay, mi consulta es la siguiente, quisiera saber si con la Controlador de motores doble puente H - L298n también puedo hacer este proyecto, y cual es la diferencia con la Controlador de motores doble puente H - L298.

Desde ya muchas gracias

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 20/02/2012 (09:43)
Hol aSebastián,
Esa controladora es la que se utiliza en éste tutorial y sirve para controlar los motores.

Saludos!

Juan Pedro Gallardo Duperier
Enviado el 06/03/2012 (18:20)
Hola de nuevo.
He vuelto a repasar mi pregunta, y me avergüenzo de mi ignorancia. ya casi comprendo el cableado. Solo me quedan dos dudas.
- veo que al gnd de la placa del motor va un cable negro desde el interruptor de encendido y un cable negro desde el gnd del arduino. ¿como se meten los dos cables en el gnd de, shield de motores?
- si quisiera conectar un par de sensores de posicion necesitaría meter en el pi. de 5v y en el pin libre de gnd del arduino dos cables (uno desde cada sensor). esos empalmes como podría hacerlos?
muchas gracias

Josep Trigueros Aragay
Enviado el 01/06/2012 (11:00)
Hola tengo una duda, conectas 5v del controlador a la patilla Vin del arduino y gnd a masa, pero la patilla VMS donde va?

rodrigo mompo
Enviado el 08/08/2012 (14:10)
Hola a todos

Estoy con este mismo proyecto, en mi caso elegí otra base para el robot, aquí os dejo el enlace

http://www.bricogeek.com/shop/robotica/413-chasis-rover-5-dagu-con-encoders.html

Esta base es de orugas, a diferncia que la otra su velocidad maxima es menor (90 cm/s 4x4, mi base 25 cm/s) Pero a cambio te permite llevar mucho peso encima. Hay que tener en cuenta que si el robot va muy rapido las camaas no funcionan bien del todo.

Esta base viene con unos enconders, que si no me equivoco, se pueden conectar al controlador de motores.

Por lo que he visto si los conectas te permite que mantenga la misma velocidad aunque el terreno cambie.

Despues de este rollo por el cual me disculpo :)
¿Alguien sabe como conectar esto enconders al controlador de motores? ( uso el mismo que le del tutorial)

Muchas gracias

Taras Nolose
Enviado el 05/09/2012 (12:22)
es obligatorio la controladora solo quiero hacer que los motores giren si no es obligatorio en que pines se tienen que conectar los motores? (soy principiante, se nota no? :P)

David Pereira
Enviado el 17/10/2012 (14:22)
En primer lugar Os doy la enhorabuena por los tutoriales. Soy nuevo en esto y necesito un poco de ayuda. no encuentro información referente a como controlar el robot con un mando para grabar los pasos durante un tiempo de 2h o mas y reproducirlos nuevamente en el robot. Por favor mostrarme algún kit o algúna información o tutorial para experimentar. Graciñas de antemano.

jose antonio garcia
Enviado el 03/11/2012 (22:07)
Hola que motores debo comprar, no se con que voltaje en intesidad los puedo pedir.
gracias

jose antonio garcia
Enviado el 03/11/2012 (22:21)
Una vez conectados los motores al controlador, es el turno de conectarlo al Arduino. En la imagen de arriba no se muestra, pero no olvideis de contactar también los cables de alimentación que vienen del interruptor! Irán conectados a VMS y GND.
Hola cuando se dice esto a que se refiere a la placa que controla los motores o la arduino.
gracias

Fernando gracia gili
Enviado el 16/11/2012 (20:42)
Hola!
Primero d todo k eres un crack!
Pero te quisiera hacer una pregunta, cuando ya tienes montado todo, como en el tutorial, luego como lo controlas? Es decir, con un mando a distancia, con el ordenador...
Gracias!

Rubén Aguilar
Enviado el 16/01/2013 (09:28)
Buenas,

Ante todo, felicidades por tu manual, ya que me ha ayudado mucho con el tema de las conexiones.

Tu código funciona a la perfección, pero a la hora de utilizarlo en otros programas me ocurre que SÓLO ME FUNCIONA UNA DE LAS RAMAS DE MOTORES, es decir, o la rama izquierda o la derecha.

Básicamente, lo único que hago es usar un sensor de IR con un mando para que el robot avance, pare, gire, etc, a través de la lectura del código del botón pulsado (vamos, un switch que llama a la función ADELANTE (), por ejemplo, que lleva el código indicado en tu programa, si pulso el botón 2 del mando).

Ambos códigos (el del mando IR y el del motor) funcionan por separado, pero juntos, sólo funcionan la mitad de los motores. ¿Es posible que necesite crear interrupciones?

He probado otro enfoque con un sensor de ultrasonidos pero tampoco consigo que funcionen las dos ramas de motores a la vez.

Creo que debe ser un problema de código porque no modifico en absoluto ningún elemento hardware más allá de añadir el sensor de IR o el de ultrasonidos (he probado a colocarlos en varios pines también).

¿Podéis ayudarme?

Muchas gracias. Si necesitáis el código, pedidlo y lo cuelgo aquí sin reparos.


Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 17/01/2013 (18:29)
Hola Rubén,
Puedes utilizar directamente la función analogWrite sobre MOTOR1_PWM o MOTOR2_PWM para arrancar los motores que necesites. Seguramente tengas algo mal en el código, pero prueba a utilizar simplemente esa función y ya verás como funciona casi solo.

Un saludo!

Curro Raya
Enviado el 26/01/2013 (15:00)
Hola Oscar.

Antes de nada he de decir que bestial el tutorial, asi es mucho mas facil iniciarse con arduino y la creacion de robot.
Bueno, mi pregunta es la siguiente. En el tutorial usas un solo controlador de motores para los 4 motores juntandolos en parejas. ¿Se podria lograr lo mismo con dos controladores?, es decir, cada controlador encargarse de un par de motores, del lateral para ser mas precisos.

Saludos ;)

fulgencio donoso gonzalez
Enviado el 01/02/2013 (13:28)
ola ola soy nuevo tratarme bien aremos cosas jeje ya me saldrán algunas ideas de noche y os podre preguntar veo que sois buenos

Rubén Aguilar
Enviado el 11/02/2013 (19:49)
Buenas otra vez,

Ante todo, gracias por la rápida respuesta. Al final lo que me pasaba es que se me ha jodido el pin del arduino que usaba para el PWM, en cuanto probé con otro pin funcionó a la primera.

Hernan Osorio
Enviado el 27/02/2013 (01:04)
Hola Curro Raya.

Después de quemar una tarjeta de estas, he probado poniendo dos en paralelo y funciona de maravillas.

excelente tutorial.

Raul Rubio
Enviado el 02/04/2013 (12:54)
Buenas, estoy montando el chasis y tengo una duda sobre como conectar el portapilas al interruptor y este al arduino (o al control de motores). Podrías echarme una mano?


Raul Rubio
Enviado el 03/04/2013 (11:49)
Vaya, era una estupidez. Ya está solucionado. Ahora estoy intentando hacer lo mismo que se muestra en el tutorial pero con una ethernet sield puesta sobre el arduino. Pero el pon 12 no me funciona... A ver si encuentro las descripciones de los pines. Alguna idea?

José Luis Molina
Enviado el 10/04/2013 (23:21)
Buenas.
Pregunta tonta:
¿No hay otra alternativa a un interruptor de 6 contactos o 4? Aparte de conectarlo directamente a la placa sin usar uno.
Es evidente que se necesita conectar la placa a VMS y a GND. ¿No se puede improvisar algo con el interruptor de 3 contactos?

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 11/04/2013 (11:34)
Hola José,
Puedes utilizar el de 3 sin problema. Dejas el GND conectado y cableas el interruptor en el positivo de la batería y listo.

Un saludo!

José Luis Molina
Enviado el 13/04/2013 (10:24)
Perfecto! Gracias. Funciona perfectamente.

Una última pregunta. He visto que hay un conector que, si no me equivoco, sirve para recargar las pilas o alguna batería en caso de que se conecte.
Mi pregunta es, ¿el soporte para pilas permite la recargas de pilas recargables? Porque es verdad que no entiendo como funciona este sistema.

Gracias.

Jose Romero
Enviado el 13/04/2013 (22:43)
Una pregunta, que procedimiento usas para controlar el dispositivo, me refiero a como va a la derecha, izquierda.
PD: el tutorial esta perfecto.

Jose Romero
Enviado el 12/05/2013 (11:51)
Hola, me podrían indicar como se conectaría, la alimentación, al controlador usando el interruptor que trae el chasis, o no se puede conectar a ese y hay que usar otro.

Gracias.

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 13/05/2013 (20:29)
Hola Jose,
Puedes utilizar el interruptor que viene con el chasis, yo utilicé otro pero es el mismo sistema. Simplemente lo conectas en série con el positivo de la alimentación y listo.

Saludos!

Jose Romero
Enviado el 14/05/2013 (21:04)
Quizás la pregunta sea una tontería, pero Oscar con eso que te refieres a que el + de las pilas y el VNS se conectan en la misma patilla del interruptor.

Y gracias por responder.

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 15/05/2013 (16:31)
Conectas el positivo de la batería al interruptor y el otro lado del interruptor a la entrada positiva (+) del driver de motores. El GND (negativo -) de la batería directamente al negativo del controlador. Con esto funcionará sin problema.

Saludos!

Nicolas Gomez
Enviado el 24/05/2013 (17:14)
Me pueden indicar cual es la función es la que realizan las partes del código void setSpeed(...), void motorStart(...) y void motorStop y por que son estas partes necesarias y no es bastante con los bucles void setup() y void loop()

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 24/05/2013 (19:35)
Hola Nicolas,
Esas funciones controla el movimiento y velocidad de los motores.

Saludos!

Nicolas Gomez
Enviado el 26/05/2013 (17:55)
Gracias Oscar por la respuesta anterior, ya creo que entiendo el código, pero me podrías decir que tendría que hacer para después de repetir una vez el ciclo de movimientos se parara, porque a mi no se me para.

Un saludo¡

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 27/05/2013 (11:23)
Hola Nicolas,
Puedes utilizar la función motorStop indicando el motor a parar.

Un saludo!

Nicolas Gomez
Enviado el 04/06/2013 (22:49)
Oscar a que se podría deber que mi 4x4 no gire, y las cargas de las pilas las e comprobado con un medidor de pilas y me indica que tienen carga.

Y otra pregunta hasta cuanto se puede aumentar las revoluciones de los motores.

Gracias
Un saludo.

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 06/06/2013 (10:52)
Hola Micolas,
Comprueba que tengas el controlador bien conectado y le envíes pulsos PWM. Seguro que tienes algun detallito que se te ha escapado.

Saludos!

Eric Gómez
Enviado el 12/06/2013 (08:27)
Oye amigo, de casualidad se puede usar el motor shield arduino que usa el circuito L293D (2x) en tu robot usando el codigo que hiciste sin ningun problema, disculpa mi ignorancia es que soy nuevo en esto :P

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 12/06/2013 (18:35)
El funcionamiento es similar, por lo tanto es probable que funcione sin demasiadas modificaciones.

Sergio de la Fuente
Enviado el 07/07/2013 (18:06)
Estimado Oscar: en primer lugar enhorabuena por tu post. Es genial.
Estoy tratando de reproducir tu proyecto y me he dado cuenta que mi controladora (http://dx.com/es/p/l298n-stepper-motor-driver-controller-board-module-blue-149662) no dispone de los pines: EA y EB a los que conectar el pin 10 y 11 respectivamente.
¿Sabes si tengo alguna alternativa?

Muchas gracias de antemano.

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 08/07/2013 (09:11)
Hola Sergio,
Por lo que veo es una placa muy similar y por lo tanto debe tener algún pin de direccion (equivalente a los EA y EB de la nuestra). Eso viene en la documentación de la placa pero muchas veces no la entregan en donde la compraste, así que mucho cuidado con comprar cositas de estas en dx ya que luego puede que no puedas utilizarla por falta de documentación.

Saludos!

Sergio de la Fuente
Enviado el 08/07/2013 (09:25)
Buenos días Oscar:

Muchas gracias por tu rápida respuesta. Tienes razón. Ahora voy a tratar de localizar la doc. de esa tarjeta pero es verdad que de alguna forma tiene que tener los pin de dirección....espero. Actualizaré mis averiguaciones con un nuevo comentario por si a alguien le ocurriera lo mismo.

Un saludo,

hector luis enriquez
Enviado el 30/07/2013 (08:52)
Hola Oscar tengo problemas en la conexión del controlador de motores, no se si me pudieras proporcionar un diagrama mas sencillo para ver la conexión de arduino con el controlador.

te lo agradecería bastante mi correo es
hector.hle@gmail.com

Carlos Millán
Enviado el 09/08/2013 (14:37)
Se puede poner en serie dos motores (como se hace en el tutorial) pero en vez de con ese chip con el L293D
??

Rocío Báez de Aguilar Barcala
Enviado el 04/09/2013 (19:12)
¡Hola Oscar!

Estoy construyendo un robot con tres ruedas (dos conectadas a un motor cada una, y una rueda loca para los giros), pero no consigo hacer que ande recto. He controlado los motores de las ruedas con PWM, de manera que he intentado igualar la velocidad de ambas ruedas, pero el problema es que no siempre se desvía en el mismo momento. Es decir, empieza andando recto, y al cabo de cinco, siete, diez segundos empieza a escorarse hacia la izquierda. ¿Se te ocurre de qué puede ser?
¡Muchas gracias!

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 05/09/2013 (00:03)
Hola Rocío,
Eso es un tema habitual en ese tipo de robots. Puede ser por varias cosas. Suponiendo que la señal PWM es la misma para ambos motores, puede que los motores aunque sean iguales, no respondan de la misma forma y que uno gire más que el otro debido a la tolerancia en su fabricación. El otro posible motivo y que también suele ser habitual, es que el eje de los motores no esté bien alineado. Es decir que una rueda esté ligeramente girada con respecto a la otra. En ambos casos ocurre lo que indicas.

Saludos!

Rocío Báez de Aguilar Barcala
Enviado el 05/09/2013 (11:38)
¡Muchas gracias, Oscar!

Emmanuel López
Enviado el 13/09/2013 (16:22)
Hola Oscar
Al igual que Rocio estoy construyendo un robot con tres ruedas (dos conectadas a un motor cada una, y una rueda loca para los giros), inicialmente no hacía nada cuando accionaba el interruptor. Luego desconectando el PIN 7->I4 comenzó a girar una sola rueda y en un sólo sentido, y al desconectar el PIN 8->I1 también, gira una rueda en un sentido, se detiene, y luego gira la otra en el mismo sentido para volver a realizar el ciclo nuevamente.
No logro que se desplace ni hacia adelante ni hacia atrás, gira a lo loco todo el tiempo.
Podrías ayudarme? muchas gracias y muy bueno el tuto.-

Rafael Barros
Enviado el 14/10/2013 (23:23)
Hola Oscar un gran saludo, estoy tratando de hacer el proyecto. utilizo arduino Uno y controlador L298N, no logro conectar la batería pues dcie los cables de alimentación que vienen del interruptor! Irán conectados a VMS y GND. no encuentro VMS en arduino uno, también dices : "También necesitareis conectar la salida del controlador marcada como +5V al pin de arduino señalado como VIN" no encuentro la salida de 5v en la salida del controlador L298N, te agradecería si me diera una ayudadita alguna imagen mas clara documentación me es de gran ayuda. saludos desde Colombia

Daniel Uribe
Enviado el 15/10/2013 (04:38)
Hola, muy buen proyecto.
Soy nuevo en esto de arduino pero tengo gran entusiasmo por aprender. Debido al proyecto del 4x4 me surge una duda ¿luego de realizar el programa con el software, puedo desconectar la placa arduino y el programa seguirá guardado en el micro o como haces para que tu robot funcione sin estar conectada la placa arduino al pc?
muchas gracias por su atención y un gran saludo desde Colombia.

Alejandro Oporto
Enviado el 30/10/2013 (14:59)
Una pregunta, que procedimiento usas para controlar el dispositivo, me refiero a como va a la derecha, izquierda.

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 30/10/2013 (17:01)
Hola Alejandro,
Eso lo gestiona el programa para Arduino propuesto en este artículo. Es muy fácil de utilizar y lo puedes modificar según tus necesidades.

Saludos!

Alejandro Oporto
Enviado el 31/10/2013 (13:35)
Hola Oscar gracias por responder tan pronto. Yo me refiero al control remoto, que no lo veo en el video, como lo configuraste, perdon pero recien estoy arrancando con esto


Saludos

Marcelo Quibsert
Enviado el 11/11/2013 (05:48)
Hola muy bueno tu proyecto pero tengo una pregunta como hiciste para controlar mmm un control y como puedo controlar con un control del ps3 algun controlador para conectar?


Marcelo Quibsert
Enviado el 11/11/2013 (06:20)
bueno intente conectar el Nunchuk del wii pero el codigo y las librerias van al inico del programa que hiciste o puede ir donde yo quiera el codigo del nunchuk

veo q no tienes conectado el arduino con la laptop?

diego carrasco
Enviado el 26/11/2013 (20:02)
Hola..
Disculpen mi ignorancia, la verdad ne se bien como van los contactos del interruptor de 6 contactos, lo que pasa es que al poner las 5 pilas se empieza a quemar un polo negativo de la pila del extremo, debe ser por que el negativo de la carga?

espero su respuesta...
muy bueno el tutorial
saludos

Cesar Cifuentes Alzate
Enviado el 13/03/2014 (21:31)

Hola soy principiante en esto de arduino.... mas que la parte electrónica busco respuestas en la parte del código donde tengo entendido que la estructura principal es la definición.. como en este caso es.

#define MOTOR1_CTL1 8 // I1
#define MOTOR1_CTL2 9 // I2

Lo segundo es el void setup en donde definimos que tipo de pin vamos a utilizar si de salida o de entrada.

pinMode(MOTOR1_CTL1,OUTPUT);
pinMode(MOTOR1_CTL2,OUTPUT);

después das unas funciones como lo son la velocidad, dirección, y stop. quisiera saber en donde defines las entradas a esta función o de donde salen.

void setSpeed(char motor_num, char motor_speed)

a la funcion setSpeed entra una variable tipo char motor_num no veo en donde le das valor de 12 o de 0 a esta variable como la otra que entra muchísimas gracias.. excelente tutorial.




Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 14/03/2014 (10:16)
Hola Cesar,
setSpeed tiene dos parámetro: el número de motor (1 o 2) y la velovicdad (0-254). Esto hace que el motor correspondiente gire a la velocidad indicada.

Un saludo!

franco gallo
Enviado el 27/03/2014 (21:44)
se puede saber donde puedo comprar los materiales para hacerlo, q programa de programacion usa?? y si tiene algun tipo de sensores


enzo diaz calisto
Enviado el 13/06/2014 (23:57)
disculpa Oscar yo tengo un arduino due y quisiera conectar un Controlador L298n De Doble Motor 35v - 2a Para 2 Motores Dc y quisiera saber si es compatible y que batería necesitaría y si le puedo conectar un modulo bluetooth ( HC-05) para controlarlo a través de android espero tu pront respuesta mi correo es enzodiaz.c@hotmail.com
saludos de antemano...

dilam alvarado fernandez
Enviado el 04/07/2014 (00:43)
Hola que tal , soy nuevo en esto , pero porque cuando apreto el switch para q funcione los motores me suenan? ... agradeceria tu respuesta ... :D
SALUDOS


Enviar comentario

Debes disponer de una cuenta de usuario para publicar un comentario.

Si aún no dispones de una cuenta, únete a la comunidad de BricoGeek.com y registrate ahora, te llevará tan solo un minuto y es gratis. También puedes identificate si ya dispones de una cuenta de usuario.
rss

Conecta con BricoGeek.com

Canales sociales

Nos gusta mucho estar en contacto con nuestros lectores y saber más acerca de sus proyecto e inventos.


También puedes sugerir una noticia en el blog
Tienda de Electrónica DIY y Arduino

Lo que se cuece...

Comentarios recientes Más comentado Top noticias
Feed de novedades

Tienda BricoGeek.com

Electrónica para tus proyectos!

Estás preparando un proyecto o quieres iniciarte en la electrónica? Encuentra todo lo que necesitas en la tienda.

Visita la tienda BricoGeek!

La familia de BricoGeek.com

Conoce toda la gente que hace que BricoGeek.com sea posible cada día:

Alejandro Mallo
Colaborador
Puedes hacer click sobre un autor para ver todas sus noticias


Etiquetas más populares:

Descubre todo el contenido de bricogeek.com con las etiquetas más populares:


© BricoGeek.com 2005-2014

Demuestra lo que sabes hacer!