Home»Desarrollos»Librería LegoPF – Control con Arduino de motores Lego

Librería LegoPF – Control con Arduino de motores Lego

0
Shares
Pinterest WhatsApp

La combinación de un Lego Technic con los motores, controles remotos y receptores de Lego Power Functions hace que estos juguetes de bloques de plástico cobren otra dimensión. Con Power Functions podemos dotar a nuestros pequeños proyectos con Lego de movimiento, y con los controles remotos podemos hacer fácilmente un coche teledirigido o cualquier otro vehículo.

Un paso más es controlar estos pequeños juguetes con un Arduino, donde ya se nos abre una gran cantidad de posibilidades.

Mi pequeña aportación a este sinergia es una pequeña librería que nos va a facilitar la utilización de los diferentes motores de Lego. La librería LegoPF la podéis encontrar en GitHub https://github.com/gonzalogalvan/LegoPF

Hardware utilizado

Los componentes de Lego Power Functions tienen un voltaje de funcionamiento entre 7v y 9v y los motores tienen un consumo elevado, con lo que no es aconsejable conectarlos a las salidas del Arduino directamente.

Aunque ya habrá un artículo para ver como conectar y programar nuestros motores Lego, os avanzo que utilizaremos un L298N para comunicarnos con los motores sin poner en peligro nuestro Arduino.

l298n-function.

Aprovecharemos que ya existe en el mercado componentes que además incluyen un 78M05 que nos va a permitir alimentar al Arduino de forma segura con la misma batería que utilizaremos para alimentar los motores.

Uso de la librería

La librería es muy simple de configurar y utilizar. Deberemos descargarla y meterla dentro de la carpeta «library» de nuestro IDE.

  • Incluir la libreria
    #include <LegoPF.h>
  • Iremos añadiendo motores con la función lego.addMotor, teniendo en cuenta los siguientes parámetros:
    1. Número de motor
    2. Pin de activación del motor
    3. Pin A de control de motor
    4. Pin B de control de motor
    lego.addMotor(0,50,10,11);
    lego.addMotor(1,40,8,9);

    El Pin A y Pin B serán salidas PWM para los motores normales si queremos controlar su velocidad. Para los motores servo, obligatoriamente deben ser salidas PWM.

  • Activar un motor:
    lego.enable(0);
  • Para un motor, o si es un servo, volver a la posición de reposo o inicial.
    lego.stop(0);
  • Funciones de control de motores normales:
    lego.fullForward(0);
    lego.fullBackward(0);

    Si el motor esta conectado a salidas PWM, podremos indicar el % de velocidad.

    lego.forward(0,50);
    lego.backward(0,50);
  • Desactivar motor
    lego.disable(0);
  • Funciones para controlar motores servo, girando completamente o bien indicando un porcentaje de giro respecto la posición de reposo.
    lego.fullLeft(1);
    lego.fullRight(1);
    lego.left(1,50);
    lego.right(1,100);

En un próximo artículo veremos en detalle como montar un Arduino en un pequeño coche Lego 4×4. Utilizaremos baterías 18650 de litio para alimentar tanto los motores como la electrónica, un L297N y un NanoArduino par gobernar todo.

ITEM_2772_FOTOPRODOtra librería para comunicarse con el receptor infrarojo de Lego Powerfunctions:

https://github.com/jurriaan/Arduino-PowerFunctions

 

 

Otros enlaces interesantes:

Previous post

Medidor de consumo. Conectamos a Internet

Next post

Medidor de consumo. Almacenar los datos

No Comment

Leave a reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *