Kit de Robótica Educativa Robo-Ed JR1

Kit de Robótica Educativa Robo-Ed JR1
Julio César Sandria Reynoso
Instituto de Robótica de Xalapa, A.C.
Agosto 2018

Introducción

La Robótica Educativa es un conjunto de actividades pedagógicas que apoyan y fortalecen áreas específicas del conocimiento en robótica, permitiendo así desarrollar habilidades y competencias en el alumno a través de procesos de concepción, creación, ensamble, programación y puesta en funcionamiento de robots.

En México, con la Reforma Educativa de 2012, se presenta la oportunidad de ofrecer formalmente Clubes de Robótica a nuestros niños y jóvenes. Por esto, en este artículo de Robótica Sandria, se presenta el kit de robótica Robo-Ed JR1 para niños que empiezan en el mundo de la robótica.

¿Qué es el robot Robo-Ed JR1?

Robo-Ed JR1 ( J-ROBO 1) es un kit coreano de Robótica Educativa recomendado para niños de educación Primaria Alta (4º, 5º y 6º grado) y Secundaria del Sistema Educativo Mexicano.

Es adecuado para las escuelas de educación Primaria y Secundaria que desean iniciar a sus alumnos en el mundo de la ciencia y tecnología mediante talleres o clubes de robótica, ya que incluye el material didáctico para que el maestro guíe a los alumnos en la construcción y programación de los diferentes modelos de robots que contiene el libro incluido.

Para este kit de robótica no se requiere que el maestro sea experto en robótica ni programación.

Los estudiantes que sueñan con ser científicos o ingenieros pueden mejorar su razonamiento, creatividad y aprendizaje al desarrollar proyectos finales de robótica en la escuela, participar en ferias de ciencia y tecnología o campeonatos regionales, nacionales y mundiales de robótica. La robótica también les permite complementar su educación al trabajar e investigar temas relacionados a la misma, como electricidad, electrónica, mecánica, programación, etc.

Kit básico Robo-Ed JR1

El Kit básico Robo-Ed JR1 es el primero de tres kits de robótica. El libro en papel o PDF tiene una serie de lecciones para la creación de robots con el que los estudiantes pueden aprender la teoría para la comprensión general de robots y mover robots mediante el uso de aparatos y máquinas simples y controlarlos con un controlador remoto.

Contenido educativo del kit básico Robo-Ed JR1

A continuación se muestran las lecciones o partes en las que está dividido el libro del kit básico Robo-Ed JR1.

  Introducción
Lista de partes, como ensamblar partes, precauciones, forma de usar el manual.
Lentes
Lección 1
¿Qué es un robot?
Caballo, robot
Lección 2
Principio de equilibrio.
Tenazas, robot vigilante
Lección 3
Fuerzas de fricción.
Aeroplano, motocicleta
Lección 4
Control remoto.
Coche cohete
Lección 5
Sensor infrarrojo.
Altura
Lección 6
Evasor.
Robot de lucha
Lección 7
Inercia.
Escorpión, libélula
Lección 8
Seguidor de línea.
Tren
Lección 9
Centro de gravedad.
Robot de circo
Lección 10
Ley de acción y reacción.
Robot de batalla
Lección 11
Digital
Robot ratón
Lección 12
Futbol soccer
Robot futbolista

Lista de partes

El kit de robótica Robo-Ed JR1 tiene piezas de plástico, tuercas y tornillos que permiten el ensamblado de forma fácil con la ayuda del mínimo de herramienta (desarmador y llave) incluida en el mismo kit.

La electrónica está completamente implementada por el fabricante, por lo que solamente se requiere conectar sensores y motores a la tarjeta madre para su funcionamiento.

Las parte del kit son:

  • Armazones
  • Bloques
  • Herramientas (desarmador y llave)
  • Ruedas y engranes
  • Ejes, separadores, tuercas y tornillos
  • Electrónica (tarjeta madre J-ROBO, motores CD, sensor IR, control remoto y porta pilas).

