Coche Robot 2WD

En este tutorial vamos a construir un coche robot de 2 ejes o 2wd controlado con arduino, comprado en aliexpress y os cuento mi opini贸n sincera.

Mis hijos ya tienen 7 a帽os y me apetec铆a compartir con ellos un bonito momento construyendo alg煤n proyecto con arduino e iniciarlos en el mundillo de la rob贸tica.

Si son peques y les gusta el mundillo te recomiendo que visiten el Museo Rob贸tica en Madrid donde se enganchar谩n para siempre.

Me pareci贸 buena idea comprar un coche robot en aliexpress ya que son baratos y puedes conseguir todas las piezas que necesites.

Eleg铆 el m谩s b谩sico que puedes encontrar en aliexpress y el coche robot 2wd es barato y f谩cil de montar.

El coche robot 2WD es barato y f谩cil de montar.

Tard贸 en llegar a casa 2 semanas, algo de esperar si compras en un portal de ventas chino, as铆 que nada que objetar.

Bien embalado y cada cosa en sus bolsita, todo bien ordenado.

Lo sacamos todo y lo presentamos encima de la mesa donde vamos a montar el coche robot.

Robot 2wd piezas aliexpress

Coche robot 鈥 Instrucciones

Una vez identificadas todas las piezas y agruparlas para que luego sea m谩s f谩cil localizarlo todo comenzamos por la base de metacrilato.

La base donde ir谩 el coche 2wd es de metacrilato pero necesita que quitemos el papel que va pegado, as铆 que comenzamos por retirar el papel.

Base de metacrilato coche robot

Como pod茅is ver en la foto tenemos el primer problema, la base viene partida, por lo que podr铆a partirse en dos si apretamos los tornillos demasiado o no la tratamos con sumo cuidado.

Sin embargo sigo adelante con el montaje. Una vez retirado todo el papel hay que montar la rueda trasera, con sus separadores para que la rueda quede a la misma altura que las ruedas delanteras que son de m谩s tama帽o.

Coche Robot rueda trasera

Segundo problema, aliexpress s贸lo me ha incluido 4 separadores dorados, los que pod茅is ver en la foto anterior, por lo que no puedo ponerle los 4 a la rueda trasera del robot, y m谩s delante me faltar谩n para montar lo dem谩s鈥.muy mal por aliexpress.

Montar los motores 2wd

A continuaci贸n hay que montar los motores, que por cierto vienen sin los cables soldados, as铆 que necesitar谩s un soldador, si no tienes te recomiendo este soldador barato que es con el que hemos soldado este proyecto.

Motores arduino coche robot

Puedes soldar los cables como tu prefieras, pero yo te recomiendo soldar los cables iguales.

Debes saber que los motores de corriente continua no tienen polaridad, es decir, puedes poner los cables positivo y negativo como tu quieras, la diferencia es que el motor va a girar en un sentido o en otro, pero yo recomiendo que los hagas los dos iguales para evitar problemas con el c贸digo de arduino que explicar茅 m谩s tarde.

Motores arduino coche 2wd

Como te muestro en la foto, para montar el motor DC necesitas las peque帽as piezas de metraquilato que vienen con el papel marr贸n.

Una vez retirado el papel de todas las piezas de metacrilato, debes meter estas piezas por los huecos donde marco con una flecha, por debajo.

Anclado de los motores al metacrilato

Una pieza va por debajo como te he mencionado antes y la otra justa al borde de la base de metacrilato en una peque帽e hendidura para colocarla.

El motor va atornillado a este metacrilato, aunque en la foto muestra la posici贸n de motor con los cables hac铆a fuera del coche, recomiendo que lo mont茅is al rev茅s con los cables hac铆a dentro.

Motor arduino DC

As铆 es como dej茅 en principio los dos motores para arduino montados en su base de metacrilato, pero como he comentado antes, es mejor que los cables queden hac铆a dentro, tuve que desmontarlo todo cuando me di cuenta y darle la vuelta.

