• No se han encontrado resultados

LEGO MindStorms: Robotics Invention System

N/A
N/A
Protected

Academic year: 2021

Share "LEGO MindStorms: Robotics Invention System"

Copied!
19
0
0

Texto completo

(1)

LEGO MindStorms

:

Robotics Invention System

Introducción El RCX El transmisor de infrarrojos Los motores Los sensores Programación Un ejemplo en el aula

Los robots de LEGO en la WWW

Introducción

LEGO MindStorms Robotics Invention System (RIS) es un producto del grupo LEGO comercializado desde Septiembre de 1998. Consta de sensores, motores y un bloque de construcción principal que alberga un

microprocesador, programable mediante comunicación serie infrarroja con un PC. Este kit de robótica parece muy bien preparado para acercarse a las bases de la robótica moderna tanto en casa como en la docencia.

Parte de la información que se proporciona a continuación se ha obtenido directamente del manual de usuario del producto.

(2)

LEGO MindStorms RIS http://www.cpr2valladolid.com/tecno/cyr_01/robotica/LEGO.htm

El RCX

El núcleo del RCX es un microcontrolador Hitachi H8 (H8/3292) de 16 MHz (5 V), con 16 K de ROM y 512 byte de RAM internas, 2 temporizadores de 8 bit y 1 de 16 bit, conversor A/D de 8 bit, y con 32 K de RAM externa. Este microcontrolador se usa para controlar:

3 actuadores: motores de 9 V.

3 sensores: contacto, luz, temperatura, rotación 1 puerto serie de comunicaciones vía infrarrojos

Una ROM de 16 K contiene el driver que se ejecuta cuando se alimenta por primera vez el RCX. Este driver on-chip se amplía descargando otros 16 K de firmware al RCX. Tanto el driver como el firmware aceptan y ejecutan instrucciones del PC mediante el puerto de comunicaciones IR. Adicionalmente, se pueden descargar programas de usuario al RCX como código de bytes que se almacena en una región de 6 K de memoria. El firmware se encarga de interpretar y ejecutar las instrucciones de dicho código.

El diseño del RCX está inspirado en la tecnología del "ladrillo" programable del MIT (Massachusets Institute of Technology), aunque ambos dispositivos tienen diferentes CPUs y cuentan con sistemas software enteramente diferentes.

(3)

Ladrillo programable del MIT http://fredm.www.media.mit.edu/people/fredm/mindstorms/index.html http://el.www.media.mit.edu/projects/programmable-brick/ Ladrillo RCX de LEGO http://www.legomindstorms.com/ http://graphics.stanford.edu/~kekoa/rcx/#Serial http://www.crynwr.com/lego-robotics/

(4)
(5)
(6)

LEGO MindStorms RIS http://www.cpr2valladolid.com/tecno/cyr_01/robotica/LEGO.htm

Interior del RCX

En la cara superior del circuito se distinguen a la izquierda 2 LED IR y un receptor IR. En el centro se halla un LCD y varios condensadores y un zócalo adaptador a la derecha. el LCD cubre a su controlador y a un altavoz.

(7)

En la cara inferior el gran chip cuadrado es el microcontrolador; el chip que está debajo es una RAM. El gran cip del medio es un banco de flip-flops y el pequeño es un banco de puertas NAND. Los tres chips iguales de la izquierda son controladores de los motores.

(8)

LEGO MindStorms RIS http://www.cpr2valladolid.com/tecno/cyr_01/robotica/LEGO.htm

Interior del transceptor IR

A la derecha se presenta la cara superior de la placa del transceptor de IR. A la izquierda hay una resistencia de 6.7 W y un switch; los dos clips del centro son bancos de puertas NAND y el círculo gris a la derecha y abajo es un regulador de voltaje. El rectángulo blanco bajo el chip superior del centro es un LED verde, y a la derecha se halla el recptor IR y dos LED IR iguales. El conector serie DB-9 se encuentra en la cara opuesta de la placa.

Cableado

El cable que conecta el transceptor IR al PC es un cable de modem nulo que consta de 6 hilos, aunque sólo se utilizan 5:

(9)

Pin A Nombre Descripción 2 3 RD Receive Data 3 2 TD Transmit Data 5 5 SG Signal Ground 7 8 RTS Ready To Send 8 7 CTS Clear To Send