Armazones

Bloques

Herramientas

Ruedas y engranes

Ejes, separadores, tuercas y tornillos

Electrónica

¿Dónde comprar Robo-Ed JR1?

Robo-Ed JR1 lo puedes adquirir en RobotSA, distribuidor autorizado de Robótica Educativa de México, S.A. de C.V. (Robo-Ed), importador de J-ROBO en la república mexicana.

Separar caracteres en Arduino

Programa en Arduino para separar caracteres…

 


String split = "133,215,365";

void setup() {
  Serial.begin(9600);
}

void loop() {
int parte1 = getValue(split,',',0).toInt();
Serial.print(parte1);
delay(1000);
}

String getValue(String data, char separator, int index)
{
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length()-1;

  for(int i=0; i<=maxIndex && found<=index; i++){
    if(data.charAt(i)==separator || i==maxIndex){
        found++;
        strIndex[0] = strIndex[1]+1;
        strIndex[1] = (i == maxIndex) ? i+1 : i;
    }
  }

  return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}

Encender Led en Arduino por Bluetooth desde Android

Programa Arduino que recibe comandos desde un móvil Android para encender o apagar un LED.

//Se crea una variable que servirá como buffer
String bufferString = "";

void setup() {
  //Iniciamos comunicación con el puerto serie
  Serial.begin(9600);
  pinMode(3, OUTPUT);
}

void loop() {
  /*
  * Evaluamos el momento en el cual recibimos un caracter
  * a través del puerto serie 
  */
  if (Serial.available() &gt; 0) {
    //Delay para favorecer la lectura de caracteres
    delay(20);
    /*
    * Se le indica a Arduino que mientras haya datos
    * disponibles para ser leídos en el puerto serie
    * se mantenga concatenando los caracteres en la
    * variable bufferString
    */
    while (Serial.available() &gt; 0) {
      bufferString = "";
      bufferString += (char)Serial.read();
    }
  //Se transforma el buffer a un número entero
  int num = bufferString.toInt();
  //Se imprime el número que se recibe
  Serial.print("Numero recibido: ");
  Serial.print(num);
  //Serial.write(num);
  if (num == 1){
    digitalWrite(3, HIGH);
    Serial.println(",Encendido");
  }
    if (num == 2){
      digitalWrite(3, LOW);
      Serial.println(",Apagado");
    }
  }
}

 

Tipos de motores rotativos para proyectos de Arduino

arduino-tipos-de-motores

Luis LLamas publicó en su blog un interesante artículo sobre tipos de motores rotativos para proyectos de Arduino, donde describe los siguientes:

  • Motores de corriente continua
  • Motores geared down motor
  • Motores brushless
  • Servo motores
  • Servo motores de rotación continua
  • Motores paso a paso
  • Motores paso a paso 28BYJ-48

En su artículo proporciona una tabla resumen donde hace una comparación de características y forma de control de tales motores.

No dejes de leer su artículo en:

https://www.luisllamas.es/tipos-motores-rotativos-proyectos-arduino/

 

Comunicación inalámbrica de dos Arduino con módulos Zigbee XBee S2C

En este artículo vemos cómo establecer una comunicación inalámbrica entre dos tarjetas Arduino usando módulos Zigbee XBee S2C que se conectan mediante módulos XBee Explorer Regulated de SparkFun a Arduino.

Configuración de módulos XBee S2C

En la página Conexión punto a punto de módulos Zigbee XBee S2C se puede ver cómo hacer la configuración inicial de los módulos XBee S2C a usar en este artículo.

Material y equipo usado

  • 1 Arduino UNO
  • 1 Arduino Mega
  • 2 módulo XBee S2C de Digi-Key
  • 2 módulo XBee Explorer Regulated de SparkFun
  • computadora con con software Arduino IDE 1.6 o superior

Referencias

Artículo en desarrollo…

Baterías

