Preview only show first 10 pages with watermark. For full document please download

Guia 1 Agudelo Pinilla Sanchez

   EMBED


Share

Transcript

Universidad Nacional de Colombia. Agudelo, Pinilla, Sánchez. Introducción a la Plataforma LEGO.

1

Introducción a la Plataforma LEGO Mindstroms
Agudelo, Daniela., Pinilla, Andrés y Sánchez, Daniel.
{sdagudelos, afpinillat, djsanchezm}@unal.edu.co

Resumen— En el informe presentado a continuación, se
encontrará de una manera precisa los lineamientos que se
deben tomar a la hora de trabajar la plataforma de
programación NXC, usada para controlar los conocidos robots
programables Lego Mindstorms. También se utilizaron
códigos simples que permitirán conocer de una mejor manera
la lógica de procesamiento de dichos robots en tareas de
desplazamiento y velocidad.
I. INTRODUCCIÓN
El presente documento, está enfocado a ser un primer
acercamiento a la plataforma LEGO Mindstroms, en particular
al lenguaje de programación NXC, con el fin de permitir a
aquellos que buscan iniciarse en áreas básicas, pero prácticas
de la disciplina de Control, una aproximación amable a
algunas características de hardware y software que ella
presenta.
La manera en la que la práctica se desarrolló, consistió en
primera medida de establecer algunas definiciones básicas de
la plataforma, así mismo a las características principales de
algunos de los sensores más comunes, también se buscó
aproximarse a la programación del lenguaje y sus parámetros.
Entre las dificultades encontradas se destacó la falta de
conocimiento por parte del equipo elaborador, en la existencia
y manejo de este tipo de tecnología.
II.
A.
1)

PROCEDIMIENTO

Introducción al Hardware
Mecanismos de alimentación eléctrica

La fuente de alimentación puede ser una batería recargable
de litio o seis pilas AA. Éstas últimas deben ser,
preferiblemente, no recargables, ya que la potencia que
entregan puede variar y ocasionar fallas energéticos.
El adaptador para realizar la conexión puede tiene una
tensión nominal de 120VAC a 60Hz, aunque también está para
otros países con 230VAC a 50Hz.

El reemplazo de las baterías debe tomar un tiempo inferior
a un minuto, de lo contrario la información almacenada se
pierde.
2)

Comunicación entre actuadores y el brick

En la sección “connections” se puede ver los dispositivos a
los que el NXT está conectado, incluyendo otros NXT. El
número máximo de dispositivos conectados a la vez es 3, pero
la comunicación del NXT con los periféricos sólo puede
realizarse uno por uno.
3)

Elementos internos

a) Procesador principal y de respaldo

Se cuenta un procesador principal ARM7 de 32-bits, con
una FLASH de 256 Kbytes y una RAM de 64 Kbytes. Trabaja
a 48MHz. El procesador de respaldo es un ATMEL AVR de o
bits, con 4 kbytes de FLASH y 512 bytes de RAM. Trabaja a
8MHz.
Estos dos procesadores se comunican mediante el protocolo
I2C a 380kbytes/s, al actualizar dos registros de memoria cada
2ms.
b) Puertos de entrada y salida

Los cuatro puertos de entrada se comunican con el
procesador AVR, el cual toma 333 muestras por segundo,
convirtiendo los datos análogos a digitales, para ser enviados al
procesador principal. Los tres puertos de salida permiten al
NXT interactuar con los actuadores mediante señales PWM,
las cuales son controladas por un motor (700mA, 1A pico).
c) Puerto USB

El bloque de NXT puede comunicarse con el computador
mediante la interfaz de USB que posee, la cual ya viene en la
versión 2.0.
d) Bluetooth

El dispositivo CSR BlueCore TM en su versión 2.0, cuenta
con el sistema Enhanced Data Rate (EDR), el cual es
compatible con los modos de modulación a 2Mbps y 3Mbps.

Universidad Nacional de Colombia. Agudelo, Pinilla, Sánchez. Introducción a la Plataforma LEGO.

2

e) Matriz de puntos

La pantalla se compone de una matriz de puntos, con
dimensiones: 60 x 100 pixeles.
f) Parlante

