¿Qué es este blog?

La idea de este blog nace para compartir los avances que se vayan realizando a lo largo de un estudio sobre cómo interconectar los distintos sensores que se pueden encontrar en el mercado, o fabricar de forma casera, con la plataforma Mindstorms de LEGO. Para ello se hará uso ARDUINO, un entorno de desarrollo abierto basado en microcontrolador.

martes, 30 de noviembre de 2010

Estudio de la Entrada/Salida de los Mindstorms

    En este apartado se realiza un estudio de las características de entrada/salida de los Mindstorms de LEGO. Para ello, se verá en primer lugar cómo son físicamente los conectores que permiten al robot interactuar con los sensores, y a continuación (en otro post) se estudiarán los protocolos mediante los cuales se establece la comunicación. Finalmente se verá cómo hacer uso de dichos protocolos usando el lenguaje de programación LejOS (LEGO Java Operating System) y otros lenguajes disponibles.
     
Caracterización física de los puertos de entrada/salida del NXT

    Las conexiones de sensores/actuadores al robot se realizan mediante unos conectores modulares de tipo RJ12 de 6 pines como los que se aprecian en la figura siguiente:


   Estos conectores son compatibles con los conectores de modelos anteriores de LEGO, como el RCX, aunque para ello se debe usar un adaptador.

    Los protocolos que usa el NXT para comunicarse con sus sensores y actuadores son básicamente dos: el protocolo I2C y el protocolo RS-485 que se describirán en el siguiente apartado. Veamos qué función cumple cada uno de los pines del conector anterior: (Hacer click en la imagen para ampliarla)


    Como se puede apreciar en la tabla anterior, los pines 5 y 6 son los que usa el robot para mandar las señales que usarán los protocolos de comunicación, teniendo estas una función u otra según el protocolo usado.

4 comentarios:

  1. Hola, has tratado de conectar UN sensor de distancia (ultrasónico) a DOS NXT al mismo tiempo? o has tratado de conectar un sensor de distancia a un NXT y un Arduino al mismo tiempo?
    Disculpa, si lo has realizado, podrias por favor, decirme como?

    ResponderEliminar
  2. Hola Chris,

    De momento no he probado nada de eso. Lo segundo que comentas, conectar un sensor de distancia a un NXT y a un Arduino sí que será una de las cosas que realice cuando empiece con las pruebas hardware. La idea es que Arduino haga de "puente" entre el sensor y el robotito. Cuando lo haga te lo comentaré, o lo podrás ir leyendo ya que lo iré contando por aquí.

    En cuanto a la primera opicón, no lo he pensado pero supongo que conectando Arduino a dos NXT y a un sensor, puedes programar Arduino para que vaya mandando datos a uno y otro robot a la vez (o de forma alternada).

    Espero que te sea útil. Un saludo!

    ResponderEliminar
  3. Hola estoy intentado conectar el sensor de ultrasonidos a arduino, pero como una entrada analógica directamente, creo que por el pin1 (cable blanco) el sensor emite el valor analógico proporcional a la distancia. La idea es no utilizar la comunicación i2c sino sólo como entrada analógica. No me funciona conforme he probado, alguna idea???? pabloeweb@gmail.com

    ResponderEliminar
  4. Bueno, corrígeme si me equivoco pero creo el sensor de ultrasonido está hecho para trabajar con I2C, y por lo tanto no da nada en ese hilo analógico. Si el sensor sólo está pensado para conectarse a un bus I2C, no te quedará otra que conectarlo a los pines I2C de Arduino, o a los pines analógicos usando una emulación de I2C por software (hay librerías para ellos, las puse en otro post, pero si no las encuentras avísame y te busco el enlace).
    En cambio, si quisieras conectar un sensor analógico al LEGO sólo tendrías que usar el hilo blanco (valor analógico) y el negro (tierra).

    Espero que te sirva. Un saludo!

    ResponderEliminar