Advertisement
Búsqueda personalizada
Inicio arrow Electrónica General arrow Robot lego: mindstorms
domingo, 25 de junio de 2017
 
 
Inicio
Enlaces
Centros de estudio
Buscar
Biografias
Test
Pre-Basica
Educacion Basica
Educacion Media
Estudios Superiores
Recursos Educativos
Sistema Solar
Zona de Video Educativo
BAJAR CONTENIDOS
SIMCE
Universitario
Frases Celebres
Buscar Trabajo
Universidades
Tutoriales Pc
PROFESORES
Pedagogia
Links Docentes
Aprendizaje en el Aula
Planes y Programas
GUITARRA
Lecciones de Guitarra
Canciones
Electrónica General
Mecatrónica
Servicioweb
Visitas
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy268
mod_vvisit_counterAyer486
mod_vvisit_counterEsta semana3752
mod_vvisit_counterEste mes12135
mod_vvisit_counterTodo14153672
Usuarios: 2249
Noticias: 574
Enlaces: 29
Visitantes: 18583587
Robot lego: mindstorms E-Mail
Calificación del usuario: / 0
MaloBueno 
Escrito por Renato Bobadilla C   
Lego Mindstorms

 
Lego Mindstorms con tres sensores (tacto, luz y rotación) y un motor eléctrico.

Lego Mindstorms es un juego de robótica para niños fabricado por la empresa Lego, el cual posee elementos básicos de las teorías robóticas, como la unión de piezas y la programación de acciones, en forma interactiva. Este robot fue comercializado por primera vez en septiembre de 1998.

Comercialmente se publicita como Robotic Invention System, en español Sistema de Invención Robotizado (RIS). También se vende como herramienta educacional, lo que originalmente se pensó en una sociedad entre Lego y el MIT. La versión educativa se llama Lego Mindstorms for Schools, en español Lego Mindstorms para la escuela y viene con un software de programación basado en la GUI de Robolab.

Lego Mindstorms puede ser usado para construir un modelo de sistema integrado con partes electromecánicas controladas por computador. Prácticamente todo puede ser representado con las piezas tal como en la vida real, como un elevador o robots industriales

Metodología de desarrollo

 Construcción

La construcción del robot se basa en la unión de bloques de plástico, característicos de Lego, junto con piezas plegables y algunas piezas que permiten la rotación de ruedas o piezas. El modelo se debe centrar en el bloque programable, ya que este bloque provee la energía necesaria para el movimiento del robot creado. Además, se pueden fijar los sensores que se adjuntan en el kit, para que sean útiles en el desarrollo del robot.

Una de las principales estrategias de construcción se basa en determinar el tipo de robot y si el software proporcionado sirve para construir el robot. Una vez determinado esto, se puede comenzar a construir siempre en bloques de función, como por ejemplo, ensamblar las ruedas a un eje o los sensores en las bases que puedan ser útiles. Tras esto, comienza la fase de unión entorno al bloque, que es fase más critica, debido a que el sensor infrarrojo, en el bloque RCX, no debe ser tapado para que se pueda cargar el software. Una vez ensamblado el robot, se procede al envío del programa y ejecución de las sentencias programadas, y a continuación se procede similar a la programación de un software, a probar y corregir fallos.

Los fallos más comunes en la construcción se debe a la falta de movilidad de las piezas o que los sensores no detectan los valores correctos o simplemente no se mueve. Las estrategias de solución son variadas, pero a la larga, sugieren seguir el camino del rehacer el proceso de pensar y armar y luego ejecutar, es por esto último, que Lego es un juego de robótica que desarrolla la lógica.

 Programación

La programación del Lego Mindstorms se realiza mediante el software que se adjunta en el empaque original, el cual trae el firmware del robot y un programa que emula un árbol de decisiones, para los cuales, el usuario debe programar las acciones a seguir por el robot. El software se encuentra dividido por cada tipo de robot que se puede construir, y que viene recomendado en el empaque.