En esta entrada hacemos una recopilación de sitios web que tratan sobre baterías, un elemento vital para cualquier robot móvil.

  • En el sitio web automodelismo.com tienen una excelente página sobre Baterías, donde dan recomendaciones sobre su uso, cómo preparar paquetes de baterías, detectar fin de la carga, efecto de memoria y más.

 

Conexión punto a punto de módulos Zigbee XBee S2C

En este artículo se muestra cómo establecer una sencilla conexión inalámbrica punto a punto entre dos módulos XBee S2C de Digi-Key, usando XBee Explorer USB de SparkFun para conectarlos a una computadora. Esto con la finalidad de que puedan ser usados para comunicación inalámbrica entre dos dispositivos o robots basados en Arduino o Raspberry Pi.

Material y equipo usado

  • 2 módulo XBee S2C de Digi-Key
  • 2 módulo XBee Explorer USB de SparkFun
  • 2 cable USB a micro USB
  • 1 computadora con Windows 10 y el software XCTU

Zigbee

Zigbee es un estándar de comunicación inalámbrica que soporta tres modos de seguridad: residencial, estándar y alta seguridad. Los módulos Xbee están basados en Zigbee y soportan principalmente seguridad estandar, aunque otros dispositivos que soportan seguridad residencial pueden unirse e interoperar con dispositivos de seguridad estándar.

Para más información sobre seguridad Zigbee consulte el documento XBee®/XBee-PRO S2C Zigbee® RF Module User Guide.

Módulo XBee S2C de Digi-Key

Los módulos XBee S2C son módulos de radiofrecuencia (RF) que proporcionan comunicación rápida y robusta en configuraciones multipunto y punto a punto. Los módulos usados en este artículo son módulos RF XBee S2C 802.15.4 de Digi-Key que tienen las siguientes ventajas:

  • Comunicaciones RF simple y lista que no requiere configuración.
  • Topología de red punto a multipunto.
  • 2.4 GHz para uso a nivel mundial.
  • Espacio en placa XBee común para una variedad de módulos de RF.
  • Corriente en resposo inferior a 1 µA.

Para más información sobre estos módulos puede consultar la página del fabricante: Módulos RF Digi XBee® S2C 802.15.4.

Módulo XBee Explorer USB de SparkFun

Los módulos XBee S2C deben ser configurados antes de usarlos. Una forma fácil y rápida de hacerlo es usando otros módulos que permitan conectarlos a una computadora. Para este artículo se usaron módulos XBee Explorer USB de SparkFun, los cuales tienen un conector micro-usb para conectarse a una computadora.

En el sitio web de Sparkfun se pueden ver más detalles de cómo usar los módulos USB Explorer, Explorer Dongle y Serial Explorer en el tutorial Exploring XBee and XCTU.

En la imagen siguiente se muestra como debe conectarse el XBee S2C sobre el XBee Explorer USB.

Para conectar de forma inalámbrica ambos XBee S2C es necesario configurar uno como Coordinador (Coordinator) y el otro como Dispositivo final (End device). Esto se hace usando el software XCTU.

Software XCTU

El software XCTU está disponible para Windows, MacOS y Linux en el sitio web de Digi. Descargue XCTU e instálelo en su computadora. En este artículo se usó la versión 6.3.11 para Windows, disponible en enero de 2018.

Al iniciar el programa XCTU en una computadora con Windows, verá una ventana como se muestra en la imagen siguiente:

Conecte ambos XBee S2C a la misma computadora y oprima el botón de la lupa en el software XCTU para descubrir dispositivos. Después de un momento de buscar los dispositivos conectados a los puertos USB, se mostrará un cuadro de diálogo con los dispositivos encontrados:

Oprima el botón Next, con lo cual, se mostrará el cuadro de diálogo para establecer los parámetros de configuración de los puertos Serial/USB:

Asegúrese de dejar los valores como en la imagen anterior:

Baud Rate: 9600
Data Bits: 8
Parity: None
Stop Bits: 1
Flow Control: None

