Libreta de Apuntes: Un buen inicio en esta rama del saber e investigación

abril 08, 2005 2:53

Un buen inicio en esta rama del saber e investigación

Imagen del Dia


El año pasado, para un curso, Inteligencia Artificial, me pude comprar un kit de robótica, para dos cosas:


  • Jugar con el :)
  • Aprender y presentar un proyecto de robótica en el curso, además de jugar con el :), jejej eme parece haberlo dicho :)


    El kit en cuestión es el RIS 2.0, Robotic Invention Kits de Lego. El cual es un bloque programable , un par de servo motores, dos sensores de tacto y un sensor de luz, además de 718 piezas Lego, entre las cuales tenemos:eEngranes, poleas, ejes de trasmisión, llantas, vigas, conectores, cables para construir un grupo de robos elementales.


    Este RIS, es una mezcla de arcilla para modelar robots con los bloques legos, además de la operatividad y cerebro necesario para que la vida surja de tu careción, :). Los alcances de los proyectos no tienen fin y esta limitado por la cantidad de bloques para armar, así como de cerebros, para controlarlos.


    Este es una foto de las piezas que trae el equipo:





    El cerebro de la criatura, el RCX


    Consta de un microcontrolador Hitachi H8 (H8/3292) de 16 MHz (5 V), con 16 K de ROM y 512 byte de RAM internas, 2 temporizadores de 8 bit y 1 de 16 bit, conversor A/D de 8 bit, y con 32 K de RAM externa.


    Todo ese poder es usado para controlar:

  • 3 actuadores: servo motores de 9 V.
  • 3 sensores: contacto, luz, temperatura, rotación, dependiendo del kit o adicionales
  • 1 puerto serie de comunicaciones vía infrarrojos, para el RIS 2.0, serial para los inferiores.

    El Bloque




    La ROM de 16 K contiene el driver que se ejecuta cuando se alimenta por primera vez el RCX. Este driver on-chip se amplía­a descargando otros 16 K de firmware al RCX. Tanto el driver como el firmware aceptan y ejecutan instrucciones del PC mediante el puerto de comunicaciones IR o serial, según sea el modelo, para el RCX 2.0 es por infrarrojo. Adicionalmente, se pueden descargar programas de usuario al RCX como código de bytes que se almacena en una región de 6 K de memoria. El firmware se encarga de interpretar y ejecutar las instrucciones de dicho código.


    El diseño del RCX esta inspirado en la tecnología del "ladrillo" programable del MIT (Massachusets Institute of Technology), aunque ambos dispositivos tienen diferentes CPUs y cuentan con sistemas software enteramente diferentes.


    Bloque Programable del MIT









    Especificaciones (como Motor):

  • 350 rpm @ 9 V, en vacío
  • 5 mA en vacío
  • 350 mA
  • 1 V arranca el giro en vacío

    Especificaciones (como Generador):

  • Máx. rpm ~350
  • 9 V de salida @ 350 rpm
  • ~350 mA @ 350 rpm

    Precauciones

  • Nunca exceder 9V

    Sensores

    El RCX controla simultáneamente tres puertos de entrada para conexión de sensores. Estos pueden ser de:


  • contacto
  • luz
  • temperatura
  • rotación
  • presencia

    El voltaje en la entrada es convertido a un valor RAW interno en el intervalo 0 (0V) a 1023 (5V). Dependiendo del tipo de sensor, el número RAW es convertido al número que se observa por programa o mediante boton View del bloque:


    Sensor de contacto: si el valor RAW es menor de 450 se interpreta como 1 y si es mayor que 565 resulta un 0.


    Sensor de temperatura: lee temperatura en el intervalo (-20, +70) ºC: T=(785-RAW)/8.


    Sensor de luz: el sensor de luz reflejada lee intensidad luminosa desde 0.6 lux hasta 760 lux. El RCX lo interpreta como porcentaje: luz=146-RAW/7 en el intervalo (0,100)


    Sensor de rotación: lee 16 posiciones por rotación. La resolución es 500 rpm Máx. Está calibrado para que el RCX lea en grados o 16-avos de rotación.


    Sensores de presencia: están hechos con un Opto-Switch que contiene una fuente IR y un fototransistor separados por una ranura de 0.15 pulgadas. Cuando se inserta un objeto en la ranura, la luz no alcanza al fototransistor, que se pone en corte. Cuando el objeto se retira, el fototransistor conduce de nuevo.




    Programación


    Una vez que ya tienes tu creacion, y tienes esbosada la funcionalidad que tendra y las actitudes de tu robots, osea la programación de su cerebrito :d, exiten varias maneras de darle funcionalidad, podes usar el software que trae el RIS, o usar varios lenguejes en la red para ello, yo en lo personal me identifico mucho con el NQC, un lengueje muy similar al C :), por que sera que me gusta :D, ademas del entorno que trae el RIS, el cual es grráfico, veamos.


    El lenguaje de programación del RIS de LEGO se denomina código RCX. Es un lenguaje imperativo gráfico cuya secuencia de ordenes se construye a modo de piezas de rompecabezas que se apilan consecutivamente. Un ejemplo se puede observar en la siguiente figura.


    En este programa, denominado Program4.rcx, se ordena lo siguiente:

  • activar los dos motores (conectados a los puertos A y C)
  • repetir 5 veces el siguiente bloque de ordenes:
  • cambiar el sentido de giro (marcha atrás)
  • esperar 3 s. (3 s. marcha atrás)
  • cambiar el sentido de giro del motor A (con lo cual se realiza un giro)
  • esperar 3s. (3s. girando)
  • cambiar el sentido de giro del motor A (con lo que se recupera la marcha habitual)
  • apagar los motores.

    Como se observa, es un lenguaje realmente intuitivo y rápido de aprender.

    Aunque la sintaxis de los bloques está en inglés (lo mismo que sucede en los lenguajes textuales como C, VB), la ayuda on-line está en español.

    Espero que hayan entendido un poco el mundo de la robotica, y la funcionalidad del RIS, por el momento es todo, pero pronto, mostrare más ideas, y proyectos relacionados con el "Robotcito" a como le bautizo mi hijo :d.

    Edgardo

    Una foto muy similar a Robotcito :D




    Links

  • Páinas de LEGO: http://www.lego.com/, http://www.legomindstorms.com/
  • MindStorms en la educación: http://www.viztel.com/mie/
  • ROBOLAB (LEGO MidStorms sets for schools): http://www.lego.com/dacta/robolab/home.asp
  • Hardware LEGO (recambios): http://www.lego.com/dacta/hardware/default.asp
  • Página de enlaces para robots LEGO: http://www.cs.uu.nl/people/markov/lego/index.html
  • Compilador muy similar al del lenguaje C, denominado NQC (Not Quite C).: http://www.enteract.com/~dbaum/nqc/index.html
  • Sistema operativo para el bloque: LegOS (en plataformas Windows y Linux): http://www.noga.de/legOS/, http://legos.sourceforge.net/
  • Programació bajo Unix: http://lucas.hispalinux.es/Presentaciones/200002hispalinux/conf-16/16-html/hispalinux2000.html
  • Comunidad Lego Mindstorm: http://mindstorms.lego.com/eng/community/default.asp
  • Tutoriales: http://mindstorms.lego.com/eng/community/tutorials
  • Lego para las Escuelas: http://www.lego.com/eng/education/mindstorms/default.asp

  • Posteado por: | Categories: Robotica & Electrónica