1. Sensores y actuadores Lego Los sistemas Lego poseen una serie de sensores y actuadores estándar cuyo uso puede resultar de interés. Por otra lado, existe un número aún mayor de sensores fabricados por terceros. La variedad es tal que se dispone desde sencillos interruptores de presión hasta sofisticados giróscopos. Por lo tanto, en lo que se sigue se analizan las caracterı́sticas de estos dispositivos y de qué modo se implementará la compatibilidad con nuestro sistema. Existen amplias diferencias entre los sistemas Lego RCX y su sucesor, el NXT. Ambos sistemas se analizarán por separado. 1.1. 1.1.1. Sistema RCX Sensores Concebido como un sistema de bajo costo y adecuado para el público infantil, el RCX cumple estos requisitos mediante sensores especialmente diseñados considerando la sencillez de uso y la robustez. Los sistemas RCX solamente pueden manejar tres sensores. Cada sensor tiene únicamente dos hilos, y no son polarizados. Esto significa que los conectores (que tienen el mismo encastre que todos los ladrillos Lego) pueden ser conectados en cuatro posiciones posibles y funcionar de la misma manera. La forma de implementar sensores activos únicamente con dos hilos es haciendo que durante un cierto perı́odo de tiempo el controlador energize el sensor. Una vez retirada la alimentación, la conexión se convierte en una entrada y se procede entonces a leer la información proporcionada por el sensor. Este procedimiento se repite de manera periódica. Naturalmente, esta metodologı́a presenta algunos inconvenientes. Uno de ellos es el tiempo muerto que insume la alimentación del sensor, donde no es posible hacer lecturas. Otro es la escasa sofisticación de la lectura, que con tan sólo dos hilos se reduce a una señal analógica de 0 a 9V. 1 Figura 1: gráfico de tensión y tiempo de sensor Lego Figura 2: Circuito de un sensor Lego RCX generalizado Todo el trabajo de interpretación de la lectura, conversión AD, acondicionamiento de señal, etc. recae sobre el controlador RCX. En la Figura 1 puede apreciarse la tensión presente en un conector RCX donde se observa el estado alto correspondiente a la alimentación y el bajo correspondiente a la adquisición. El tiempo mı́nimo de polarización es del orden de 3ms. 1.1.2. Implementación La Figura 2 señala la implementación eléctrica de un sensor RCX generalizado. La tensión aplicada en los terminales carga el condensador C1 para alimentar 2 Figura 3: Interface con el controlador RCX el circuito. Los cuatro diodos D1 a D4 forman un rectificados de onda completa que aseguran la independencia de cómo sea conectado el dispositivo. El transistor Q1 actúa como una fuente de corriente capaz de proporcionar de 0 a 400 uA. Mientras el dispositivo está polarizado solamente circula una fracción de miliampere. En cuanto se retira la polarización el dispositivo se alimenta mediante el condensador C1. La cantidad de corriente circulante causa una caı́da de tensión que puede medirse entre los terminales de la resistencia de carga de 10K. Observar que los diodos D5 y D6 también permiten la independencia de la posición de los conectores. En la Figura 3 se muestra cómo se realiza la conexión con el controlador RCX. Si la corriente de salida varı́a en el rango de 0 a 400uA entonces la tensión presente a la entrada del conversor AD irá de 5 a 1V. Suponiendo un conversor AD de 10 bits, el rango de valores de salida se ubica aproximadamente entre 200 y 1000. A continuación se comentan los detalles de algunos de los sensores RCX mas comunes. 1.1.3. Interruptores El interruptor es el mas sencillo de todos los sensores Lego. El uso tı́pico es como detector de colisiones o como detector de fin de carrera. Con el auxilio de algunos accesorios mecánicos incluso puede usarse para detectar la ausencia de suelo bajo el robot. La Figura 4 muestra la constitución de uno de estos sensores. Observar la presencia de la resistencia en serie de 500 destinada a evitar la puesta a tierra 3 Figura 4: Interruptor LEGO directa del terminal del controlador. No existe ninguna clase de acondicionamiento de señal para prevenir el problema del rebote de los contactos en del interruptor, ni siquiera un condensador en paralelo. Por lo tanto la responsabilidad queda enteramente en manos del controlador para que lo resuelva mediante hardware o bien por software. 1.1.4. Sensor de luz El sensor de luz estándar que se incluye en todos los kits RIS de la lı́nea RCX consiste en un par emisor-receptor. Con esta disposición el dispositivo puede usarse para guiar a un robot por sobre una lı́nea en el suelo iluminada por el propio sensor. El pico de sensibilidad del fototransistor incluido en el dispositivo se encuentra en el infrarrojo cercano (800nm) El conjunto está encapsulado de modo que la captación de luz abarca un ángulo bastante amplio por lo que la directividad es pobre. Para alguna aplicación puede ser conveniente dotar al sensor de aditamentos mecánicos que la incrementen. La Figura 5 y Figura 6 representan el circuito eléctrico del sensor de luz y su respuesta relativa. Observar que también puede verse la respuesta que se obtiene al eliminar el led emisor, lo que a veces se hace para mejorar la sensibilidad en condiciones de poca luz ambiental. 1.1.5. Sensor de rotación Los sensores de rotación se implementan en base a un encoder de baja resolución, constituido por dos fototransistores y un rotor de cuatro dientes. Con estos elementos se tienen 16 pasos por vuelta, es decir que la precisión es de solamente 22.5 grados. La salida del sensor es multinivel, con tensiones establecidas en 1.3, 3.3, 2.0 y 4.5V de manera de proporcionar también información sobre el sentido de giro. 4 Figura 5: Esquema del sensor de luz estándar Figura 6: Respuesta relativa con y sin led emisor 5 Figura 7: Salida multinivel del sensor de rotación Si bien estos sensores son ampliamente difundidos entre los usuarios de los kits RIS RCX no son estándar de LEGO. La Figura 7 muestra la salida del sensor de rotación. Se entiende que la sucesión de los distintos niveles será diferente ya sea que la rotación sea en un sentido o en otro. En la Figura 8 se aprecia el esquema eléctrico del sensor de rotación. 1.2. Sistema NXT Con los nuevos controladores NXT la situación es algo diferente porque se elimina la restricción de los 2 hilos. El nuevo sistema dispone de cuatro puertos con terminales de 6 hilos cada uno. Los sensores pueden ser analógicos o digitales y es importante destacar que se mantiene la retrocompatibilidad con los sensores RCX. En la Figura 9 se muestra la distribución de los terminales de los nuevos puertos NXT. El pin de entrada 1 está directamente conectado a un conversor AD de 10 bits. A los efectos de mantener la retrocompatibilidad, el uso de estos terminales es idéntico a los de los sistemas anteriores, donde como se recordará existe un suministro de tensión durante un tiempo de 3ms seguido de un intervalo de lectura de 0.1 ms 6 Figura 8: Esquema eléctrico del sensor de rotación Figura 9: Pines de los puertos NXT 7 Los pines 5 y 6 son responsables de la comunicación digital. El protocolo establecido para la interfaz digital el I2 C de Philips Semiconductors. La posibilidad de interactuar con sensores digitales ofrece varias ventajas frente a sus contrapartes analógicos: Los dispositivos pueden direccionarse Varios sensores pueden compartir un mismo puerto sin necesidad de multiplexado. Se puede acceder a registros individuales de los dispositivos con lo que es posible el control refinado de parámetros tales como calibración, retardos, etc. Los sensores pueden tener tanta inteligencia como sea necesaria de modo de entregar lecturas autónomas que no requieran el uso del procesador central del NXT Observar que los puertos equipados con el protocolo I2 C permiten el control no solamente de sensores sino también de actuadores. Existen dispositivos comerciales que permiten la conexión de hasta 7 motores o 7 sensores en un mismo puerto. Actualmente el único dispositivo digital fabricado por LEGO es el medidor de distancia por ultrasonido. Sin embargo existe una amplia gama de sensores de terceros que hacen uso de la tecnologı́a digital como por ejemplo el compás magnético CMPS03 de HiTechnic o el medidor de distancia óptico DISTNX de Mindsensors. Finalmente, el sistema NXT descarta el uso de los conectores tipo ladrillo LEGO en favor de una variante de los conectores RJ12. Existen adaptadores para interconectar ambos sistemas. 1.2.1. El protocolo I2 C En este apartado se pretende dar una descripción somera del protocolo I2 C destacando los aspectos esenciales. Se ofrecerá una información mas detallada mas adelante, en la sección dedicada a la implementación del mismo. El I2 C es un protocolo que provee comunicación serie y sincrónica. Aunque admite velocidades de hasta 3.4MHz, el estándar de LEGO fija la transmisión en 9600 bit/seg. El direccionamiento es de 8 bits por lo que la cantidad máxima de dispositivos conectados es de 128. Hace uso de únicamente dos lı́neas y una tierra común: SCL (System Clock) lı́nea de pulsos de reloj para sincronismo SDA (System Data) lı́nea por la que circulan los datos entre los dispositivos 8 En reposo ambas lı́neas deben polarizarse en estado alto mediante resistencias ((pull up)). Se distingue entre dispositivos maestros y esclavos. Si bien el protocolo admite configuraciones con varios maestros, en el entorno de la aplicación LEGO se prevé que únicamente el controlador NXT es el dispositivo maestro. Con ambas lı́neas en reposo, el maestro inicia la acción solicitando la atención de uno de los dispositivos emitiendo su dirección única de 7 bits, más un octavo bit que indica la acción que pretende el maestro: o bien leer o bien escribir sobre el esclavo. Los datos también se transfieren en secuencias de 8 bits. Por cada bloque de 8 bits correctamente recibidos el dispositivo receptor emite un bit de reconocimiento (ACK) En resumen, la secuencia normal de escritura hacia un dispositivo es la siguiente: El maestro envı́a una secuencia de arranque (START) Envı́a la dirección del esclavo requerido mas un bit que indica la intención de escribir. Envı́a la dirección del registro interno del dispositivo. Se escribe el o los bytes de datos. El maestro envı́a la secuencia de STOP. Para leer desde un dispositivo, la secuencia de acciones es parecida, con la variante de que primero se escribe sobre el esclavo para informarle cuál es el registro requerido y en un segundo paso (con una nueva secuencia de START por parte del maestro) se hace efectiva la lectura. 2. Actuadores Si bien la lı́nea LEGO cuenta con una amplia variedad de actuadores, incluso con fuerza motriz de origen neumático no hay duda de que los mas usados son los clásicos motores. Por eso en este trabajo nos concentraremos en los motores eléctricos disponibles para los sistemas LEGO. 9 2.0.2. Motores Todos los motores LEGO son de corriente continua e imán permanente. Las variaciones vienen por el lado de la potencia disponible y de la transmisión. El torque y la velocidad de rotación de cada motor está determinado por la existencia y el tipo de engranajes reductores que contenga, además de su potencia nominal. Todos los motores de la lı́nea RCX disponen de un encapsulado compatible con los ladrillos LEGO. Los motores NXT en cambio adoptan el nuevo sistema de encastre de piezas largas, igual que el que tiene el propio controlador. Se destaca que tanto los sistemas RCX como los NXT disponen de un gran surtido de accesorios para el mejor uso de estos motores. Entre otras piezas se tienen trenes de engranajes, juntas cardan, diferenciales, poleas, cremalleras, etc. Con esto se puede dotar a los sistemas con caracterı́sticas especiales como por ejemplo bloquear totalmente el motor en ausencia de tensión usando una combinación de piñón y tornillo sin fin. Normalmente, el control de estos motores se hace mediante la técnica de modulación de ancho de pulso (PWM) Algunos motores cuentan con protección interna contra sobrecargas (termistores) y también contra sobretensiones. Esto implica que no siempre es posible sostener velocidades máximas por tiempo indefinido. A continuación se describen los distintos modelos de motores LEGO de 9V con sus principales caracterı́sticas. Lugnet-Peeron 2838, LEGO 74569 Es el mas antiguo de los motores LEGO (1991) No posee reducción interna por lo que si bien presenta una buena velocidad de rotación por el contrario su torque es extremadamente pobre. Figura 10: Motor 2838 Lugnet-Peeron 2986, LEGO 70823 Se trata de un micromotor pequeño y liviano. Tanto el torque como la velocidad son bajos pero respetables para su tamaño. 10 Figura 11: Motor 2986 Lugnet-Peeron 71427c01, LEGO 71427 Este motor es el reemplazo del 2838. Posee reducción interna y buena eficiencia. Figura 12: Motor 71427 Lego 43362 En el 2002, LEGO reemplazó el motor 71427 con el nuevo 43362. Si bien el aspecto exterior es idéntico al de su predecesor (ver Figura 12) este motor posee una estructura interna diferente con la que se obtiene casi la misma performance pero con una reducción del peso sustancial. Peeron 5292 También introducido en el año 2002 este potente motor está diseñado para la construcción de mecanismos que necesitan desplazarse a gran velocidad. Es un motor de alto consumo y no se recomienda su uso con los sistemas RCX. Tiene dos ejes de salida, uno de ellos con un factor de reducción de 23/17. Figura 13: Motor 5292 Peeron 47154 Este motor posee un eje con fricción y un diseño con caras planas que facilita el montaje. 11 Figura 14: Motor 47154 Motor LEGO NXT Este es el motor especı́fico de la lı́nea NXT introducida en el año 2006. Incorpora un sensor de rotación que es capaz de retornar la posición del eje con una precisión de 1 grado. No se recomienda su uso con los sistemas RCX debido a su alto consumo de corriente. Figura 15: Motor NXT Las caracterı́sticas mecánicas y eléctricas de estos 7 motores se resumen en la siguiente tabla: motor peso (gr) velocidad libre(RPM) consumo libre(mA) torque (N/cm) consumo frenado(mA) 2238 48 4100 35 0.85 700 2986 10 35 6 1.6 80 12 71427 42 360 3.5 6 360 43362 28 340 9 5.5 340 5292 55 1600 160 12 3200 47154 40 460 31 6 580 NXT 80 170 60 50 2000