Programando con Enchanting



Documentos relacionados
Programando con Scratch

Actividades con GeoGebra

Creación de Funciones de Conducción

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.


5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

TUTORIAL PARA REDIMENSIONAR FOTOS

PowerPoint 2010 Manejo de archivos

TUTORIAL ENVIO SMS MASIVOS. 1. Segmentación de la base de datos de clientes

Guía de instalación y control del software. DCANXT Remote-Control

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE TRANSFERENCIAS

ArduLab. 1. Qué te pasa Nerea? 2.Este robot no funciona bien y no sé que le pasa

Uso de Visual C++ Pre-Practica No. 3

NORMA 34.14(SEPA) 05/11/2013

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

MANUAL PROGRAMA PARA PIZZERIAS Y COMIDAS PARA LLEVAR

Lego Nxt desde Physical Etoys

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Capítulo 9. Archivos de sintaxis

Gestión de Retales WhitePaper Noviembre de 2009

La ventana de Microsoft Excel

Formas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

Notas para la instalación de un lector de tarjetas inteligentes.

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

Introducción a Scratch Autor

Desde esta opción, podremos gestionar los tratamientos de la clínica, donde podremos modificar el nombre del tratamiento, precios, códigos, etc.

En principio, comenzaremos a esbozar el menú principal que nos muestra el DVR, tal como se muestra a continuación:

INTRODUCCIÓN a la Web 2.0

Manual de Ayuda. Sistema de Comercializacion RUBROS SRL - Desarrollado por Pragmatia

Centro de Capacitación en Informática

MANUAL DE AYUDA PARA LA UTILIZACIÓN DEL LECTOR DE TARJETAS SI NO POSEE EL CD DE INSTALACION DEL LECTOR DE TARJETAS DEBE SEGUIR LOS SIGUIENTES PASOS.

Sesión 8 Sensor de Ultrasonido

MANUAL BASICO DE WEBEX

MANUAL DE FACTURACIÓN TOUCH SCREEN

Instalación de Tomcat7 en Ubuntu

GVisualPDA Módulo de Almacén

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

WINDOWS : TERMINAL SERVER

INSTALACIÓN DE MEDPRO

CONDICIONES PARA EL BUEN FUNCIONAMIENTO DE LOS SERVICIOS ELECTRÓNICO

MANUAL ECOMMERCE 2.0

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?

OPERACIONES EN MOSTRADOR

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL

Archivo de correo con Microsoft Outlook contra Exchange Server

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

Manual de uso. Manual de uso - citanet 1

F O R M U L A R I O S FORMULARIOS

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Introducción al Programa ImageJ

Sitios remotos. Configurar un Sitio Remoto

Ejemplo de tipo fijo CALCULADOR CONTABLE

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003

MANUAL PARA LA ACTUALIZACIÓN Y CREACIÓN DE DEPENDENCIAS EN EL SISTEMA CREG ENTREGA-RECEPCIÓN

Instalación de las Voces de Expansión en Tyros 4PT23

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Uso de varias pantallas y pantalla Splash

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

Manual de guía para Clientes Sistema MoTrack

PS.Vending Almacén Pocket PC

Manual para el uso del Correo Electrónico Institucional Via Webmail

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Manual de Pasos previos a programar un PLC Allen Bradley CompactLogix L32E

Procedimiento de instalación de Aula Virtual Santillana en Windows: Alumnos

smartblz pesaje computarizado Manual de Uso y referencias técnicas

MANUAL DE USUARIO TARIFICADOR SIPTAR Y REPORTES SIPTAR.

Manual de Instalación del Certificado ACA en Windows 8.1

CURSO SOBRE LA PDi SMART USO DEL SOFTWARE NOTEBOOK.

Petición de certificados de servidor con IIS

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

Manual de usuario de Windows Live Writer

Software Criptográfico FNMT-RCM

Gestiolan EFECTOS Y REMESAS

Manual hosting acens

Guadalinex Básico Impress

Mantenimiento Limpieza

Página 1 de 7. Qué es Scratch?

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

Combinar correspondencia (I)

TciSatSingleW32 Versión 3.1

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

Comisión Nacional de Bancos y Seguros

Instalación y Registro Versiones Educativas 2013

Manual Consultas Web - PC Sistel Ver 486R4+ - USUARIO JEFATURA

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos

Manual de Usuario. Generador de Pólizas de Sizes & Colors para CONTPAQi Contabilidad

helppeople Viewer 2013

Laboratorio de Física Universitaria II. FISI 3014 Primer semestre del año académico Departamento de Física y Electrónica de la UPR-H

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Transcripción:

Programación para robótica Autor Andrés Baranzano Versión Fecha 15/11/12 Ubicación 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

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

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

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

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

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

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

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: Sensor de Ultrasonido (Distancia): Sensor de Luz: 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. Nos indica la distancia obtenida por el sensor con nombre Sensor 2. Dicho Valor va desde 15 hasta 255 cm 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

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

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

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: Inicia el programa Repite indefinidamente la acción 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

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

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 Luego iniciaremos los Motores y añadiremos un Bloque de Por Siempre : 1. 2. Le dirá al Sensor que empiece el proceso de auto calibración. 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

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

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