SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Programando con Enchanting
Programación para robótica
Autor Andrés Baranzano
Versión Fecha 15/11/12
Ubicación Laboratorios Digitales
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Índice
Introducción.............................................................................................................................3
Instalación en Windows.........................................................................................................3
Instalación en Ubuntu...........................................................................................................3
Enchanting para NXT.................................................................................................................4
Flashear el firmware..............................................................................................................4
Bloques de Motor..................................................................................................................5
Configuración de Puertos para utilizar Motores...................................................................5
Bloques de Sensor................................................................................................................8
Configuración de Puertos para utilizar Sensores..................................................................8
Ejemplos de Programación...................................................................................................11
Dibujar una figura...........................................................................................................11
Detección de Objetos......................................................................................................12
Cambio de Velocidad en función de un Sensor..................................................................14
Control de cambios..................................................................................................................17
Modificaciones....................................................................................................................17
Revisiones..........................................................................................................................17
MAN.LAB.Enchanting_NXT Página 2 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Introducción
Enchanting es un software de programación 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).
Instalación 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 link:
https://launchpad.net/enchanting/trunk/0.1/+download/Enchanting-0.1.0.1-Setup.exe
Ejecutamos el archivo Enchanting-0.1.0.1-Setup.exe, presionamos siguiente y esperamos a que
complete la instalación.
Instalación 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 instalación especificadas en el manual.
MAN.LAB.Enchanting_NXT Página 3 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Enchanting para NXT
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 pestaña Archivo y seleccionaremos la opción “Enviar Firmware”
Se desplegará una ventana como la siguiente y seleccionaremos la opción “Si”
Aparecerá una nueva ventana y simplemente esperaremos a que termine de cargar.
Una vez hecho esto, el controlador estará listo para usarse.
MAN.LAB.Enchanting_NXT Página 4 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Bloques de Motor
Los bloques de motor permiten activar y configurar los motores.
Configuración de Puertos para utilizar Motores
Para poder controlar los motores debemos configurarlos, para hacerlo presionaremos el botón
“Configurar Motores” dentro de la pestaña de Motores
Allí nos aparecerán 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 Página 5 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Al asociar Motores a los Puertos aparecerán nuevos bloques
Hará que el motor de nombre “NXT motor”
empiece a girar.
“Hacia adelante” o “hacia atras” nos
indicará el sentido de giro del motor.
Para poder utilizar este bloque debemos
haber utilizado el bloque “set speed”
antes.
Le asigna la velocidad con la cual girará el
motor de nombre “NXT motor” cuando se
inicie. El valor 720 (modificable) es la
velocidad con la que girará (en grados por
segundo). Dicho valor toma valores entre 0
y 720
Hará que el motor de nombre “NXT motor”
se detenga.
La opcion “frenada” hará que el motor frene
y la rueda quede fija (no podrá moverse
libremente incluso si intento girarla
manualmente)
La opción “deslizamiento” hará que el motor
frene y la rueda quede libre.
Hará que el motor de nombre “NXT motor”
gire una cantidad de grados X (360° sería
una vuelta entera).
La opción “until done” hará que el bloque se
ejecute sin interrupción.
La opción “just start it” hará que el bloque
empiece a ejecutarse, pudiendo
interrumpirse.
Marcará la posición actual del motor “NXT
motor” como la posición 0.
MAN.LAB.Enchanting_NXT Página 6 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Llevará el motor “NXT motor” a la posición
marcada como 0.
La opcion “until done” hara que el bloque
ejecute sin interrupción.
La opción “just start it” hará que el bloque
empiece a ejecutarse, pudiendo
interrumpirse.
Comenzará a girar el motor con nombre
“NXT motor” con una velocidad predefinida.
El valor 720 (modificable) indica la velocidad
con la cual comenzará a girar (en grados por
segundo). Dicho valor toma valores entre 0 y
720.
Nos indica si el motor de nombre “NXT
motor” está en movimiento o no.
Retornará 1 si el motor está moviendose, 0
en caso contrario.
Nos indica la posición (en grados) en la cual
está el motor. Dicho valor no tiene tope,
pero podemos referirnos a la circunferencia
haciendo el valor modulo 360°.
Ejemplo: 370° es lo mismo que 10°, 380° lo
mismo que 20°, etc.
MAN.LAB.Enchanting_NXT Página 7 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
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
Y 4 puertos asignados para ellos
Configuración de Puertos para utilizar Sensores
Para poder controlar los sensores debemos configurarlos, para hacerlo presionaremos el botón
“Configurar Sensores” dentro de la pestaña de Sensores
Allí nos aparecerán 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 Página 8 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
En el siguiente ejemplo veremos un Sensor de Luz asociado al Puerto 1, el texto “Nombre de
Sensor” (modificable) hace referencia al Nombre del Sensor que le asociaremos para controlarlo
desde la interfaz
Al asociar Sensores a los Puertos aparecerán 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 calibración del sensor con nombre
“Sensor 3”. Lo que hace la calibración 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 Página 9 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Al utilizar este bloque y hacer el proceso de auto
calibración automático, hará que el controlador mire
a cada lectura que recibe el sensor con nombre
“Sensor 3”, y le dirá al controlador que el valor
obtenido es algún valor entre blanco y negro.
Nos indica la intensidad de luz obtenida por el
sensor con nombre “Sensor 3”.
Para la opción “brillantez” dicho valor va desde 0
(Negro) hasta 100 (Blanco).
Para la opción “valor sin procesar” dicho valor va
desde 0 a 1000.
Si el Sensor no fue calibrado, entonces este rango
puede variar y podría ocurrir que recibamos un valor
negativo para el color Negro.
Nos indica si el gris asociado al color que está
captando el sensor de nombre “Sensor 3” es igual al
elegido (en este caso verde).
Devuelve el valor 1 si son iguales, 0 en caso
contrario.
Nos devuelve el valor numérico asociado al color
que está leyendo el Sensor de nombre “Sensor 3”
en formato HSV. (Una terna de la forma [ Hue ,
Saturation , Value ] ). Con el sensor de Luz esta nos
devolverá H y S en 0 y el valor V (Por lo tanto, sólo
detectara escala de grises. Dicho valor va de 0 a
100, siendo [0, 0, 0] el color Negro y [0, 0, 100] el
color Blanco
Sensor de Sonido:
Nos indica el nivel de sonido obtenido por el sensor
de nombre “Sensor 4”. Dicho valor va de 0 a 100.
Nota: El valor no esta medido en Decibelios
MAN.LAB.Enchanting_NXT Página 10 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Ejemplos de Programación
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 acción 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 opción “just
start it” para que ejecute e inmediatamente
ejecute el siguiente bloque. El valor 360
(modificable) corresponde a cuánto queremos
que avance el robot.
Iniciará el motor de nombre “B” y hará que gire
360 grados. La opción “until done” hara que se
ejecute hasta que termine de dar los 360 grados.
El valor 360 (modificable) corresponde a cuánto
queremos que avance el robot.
Nota: Si para el motor B seleccionaramos “until done” lo que lograríamos es que inicie el motor B y
luego el C y no lograríamos 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.
Aclaración: El valor 340° de giro va a estar sujeto a la batería del controlador y a la superficie en
la cual trabajemos, por lo que podría variar.
MAN.LAB.Enchanting_NXT Página 11 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Detección 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:
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á sólo con ese valor.
Como queremos condicionar el movimiento del robot a una distancia, debemos utilizar una
bifurcación “Si, si no” y una condición sobre el objeto.
1. 2.
Operador Mayor
3.
Tomará el valor del
sensor en el
momento actual y
lo comparará con
30.
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 Página 12 de 16
Inicia el programa
Repite indefinidamente la acción
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
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”.
Frena el motor con
nombre “B”.
Frena el motor con
nombre “C”.
Vemos que si cambiamos el bloque “Distancia del Sensor” del operador por el bloque “Nivel de
Sonido” de un Sensor de Sonido, o cambiamos el Operador Mayor por el Bloque “¿Está Pulsado?”
de un Sensor de Tacto, obtendremos que el Robot se mueva al escuchar Sonidos mayores a un
30% o que empiece a moverse al presionar el Sensor de Tacto, respectivamente.
MAN.LAB.Enchanting_NXT Página 13 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Cambio de Velocidad en función de un Sensor
Crearemos un programa en el cual un robot se encuentre en movimiento y aumente su velocidad
en función del valor de un Sensor.
En este Ejemplo lo haremos con el Sensor de Luz.
Para ello comenzaremos programando con el Bloque de Control y el Bloque de Sensores:
Bloque de Inicio de Programa
Le dirá al Sensor que empiece el proceso de
auto calibración.
Luego iniciaremos los Motores y añadiremos un Bloque de “Por Siempre”:
1. 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á sólo con ese valor, por lo tanto se modificará la velocidad una única vez.
MAN.LAB.Enchanting_NXT Página 14 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
Para obtener un nuevo valor del Sensor de Luz utilizaremos el bloque “auto-calibrar para incluir la
lectura actual”
Calibra automaticamente el Sensor y
devuelve un nuevo valor
Por ultimo, cambiaremos la velocidad de los motores al valor detectado por el Sensor.
1.
MAN.LAB.Enchanting_NXT Página 15 de 16
Programando con Enchanting
Plan Ceibal – Laboratorios Digitales
2.
Seteamos la velocidad del
motor con nombre “B” al
valor obtenido por el
Sensor de Luz.
Seteamos la velocidad del
motor con nombre “C” al
valor obtenido por el
Sensor de Luz
Aclaración: Utilizamos la opcion de “valor sin procesar” para tener un rango de 0 a 1000, esto es
para tener una mayor velocidad. Si utilizaramos el valor “brillantez” el valor sería un porcentaje de
0 a 100, y una velocidad de 100 sería muy baja para el motor.
Podríamos utilizar esta misma programación para el Sensor de Sonido, deberíamos cambiar los
bloques del valor de Sensor de Luz por los de “Nivel de Sonido” y quitar los bloques de “auto
calibrar”. De esa forma, nuestro Robot ajustaría su velocidad acorde al nivel de sonido de la sala.
MAN.LAB.Enchanting_NXT Página 16 de 16

Mais conteúdo relacionado

Semelhante a Programando con Enchanting

Semelhante a Programando con Enchanting (20)

Manual Scratch para Robótica
Manual Scratch para RobóticaManual Scratch para Robótica
Manual Scratch para Robótica
 
Guiademindstorms pagina 5-26
Guiademindstorms pagina 5-26Guiademindstorms pagina 5-26
Guiademindstorms pagina 5-26
 
lego nxt
lego nxtlego nxt
lego nxt
 
Nxt
NxtNxt
Nxt
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
Presentacion1legonxt 131002183956-phpapp01
Presentacion1legonxt 131002183956-phpapp01Presentacion1legonxt 131002183956-phpapp01
Presentacion1legonxt 131002183956-phpapp01
 
Presentación2
Presentación2Presentación2
Presentación2
 
lord
lordlord
lord
 
Proyecto de Lego NXT
Proyecto de Lego NXTProyecto de Lego NXT
Proyecto de Lego NXT
 
precentacion de power point mindstorms
precentacion de power point mindstorms precentacion de power point mindstorms
precentacion de power point mindstorms
 
Guia de infor 4
Guia de infor 4Guia de infor 4
Guia de infor 4
 
Mindstorms educationlego
Mindstorms educationlegoMindstorms educationlego
Mindstorms educationlego
 
Mindstorms educationlego
Mindstorms educationlegoMindstorms educationlego
Mindstorms educationlego
 
Midstorms 5
Midstorms 5Midstorms 5
Midstorms 5
 
Proyeto andres cruz
Proyeto andres cruzProyeto andres cruz
Proyeto andres cruz
 
Lego mindstorms nxt
Lego mindstorms nxt Lego mindstorms nxt
Lego mindstorms nxt
 
Colegio nicolás esguerra
Colegio nicolás esguerraColegio nicolás esguerra
Colegio nicolás esguerra
 
legomindstorms
legomindstormslegomindstorms
legomindstorms
 
Presentación1
Presentación1Presentación1
Presentación1
 

Mais de proyectoste

How to create 360 images with google street view app
How to create 360 images with google street view app How to create 360 images with google street view app
How to create 360 images with google street view app proyectoste
 
Memoria del curso de robótica educativa del curso 2014-2015
Memoria del curso de robótica educativa del curso 2014-2015Memoria del curso de robótica educativa del curso 2014-2015
Memoria del curso de robótica educativa del curso 2014-2015proyectoste
 
Berrikuntza Proiektua BOT BAT
Berrikuntza Proiektua BOT BATBerrikuntza Proiektua BOT BAT
Berrikuntza Proiektua BOT BATproyectoste
 
Enchanting cards v1
Enchanting cards v1Enchanting cards v1
Enchanting cards v1proyectoste
 
Enchanting y LEGO NXT
Enchanting y LEGO NXTEnchanting y LEGO NXT
Enchanting y LEGO NXTproyectoste
 
Enchanting en Linux Ubuntu
Enchanting en Linux UbuntuEnchanting en Linux Ubuntu
Enchanting en Linux Ubuntuproyectoste
 
Avión de rescate
Avión de rescateAvión de rescate
Avión de rescateproyectoste
 
Afición ruidosa
Afición ruidosaAfición ruidosa
Afición ruidosaproyectoste
 
Pájaros bailarines
Pájaros bailarinesPájaros bailarines
Pájaros bailarinesproyectoste
 
Mono percusionista
Mono percusionistaMono percusionista
Mono percusionistaproyectoste
 
Gigante colgante
Gigante colganteGigante colgante
Gigante colganteproyectoste
 
Portero de fútbol
Portero de fútbolPortero de fútbol
Portero de fútbolproyectoste
 
Caimán hambriento
Caimán hambrientoCaimán hambriento
Caimán hambrientoproyectoste
 
Hilador inteligente
Hilador inteligenteHilador inteligente
Hilador inteligenteproyectoste
 
Sesiones de clase con LEGO WeDo - Clase 9.
Sesiones de clase con LEGO WeDo - Clase 9.Sesiones de clase con LEGO WeDo - Clase 9.
Sesiones de clase con LEGO WeDo - Clase 9.proyectoste
 

Mais de proyectoste (20)

How to create 360 images with google street view app
How to create 360 images with google street view app How to create 360 images with google street view app
How to create 360 images with google street view app
 
Manual iTALC 2
Manual iTALC 2Manual iTALC 2
Manual iTALC 2
 
Memoria del curso de robótica educativa del curso 2014-2015
Memoria del curso de robótica educativa del curso 2014-2015Memoria del curso de robótica educativa del curso 2014-2015
Memoria del curso de robótica educativa del curso 2014-2015
 
Berrikuntza Proiektua BOT BAT
Berrikuntza Proiektua BOT BATBerrikuntza Proiektua BOT BAT
Berrikuntza Proiektua BOT BAT
 
Enchanting cards v1
Enchanting cards v1Enchanting cards v1
Enchanting cards v1
 
Enchanting y LEGO NXT
Enchanting y LEGO NXTEnchanting y LEGO NXT
Enchanting y LEGO NXT
 
Enchanting en Linux Ubuntu
Enchanting en Linux UbuntuEnchanting en Linux Ubuntu
Enchanting en Linux Ubuntu
 
Avión de rescate
Avión de rescateAvión de rescate
Avión de rescate
 
Afición ruidosa
Afición ruidosaAfición ruidosa
Afición ruidosa
 
Pájaros bailarines
Pájaros bailarinesPájaros bailarines
Pájaros bailarines
 
Mono percusionista
Mono percusionistaMono percusionista
Mono percusionista
 
Pájaro volador
Pájaro voladorPájaro volador
Pájaro volador
 
Gigante colgante
Gigante colganteGigante colgante
Gigante colgante
 
Portero de fútbol
Portero de fútbolPortero de fútbol
Portero de fútbol
 
Chutador a gol
Chutador a golChutador a gol
Chutador a gol
 
Barco navegante
Barco naveganteBarco navegante
Barco navegante
 
León rugiente
León rugienteLeón rugiente
León rugiente
 
Caimán hambriento
Caimán hambrientoCaimán hambriento
Caimán hambriento
 
Hilador inteligente
Hilador inteligenteHilador inteligente
Hilador inteligente
 
Sesiones de clase con LEGO WeDo - Clase 9.
Sesiones de clase con LEGO WeDo - Clase 9.Sesiones de clase con LEGO WeDo - Clase 9.
Sesiones de clase con LEGO WeDo - Clase 9.
 

Último

cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 

Último (20)

cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 

Programando con Enchanting

  • 1. Programando con Enchanting Programación para robótica Autor Andrés Baranzano Versión Fecha 15/11/12 Ubicación Laboratorios Digitales
  • 2. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Índice Introducción.............................................................................................................................3 Instalación en Windows.........................................................................................................3 Instalación en Ubuntu...........................................................................................................3 Enchanting para NXT.................................................................................................................4 Flashear el firmware..............................................................................................................4 Bloques de Motor..................................................................................................................5 Configuración de Puertos para utilizar Motores...................................................................5 Bloques de Sensor................................................................................................................8 Configuración de Puertos para utilizar Sensores..................................................................8 Ejemplos de Programación...................................................................................................11 Dibujar una figura...........................................................................................................11 Detección de Objetos......................................................................................................12 Cambio de Velocidad en función de un Sensor..................................................................14 Control de cambios..................................................................................................................17 Modificaciones....................................................................................................................17 Revisiones..........................................................................................................................17 MAN.LAB.Enchanting_NXT Página 2 de 16
  • 3. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Introducción Enchanting es un software de programación 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). Instalación 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 link: https://launchpad.net/enchanting/trunk/0.1/+download/Enchanting-0.1.0.1-Setup.exe Ejecutamos el archivo Enchanting-0.1.0.1-Setup.exe, presionamos siguiente y esperamos a que complete la instalación. Instalación 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 instalación especificadas en el manual. MAN.LAB.Enchanting_NXT Página 3 de 16
  • 4. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Enchanting para NXT 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 pestaña Archivo y seleccionaremos la opción “Enviar Firmware” Se desplegará una ventana como la siguiente y seleccionaremos la opción “Si” Aparecerá una nueva ventana y simplemente esperaremos a que termine de cargar. Una vez hecho esto, el controlador estará listo para usarse. MAN.LAB.Enchanting_NXT Página 4 de 16
  • 5. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Bloques de Motor Los bloques de motor permiten activar y configurar los motores. Configuración de Puertos para utilizar Motores Para poder controlar los motores debemos configurarlos, para hacerlo presionaremos el botón “Configurar Motores” dentro de la pestaña de Motores Allí nos aparecerán 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 Página 5 de 16
  • 6. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Al asociar Motores a los Puertos aparecerán nuevos bloques Hará que el motor de nombre “NXT motor” empiece a girar. “Hacia adelante” o “hacia atras” nos indicará el sentido de giro del motor. Para poder utilizar este bloque debemos haber utilizado el bloque “set speed” antes. Le asigna la velocidad con la cual girará el motor de nombre “NXT motor” cuando se inicie. El valor 720 (modificable) es la velocidad con la que girará (en grados por segundo). Dicho valor toma valores entre 0 y 720 Hará que el motor de nombre “NXT motor” se detenga. La opcion “frenada” hará que el motor frene y la rueda quede fija (no podrá moverse libremente incluso si intento girarla manualmente) La opción “deslizamiento” hará que el motor frene y la rueda quede libre. Hará que el motor de nombre “NXT motor” gire una cantidad de grados X (360° sería una vuelta entera). La opción “until done” hará que el bloque se ejecute sin interrupción. La opción “just start it” hará que el bloque empiece a ejecutarse, pudiendo interrumpirse. Marcará la posición actual del motor “NXT motor” como la posición 0. MAN.LAB.Enchanting_NXT Página 6 de 16
  • 7. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Llevará el motor “NXT motor” a la posición marcada como 0. La opcion “until done” hara que el bloque ejecute sin interrupción. La opción “just start it” hará que el bloque empiece a ejecutarse, pudiendo interrumpirse. Comenzará a girar el motor con nombre “NXT motor” con una velocidad predefinida. El valor 720 (modificable) indica la velocidad con la cual comenzará a girar (en grados por segundo). Dicho valor toma valores entre 0 y 720. Nos indica si el motor de nombre “NXT motor” está en movimiento o no. Retornará 1 si el motor está moviendose, 0 en caso contrario. Nos indica la posición (en grados) en la cual está el motor. Dicho valor no tiene tope, pero podemos referirnos a la circunferencia haciendo el valor modulo 360°. Ejemplo: 370° es lo mismo que 10°, 380° lo mismo que 20°, etc. MAN.LAB.Enchanting_NXT Página 7 de 16
  • 8. Programando con Enchanting Plan Ceibal – Laboratorios Digitales 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 Y 4 puertos asignados para ellos Configuración de Puertos para utilizar Sensores Para poder controlar los sensores debemos configurarlos, para hacerlo presionaremos el botón “Configurar Sensores” dentro de la pestaña de Sensores Allí nos aparecerán 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 Página 8 de 16
  • 9. Programando con Enchanting Plan Ceibal – Laboratorios Digitales En el siguiente ejemplo veremos un Sensor de Luz asociado al Puerto 1, el texto “Nombre de Sensor” (modificable) hace referencia al Nombre del Sensor que le asociaremos para controlarlo desde la interfaz Al asociar Sensores a los Puertos aparecerán 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 calibración del sensor con nombre “Sensor 3”. Lo que hace la calibración 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 Página 9 de 16
  • 10. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Al utilizar este bloque y hacer el proceso de auto calibración automático, hará que el controlador mire a cada lectura que recibe el sensor con nombre “Sensor 3”, y le dirá al controlador que el valor obtenido es algún valor entre blanco y negro. Nos indica la intensidad de luz obtenida por el sensor con nombre “Sensor 3”. Para la opción “brillantez” dicho valor va desde 0 (Negro) hasta 100 (Blanco). Para la opción “valor sin procesar” dicho valor va desde 0 a 1000. Si el Sensor no fue calibrado, entonces este rango puede variar y podría ocurrir que recibamos un valor negativo para el color Negro. Nos indica si el gris asociado al color que está captando el sensor de nombre “Sensor 3” es igual al elegido (en este caso verde). Devuelve el valor 1 si son iguales, 0 en caso contrario. Nos devuelve el valor numérico asociado al color que está leyendo el Sensor de nombre “Sensor 3” en formato HSV. (Una terna de la forma [ Hue , Saturation , Value ] ). Con el sensor de Luz esta nos devolverá H y S en 0 y el valor V (Por lo tanto, sólo detectara escala de grises. Dicho valor va de 0 a 100, siendo [0, 0, 0] el color Negro y [0, 0, 100] el color Blanco Sensor de Sonido: Nos indica el nivel de sonido obtenido por el sensor de nombre “Sensor 4”. Dicho valor va de 0 a 100. Nota: El valor no esta medido en Decibelios MAN.LAB.Enchanting_NXT Página 10 de 16
  • 11. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Ejemplos de Programación 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 acción 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 opción “just start it” para que ejecute e inmediatamente ejecute el siguiente bloque. El valor 360 (modificable) corresponde a cuánto queremos que avance el robot. Iniciará el motor de nombre “B” y hará que gire 360 grados. La opción “until done” hara que se ejecute hasta que termine de dar los 360 grados. El valor 360 (modificable) corresponde a cuánto queremos que avance el robot. Nota: Si para el motor B seleccionaramos “until done” lo que lograríamos es que inicie el motor B y luego el C y no lograríamos 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. Aclaración: El valor 340° de giro va a estar sujeto a la batería del controlador y a la superficie en la cual trabajemos, por lo que podría variar. MAN.LAB.Enchanting_NXT Página 11 de 16
  • 12. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Detección 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: 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á sólo con ese valor. Como queremos condicionar el movimiento del robot a una distancia, debemos utilizar una bifurcación “Si, si no” y una condición sobre el objeto. 1. 2. Operador Mayor 3. Tomará el valor del sensor en el momento actual y lo comparará con 30. 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 Página 12 de 16 Inicia el programa Repite indefinidamente la acción
  • 13. Programando con Enchanting Plan Ceibal – Laboratorios Digitales 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”. Frena el motor con nombre “B”. Frena el motor con nombre “C”. Vemos que si cambiamos el bloque “Distancia del Sensor” del operador por el bloque “Nivel de Sonido” de un Sensor de Sonido, o cambiamos el Operador Mayor por el Bloque “¿Está Pulsado?” de un Sensor de Tacto, obtendremos que el Robot se mueva al escuchar Sonidos mayores a un 30% o que empiece a moverse al presionar el Sensor de Tacto, respectivamente. MAN.LAB.Enchanting_NXT Página 13 de 16
  • 14. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Cambio de Velocidad en función de un Sensor Crearemos un programa en el cual un robot se encuentre en movimiento y aumente su velocidad en función del valor de un Sensor. En este Ejemplo lo haremos con el Sensor de Luz. Para ello comenzaremos programando con el Bloque de Control y el Bloque de Sensores: Bloque de Inicio de Programa Le dirá al Sensor que empiece el proceso de auto calibración. Luego iniciaremos los Motores y añadiremos un Bloque de “Por Siempre”: 1. 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á sólo con ese valor, por lo tanto se modificará la velocidad una única vez. MAN.LAB.Enchanting_NXT Página 14 de 16
  • 15. Programando con Enchanting Plan Ceibal – Laboratorios Digitales Para obtener un nuevo valor del Sensor de Luz utilizaremos el bloque “auto-calibrar para incluir la lectura actual” Calibra automaticamente el Sensor y devuelve un nuevo valor Por ultimo, cambiaremos la velocidad de los motores al valor detectado por el Sensor. 1. MAN.LAB.Enchanting_NXT Página 15 de 16
  • 16. Programando con Enchanting Plan Ceibal – Laboratorios Digitales 2. Seteamos la velocidad del motor con nombre “B” al valor obtenido por el Sensor de Luz. Seteamos la velocidad del motor con nombre “C” al valor obtenido por el Sensor de Luz Aclaración: Utilizamos la opcion de “valor sin procesar” para tener un rango de 0 a 1000, esto es para tener una mayor velocidad. Si utilizaramos el valor “brillantez” el valor sería un porcentaje de 0 a 100, y una velocidad de 100 sería muy baja para el motor. Podríamos utilizar esta misma programación para el Sensor de Sonido, deberíamos cambiar los bloques del valor de Sensor de Luz por los de “Nivel de Sonido” y quitar los bloques de “auto calibrar”. De esa forma, nuestro Robot ajustaría su velocidad acorde al nivel de sonido de la sala. MAN.LAB.Enchanting_NXT Página 16 de 16