En este punto ya puedes ponerle las ruedas en el eje exterior a presi贸n, pero no te pases porque rozar谩 con la base de metacrilato, y en el eje interior del motor DC ( de corriente continua ) ir谩n las ruedas de los encoder, quedando sobre el hueco del metacrilato como pod茅is ver en la siguiente foto.

Interruptor para arduino

Lo siguiente que hice fue colocar el interruptor de encendido, va a presi贸n, pero nuevamente tengo un problema, el hueco es demasiado grande y el interruptor se mueve.

En mi caso no tuve m谩s remedio que pegarlo con pegamento mientras me acordaba del chino, y aunque le ech茅 muy poco se quedo la marca en el metacrilato.

El interruptor debes soldarlo tambi茅n con los cables que vienen incluidos, estos cables ir谩n directamente al L298N motor driver.

Problemas con la base del coche robot

Me encuentro con otro problema, al intentar montar la placa del arduino uno. LOS AGUJEROS NO COINCIDEN.

Como lo hab茅is le铆do, la base parece que no coincid铆a con nada, s贸lo con el montaje de los motores, pero para el resto del proyecto no hab铆a manera de montar nada.

Despu茅s de mi enfado con aliexpress y llegados a este punto lo mejor era agujerearlo..

Us茅 un taladro con una broca de madera, recomiendo que lo hag谩is lentamente porque si le sub铆s muchas revoluciones al taladro se quemar谩 el metacrilato por la temperatura.

Base de metacrilato de coche no coinciden agujeros

Marqu茅 con rotulador donde necesitaba los agujeros.

Agujeros al metacrilato para coche robot

Con taladrar s贸lo un poco con la punta es suficiente para que entren los tornillos.

Base de metacrilato de coche agujeros

As铆 es como quedaron, quiz谩s si los lijara quedar铆a con un acabado m谩s fino, pero me arriesgaba a que se ara帽ara el metacrilato y despu茅s de todo, no se iba a ver una vez le ponga los tornillos.

Tambi茅n coloqu茅 la placa arduino con los separadores, que como record谩is aliexpress s贸lo me incluyeron 4, cuando necesitaba 12 para todo, as铆 que s贸lo le pude colocar 2 al arduino.

H L298N Motor Driver

H L298N motor driver para coche robot

Con el H L298N control driver, me pas贸 lo mismo, no hab铆a manera de fijarlo a la base porque no hab铆a agujeros as铆 que marqu茅, hice agujeros y atornille.

Hacemos un inciso con el tutorial de montaje de este coche robot 2wd para hablar un poco sobre esta placa.

Deb茅is saber que los motores de de corriente continua como estos, consumen una gran cantidad de corriente cuando giran.

En nuestro caso estos motores consumen hasta unos 500 mA cada uno, pero claro, nuestra placa Arduino uno solo puede proporcionar 40 mA a 5 V en sus pines digitales.

Cu谩l es la soluci贸n? utilizar una fuente de alimentaci贸n externa (bater铆as) para proporcionar a los motores la potencia necesaria para funcionar correctamente sin da帽ar la placa Arduino. 

Si tu bater铆a es de mayor voltaje puedes usar un regulador de tensi贸n para bajar la tensi贸n. Para mas informaci贸n puedes ver mi articulo del divisor de voltaje donde dise帽amos lo mismo con un par de resistencias, aunque para este caso lo que recomendamos es un regulador de tensi贸n.

Tambi茅n vamos a necesitar separar ese circuito de alimentaci贸n (la pila) del circuito de control ( Arduino uno).

  • Usaremos 4 pilas AA, en total 6 voltios como fuente de energ铆a para alimentar a los motores.
  • Y utilizaremos una pila de 9v para alimentar al arduino.

El L298N motor driver es un circuito de doble puente en H que le permite alimentar estos motores con la potencia necesaria desde una fuente de alimentaci贸n externa.

Tambi茅n controlar谩 la direcci贸n de rotaci贸n de los motores con un arduino.