Oprima el botón Finish. Esto iniciará la búsqueda de dispositivos XBee en los puertos seleccionados.

Al terminar la búsqueda, se deberá mostrar el mensaje 2 device(s) found (2 dispositivos encontrados).

Seleccione ambos dispositivos y oprima el botón Add selected devices. Con esto, en la ventana principal de XCTU se mostrarán ambos módulos XBee S2C en el panel izquierdo Radio Modules.

Del panel Radio Modules, seleccione el primer Zigbee y oprima el botón configuración (engrane) que está arriba del panel derecho. Esto mostrará las opciones de configuración del Zigbee seleccionado, como se muestra a continuación:

Para ambos Zigbee establezca las propiedades como se muestra a continuación:

Propiedad Zigbee 1 Zigbee 2
ID PAN ID 2018 2018
DH Destination Address High 0 0
DL Destination Address Low 0 0
CE Coordinator Enable Enabled [1] Disabled [0]

ID PAN ID es un valor hexadecimal entre 0 y FFFFFFFF (o mayor). Este es el identificador de red propia, mediante el cual se van a conectar entre si los XBee.

CE Coordinator Enable (coordinador activado) indica qué XBee es el que coordina la comunicación. Uno debe estar activado (Enabled) y el otro desactivado (Disabled).

Una vez configurados los parámetros de ambos XBee se debe oprimir el botón , para cambiar al modo Consola, con lo que se abrirá en el panel derecho una Consola de comandos como se muestra en la siguiente imagen:

Teniendo seleccionado el primer Zigbee, en el panel derecho se oprime el botón Open , el cual abre o inicia la conexión inalámbrica del Zigbee seleccionado del lado izquierdo. Se debe hacer lo mismo con el segundo Zigbee, de modo que para ambos dispositivos el botón Open cambie a botón Close , que sirve para cerrar la comunicación inalámbrica. Para ambos dispositivos, el panel derecho debe verse como en la siguiente figura.

Después de oprimir el botón Open, el cuadro de texto Console log del panel derecho queda habilitado para escribir algo.

Regrese al primer Xbee y escriba en Console log el texto Hola XBee 2 como se muestra en la siguiente figura:

En el cuadro de texto de la derecha se muestra el valor hexadecimal de cada uno de los caracteres que se escriben.

Seleccione el segundo XBee y observe que en Console log se muestra también el texto Hola XBee 2, pero en color rojo. Esto significa que el segundo XBee recibió ese mensaje.

Abajo del mensaje Hola XBee 2, escriba el texto Hola XBee 1, como respuesta del segundo XBee al primero. Observe que el texto Hola XBee 1 se muestra en azul.

En el software XCTU, los mensajes enviados están en azul y los recibidos en rojo.

Finalmente, desde el XBee 1 como despedida, desde el XBee 1 se puede escribir Adios! y en el XBee 2 Chao! quedando como en la siguiente imagen, al estar seleccionado el XBee 1.

Conclusiones

En este artículo se mostró cómo configurar dos módulos XBee S2C para que se comuniquen entre si, estableciendo una sencilla conexión inalámbrica punto a punto y probando tal comunicación enviando mensajes de texto entre ambos.

Una finalidad para llevar a cabo esta configuración es que los módulos queden listos para ser usados en dispositivos o robots basados en Arduino o Raspberry Pi, y se comuniquen entre si de forma inalámbrica.

Referencias

Controlar motor CD con Python en Raspberry Pi y módulo Puente H

En este artículo vemos cómo se puede controlar un motor de corriente directa (CD) con el lenguaje de programación Python en una Raspberry Pi (1 a 3) a través de un módulo Puente H.

Material

1 Raspberry Pi 1, 2 ó 3.
1 Módulo Puente H Dual L293D.
1 Motor CD.
1 Fuente de energía de 6V para el módulo Puente H.
1 Fuente de energía para la Raspberry Pi.
Cables de conexión.

Raspberry Pi 3B