Una de las principales características de este software de programación, es su entorno visual, el cual emula la construcción por bloques, dando la posibilidad a cualquier usuario aprendiz acostumbrarse rápidamente a la programación de bloque.

Este lenguaje permite las instrucciones secuenciales, instrucciones de ciclos e instrucciones de decisiones, éstas últimas, basadas en los datos reportados por los sensores que se puede añadir al robot.

 Lenguajes alternativos de programación

El bloque del Lego Mindstorms como un producto de hardware y software integrado, puede ser programado con varias interfaces, pero todos logrando el mismo fin. Esto se puede realizar mediante la torre de comunicación y utilizando las herramientas correctas para poder acceder al firmware básico de Lego.

Algunas personas han podido ingresar por medio de interfaces rudimentarias a obtener el código básico de la memoria ROM que posee el Lego y así poder tener acceso a programación mediante assembler para poder controlar por ellos mismos el bloque.

Algunos de frameworks más conocidos con el BrickOS, LejOS y Not Quite C.

BrickOS (o LegOS)

BrickOS es una librería de instrucciones y programas que permiten al programador ingresar de forma directa a la BIOS del bloque y allí instalar un micro sistema operativo con su respectivo núcleo operativo y librerías necesarias para enlazar todos los recursos que dispone el bloque. Para ser instalado debe sobreescribir el área donde se encuentra el framework original, pero con este cambio, el bloque puede ser programado en C, C++ y assembler.

BrickOS está soportado en la mayoría de las distribuciones de Linux y en Windows (por CYGWIN), usando el compilador que trae integrado linux (gcc o gcc++), generando el mapa de bytecodes para controlar las acciones del bloque.

En un inicio, este conjunto de programas se llamaba LegOS, pero la empresa Lego solicitó un cambio de nombre debido a la semejanza que existía entre ambos nombres.

LegOS

LejOS a diferencia de BrickOS, no instala un sistema operativo en reemplazo del firmware del bloque RCX, sino que instala una máquina virtual de Java, lo cual permite el bloque sea programable en el lenguaje Java, por lo cual no dependen de un compilador o un sistema operativo para ser reemplazado. Sin embargo, la transparencia de procesos para el programador es más baja debido a la programación orientada a objetos que restringe LejOS, haciendo que el programa de BrickOS se más utilizado por la transparencia de procesos tanto internos como externos. Esto último repercute en que el programador, utilizando BrickOS, pierde la conciencia de los movimientos que se realiza en forma interna en el bloque, por lo que hace imposible añadir mejores capacidades de programación. Aun así, este programa es muy utilizado con los estudiantes de primer año para programación de máquinas.

Not Quite C

Not Quite C es el único conjunto de programas que no reemplaza el framework original del bloque, pero eso representa una desventaja, por que debe coexistir junto al framework original, por lo tanto emular sus instrucciones, haciendo que el proceso sea más lento que por la metodología de reemplazar el framework.

Not Quite C esta disponible para Mac OS y Windows, y utiliza como lenguaje de programación una versión propia de C. Además, es compatible con la mayoría de la línea de Mindstorms, lo cual lo hace el más extenso de todos los lenguajes alternativos, debido a sus capacidades de migrar entre plataformas de los bloques de RCX.

 Problemas de la adaptación

Un problema generado por el cambio del framework a otro lenguaje es el retardo que pueda existir entre las instrucciones, debido a la emulación de las instrucciones que el conjunto de programas le entrega al bloque. Este retardo fue registrado por Dick Swan y tras algunas pruebas de rendimiento y emulación en software permitió descubrir que el retardo medio para la ejecución de cualquier instrucción, con o sin motor encendido es de 1,75 mseg.

La prueba que realizó fue realizar muchas tareas en la misma cantidad de tiempo, notando la relación lineal de las instrucciones ejecutadas, por lo cual, a mayor cantidad de instrucciones, mayor el tiempo de espera para ejecutar la instrucción.

Sensores