El parlante es controlado por el procesador principal por
medio de pulsos modulados según su ancho.
El parlante funciona a 8KHz y tiene una impedancia de
6Ω. El consumo de potencia se da de acuerdo a la frecuencia.
[1]
B.

Estructura de programación

La estructura básica de programación bajo el lenguaje NXT
en BricxCC puede describirse o definirse en dos partes. El
lenguaje como tal, que permite conocer la sintaxis de nuestros
programas y el API que se conoce así por sus siglas en inglés
(Application Programming Interface) que se encarga de
almacenar las funciones, constantes y macros de los
programas que se desean compilar.

En cuanto a las sentencias que se utilizar en BricxCC, se
tienen las ya utilizadas en C: If, if else, while, do while, for,
repeat, switch, goto y until [3].
En cuanto a los sensores que el brick puede utilizar, dos de
los más importantes debido a sus múltiples aplicaciones son
los de Luz y Ultrasonido.
El sensor de Luz funciona a través de un LED emisor
integrado [4], el cual posibilita medir y clasificar la intensidad
de luz reflejada sobre los objetos de su entorno en una escala
que va desde 0 hasta 100. Este dispositivo puede ser usado de
dos maneras diferentes como lo son: la identificación de
colores y la medición de luz ambiental.

La programación en NXC tiene ciertas reglas de escritura.
Por ejemplo: se entenderá que al colocar comandos como
“while”, se deberán respetar las letras mayúsculas y
minúsculas, ya que si se coloca “While” o “wHile”, el
compilador no reconocerá el comando y las fallas empezarán a
presentarse.
De igual manera, la forma de presentar en el programa
números o palabras deberá ser regulada, ya que BrixCC puede
reconocer números tanto en decimal como hexadecimal y en el
caso de las palabras, la plataforma reconocerá únicamente las
palabras dentro de comillas, como una variable String.
Antes de continuar y hablar de las estructuras básicas del
lenguaje, es necesario nombrar las constantes soportadas por
el compilador. A continuación se exponen los diferentes tipos
de variables junto a un ejemplo [2].

Ilustración 1Sensor de Luz
Por su parte el sensor de Ultra sonido envía ondas de alta
frecuencia que rebotan sobre los objetos y vuelven al sensor
[4], con lo cual le basta para establecer distancias y posibles
geometrías de lo que enfrente de él se encuentra. El alcance
de este dispositivo es de 100 pulgadas con una error no mayor
a 3 pulgadas.

TABLA I

Tipos de Variables
Variable
Bool
Byte
Char
Int
Short
Long
Unsigned
Float
Mutex
String

Ejemplo
True or False
A
1, -23
Oxfff , -23
-88235
2.7182
"Hola"

Arrays

arreglo [];

Ilustración 2 Sensor de Ultrasonido
Los sensores anteriores a pesar de ser altamente confiables
presentan dos limitaciones, donde una de ellas es respecto a su
par de la versión EV3, la primera es que deben estar
conectados al brick de manera alámbrica lo que puede
restringir su uso y la segunda de ellas es que los sensores EV3
devuelven valores nuevos en 1000 veces/seg mientras que los
sensores NXT solo devuelven valores nuevos 333 veces/seg.
C.

Introducción al Software

Por el momento no es necesario.

Universidad Nacional de Colombia. Agudelo, Pinilla, Sánchez. Introducción a la Plataforma LEGO.
III.

CONCLUSIONES

Por el momento no son necesarias.

REFERENCIAS
[1] NXT User Guide. Lego Mindstorms Education. [En
línea]. Consultado el 18 de Agosto de 2014 en:
http://cache.lego.com/downloads/education/9797_LME_
UserGuide_US_low.pdf
[2] Doxygen 1.6.2 NXC. Version 1.2.1.[En línea]. Consultado
el
19
de
agosto
de
2014
en:
http://bricxcc.sourceforge.net/nbc/nxcdoc/NXC_Guide.pd
f
[3] D. Benedettelli, Programming LEGO NXT Robots using
NXC, vol. Version 2.2, J. Hansen, Ed., 2007.
[4] J. Jerry Lee Ford, LEGO MINDSTORMS NXT for Teens,
CENAGE Learning, 2010.

3