Es un controlador de dos canales, es decir que puede conectar dos motores de corriente continua diferentes y controlar cada uno de forma independiente.

Entre sus especificaciones tenemos que puedes conectar motores entre 5-35 V y con una corriente m谩xima de 2 A en cada canal.

L298N motor driver para arduino

Y como hemos mencionado las 4 pilas alimentar谩n el L298 y una pila de 9v alimentar谩 al arduino.

Alimentaci贸n arduino pila

Necesitar谩s un conectar para pilar de 9v y un conector de alimentaci贸n, entiendo que aliexpress no lo incluya porque puedes alimentar el arduino de la manera que quieras, por suerte tenia ambas cosas.

Si no sabes donde conseguirlos, os dejo el enlace donde los compro yo.

Montaje del servo SG90

El servomotor puede con 1.5kg, m谩s que suficiente para mover el detector de ultrasonidos HC-SR04 y detectar la distancia.

La idea es que se mover谩 de izquierda a derecha para controlar si estamos cerca de un objeto.

El servo SG90 viene en una bolsa con 3 piezas diferentes seg煤n lo necesites, nuevamente no viene la pieza que necesito y que va dentro de la base del servo, as铆 que toca coger una de ellas y recortarla con unos alicates de corte.

pieza cabeza servomotor
Base del servo motor arduino

Una vez recortada ya se puede meter en la base donde ir谩 el servo.

Yo recomiendo que le ech茅is pegamento fuerte, porque se saldr谩 constantemente sobre todo si el coche rob贸tico choca contra alg煤n objeto que no detente el sensor de ultrasonidos HC-SR04.

Adem谩s de pegarlo, hay que atornillarlo al servo por debajo, pero primero colocamos el servo entre las dos piezas dise帽adas para ello, y va a presi贸n.

montando el servo motor
Montando el servomotor

Ya tendr铆amos todo para poder montar el servo SG90 en el la base.

Base del servomotor montada

S贸lo quedar铆a unir ambas piezas para tener el conjunto completo.

Montando el servomotor-2
montando el servo motor-3

Pero antes de fijarlo a la base, y como dije anteriormente, hay que atornillar la base al servo por debajo de la base.

Base del servomotor atornillado

Y as铆 es como quedar铆a todo el conjunto

Servomotor montado en el coche robot 2wd

Sensor de ultrasonidos HC-SR04

Bien, llegados a este punto nos faltar铆a colocar el sensor de ultrasonidos HC-SR04 para controlar la distancia encima del servo.

Nuevamente aliexpress hace de las suyas y no viene nada para poder montarlo.

He visto otros proyectos en los que lo sujetan con bridas, pero creo que acabar铆a movi茅ndose con tanto movimiento del servo.

Pegarlo con pegamento adem谩s de feo, marcar铆a las piezas para siempre, sobre todo la placa del circuito del sensor de ultras贸nico HC-SR04.

As铆 que he optado por silicona t茅rmica, ya que se puede retirar en cualquier momento y aguantar谩 bien el movimiento, y lo que es mejor, no le afectar谩 a la placa del circuito si toca con algo.

Sensor ultrasonidos arduino coche robot

Tan solo bast贸 echar una gotita de silicona t茅rmica en las esquinas del sensor ultras贸nico HC-SR04 para que quedara bien fija a la estructura de pl谩stico del servo.

Esquema del cableado del coche aut贸mata

Con esto, ya tendr铆amos todas las piezas montadas sobre la base de metacrilato, y nos quedar铆a cablearlo todo y programar el arduino.

Explicar todo el cableado ser铆a muy tedioso tanto para mi, como para ti, as铆 que mejor dejo un esquema muy claro donde van todos los cables.

esquema cableado coche robot 2wd

C贸digo Arduino para este proyecto

Una vez todo montado y cableado s贸lo nos queda programar el arduino desde su IDE.

Si no lo tienes a煤n, os dejo donde descargar el IDE de Arduino oficial.

