Comandament a distància
Comencem experimentant amb dos NXT, utilitzant com a elements d'entrada els seus propis botons i com a sortida el so i la pantalla:
Desenvolupem un programa que envii un valor aleatori comprés entre 200 y 400 de manera què el NXT esclau reprodueixi un so d'aquesta freqüència.
Programació del NXT mestre
Algoritme:
Obté un número aleatori entre 200 i 400
Envia un missatge amb el número obtingut
El programa:
Generació de números aleatoris:
Dades / Aleatori
Enviament de missatges:
Acció / Enviar missatge
Configuració de l'enviament del missatge:
Indicar el número de connexió amb l'esclau establert a la configuració de la connexió.
La connexió 0 es reserva per si l'esclau ha d'enviar un missatge al mestre (l'haurà d'enviar a la connexió 0).
Indicar el tipus de dades que conté el missatge: en aquest cas, numèriques.
Programació del NXT esclau
Algoritme:
Llegir la bústia d'entrada establerta
Reproduir un so amb la freqüència continguda al missatge
Si volem que les accions es repeteixin indefinidament cal ficar-les dins d'un bucle.
El programa:
Un cop creats els programes només queda connectar els NXT via Bluetooth, descarregar els programes i executar-los (primer posem en marxa el programa esclau i a continuació el mestre).
Enviem missatges amb els botons del NXT
Si premem un botó, que es vegi una cara. Si premem un altre botó, que es vegi una altra cara ?
mestre:
Botó dret: missatge xxx
Botó esquerre: missatge yyy
esclau:
si reb xxx: mostra sonrirue
si reb yyy: mostra tristor
Ara movem un robot
Programem el robot mestre
Quan premem un botó del NXT mestre (fletxa dreta a l'exemple), aquest enviarà un missatge: xxx
Para enviar un mensaje inalámbrico (una vez configurados los números de conexión de todos los NXT), hay que seleccionar primero el número de conexión del NXT de destino. Luego elija el formato del mensaje (textual, numérico o lógico). Introduzca el mensaje digitando algún texto o un número, o eligiendo una condición lógica (verdadero o falso). Finalmente, elija el número de buzón (en el que deberá almacenarse el mensaje) del NXT de destino. El formato del mensaje y el propio mensaje pueden especificarse utilizando cables de datos de entrada.
Utilice los botones de radio para elegir el número de conexión del NXT de destino. El número de conexión de cada NXT puede considerarse como su dirección en el mundo inalámbrico. Para enviar un mensaje a un NXT específico, debe indicarse su número de conexión.
También puedes utilizar el bloque de conexión Bluetooth para conectar un NXT desde la lista de Contactos. Consulta la sección correspondiente al bloque de conexión Bluetooth para más información.
El menú desplegable le permitirá seleccionar el tipo de mensaje (textual, numérico o lógico).
Introduzca el mensaje digitando texto o un número (si ha elegido Texto o Número respectivamente) o, si desea enviar un mensaje lógico, utilice los botones de radio para elegir verdadero o falso.
Elija el número de buzón del NXT de destino. Cada NXT tiene diez números de buzón en los que pueden depositarse los mensajes inalámbricos. Cada número de buzón puede guardar hasta cinco mensajes. Si el número de buzón ya tiene cinco mensajes guardados, cuando se agregue otro mensaje, el NXT borrará el mensaje más antiguo.
Programem l'esclau
Quan l'esclau rebi el missatge, que vagi cap endavant unes quantes rotacions!
Para recibir un mensaje inalámbrico (una vez configurados los números de conexión de todos los NXT), hay que indicar primero el formato del mensaje que se quiere recibir (textual, numérico o lógico).
Si desea comprobar si un determinado mensaje se ha recibido (y hacer que el bloque Recibir mensaje envíe una señal "verdadero"), escriba el texto o número de prueba en la casilla de introducción, o active la opción verdadero o falso. Si el mensaje recibido concuerda con el mensaje de prueba, el bloque envía una señal "verdadero" a través de la toma “√/x”.
Para acabar de configurar el bloque, elija el número de buzón en el que debe almacenarse el mensaje recibido.
Configuració del bloc:
El menú desplegable le permitirá seleccionar el tipo de mensaje (textual, numérico o lógico) que se recibe.
Para comparar el mensaje recibido con un mensaje de prueba, escriba el texto o el número de prueba (si ha elegido Texto o Número respectivamente como formato) o utilice los botones de radio para elegir el valor lógico de prueba (verdadero o falso).
Elija el número de buzón en el que se almacenará el mensaje recibido.
Comandament a distància
en funció d'un botó
Una vez que los dos robots están conectados por bluetooth comenzamos con la programación de cada uno. Uno será el Robot MAESTRO, quién será el encargado de mandar los mensajes (órdenes) al robot esclavo, quién a su vez recibirá los mensajes y actuará de acuerdo a ellos. Recordemos que la manera de enviar órdenes es mediante mensajes de texto. Por ejemplo si el Robot MAESTRO envía el mensaje “movete”, en el Robot ESCLAVO deberemos programar para que cuando recibamos la palabra “movete” este mueva los motores para que realmente se mueva.
Vamos a mostrar la programación del ROBOT MAESTRO
Esta programación funciona de la siguiente manera:
Primero toda la programación está encerrada en un LOOP infinito, por lo que los comandos que están dentro, siempre vuelven a repetirse.
El primer comando es un SWITCH, el que nos permite saber si el sensor de contacto está o no siendo presionado. El dibujo nos muestra que la programación por la parte de arriba está hecha por si el botón está siendo presionado y la de abajo la hace cuando el botón no es presionado.
Si el sensor es presionado pone en funcionamiento el comando de bluetooth para ENVIAR MENSAJES, y envia el texto “movete”.
Cuando el sensor no es presionado envia el mensaje “quieto”
Ahora observemos la programación del ROBOT ESCLAVO
También en este caso, todos los comandos se encuentran dentro de un LOOP infinito.
El primer comando dentro del LOOP, es es comando RECIBIR MENSAJE en el cuál hacemos uso de una nueva herramienta de programación. En este casillero unimos el comando ENVIAR MENSAJE mediante una línea, con el comando SWITCH. Esta línea es la encargada de enviarle el texto que viene del ROBOT MAESTRO y transferirlo al SWITCH siguiente. Este SWITCH actúa de dos maneras. Si la palabra enviada desde el ROBOT MAESTRO es “movete” observemos que los comandos que actúan son los de los motores A y C en movimiento. Por el contrario, si desde el ROBOT MAESTRO el texto enviado es “quieto”, los motores se detienen.
En definitiva: si en el ROBOT MAESTRO es presionado es sensor de contacto, entonces el ROBOT ESCLAVO se mueve y por el contrario, si en el ROBOT MAESTRO no es presionado el sensor de contacto, entonces el ROBOT ESCLAVO detiene sus motores.
http://blog.electricbricks.com/es/2009/10/tutorial-nxt-mando-distancia-bluetooth/ link