El pin 4 se conecta al pin 4 pero no se uasa. Los pines 1, 6 y 9 no están concetados.

Las señales RTS/CTS no se usan para control de flujo. En su lugar, son usadas por el PC para detectar si el transceptor está conectado. Éste une los hilos CTS y RTS; el PC prueba su presencia subiendo y bajando RTS. Si CTS sigue a RTS, supone que el dispositivo conectado en el puerto serie es el transceptor.

Motores

Los motores cuentan con una considerable reducción interna, lo cual los hace útiles en aplicaciones que requieran un elevado par con baja velocidad y pocas pérdidas por fricción. Tienen una eficiencia en torno al 80%. Pueden ser alimentados con la célula solar LEGO, una batería de 9V y varios MicroComputadores LEGO.

Especificaciones (como Motor): 350 rpm @ 9 V, en vacío 5 mA en vacío

350 mA

1 V arranca el giro en vacío

Especificaciones (como Generador):

Máx. rpm ~350 9 V de salida @ 350 rpm ~350 mA @ 350 rpm Precauciones Nunca exceder 9V

Sensores

El RCX controla simultáneamente tres puertos de entrada para conexión de sensores. Estos pueden ser de: contacto

luz

temperatura rotación presencia

El voltaje en la entrada es convertido a un valor RAW interno en el intervalo 0 (0V) a 1023 (5V). Dependiendo del tipo de sensor, el número RAW es convertido al número que se observa por programa o mediante View:

(10)

LEGO MindStorms RIS http://www.cpr2valladolid.com/tecno/cyr_01/robotica/LEGO.htm

sensor de contacto: si el valor RAW es menor de 450 se interpreta como 1 y si es mayor que 565 resulta un 0.

sensor de temperatura: lee temperatura en el intervalo (-20, +70) ºC: T=(785-RAW)/8.

sensor de luz: el sensor de luz reflejada lee intensidad luminosa desde 0.6 lux hasta 760 lux. El RCX lo interpreta como porcentaje: luz=146-RAW/7 en el intervalo (0,100).

Resumen de entradas:

V (V) RAW Sensor (Ω) Luz T (ºC) Contacto 0.0 0 0 - - 1 1.1 225 2816 - 70.0 1 1.6 322 4587 100 57.9 1 2.2 450 7840 82 41.9 1 2.8 565 12309 65 27.5 0 3.8 785 32845 34 0.0 0 4.6 945 119620 11 -20.0 0 5.0 1023 Inf 0 - 0

de rotación: lee 16 posiciones por rotación. La resolución es 500 rpm Máx. Está calibrado para que el RCX lea en grados o 16-avos de rotación.

sensores de presencia: están hechos con un Opto-Switch que contiene una fuente IR y un fototransistor separados por una ranura de 0.15 pulgadas. Cuando se inserta un objeto en la ranura, la luz no alcanza al fototransistor, que se pone en corte. Cuando el objeto se retira, el fototransistor conduce de nuevo.

La ranura es suficientemente ancha para acomodar varias piezas Lego. En particular, una rueda de 0.95 pulgadas con 6 huecos, de modo que bloquea el haz infrarrojo 6 veces por revolución. El sentido de la rotación no se puede determinar monitorizando la señal del fototransistor, pero esto es irrelevante si la rueda se halla conectada al motor, cuyo sentido de giro es conocido.

(11)

Programación

El lenguaje de programación del RIS de LEGO se denomina código RCX. Es un lenguaje imperativo gráfico cuya secuencia de órdenes se construye a modo de piezas de rompecabezas que se apilan consecutivamente. Un ejemplo se puede observar en la siguiente figura.

En este programa, denominado Program4.rcx, se ordena lo siguiente:

activar los dos motores (conectados a los puertos A y C)

repetir 5 veces el siguiente bloque de órdenes:

cambiar el sentido de giro (marcha atrás)

esperar 3 s. (3 s. marcha atrás)

cambiar el sentido de giro del motor A (con lo cual se realiza un giro)

esperar 3s. (3s. girando)

cambiar el sentido de giro del motor A (con lo que se recupera la marcha habitual)

apagar los motores.

