Vous êtes sur la page 1sur 39

CURSO DE

ROBTICA
LEGO
MINDSTORMS
Miguel Pincheira
mpincheir@ubiobio.cl
Miguel Pincheira Caro mpincheir@ubiobio.cl

EL BLOQUE NXT
Procesadores

Interface

Microcontrolador de 32 bits ARM7


50 MHz
Memoria FLASH de 256 Kbytes
Memoria RAM de 64 Kbytes
Microcontrolador de 8 bit AVR
Memoria FLASH de 4Kbytes
Memoria RAM de 512 Bytes

4 puertas de entrada, 6 pines,


plataforma digital
3 puertas de salida, 6 pines, plataforma
digital
4 botones para interface de usuario.

Comunicacin
Comunicacin Inalmbrica Bluetooth
(Bluetooth Class II V2.0)
Puerta de alta velocidad USB (12 Mbit/s)

Otros
Pantalla grfica LCD de 64 x 100 pixels
Parlante, calidad de sonido 8KHz
Fuente de poder, 6 bateras AA

Miguel Pincheira Caro mpincheir@ubiobio.cl

Conocer el Ladrillo NXT


Puerto USB
Salidas (Motor)

Encendido, Ejecutar y
Seleccionar

Apagar, Cancelar, Atrs

Entradas (Puertos de
Sensores)

Miguel Pincheira Caro mpincheir@ubiobio.cl

Mientras se ejecuta un
programa, las flechas
pueden mostrar valor
de los sensores,
velocidad de los
motores, etc.

LENGUAJES DE PROGRAMACIN
Programacin del NXT, LEGO ofrece el lenguaje grfico
NXT-G, basado en LabView.
Existen otras alternativas que permiten programar el NXT en:
C (NXC y RobotC)
JAVA
Debemos distinguir entre los programas que permiten que el
robot opere en forma autnoma y los programas que pueden
controlar el robot en forma remota, para esta ltima forma
hay tambin gran nmero de programas como Microsoft
Robotics Studio, C# ,Perl, JAVA, Ruby, etc.

Miguel Pincheira Caro mpincheir@ubiobio.cl

LENGUAJES DE PROGRAMACIN
Programacin del NXT, LEGO ofrece el lenguaje grfico
NXT-G, basado en LabView.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Programacin con
NXT-G

Miguel Pincheira Caro mpincheir@ubiobio.cl

ENTORNO DE DESARROLLO NXT-G


Mens
Paleta de
bloques de
programacin
Guas de
montaje de
robots

Informacin
adicional

Icono para iniciar la


aplicacin
Miguel Pincheira Caro mpincheir@ubiobio.cl

Mensajes de
Ayuda

Palettes
Common:

Complete:

Custom:

Bloques
Ms usados

Todos los bloques

Descargados
Y creados por
el usario

Miguel Pincheira Caro mpincheir@ubiobio.cl

ENTORNO DE DESARROLLO NXT-G


Permite el acceso
al estado de la
memoria y
comunicaciones

Permite
ejecutar solo
una parte del
programa

Permite cargar
un programa
en el NXT

Permite
detener la
ejecucin de
un programa

Permite cargar y
ejecutar el
programa en el
NXT

Bloque inicio
Permite ubicar bloques de
programacin segn la lgica
del programa

Miguel Pincheira Caro mpincheir@ubiobio.cl

Poniendo comandos en un programa

Esto es una secuencia, donde pones tus


comandos

Los comandos se ejecutan de manera secuencial : En este


caso, primero se ejecuta el comando 1, luego el 2, etc.
Miguel Pincheira Caro mpincheir@ubiobio.cl

Usando los Comandos

Los comandos disponbiles, los


encontramos en la paleta a la
izquierda.

Empezaremos con el comando de mover

Miguel Pincheira Caro mpincheir@ubiobio.cl

ESCRIBIENDO un programa bsico


Mover y arrastrar los bloques a la secuencia

Cambiar las opciones y descargar al bloque

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloques ms comnes

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Mover

Escoger el motor que mover