Una vez descargado e instalado, tu ordenador deber铆a detectar tu arduino al conectarlo.

configurar puerto arduino

Deber铆a de detectar autom谩ticamente el modelo de ardunio en Herramientas/Placa Arduino en nuestro caso Arduino Uno.

El puerto te debe aparecer justo debajo, en mi caso me lo detecta en el COM3 pero te puede salir cualquier otro.

Una vez conectado s贸lo queda el programa, el cu谩l dejo un ejemplo completo para que copies y pegues, todo muy f谩cil y sin saber programar.

#include <Servo.h>          //Servo motor library. This is standard library
#include <NewPing.h>        //Ultrasonic sensor function library. You must install this library

//our L298N control pins
const int LeftMotorForward = 5;
const int LeftMotorBackward = 4;
const int RightMotorForward = 3;
const int RightMotorBackward = 2;

//sensor pins
#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2

#define maximum_distance 200
boolean goesForward = false;
int distance = 100;

NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
Servo servo_motor; //our servo name


void setup(){

  pinMode(RightMotorForward, OUTPUT);
  pinMode(LeftMotorForward, OUTPUT);
  pinMode(LeftMotorBackward, OUTPUT);
  pinMode(RightMotorBackward, OUTPUT);
  
  servo_motor.attach(11); //our servo pin

  servo_motor.write(90);
  delay(2000);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
}

void loop(){

  int distanceRight = 0;
  int distanceLeft = 0;
  delay(50);

  if (distance <= 20){
    moveStop();
    delay(300);
    moveBackward();
    delay(400);
    moveStop();
    delay(300);
    distanceRight = lookRight();
    delay(300);
    distanceLeft = lookLeft();
    delay(300);

    if (distance >= distanceLeft){
          turnRight();
          moveStop();
          }
          else{
            turnLeft();
            moveStop();
          }
        }
    else{
      moveForward(); 
        }
    distance = readPing();
}


int lookRight(){  
  servo_motor.write(10);
  delay(500);
  int distance = readPing();
  delay(100);
  servo_motor.write(90);
  return distance;
}

int lookLeft(){
  servo_motor.write(170);
  delay(500);
  int distance = readPing();
  delay(100);
  servo_motor.write(90);
  return distance;
  delay(100);
}

int readPing(){
  delay(70);
  int cm = sonar.ping_cm();
  if (cm==0){
    cm=250;
  }
  return cm;
}

void moveStop(){
  
  digitalWrite(RightMotorForward, LOW);
  digitalWrite(LeftMotorForward, LOW);
  digitalWrite(RightMotorBackward, LOW);
  digitalWrite(LeftMotorBackward, LOW);
}

void moveForward(){

  if(!goesForward){

    goesForward=true;
    
    digitalWrite(LeftMotorForward, HIGH);
    digitalWrite(RightMotorForward, HIGH);
  
    digitalWrite(LeftMotorBackward, LOW);
    digitalWrite(RightMotorBackward, LOW); 
  }
}

void moveBackward(){

  goesForward=false;

  digitalWrite(LeftMotorBackward, HIGH);
  digitalWrite(RightMotorBackward, HIGH);
  
  digitalWrite(LeftMotorForward, LOW);
  digitalWrite(RightMotorForward, LOW); 
}

void turnRight(){

  digitalWrite(LeftMotorForward, HIGH);
  digitalWrite(RightMotorBackward, HIGH);
  
  digitalWrite(LeftMotorBackward, LOW);
  digitalWrite(RightMotorForward, LOW);
  
  delay(500);
  
  digitalWrite(LeftMotorForward, HIGH);
  digitalWrite(RightMotorForward, HIGH);
  
  digitalWrite(LeftMotorBackward, LOW);
  digitalWrite(RightMotorBackward, LOW);
}