Como se observa, es un lenguaje realmente intuitivo y rápido de aprender.

Aunque la sintaxis de los bloques está en inglés (lo mismo que sucede en los lenguajes textuales como BASIC o C), la ayuda on-line está en español.

(12)

LEGO MindStorms RIS http://www.cpr2valladolid.com/tecno/cyr_01/robotica/LEGO.htm

Las opciones de cada orden se pueden ajustar sin más que pulsar con el botón derecho del ratón sobre el bloque representativo de la misma.

Se pueden incluso realizar "tareas simultáneas". En el ejemplo de la figura inferior se ha insertado en paralelo con el flujo principal del programa un bloque que vigila el sensor de contacto, y en el caso de que se active, emite un sonido.

(13)

Las ideas básicas de programación en código RCX se resumen en lo que sigue, recogidas directamente del manual de usuario del producto.

(14)
(15)
(16)
(17)

Un ejemplo en el aula

Se ha montado en el aula un robot móvil con la base estructural del Roverbot (un modelo descrito con detalle en la Constructopedia, el manual de montaje de LEGO MindStorms). Utiliza dos motores (en los puertos A y C del RCX ) con sistema reductor, ruedas y un parachoques delantero simple en el que se ha instalado un sensor táctil (en el puerto 1). La base motriz resulta suficientemente resistente como para soportar choques de consideración. No obstante, la reducción de la velocidad del motor evita colisiones violentas.

El programa de control utilizado, una modificación del programa de biblioteca Rover3.rcx, se muestra en la figura inferior y consigue lo siguiente: el robot avanza hacia adelante hasta que choca con un objeto; después, retrocede durante un segundo y se gira en dirección opuesta al objeto con el que acaba de chocar; por último, vuelve a

(18)

LEGO MindStorms RIS http://www.cpr2valladolid.com/tecno/cyr_01/robotica/LEGO.htm

avanzar de frente.

A continuación se muestran algunas películas con los detalles de la conexión del sistema de infrarrojos al puerto serie del PC, de la descarga del programa en la RAM del RCX, y del funcionamiento del robot móvil.

(19)

Los robots de LEGO en la WW

Es posible la programación de los LEGO MindStorms en otros lenguajes distintos al código RCX: Existe una gran variedad de entornos de programación de los robots de LEGO. Uno de ellos consiste en un compilador muy similar al del lenguaje C, denominado NQC (Not Quite C). http://www.enteract.com/~dbaum/nqc/index.html

Incluso se ha escrito un sistema operativo al efecto: LegOS (en plataformas Windows y Linux): http://www.noga.de/legOS/, http://legos.sourceforge.net/

Programación bajo Unix:

http://lucas.hispalinux.es/Presentaciones/200002hispalinux/conf-16/16-html/hispalinux2000.html Páginas de LEGO: http://www.lego.com/, http://www.legomindstorms.com/

MindStorms en la educación: http://www.viztel.com/mie/

ROBOLAB (LEGO MidStorms sets for schools): http://www.lego.com/dacta/robolab/home.asp Hardware LEGO (recambios) http://www.lego.com/dacta/hardware/default.asp

Referencias

Documento similar

El uso de los robots educativos Lego Mindstorms NXT para el estudio de la disciplina de la Programación proporciona un enfoque más aplicado de la misma, así como una motivación

Las características del trabajo con grupos que se debería llevar a cabo en los Servicios Sociales de Atención Primaria (SSAP), en términos de variabilidad o estabilidad

Parece, por ejemplo, que actualmente el consejero más influyente en la White House Office con Clinton es el republicano David Gergen, Communications Director (encargado de la

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

El sensor debe conectarse en el puerto 1 para utilizar este c´ odigo tal y como aqu´ı se ofrece; si bien puede modificarse para utilizar cualquier otro. La escritura de texto

Gran parte de la información básica y características del LEGO Mindstorms NXT y de sus distintos componentes, necesarias para la elaboración de este proyecto, se

Esta aplicación permite controlar un robot Lego Mindstorms desde un Smartphone con Android, aportando un módulo de inteligencia mediante la utilización de

El marco metodológico ha consistido en (1) la caracterización del perfil de los alumnos, (2) el establecimiento de los objetivos académicos, (3) el diseño de las