Escoger la potencia del motor
Escoger la direccin a mover o frenar
Escoger la duracin del movimiento :
Rotaciones, grados, segundos, o continuar
eternamente.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Mover
Dentro de las opciones que existen, puedes escoger
mover dos motores al mismo tiempo.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Sound
Reproduce un sonido de los almacenados en
el ladrillo o bien un tono particular
Permite escoger el archivo
Se debe escoger el volumen con que se
reproduce
Se puede indicar si esperar que se reproduzca
el sonido antes de continar.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Sound

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Display
Escoger si mostrar texto o imagen
Escoger si limpiar la pantalla antes de mostrar
(clear)
Si se muestra texto, una lnea permite ingresar
el texto.
Existen coordenadas x,y para definir la
posicin donde mostrar el mensaje
La resolucin es 100 x 64 pixels
Permite hasta 7 lineas de texto.
Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Display

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Esperar Tiempo

Controlado por Tiempo


Espera hasta que han transcurrido X
segundos.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Esperar Sensor

Es controlado por un sensor.


Se Escoge el tipo de sensor que se debe
esperar, en que puerto esta conectado y la
accin que se debe esperar.
La accin depende del sensor.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Loop

Continua con la ejecucin de los bloques


hasta que la condicin Until es verdadera.
Controlado por tiempo
Controlado por Sensor
Controlado por Contador
Loop eterno

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Loop

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Switch
Es equivalente a IF/ELSE
Cambia la ejecucin de un programa,
dependiendo de la condicin.
La condicin puede ser en base a los
sensores, recibir un mensaje, o bien un
tiempo determinado.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Switch

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloques Avanzados

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloques: Variable, Constante y Random


La variables se puden conectar a LOOPS o
SWITCH
Pueden ser
logicas (verdadero, falso)
Nmeros
Texto

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Compracin (<,>)

La comparacin devuelve un valor


verdadero o falso, de acuerdo a las entradas
que tiene.
Se puede usar en un LOOP, o en SWITCH

Miguel Pincheira Caro mpincheir@ubiobio.cl

Bloque: Conversin nmero a texto

Sirve para mostrar una variable nmerica


por el display

Miguel Pincheira Caro mpincheir@ubiobio.cl

Primeros Programas
Hola Mundo

Miguel Pincheira Caro mpincheir@ubiobio.cl

HOLA MUNDO
Para no romper la tradicin, haremos un HOLA
MUNDO con el ladrillo.
Se deber decir Hello y adems mostrar el
mensaje en la pantalla.
Tips:
El programa termina despus de la ltima instruccin.
Si se requiere mostrar un mensaje, quizs se deba
esperar unos segundos antes de terminar el
programa.
La pantalla debe ser limpiada antes de mostrar un
mensaje.

Miguel Pincheira Caro mpincheir@ubiobio.cl

Programa: HOLA MUNDO

Miguel Pincheira Caro mpincheir@ubiobio.cl

Moviento de Motores

Miguel Pincheira Caro mpincheir@ubiobio.cl

Ejemplos bsicos

Avanzar en lnea recta por un segundo

Hacer un cuadrado, emitir un sonido y detenerse

Miguel Pincheira Caro mpincheir@ubiobio.cl

Desafo 1 : Recorrer la Mesa


Programe su Basic-Bot de manera que
puede recorrer las mesas hexagonales, sin
caerse.
Deber avanzar el linea recta una distancia
determinada
Deber girar en un ngulo determinado.
Deber repetir el proceso 6 veces.

35/30
Miguel Pincheira Caro mpincheir@ubiobio.cl

Lectura de Sensores:
Ultrasonido

Miguel Pincheira Caro mpincheir@ubiobio.cl

Sensor Ultrasonido /Distancia


Mide distancia /proximidad
Rango: 0-255 cm
Precision: +/- 3cm

Miguel Pincheira Caro mpincheir@ubiobio.cl

Desafo 2: Antichoque
Construya el programa para su Basic-Bot de
manera que avance en lnea recta hasta que la
distancia detectada por el sensor de
ultrasonido sea menor a un umbral definido
por usted.
Cuando se llegue a esta distancia, su robot
deber girar, retroceder, o lo que usted estime
conveniente para evitar chocar.
38/30
Miguel Pincheira Caro mpincheir@ubiobio.cl

Desafo 3 - Final
Recorrer la mesa, usando sensores
Construya el programa para su Basic-Bot, de
manera que avance en lnea recta por los
bordes de la mesa, y doblando cuando se
llegue al final.
En este desafo usted podr usar dos sensores
de ultrasonido.
Cuando termine su diseo, deber tomarle
una fotografa, para subirla al blog, junto con
el programa que ha creado (una imagen)
39/30
Miguel Pincheira Caro mpincheir@ubiobio.cl

Vous aimerez peut-être aussi