-->

Menú principal

jueves, 2 de febrero de 2017

Introducción a la robótica: Primeros pasos con placas Arduino

Introducción a la robótica: Primeros pasos con placas Arduino

Disponemos de una placa DFRduino Romeo V1.0 de la marca DFRobot y un cable para conectarla al puerto USB. Lo primero es buscar información en la web del fabricante: www.DFRobot.com


Vamos a ver si encontramos información de la tarjeta en la web del fabricante. Obtenemos las siguiente información:

INTRODUCCIÓN 
La familia Romeo es un tarjeta de control Robot todo-en-uno especialmente diseñado para aplicaciones robóticas de DFRobot. Se beneficia de la plataforma de código abierto Arduino, es apoyado por miles de códigos de código abierto, y se puede ampliar fácilmente con sus módulos Arduino. El controlador de motor de CC de 2 vías integrado y el conector inalámbrico le permiten iniciar su propio proyecto de robot inmediatamente sin necesidad de un controlador de motor adicional. No sólo tiene el conductor del motor, Romeo también está diseñado para tener una potencia extra para los servos que necesitan más corriente. Romeo también se ofrece con DFRobot estándar 3Pin-out diseñado y compatible con los sensores de la serie Gravity y actuadores. Cientos de sensores ahora son plug-play con Romeo. Este es el primer miembro de la familia Romeo nacido en 2009. No solo es el primer Controlador de Robot Arduino, sino también el primer controlador derivado del Arduino en el mercado. La versión actual de Romeo se basa en Arduino Uno. Se ha construido en 2x2A controladores de motor de CC y toma de comunicaciones bluetooth / APC220. El pinout integrado del sensor io le permite conectar cientos de diferentes sensores y módulos compatibles con Gravity. Tiene conector servo que es un plug & play. Es el controlador ideal para construir su propio robot.


De aquí deducimos que es compatible con la tarjeta Arduino Uno, que debe ser un estándar en este tipo de tarjetas. 

Encontramos más información en la web del distribuidor oficial de estas microcontroladoras en España, Ro-botica, donde vemos una actualización de la tarjeta, la versión v1.1


Romeo es un microcontrolador todo-en-uno diseñado especialmente para aplicaciones de robótica, 2 drivers para motores de 2A, puertos PWM, puertos I2C y mucho mas. 

Auna los beneficios de al plataforma Arduino miles de código fuente de ejemplo con licencias libres , se puede ampliar fácilmente con la mayoría de los Escudos Arduino. 

Integra control para dos motores DC y puerto para conexión inalámbrica que proporciona una forma mucho más fácil para comenzar su proyecto de robótica. 

En esta web encontramos la siguientes información o documentos en formato PDF:
Empezamos con el manual en español. Lo primero que nos dice es que leamos atentamente este manual antes de conectar la controladora.


Antes de empezar 
La aplicación de energía 
Usted debe asegurarse de que la alimentación eléctrica al terminal de alimentación este con la polaridad correcta. La inversión de la polaridad puede dañar el Romeo. No nos hacemos responsables de los daños, ni tampoco garantía contra daños. Asegúrese de tomar el tiempo para aplicar la alimentación correctamente. De lo contrario, podrían ser costosos para usted! 

De alimentación de USB: Sólo tiene que conectar el cable USB, y Romeo es capaz de trabajar. Tenga en cuenta que el USB sólo puede suministrar 500 mA de corriente. Esta entrada es capaz de satisfacer los requisitos para la aplicación con LED. Sin embargo, no es suficiente para alimentar motores de corriente continua o servos. 

De alimentación de entrada de corriente para motores : Sólo tiene que conectar el cable de negativo de la fuente al terminal de tornillo marcado "GND", y luego conectar el cable positivo de la fuente al terminal de tornillo marcado "VIN". 

NOTA: La tensión máxima de alimentación no puede exceder de 14 V DC. 

Software Romeo puede ser programado por Arduino IDE 0014 o versión superior. Se puede descargar en http://arduino.cc/en/Main/Software , por favor seleccione "Arduino Nano", como el hardware. 

De aquí deducimos que si conectamos al puerto USB del ordenador solo podemos trabajar con los LED's. Para trabajar con motores de C/C o servos necesitamos alimentar la controladora con una fuente que nos proporciones como máximo 14 voltios.

Para hacer funcionar la tarjeta necesitamos el software del entorno de desarrollo de Arduino, y debemos seleccionar en tipo de tarjeta "Arduino Nano". Vamos a descargar este software.

 http://arduino.cc/en/Main/Software

Una vez descargado el programa para la versión de nuestro sistema operativo, lo instalamos y ejecutamos el programa, actualmente en versión 1.8.1.


Seguimos con el manual

Tutorial

Pulsadores. Romeo tiene 7 pulsadores S1 a S7 (Figura 2). S1 a S5 para entrada de uso analógico con el pin 7, y S6, S7 que utilizan las entradas digital pin 2 y pin 3. 


Ejemplo 1: uso de pulsadores -------------------------------------------------------------

//
//Key message
char msgs[5][15] = {"Right Key OK ",
                                    "Up Key OK ",
                                   "Down Key OK ",
                                   "Left Key OK ",
                                   "Select Key OK" };
int adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup() {
pinMode(13, OUTPUT); //vamos a utilizar LED a la salida de un latido del corazón
}
void loop()
{
adc_key_in = analogRead(7); // leer el valor del sensor
digitalWrite(13, HIGH);
key = get_key(adc_key_in); // convertir en pulsar la tecla
  if (key != oldkey) // si se oprime una tecla se detecta
     {
     delay(50); // esperar que el tiempo de rebote
     adc_key_in = analogRead(0); //leer el valor del sensor
     key = get_key(adc_key_in); //convertir en pulsar la tecla
     if (key != oldkey)
      {
      oldkey = key;
      if (key >=0){
      Serial.printIn(msgs[key]);
      }
    }
  }
  digitalWrite(13, LOW);
}
// Convertir el valor ADC con el número clave
int get_key(unsigned int input)
{     int k;
      for (k = 0; k < NUM_KEYS; k++)
      {
            if (input < adc_key_val[k])
            { return k; }
      }
    if (k >= NUM_KEYS)
             k = -1; // No clave válida presionado
    return k;
}
--------------------------------------------------------------------------------

Vamos a copiar este código en la aplicación IDE de Arduino, para probar el funcionamiento de la controladora con los pulsadores.

Ahora tenemos que configurar los parámetros de Arduino para que detecte nuestra controladora:
Seleccionamos la tarjeta "Arduino Nano" en Herramientas->Placa->Arduino Nano.

Ahora seleccionamos el puerto COM correspondiente, donde hemos conectado la tarjeta, en nuestro caso sería el COM1:


Parece que tenemos problemas, al compilar el código da error y no conecta con la tarjeta. Nos vamos a la ayuda del programa Arduino. Seleccionamos la guía de inicio rápido:

1 | Obtenga una placa Arduino y un cable USB 

En este tutorial, asumimos que está utilizando un Arduino Uno, Arduino Duemilanove, Nano, Arduino Mega 2560 o Diecimila. Si tiene otra tabla, lea la página correspondiente en esta guía de introducción. También necesita un cable USB estándar (un enchufe de tipo B al conector B): el tipo que se conecta a una impresora USB, por ejemplo. (Para el Arduino Nano, necesitará un cable A a Mini-B en su lugar.)

Vale, tenemos la tarjeta compatible con "Arduino Nano" y el cable USB

2 | Descargue el software Arduino (IDE) 

Obtenga la última versión desde la página de descarga. Cuando termine la descarga, descomprima el archivo descargado.

Ya tenemos la última versión de software descargada e instalada.

3 | Conecte la tarjeta 

El Arduino Uno, Mega, Duemilanove y Arduino Nano extraen automáticamente la alimentación de la conexión USB a la computadora o una fuente de alimentación externa. Si está utilizando un Arduino Diecimila, deberá asegurarse de que la tarjeta está configurada para extraer energía de la conexión USB. La fuente de alimentación se selecciona con un puente, un pequeño trozo de plástico que encaja en dos de los tres pines entre los conectores USB y de alimentación. Compruebe que está en los dos pines más cercanos al puerto USB. Conecte la tarjeta Arduino a su computadora usando el cable USB. El LED de alimentación verde (denominado PWR) debe encenderse.

4 | Instalación de los controladores 
Instalación de los controladores para el Arduino Uno o el Arduino Mega 2560 con Windows 7, Vista o XP: 

-Conecte su tarjeta y espere a que Windows inicie su proceso de instalación del controlador. Después de unos momentos, el proceso fallará, a pesar de sus mejores esfuerzos. 
-Haga clic en el menú Inicio y abra el Panel de control. 
-Mientras esté en el Panel de control, vaya a Sistema y Seguridad. A continuación, haga clic en Sistema. Una vez que la ventana del sistema esté abierta, abra el Administrador de dispositivos. 
-Mira bajo Puertos (COM y LPT). Debería ver un puerto abierto denominado "Arduino UNO (COMxx)". Si no hay sección COM & LPT, busque en "Otros dispositivos" para "Dispositivo desconocido".
-Haga clic con el botón derecho del ratón en el puerto "Arduino UNO (COmxx)" y seleccione la opción "Actualizar controlador".
-A continuación, elija la opción "Examinar mi equipo para el software del controlador".
-Finalmente, navegue y seleccione el archivo de controlador denominado "arduino.inf", ubicado en la carpeta "Drivers" de la descarga del software Arduino (no el subdirectorio "Drivers USB FTDI"). Si está utilizando una versión antigua del IDE (1.0.3 o posterior), elija el archivo de controlador Uno denominado "Arduino UNO.inf"
-Windows terminará la instalación del controlador desde allí.

Una vez instalados los drivers de la controladora, arrancamos el IDE de Arduino y cargamos "Blink", uno de los ejemplos que vienen con el programa.

Blink (Parpadeo)
   Enciende un LED  durante un segundo, y después lo apaga por un segundo, repetidamente.

   La mayoría de los Arduinos tienen un LED integrado que puede controlar.  LED_BUILTIN está ajustado a el pin del LED correcto independientemente de la placa que se utiliza. El código es este:
   
  //La función setup() se ejecuta una vez al presionar restablecer o alimentar la placa

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

//La función de bucle se ejecuta una y otra vez para siempre
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

   Este código de ejemplo está en el dominio público.
Para ejecutar el programa pulsamos el botón de flecha (subir), y comprobamos que funciona correctamente. Hemos realizado el primer programa en Arduino, este es nuestro primer paso. A partir de aquí tenemos que seguir experimentando. Como práctica podemos cambiar los valores de retardo en el código y pasar de 1000 (1 segundo) a 5000 (5 segundos) y comprobar como cambia el parpadeo del LED. Primera prueba superada.