void turnLeft(){

  digitalWrite(LeftMotorBackward, HIGH);
  digitalWrite(RightMotorForward, HIGH);
  
  digitalWrite(LeftMotorForward, LOW);
  digitalWrite(RightMotorBackward, LOW);

  delay(500);
  
  digitalWrite(LeftMotorForward, HIGH);
  digitalWrite(RightMotorForward, HIGH);
  
  digitalWrite(LeftMotorBackward, LOW);
  digitalWrite(RightMotorBackward, LOW);
}

El c贸digo no es m铆o, pero est谩 compilado y comprobado por mi, y funciona perfectamente.

Sin embargo, yo lo he mejorado a mi gusto, os dejo el mismo c贸digo para arduino desde el cu谩l yo part铆, por si quer茅is mejorarlo vosotros tambi茅n.

Os voy a comentar un poco el c贸digo para que lo comprend谩is.

#include <Servo.h>          //Servo motor library. This is standard library
#include <NewPing.h>        //Ultrasonic sensor function library. You must install this library

Inicialmente y como en todos los proyectos con arduino lo primer es importar todas las librer铆as que vayamos a necesitar.

En nuestro caso la libreria que no tenemos es NewPing.h y que la pod茅is descargar desde el enlace que os dejo.

Una vez descargada la importamos a nuestro IDE.

C贸mo importar libreria arduino

Una vez importada ya podemos compilar el c贸digo desde el bot贸n del men煤 superior y no deber铆a darte ning煤n tipo de problema, en todo caso, reinicia el IDE para asegurarte que se aplican correctamente los cambios.

Ya sin errores puedes proceder a programar el arduino con el bot贸n de la flecha derecha en el men煤 superior, pero sigamos comprendiendo el c贸digo.

Definiendo la inicializaci贸n del c贸digo

//our L298N control pins
const int LeftMotorForward = 5;
const int LeftMotorBackward = 4;
const int RightMotorForward = 3;
const int RightMotorBackward = 2;

//sensor pins
#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2

#define maximum_distance 100
boolean goesForward = false;
int distance = 100;

NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
Servo servo_motor; //our servo name

Lo primero que hace es crear unas constantes de tipo entero asignandole los pines del arduino, es decir, el pin 5 del arduino ser谩 para la constante LeftMotorForward, es decir Mover hac铆a adelante el motor izquierdo, etc.

Definimos los pines anal贸gicos del arduino tanto para el Trig (disparo) como para el el Echo
(recepci贸n)
del sensor de ultrasonidos HC-SR04.

Lo siguiente que hace el c贸digo es definir una distancia m谩xima en 100 y una varible booleana para saber si va hac铆a adelante o no, por defecto se deja en false. Y otra variable entera de distancia que se deja inicialmente en 100.

Para conocer la distancia con este sensor de ultrasonidos HC-SR04 es como sigue:

Distancia = {(Tiempo entre Trig y el Echo) * (V.Sonido 340 m/s)}/2

Seguidamente se usa una funci贸n de la libreria NewPing para conocer esto mismo y se le pasa los par谩metros que hemos declarado anteriormente.

Por 煤ltimo le damos un nombre al servomotor.

Configurando el c贸digo del proyecto

Una vez que tenemos todo lo necesario inicializado vamos a proceder con el Setup()

void setup(){

  pinMode(RightMotorForward, OUTPUT);
  pinMode(LeftMotorForward, OUTPUT);
  pinMode(LeftMotorBackward, OUTPUT);
  pinMode(RightMotorBackward, OUTPUT);
  
  servo_motor.attach(11); //our servo pin

  servo_motor.write(90);
  delay(2000);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
}

Esta parte es muy sencilla, ponemos los pines que hemos declarado al principio como pones de salida con pinMode y la instrucci贸n OUTPUT.

Le decimos con servo_motor.write(90) los grados que queremos para el servo.

  1. Con 90潞 es que el servo est谩 en medio
  2. Con 0潞 todo a la izquierda.
  3. Y con 180潞 todo a la derecha.

Nunca llegaremos a sus m谩ximos, se dejar谩 siempre entre 10 y 170.

