Documente Academic
Documente Profesional
Documente Cultură
Autor
Versin
Ubicacin
Andrs Baranzano
Fecha
Laboratorios Digitales
15/11/12
ndice
Introduccin.............................................................................................................................3
Instalacin en Windows.........................................................................................................3
Instalacin en Ubuntu...........................................................................................................3
Enchanting para NXT.................................................................................................................4
Flashear el firmware..............................................................................................................4
Bloques de Motor..................................................................................................................5
Configuracin de Puertos para utilizar Motores...................................................................5
Bloques de Sensor................................................................................................................8
Configuracin de Puertos para utilizar Sensores..................................................................8
Ejemplos de Programacin...................................................................................................11
Dibujar una figura...........................................................................................................11
Deteccin de Objetos......................................................................................................12
Cambio de Velocidad en funcin de un Sensor..................................................................14
Control de cambios..................................................................................................................17
Modificaciones....................................................................................................................17
Revisiones..........................................................................................................................17
MAN.LAB.Enchanting_NXT
Pgina 2 de 16
Introduccin
Enchanting es un software de programacin visual basado en Scratch creado por el MIT con el
objetivo de poder programar el controlador Mindstorms NXT
Para poder controlar el Mindstorms NXT es necesario tener instalado Enchanting y flashear el
firmware con Lejos (se explicar mas adelante).
Instalacin en Windows
Para instalar Enchanting en Windows es necesario tener instalado el Fantom Driver el cual
podemos descargar del siguiente link: http://mindstorms.lego.com/en-us/support/files/Driver.aspx
Descomprimimos el contenido del .zip y ejecutamos el archivo Setup.exe
Luego
debemos
descargar
el
Software
de
Enchanting
del
siguiente
https://launchpad.net/enchanting/trunk/0.1/+download/Enchanting-0.1.0.1-Setup.exe
link:
Instalacin en Ubuntu
Para
instalar
Enchanting
en
Ubuntu
vamos
al
siguiente
Enlace
http://www.ceibal.edu.uy/Articulos/Paginas/Material%20para%20la%20utilizaci%C3%B3n%20de
%20los%20kits%20de%20Rob%C3%B3tica.aspx
y seguimos las instrucciones de instalacin especificadas en el manual.
MAN.LAB.Enchanting_NXT
Pgina 3 de 16
Flashear el firmware
Para poder comenzar a utilizar el controlador NXT con Enchanting es necesario flashear el
firmware.
Para hacerlo debemos tener el controlador prendido y conectado.
Iremos a la pestaa Archivo y seleccionaremos la opcin Enviar Firmware
MAN.LAB.Enchanting_NXT
Pgina 4 de 16
Bloques de Motor
Los bloques de motor permiten activar y configurar los motores.
All nos aparecern los bloques motor, para poder utilizarlos, debemos asociar el motor al puerto
al cual est conectado en el controlador NXT (por defecto son los puertos B y C).
En el siguiente ejemplo veremos un Motor asociado al Puerto B, el texto NXT Motor
(modificable) hace referencia al Nombre del Motor que le asociaremos para controlarlo desde la
interfaz
MAN.LAB.Enchanting_NXT
Pgina 5 de 16
MAN.LAB.Enchanting_NXT
Pgina 6 de 16
MAN.LAB.Enchanting_NXT
Pgina 7 de 16
Bloques de Sensor
Los bloques de sensores permiten la lectura de los sensores. Cada lectura de sensor devuelve un
valor diferente.
Tenemos 4 tipos de Sensores diferentes:
De sonido
De Luz
De ultrasonido
De contacto
All nos aparecern los bloques de cada tipo de sensor, para poder utilizarlos, debemos asociar el
sensor al puerto al cual est conectado en el controlador NXT
MAN.LAB.Enchanting_NXT
Pgina 8 de 16
Al asociar Sensores a los Puertos aparecern nuevos bloques para cada tipo de sensor
Sensor de Contacto:
Nos indica si el sensor con nombre Sensor 1 est
presionado, devuelve el valor 1 si est presionado y
0 en caso contrario. Dicho valor se puede visualizar
en pantalla haciendo clic en el cuadrado gris al lado
del bloque est pulsado.
Sensor de Ultrasonido (Distancia):
Nos indica la distancia obtenida por el sensor con
nombre Sensor 2. Dicho Valor va desde 15 hasta
255 cm
Sensor de Luz:
Este bloque har que el controlador empiece el
proceso de auto calibracin del sensor con nombre
Sensor 3. Lo que hace la calibracin es decirle al
sensor Esto es negro o Esto es blanco. Se utiliza
en conjunto con el bloque auto-calibrar para incluir
la lectura actual
MAN.LAB.Enchanting_NXT
Pgina 9 de 16
MAN.LAB.Enchanting_NXT
Pgina 10 de 16
Ejemplos de Programacin
Dibujar una figura
Crearemos un programa en el cual un robot se mueva dibujando una figura (en particular, un
cuadrado)
Para ello comenzaremos programando con los Bloques de Control:
Inicia el programa
Repite la accin 4 veces
Vamos a hacer que el Robot avance y gire, eso lo repetiremos 4 veces para lograr dibujar el
cuadrado.
Este bloque har que el motor de nombre B
gire 360 grados, seleccionamos la opcin just
start it para que ejecute e inmediatamente
ejecute el siguiente bloque. El valor 360
(modificable) corresponde a cunto queremos
que avance el robot.
Iniciar el motor de nombre B y har que gire
360 grados. La opcin until done hara que se
ejecute hasta que termine de dar los 360 grados.
El valor 360 (modificable) corresponde a cunto
queremos que avance el robot.
Nota: Si para el motor B seleccionaramos until done lo que lograramos es que inicie el motor B y
luego el C y no lograramos que el robot avance en linea recta.
Con este bloque lograremos que el robot gire
sobre la rueda contraria, el valor 340
(modificable) har que gire exactamente 90
grados reales (para esta estructura).
La opcion until done hara que el bloque repetir
no comience nuevamente hasta que termine de
girar el robot.
Aclaracin: El valor 340 de giro va a estar sujeto a la batera del controlador y a la superficie en
la cual trabajemos, por lo que podra variar.
MAN.LAB.Enchanting_NXT
Pgina 11 de 16
Deteccin de Objetos
Crearemos un programa en el cual un robot se encuentre en movimiento y si detecta un objeto a
cierta distancia detiene su movimiento.
Para ello comenzaremos programando con los Bloques de Control:
Inicia el programa
Repite indefinidamente la accin
El bloque Por siempre nos servir para poder obtener cada valor detectado por el Sensor de
Distancia, de no usarlo, detectaremos un nico valor y el programa ejecutar slo con ese valor.
Como queremos condicionar el movimiento del robot a una distancia, debemos utilizar una
bifurcacin Si, si no y una condicin sobre el objeto.
1.
2.
Operador Mayor
3.
Luego, vamos a querer que nuestro Robot avance, si el Valor del Sensor de distancia, es mayor a
30 (O sea, no sea ha detectado ningun objeto en un rango menor a 30 cm), y que se detenga en
caso contrario
MAN.LAB.Enchanting_NXT
Pgina 12 de 16
Fija la velocidad de
los motores B y
C a 720/s
Empieza
a
funcionar el motor
con nombre B.
Empieza
a
funcionar el motor
con nombre C.
MAN.LAB.Enchanting_NXT
Pgina 13 de 16
2.
El bloque Por siempre nos servir para poder obtener cada valor detectado por el Sensor de Luz
y para cada valor modificar la velocidad de los motores, de no usarlo, detectaremos un nico valor
y el programa ejecutar slo con ese valor, por lo tanto se modificar la velocidad una nica vez.
MAN.LAB.Enchanting_NXT
Pgina 14 de 16
Para obtener un nuevo valor del Sensor de Luz utilizaremos el bloque auto-calibrar para incluir la
lectura actual
Calibra automaticamente
devuelve un nuevo valor
el
Sensor
Por ultimo, cambiaremos la velocidad de los motores al valor detectado por el Sensor.
1.
MAN.LAB.Enchanting_NXT
Pgina 15 de 16
2.
MAN.LAB.Enchanting_NXT
Pgina 16 de 16