Nivel 3: Moviendo los motores

El seguidor de lineas velocista, Open Source

Ahora comenzaremos con la dinámica de nuestro robotracer

Antes, citaremos este texto de la sección “Estructura” :

Open Lamborghino ( y la mayoría de lo robotracer competitivos) utilizan baterías de Litio – Polímero (NO LITIO ION o Li-Ion!!, no sea burro.. no gaste su dinero en esas baterías porque no funcionarán con su robotracer).

 

¿Por qué baterías de Litio Polímero?,  Bueno, desempolvemos nuestros apuntes por un momento:   Existen muchos tipos de baterías recargables; pero las que tienen la mejor relación “capacidad – peso”, son las baterías de litio. Dentro de estas batería de litio, las más comunes son las Li-Ion (Litio – Ion) y las LiPo (Litio – Polímero).

¿En qué se diferencian?, bueno, pues las Li-Ion están diseñada para almacenar mucha energía, pero a una baja tasa de descarga (tasa de descarga = amperaje), por ejemplo para baterías de móviles o de laptops. versus las LiPo, que están diseñadas para almacenar poca energía, pero a una alta tasa de descarga, como por ejemplo las baterías de los drones.

Debido a que Open Lamborghino utiliza motores High Power de 1.6 A, en el peak, (con 2 motores, el peak sería de 3.2 A… muchíiiisimo), se necesita una batería capas de suministrar esa enorme cantidad de energía.   Por ejemplo una batería LiPo de 180 mAh, de 7.4 volts, y 30C, puede suministrar hasta 5.4 A, suficiente para todos los componentes de Open Lamborghino.

Esta batería de 180 mAh, mide 36×20.5×10.5mm, que convenientemente cabe en el espacio de 12mm de separación entre el driver TB6612NFG y el Arduino Nano, de esta manera, la batería queda fija y segura sobre la placa. (todo pensado)

 

 

***Advertencias:

 

Este nivel debe hacerlo con la batería puesta. 

Si no colocan la batería, podrían quemar el arduino debido a que los motores requieren de mucha energía en el arranque, y si no están conectadas las baterías, esta energía la obtendrá del regulador de voltaje de 5V interno del arduino.

 

 Trate de hacer las pruebas, por periodos cortos de tiempo.

Los motores Pololu 1:10 High Power, utilizan mucha potencia, y si se utiliza por periodos prolongados, se puede calentar el motor o el driver.  Yo recomiendo hacer pruebas de potencia de a lo más 30 segundos, con un descanso de 30 seg.

 

Máxima potencia corriente del motor:

Los motores de corriente continua ( o brushed motors), alcanzan su máximo consumo de corriente cuando están totalmente detenidos. A esta corriente se le llama “Stall Current”, y es uno de los detalles en los que tenemos que fijarnos, antes de comprar un motor para nuestro robotracer.

El driver que utilicemos debe ser capaz de proporcionar suficiente corriente para el “Stall current”. En el caso de los motores Pololu 1:10 High Power, esta corriente es de 1600mA (por cada motor). Por suerte el driver TB6612FNG que utiliza Open Lamborghino, aguanta hasta un máximo de 3200 mA.

Si el motor se traba, haciendo que el eje no gire, el consumo de corriente se irá a las nubes. Así que en términos simples:  Si los motores se traban durante más de 10 segundos, quemará el driver, así que tendrá que hacer un sistema de protección por software, para que los motores se apaguen, si están en el peak por más de 3 segundo.

 

 

Okey, una vez entendiendo e internalizando las advertencias, es hora de comenzar con el ensamblaje de los motores

 

 

 

 

Para poner a prueba el código para el accionamiento de los motores, recomendamos sacar las ruedas de Open Lamborghino, para que los motores se muevan libremente (sin que el robot salga disparado).

 

La librería que hemos creado para facilitar la programación del movimiento se llama OpenTB6612FNG.y tiene la siguiente lista de funciones.

 


Función Descripción

 

OpenTB6612FNG OpenTB6612FNG(0);

Iniciación de la librería. Debe hacerse en el encabezado del código.

 

OpenTB6612FNG.MotorIz(); Acciona el motor izquierdo, requiere de un argumento int entre -255 y 255. donde 255 es a máxima velocidad en un sentido y 255 máxima velocidad en el sentido contrario. 0 es el motor en reposo.

 

OpenTB6612FNG.MotorDe(); Acciona el motor derecho, requiere de un argumento int entre -255 y 255. donde 255 es a máxima velocidad en un sentido y 255 máxima velocidad en el sentido contrario. 0 es el motor en reposo.

 

OpenTB6612FNG.Motores(); Acciona ambos motores, requiere de 2 argumentos int, separados por una coma, entre -255 y 255.  Por ejemplo OpenTB6612FNG.Motores(100,50)

 

OpenTB6612FNG.ACTFrenoIz();

Utiliza la función freno Activo de la rueda izquierda, donde la potencia de frenado será igual al argumento int. en un rango entre 0 y 255. Donde 0 es la mínima potencia y 255 es la máxima potencia de frenado.

 

OpenTB6612FNG.ACTFrenoDe(); Utiliza la función freno Activo de la rueda derecha, donde la potencia de frenado será igual al argumento int. en un rango entre 0 y 255. Donde 0 es la mínima potencia y 255 es la máxima potencia de frenado.

 

OpenTB6612FNG.Frenos(); Genera el freno activo en ambas ruedas. Se le debe insertar dos argumentos separados por una coma, enteros en un rango de 0 a 255.

 

OpenTB6612FNG.PASFrenoIz(); Frena la rueda izquierda de forma pasiva. Su utilización es idéntica que con el freno activo.

 

OpenTB6612FNG.PASFrenoDe(); Frena la rueda derecha de forma pasiva. Su utilización es idéntica que con el freno activo.

 

 


El siguiente código de ejemplo, mueve ambos motores a partir valor que ingresemos por puerto serial.

 

 

#include <OpenTB6612FNG.h>
#include <OpenLamborghino.h>

int base = 0;

#define BOTON  12
#define BUZZER  10

OpenLamborghino OpenLamborghino(BOTON, BUZZER);
OpenTB6612FNG OpenTB6612FNG(0);

void setup() {
  Serial.begin(9600);
  OpenLamborghino.WaitBoton();
  delay(1000);
}

void loop() {

  Serialin();
  OpenTB6612FNG.Motores(base, base);

}


void Serialin() {

  if (Serial.available() > 0) {
    tone(BUZZER, 1300, 100);
    base = Serial.parseInt();
    Serial.println(base);

  }
}



2
Leave a Reply

Please Login to comment
1 Comment threads
1 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
adminRichard Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Richard
Member
Richard

Me sirve una batería de lipo 7.4 2s 25c 180mah?