Y ahora vamos alternando un retardo de 2 segundos, y lee la distancia, un retardo de 100milisegundos y vuelve a leer, as铆 varias veces.

Explicamos el loop que va a realizar nuestro robot

void loop(){

  int distanceRight = 0;
  int distanceLeft = 0;
  delay(50);

  if (distance <= 20){
    moveStop();
    delay(300);
    moveBackward();
    delay(400);
    moveStop();
    delay(300);
    distanceRight = lookRight();
    delay(300);
    distanceLeft = lookLeft();
    delay(300);

    if (distance >= distanceLeft){
          turnRight();
          moveStop();
          }
          else{
            turnLeft();
            moveStop();
          }
        }
    else{
      moveForward(); 
        }
    distance = readPing();
}

Inicialmente la distancia a derecha e izquierda comenzar谩 en 0.

Si la distancia es menor o igual que 20:

  1. Se para, espera 300 milisegundos y el robot ir谩 hac铆a atr谩s.
  2. Hacemos otro retardo de 400 y se para.
  3. Volvemos a hacer otro retardo o delay de 300 y escaneamos la distancia a la derecha.
  4. Esperamos 300 y volvemos a escanear a la izquierda y volvemos a esperar 300.

Con esto hemos escaneado a los lados para saber por donde ir.

Si la distancia que dijimos al inicio es mayor o igual que la distancia a la izquierda el coche va a girar a la derecha y se parar谩 sino har谩 lo contrario se girar谩 a la izquierda y se parar谩.

En caso contrario seguir谩 avanzando, y por 煤ltimo vuelve a leer la distancia para tenerla en la variable distancia.

Servo SG90 y sensor ultrasonidos HC-SR04

int lookRight(){  
  servo_motor.write(10);
  delay(500);
  int distance = readPing();
  delay(100);
  servo_motor.write(90);
  return distance;
}

int lookLeft(){
  servo_motor.write(170);
  delay(500);
  int distance = readPing();
  delay(100);
  servo_motor.write(90);
  return distance;
  delay(100);
}

int readPing(){
  delay(70);
  int cm = sonar.ping_cm();
  if (cm==0){
    cm=250;
  }
  return cm;
}

Las funciones que usamos para que el servo pueda mirar hacia los lados y pueda medir la distancias son las que muestro, en el c贸digo anterior.

Las dos primera funciones int lookLeft() y int lookRight() se declaran de tipo entero porque van a devolver un n煤mero entero.

Ambos son similares solo que cambiamos los grados a los que va a mirar el servo.

Empieza colocando el servo en una posici贸n 10 a la izquierda, 90 en el medio y 170 para ponerlo mirando a la derecha con servo_motor.write(170);

Es f谩cil de describir lo que hace, primero mira hacia un lado, vuelve al medio y se gira hacia el otro lado.

Depu茅s devuelve la distancia obtenida.

La funci贸n int readPing() devuelve un n煤mero entero, ser谩 los cent铆metros, que obtenemos con sonar.ping_cm()

Controlando el movimiento de los motores

En esta ocasi贸n no podr茅 todas las funciones que permite el movimiento, pero las nombraremos en la siguiente lista:

  • moveStop() Paramos los motores.
  • moveForward() Avanzamos hac铆a adelante.
  • moveBackward() Volvemos hac铆a atr谩s.
  • turnRight() Giramos a la derecha.
  • turnLeft() Giramos a la izquierda.

B谩sicamente para parar ponemos todos los pones de ambos motores en estado LOW

  digitalWrite(RightMotorForward, LOW);
  digitalWrite(LeftMotorForward, LOW);
  digitalWrite(RightMotorBackward, LOW);
  digitalWrite(LeftMotorBackward, LOW);

Para movernos en el resto de funciones comprovamos la variable goesForward para ver su estado y en base a eso avanzamos o no.

Si dejamos ambos motores en HIGH en su Forward y en LOW sus Backward el coche avanzar谩.

digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);
  
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);