Para este artículo se usó la tarjeta Raspberry Pi 3 modelo B, aunque se puede usar también lo modelos 1 ó 2.

Módulo Puente H dual L293D

El módulo Puente H dual usado tiene el circuito integrado L293D y permite controlar dos motores en ambas direcciones.

Conexiones

En la siguiente figura se muestran las conexiones hechas usando solamente una fuente de poder, que alimenta primera el módulo Puente H y éste a su vez proporciona 5V a la tarjeta Raspberry Pi.

Programa

El programa está escrito en Python.


# Programa: motor.py
# Autor: Julio Sandria - Diciembre 2017
# Mueve un motor CD a traves de un modulo puente H

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(8, GPIO.OUT)
GPIO.setup(10, GPIO.OUT)

for i in range(5):
   # Gira el motor en un sentido durante 3 segundos
   print "Girando motor en un sentido"
   GPIO.output(8, GPIO.HIGH)
   GPIO.output(10, GPIO.LOW)
   time.sleep(3)

  # Gira el motor en el otro sentido durante 3 segundos
   print "Girando motor en sentido contrario"
   GPIO.output(8, GPIO.LOW)
   GPIO.output(10, GPIO.HIGH)
   time.sleep(3)

GPIO.cleanup()

 

Conectar dos Lego Mindstorms EV3 en modo Daisy-Chain

En este artículo se explica cómo conectar dos bloques inteligentes Lego Mindstorms EV3 en cadena (Modo Daisy-Chain), lo cual permite desde un bloque EV3 monitorear sensores y controlar motores de otros tres bloques EV3. Con un sencillo programa se muestra cómo desde el primer bloque EV3 se mide proximidad con un sensor infrarrojo conectado al segundo bloque EV3, y al presionar un sensor de contacto conectado al primer bloque, se acciona un motor mediano conectado al segundo bloque. Todo esto con un único programa cargado en el primer bloque EV3.

Introducción

El software Lego Mindstorms EV3 (Home o Education) permite hacer programas que manipulen hasta cuatro bloques EV3 conectados en cadena, activando el Modo Daisy-Chain que está en Propiedades del Proyecto.

Conexión en cadena. En este modo de conexión cada dispositivo se conecta al anterior y al posterior geográficamente, formando una cadena. A este modo de organización se le conoce también como daisy-chain (cadena margarita) [1].

Con esto es posible hacer un sistema robótico con cuatro Lego Mindstorms EV3 usando hasta 16 sensores y 16 motores.

Material

2 Bloques inteligentes Lego Mindstorms EV3.
2 Cables USB para EV3.
1 Sensor de contacto EV3.
1 Sensor infrarrojo EV3.
1 Motor mediano EV3.
1 Computadora con software Lego Mindstorms EV3 instalado.

Conexiones

Para usar el programa que se muestra posteriormente, se colocaron los dos bloques EV3, sensores y motor como se ilustra en la fotogravía siguiente:

Bloque 1 (EV3 de la izquierda)

  • Puerto mini USB (lado superior) a PC.
  • Puerto USB (lado izquierdo) al mini USB del Bloque 2.
  • Puerto de entrada 1 al sensor de contacto.

Bloque 2 (EV3 de la derecha)

  • Puerto mini USB (lado superior) al USB del Bloque 1.
  • Puerto de entrada 4 al sensor infrarrojo.
  • Puerto de salida A al motor mediano.

Programa

Asegúrate de tener encendidos ambos bloques EV3, el Bloque 1 (izquierdo) conectado a la computadora, los sensores y motor conectados a los bloques EV3 como se indica en el punto Conexiones.

Inicia el software Lego Mindstorms EV3 (Home o Education). Crea un nuevo proyecto, el cual puedes llamar Conectar 2 EV3. Abre la pestaña Propiedades el proyecto y haz clic en la casilla de verificación Modo Daisy-Chain.

Regresa a la pestaña Program, y agrega los bloques de programación como se muestra en la imagen siguiente.