VoltajeRawSensor (Ohm)Luz (lux)Temp (°C)Toque
0.000--1
1.12252816-70.01
1.6322458710057.91
2.245078408241.91
2.8565123096527.50
3.878532845340.00
4.694511962011-20.00
5.01023Inf0-0
Tabla para las correspondientes constantes,
la cual sirve para analizar los valores captados por los
sensores
[25]

 Sensor de luz

El sensor de luz permite tomar una muestra de luz mediante un bloque modificado que un extremo trae un conductor eléctrico y por el otro una cámara oscura que capta las luces. Esta cámara es capaz de captar luces entre los rangos de 0,6 a 760 lux. Este valor lo considera como un porcentaje, el cual es procesado por el bloque lógico, obteniendo un porcentaje aproximado de luminosidad.

El bloque RCX calcula con la fórmula Luz = 146 − RAW / 7 para determinar el porcentaje obtenido por la lectura de la luz, tomando una muestra cada 2,9 ms, siendo leído en 100 us. el valor que se lee a partir del sensor.

Debido a que este sensor capta grados de luminosidad, no es capaz de distinguir colores, sólo captando la existencia del blanco (claridad), negro (oscuridad) y los tonos de grises que corresponden a los distintos porcentajes de luz existentes en el medio.

 Sensor de temperatura

El sensor de temperatura permite leer el valor aproximado de la temperatura, mediante la interacción de un termistor en uno de los extremos, generando un campo magnético que permite la detección aproximada de la temperatura del bloque que lo contiene. El bloque original de Lego posee un termistor de 12.2 kohms a 25 °C con un coeficiente de corrección aproximado de un -3,7%/°C.

La fórmula Temp = (785 − RAW) / 8 puede determinar la temperatura detectada por el sensor.

Sensor de contacto

El sensor de contacto permite detectar si el bloque que lo posee ha colisionado o no con algún objeto que se encuentre en su trayectoria inmediata. Al tocar una superficie, una pequeña cabeza externa se contrae, permitiendo que una pieza dentro del bloque cierre un circuito eléctrico comience a circular energía, provocando una variación de energía de 0 a 5 V.

En este caso, si la presión supera una medida estándar de 450, mostrado en la pantalla de LCD, se considera que el sensor está presionado, de otro modo, se considera que está sin presión.

 Sensor de giro

El sensor de giro permite conocer la posición del robot en cualquier instante. Para conocer la posición del robot, el sensor produce una variación de energía entre cuatro estados, los cuales son detectados cada 2,9 ms. y procesados por el bloque RCX durante 100 us, en los cuales pasa entre cuatro estados de energía:

2,0 volts → 4,5 volts → 1,3 volts → 3,3 volts (en sentido horario)
3,3 volts → 1,3 volts → 4,5 volts → 2,0 volts (en sentido anti horario)

Con estos estados se permite verificar cuantas variaciones de energía han sucedido desde la lectura. Cada voltaje representa un giro aproximado de 22,6º del sensor, por lo tanto existiendo cerca de 16 ciclos de voltaje para detectar un giro completo. El problema de esta lectura es a bajas velocidades, debido a que genera unas minúsculas variaciones de energía, debido a que los valores intermedios no son considerados como movimiento válido.

Sensor ultrasónico

El sensor Ultrasónico sólo se incluye en el empaque de Lego Mindstorms NXT, y su principal función detectar las distancias y el movimiento de un objeto que se interponga en el camino del robot, mediante el principio de la detección ultrasónica. Este sensor es capaz de detectar objetos que se encuentren desde 0 a 255 cm, con una precisión relativa de +/- 3 cm

Mediante el principio del eco, el sensor es capaz de recibir la información de los distintos objetos que se encuentren en el campo de detección. El sensor funciona mejor cuando las señales ultrasónicas que recibe, provienen de objetos que sean grandes, planos o de superficies duras. Los objetos pequeños, curvos o suaves, como pelotas, pueden ser muy difíciles de detectar. Si en el cuarto se encuentra más de un sensor ultrasónico, los dispositivos pueden interferir entre ellos, resultando en detecciones pobres.

 
< Anterior   Siguiente >
 
Top! Top!