Y si hacemos lo contrario, el coche ir谩 hacia atr谩s.

digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorBackward, HIGH);
  
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorForward, LOW); 

Para finalizar la explicaci贸n del c贸digo usamos la l贸gica, si queremos que el robot gire, un motor debe girar hacia un lado y el otro debe girar hac铆a el otro tal que as铆.

digitalWrite(LeftMotorForward, HIGH);
  digitalWrite(RightMotorBackward, HIGH);
  
  digitalWrite(LeftMotorBackward, LOW);
  digitalWrite(RightMotorForward, LOW);
  
  delay(500);
  
  digitalWrite(LeftMotorForward, HIGH);
  digitalWrite(RightMotorForward, HIGH);
  
  digitalWrite(LeftMotorBackward, LOW);
  digitalWrite(RightMotorBackward, LOW);

Con este c贸digo giramos hacia la derecha, pero te preguntar谩s, para que es el DELAY ???

Con el delay controlamos cuanto queremos que gire, si hay m谩s retardo, los motores giran m谩s tiempo por lo que girara m谩s, si ponemos un retardo muy corto, los motores giraran durante muy poco tiempo y girar谩 menos.

Problemas y soluciones con el coche 2WD

  • El coche no anda, s贸lo gira el servo hac铆a los lados: Debes mirar que est茅 correctamente alimentado el L298N motor driver.
  • El robot avanza pero no detecta obt谩culos: Comprueba que los pines de Trigger y Echo, est谩n correctamente colocados.
  • Arduino est谩 encendido y el L298N tambi茅n pero no hace nada: El c贸digo est谩 correcto y comprobado, revisa que lo hayas cargado correctamente en tu arduino.
  • Mi pc no detecta el puerto del arduino: A veces suele pasar y se soluciona instalando unos driver, si no los encuentras d茅jame un mensaje en los comentarios y encantado los compartir茅 con todos.

Conclusiones finales

Si te gusta el cacharreo, construir, solucionar problemas y estas cosas, aqu铆 te vas a distraer bastante.

Lo que te mande el chino de aliexpress puede ser toda una sorpresa sobre todo si la base del aut贸mata no tiene nada que ver con las piezas, pero bueno todo tiene soluci贸n.

Si tuviera que comprarlo de nuevo, yo no lo har铆a, comprar铆a todas las piezas sueltas, por lo menos la base y los tornillos y separadores, para que no te falte nada.

El precio no es malo teniendo en cuenta que incluye un arduino UNO, el controlador de los motores y la base.

Pero si lo compras todo por separado tampoco creo que te ahorres tanto.

Sinceramente, yo hubiera pagado un poco m谩s para que viniera todo perfecto.

M谩s que nada porque es un proyecto para montar con los ni帽os, y a edad temprana los ni帽os se aburren ante cualquier problema.

Si es tu caso, compra algo que no te de problemas sino los ni帽os abandonar谩n a la m铆nima

5/5 - (1 voto)
Soldador barato Tabiger
Soldador barato

Como necesitaba un soldador barato para mi proyecto del coche robot 2WD, me he decidido por comprar uno de la Read more

Motor con Encoder
Motor con Encoder

La posici贸n y el movimiento de los ejes de los motores el茅ctricos se controlan mediante encoder rotativos, pero 驴C贸mo funciona Read more

El sensor de temperatura LM35
Sensor de temperatura LM35

El sensor de temperatura LM35 es uno m谩s de la multitud de sensores que podemos usar en arduino. Temperatura, humo, Read more

Qu茅 es arduino
qu茅 es arduino

Si te gusta el mundo de la rob贸tica primero debes aprender qu茅 es arduino, como funciona y que tipo necesito Read more

Resumen
product image
Puntuaci贸n del autor
1star1stargraygraygray
Puntuaci贸n a帽adida
5 based on 5 votes
Marca
Chino
Nombre del producto
Coche Robot 2WD
Precio
EUR 22
Disponibilidad del producto
Available in Stock

Deja un comentario