Observa que en la esquina inferior derecha, al hacer clic en el icono Vista del Puerto , se puede seleccionar de qué Bloque EV3 se desean ver los puertos. En la imagen siguiente está seleccionada la pestaña Capa del bloque 2, mostrando lo que tiene conectado el Bloque 2, un motor mediano en el Puerto A y un sensor infrarrojo en el Puerto 4.

El siguiente pseudocódigo explica lo que hace el programa:

Repetir siempre (Bucle):

Si el sensor de contacto (Bloque 1, Puerto 1) es presionado:

Muestra en la pantalla la imagen Touch sensor.
Reproduce el sonido Activate.
Gira el motor mediano (Bloque 2, Puerto A) una rotación.

Si no

Lee proximidad del sensor infrarrojo (Bloque 2, Puerto 4).
Muestra en la pantalla el valor de proximidad.
Hace una pausa de 0.2 segundos.

Fin Si

Fin Repetir

El programa se ejecuta en el Bloque 1, por lo tanto, todos los bloque de programación se ejecutan en el Bloque 1, y solamente los bloques de programación en los que se puede especificar una tarea sobre un Bloque EV3 en particular, tienen un campo llamado Número de capa, el cual se refiere al número de Bloque EV3 conectado en cadena.

A continuación se describe cómo están configurados los bloques de programación que permiten especificar un Bloque EV3 en particular.

Interruptor. En este bloque se tienen que configurar las opciones como se muestra en la imagen siguiente.

Motor mediano. En este bloque se tienen que configurar las opciones como se muestra en la imagen siguiente.

Sensor infrarrojo. En este bloque se tienen que configurar las opciones como se muestra en la imagen siguiente.

Ejecutar programa

Primero, enciende ambos bloques EV3. Conecta el Bloque 1 (EV3 de la izquierda) a la computadora y descarga el programa al EV3.

Una vez terminada la descarga del programa en el Bloque 1, ejecuta el programa. Acerca algo al sensor infrarrojo y observa cómo cambia el número en la pantalla del Bloque 1. Oprime el sensor de contacto y observa la imagen de la pantalla del Bloque 1, escucha el sonido que reproduce y observa que el motor mediano gira una rotación.

En el Bloque 2 (EV3 de la derecha) no es necesario cargar algo en particular, solamente debe estar encendido para que el Bloque 1 opere el sensor y motor conectados en él.

Dónde comprar

Si deseas adquirir un paquete completo Lego Mindstorms EV3 o solamente el bloque inteligente EV3, o algún sensor o motor, puedes buscar con nuestro patrocinador RobotSA.

Referencias

[1] Sanchís, Enrique (2002). Sistemas electrónicos digitales: Fundamentos y diseño de aplicaciones. Universitat de València. Pag. 33

Crea tu primera aplicación Android con App Inventor

El interés por crear esta guía de programación, nació por la necesidad de documentar parte del trabajo que se hace en el Instituto de Robótica de Xalapa A.C. (en Xalapa, Veracruz, México), en los cursos y talleres de robótica para niños, jóvenes y adultos. Y para ofrecer una guía en español para nuestras nuevas generaciones de niños y jóvenes ávidos por aprender cosas nuevas.

Este documento está dirigido a las personas que quieren aprender a crear aplicaciones para dispositivos móviles, ya sea teléfonos celulares o tabletas, con el sistema operativo Android. Se usa el ambiente de programación visual MIT App Inventor, que es muy fácil de usar y está disponible en línea sin costo alguno. Se ejemplifica el uso de App Inventor para crear una sencilla aplicación que mostrará en la pantalla del móvil la frase ¡Hola Mundo!, con la cual se empieza en muchos cursos de programación de computadoras, en diversos lenguajes de programación, especialmente el lenguaje C.

Technical Report · Sep 2017
DOI: 10.13140/RG.2.2.30688.99841
PDF disponible en: https://www.researchgate.net/publication/320014500