martes, 15 de octubre de 2013

Principios básicos de LEGO Technic: Engranajes


NOTA: Este artículo es una adaptación al español del artículo "Technic Fundamentals", publicado en  Blackbird's Technicopedia. Me he permitido añadir alguna imagen y he añadido o modificado algunos puntos para aclarar o enriquecer conceptos.

Engranajes

Acudimos a la wikipedia para tener una definición de engranaje.
Se denomina engranaje o ruedas dentadas al mecanismo utilizado para transmitir potencia de un componente a otro dentro de una máquina. Los engranajes están formados por dos ruedas dentadas, de las cuales la mayor se denomina 'corona' y la menor 'piñón'. Un engranaje sirve para transmitir movimiento circular mediante contacto de ruedas dentadas. Una de las aplicaciones más importantes de los engranajes es la transmisión del movimiento desde el eje de una fuente de energía, como puede ser un motor de combustión interna o un motor eléctrico, hasta otro eje situado a cierta distancia y que ha de realizar un trabajo. De manera que una de las ruedas está conectada por la fuente de energía y es conocida como engranaje motor y la otra está conectada al eje que debe recibir el movimiento del eje motor y que se denomina engranaje conducido.1 Si el sistema está compuesto de más de un par de ruedas dentadas, se denomina 'tren.
De la definición anterior podemos concluir que se denomina engranaje tanto al mecanismo de transmisión de energía como a los componentes que se engranan entre sí para obtener la transmisión, como pueden ser las ruedas dentadas u otros elementos de transmisión. Típicamente, los engranajes se utilizan para transmitir el movimiento de rotación de un eje (motor) a otro (conducido). Los engranajes más comunes son las ruedas dentadas, pero hay otros tipos, como los sinfines y las cremalleras. Ciertos tipos de engranajes también pueden resultar en movimiento de traslación (las cremalleras). 

Fuerza de Torsión

El par de torsión (torque) es el nombre que se da a las fuerzas de torsión, pues para que exista torsión se requieren 2 fuerzas, que se ejercen en sentido opuesto.

El valor del par depende del radio de acción de la fuerza (brazo). La mayor o menor torsión que genera una fuerza, depende de la distancia al punto de pivote. A mayor brazo mayor par.

El par es un número que expresa el valor de la fuerza de torsión. Se expresa en kilos x metros (kilográmetros). Es decir, si ejercemos una fuerza de 1 kilo con un brazo de 1 metro el par será de 1 kilo / metro (1 kilográmetro).

Relación de Transmisión

Los engranajes, como hemos visto, permiten transmitir movimiento de un eje (eje motor) a otro (conducido). Al transmitir movimiento pueden ocurrir varias cosas. En el caso más simple, el eje motor y el eje conducido giran a la misma velocidad de rotación. Esto ocurre si los dos engranajes tienen el mismo número de dientes. Sin embargo, en la mayoría de los casos los engranajes se utilizan para cambiar la velocidad y el par de torsión entre los ejes. Este cambio se mide mediante un valor denominado relación de transmisión, que en los engranajes simples como los utilizados en LEGO se calcula como el cociente entre el número de dientes del engranaje motor y el número de dientes del engranaje conducido.


es la velocidad angular de entrada
es la velocidad angular de salida transmitida
es el número de dientes del engranaje de entrada.
es el número de dientes del engranaje de salida.

Un valor de par negativo indica que se invierte el sentido del giro.

Por ejemplo, si el engranaje de entrada tiene dientes 8 y el engranaje de salida tiene 24 dientes, a continuación, la relación de transmisión es 24/8 = 3. La nomenclatura estándar para esto es utilizar dos puntos y simplificar la fracción, así pues en vez de 24:8 lo expresamos como 3:1.

Entonces, ¿qué significa tener una relación de transmisión de 3:1?
  • En primer lugar, ese cociente expresa la relación entre las velocidades de rotación de los ejes. El engranaje con menos dientes siempre gira más rápido, por lo que en este ejemplo, el engranaje de 8 dientes gira 3 veces más rápido que el engranaje de 24 dientes. 
  • En segundo lugar, la relación del par de torsión es la inversa de esta relación. En este ejemplo, el engranaje de 8 dientes tiene 3 veces menos que el par de engranajes de 24 dientes. Al cambio producido en este par se le denomina ventaja mecánica.
Una transmisión se puede utilizar para
  • Reducir el par, a la vez que aumenta la velocidad. A esta transmisión se la denomina "multiplicación" y se utiliza para proteger los componentes de un sistema de transmisión del alto valor de par de un motor.
  • Aumentar el par, a la vez que se reduce la velocidad. A esta relación de transmisión se la denomina "reducción". Se utiliza por ejemplo para levantar algo pesado con un pequeño motor o manivela.
  • Por último, a veces no se utilizan los engranajes para obtener reducción ni multiplicación de velocidad, sino simplemente para transmitir el par de un punto a otro.

Tipos de engranaje LEGO

Hay docenas de diferentes tipos de engranajes en la industria, pero sólo unos pocos tienen su representante en LEGO. La existencia de engranajes LEGO en realidad es anterior a las series Technic (denominadas entonces Expert Builder) y se remonta a las ruedas dentadas Samsonite de la década de 1960 (Samsonite fabricó piezas con licencia de Lego desde 1963 a 1972). A continuación se introducen algunos conceptos fundamentales sobre engranajes y se describen los principales tipos de engranaje en LEGO.

Engranajes rectos (cilíndricos)

Transmisión con engranajes rectos

Los engranajes cilíndricos o rectos (spur gear or spur wheel) operan sobre ejes que son paralelos. En esta animación, el engranaje gris de 16 dientes en el eje verde está impulsando al engranaje rojo de 24 dientes en el eje amarillo. En este ejemplo la relación de transmisión es 3:2, que es la relación entre el número de dientes de ambos engranajes (24:16).

Un aspecto a tener en cuenta es que el contorno de los dientes de los engranajes no es plano. El perfil utilizado se llama envolvente (involuta) y permite que los dientes de los engranajes rueden uno contra el otro en lugar de resbalar, lo cual minimiza la fricción y maximiza la eficiencia.

Otro aspecto a considerar es el de los rodamientos de apoyo. En el ejemplo de la animación cada eje cuenta con 2 rodamientos de apoyo. En general, es conveniente usar por lo menos 2 rodamientos de apoyo en cada eje para equilibrar las cargas de los engranajes, aunque es posible utilizar sólo un rodamiento a costa de perder en la eficiencia en la transmisión. Cuanto más cerca se encuentre un rodamiento del engranaje (como el ladrillo negro), más eficiente será el apoyo proporcionado.También es generalmente mejor colocar los rodamientos a cada lado de la rueda dentada (como los ladrillos de color azul) que poner los dos en el mismo lado.  Un efecto secundario de un par de engranajes de dientes rectos es que el eje de salida gira en la dirección opuesta a la del eje de entrada, un efecto que se puede ver claramente en la animación.

Los engranajes rectos son los más comunes en Technic. Hubo algunos engranajes rectos antes incluso de lanzar la serie Technic en 1977. En general eran engranajes bastante grandes, con un número de dientes que oscila entre los 9 y los 42 dientes.
Engranajes rectos pre-Technic (hasta 1977)
La imagen de abajo muestra los engranajes rectos estándar. Los tres que se muestran en gris claro (8, 24 y 40 dientes) existieron desde el comienzo de Technic en 1977 y todavía están en producción. El de 16 dientes mostrado en marrón claro salió en 1979. El de 24 dientes en  gris oscuro surge como alternativa más resistente para el antiguo de 24 dientes a partir de 1998. El de 24 dientes en blanco incluye un mecanismo equipo de "embrague" que se activa si se superada un determinado par. Es raro y fue visto por primera vez en 1997. Todos estos utilizan el mismo perfil de diente por lo que cualquier engranaje de dientes rectos se puede utilizar con cualquier otro engranaje de dientes rectos. Tenga en cuenta también que todas las cuentas de dientes son un múltiplo de 8, que hace que los cálculos de relación de transmisión sean fáciles. 
Engranajes rectos Technic


Por último, los engranajes cónicos dobles también se pueden utilizar como engranajes de dientes rectos. Estos se explican con más detalle en el apartado de engranajes cónicos .Tienen dientes más anchos que los engranajes rectos y soportan más par de torsión.

Engranajes cónicos

Los engranajes cónicos operan sobre ejes que no son paralelos. Los engranajes cónicos se pueden realizar específicamente para ejes en cualquier ángulo, pero los engranajes cónicos de LEGO están hechos para ejes perpendiculares (90 grados). En esta animación, el engranaje rojo en el eje amarillo está impulsando el engranaje azul en el eje verde. Ambos están rotando a la misma velocidad debido a que los engranajes tienen el mismo número de dientes (relación de transmisión 1:1). 
Transmisión entre engranajes cónicos


Los engranajes cónicos tienen formas complejas de dientes que también generan fuerzas complejas sobre los ejes de apoyo. Por lo tanto, es aún más importante que para los engranajes rectos la correcta disposición de los rodamientos de apoyo. En la animación, una caja de cambios especial se utiliza específicamente para este propósito.

Los engranajes cónicos son el segundo tipo de engranaje más común en Technic. La siguiente imagen muestra los engranajes cónicos básicos. El gris de 14 dientes se introdujo en 1980 y se ha utilizado durante mucho tiempo, incluso como elemento de los antiguos diferenciales. En 1995 se introdujo como reemplazo del primero el de 12 dientes, en marrón claro. Este engranaje tiene una banda entre los dientes, lo que lo hace bastante más resistente, y se utiliza en los diferenciales actuales. El de 20 dientes en gris oscuro se introdujo en 1999 y es bastante más raro

Engranajes cónicos

Los engranajes cónicos dobles, mostrados a a continuación, están biselados en ambos lados de la rueda dentada. Esto los hace más versátiles que los engranajes cónicos regulares, pero también son dos veces más gruesos y por lo tanto ocupan más espacio. Vienen en 3 tamaños: 12, 20 y 36 dientes, y comenzaron a introducirse en 1999.

Engranajes cónicos dobles


Engranajes de tornillo (sinfín)

Un engranaje de tornillo o sinfín se puede considerar como un engranaje con un solo diente. El sinfín LEGO opera (se "engrana") sobre un eje perpendicular al primero. Estos engranajes tienen algunas características específicas que los hacen diferentes de otros. En primer lugar, se pueden lograr reducciones muy elevadas de par en una sola etapa. Debido a que el sinfín equivale a una rueda con un sólo diente, la relación de transmisión es simplemente el número de dientes en el engranaje de acoplamiento. Por ejemplo, un sinfín engranado con una rueda dentada de 40 dientes tiene una reducción de 40:1. En segundo lugar, los sinfines tienen mucha mayor fricción (y menor eficiencia) que los otros tipos de engranajes. Esta fricción aumenta a medida que aumenta la carga del engranaje (el par). Por último, los engranajes de tornillo por lo general no pueden invertir la dirección de la transmisión. En la animación de ejemplo, el tornillo sinfín en el eje verde impulsa al engranaje recto azul en el eje rojo. Si cambiamos la dirección de transmisión, y es el engranaje azul el que impulsa, entonces el sinfín no gira. Esto es útil para bloquear las cosas en su lugar, como el uso de una manivela para subir y bajar una puerta de ascensor.  También hay que tener en cuenta que este tipo de transmisión provoca una fuerza sobre el engranaje de tornillo en la dirección del eje de transmisión. Como consecuencia hay que utilizar algún mecanismo para evitar que el engranaje se deslice a lo largo del eje; una posibilidad es la caja de cambios de color amarillo en la animación.
Engranaje de tornillo o sinfín



El engranaje de tornillo LEGO mide algo menos de 2 studs de largo. Varios de ellos se pueden poner en fila para hacer un tornillo más largo. Es incluso posible acoplar un tornillo sin fin con una cremallera, aunque el ajuste no es muy bueno.


Cremalleras

Una cremallera es como una rueda dentada que se ha desplegado hasta ponerla en posición horizontal. Es un medio de transformar un movimiento de rotación en un movimiento de traslación. A medida que el engranaje recto gira empuja el engranaje de cremallera a lo largo de su eje longitudinal. No hay ninguna relación de transmisión en el sentido tradicional, pero cuantos menos los dientes hay en el piñón mayor es la energía transmitida a la cremallera. En particular, el movimiento lateral de la cremallera es proporcional al número de dientes del piñón. Estos engranajes se utilizan tradicionalmente para la dirección de un vehículo, pero tienen muchos otros usos, incluyendo la extensión del brazo telescópico de una grúa.


Los engranajes de cremallera varían mucho en tamaño. El tamaño más común es de 4 studs de largo y se une a través de studs. Estos pueden ser colocados extremo con extremo para crear una cremallera más larga. Hay una serie de cremalleras de longitudes pares (8, 10, 12 y 14 stud) que tienen orificios (pinholes) en el extremo y están abiertos debajo de modo que pueden deslizarse a lo largo de studs. Hay un pequeño engranaje cremallera de 2.4 studs de longitud con conexiones de rótula. Por último, hay una larga cremallera de 13 studs con conectores de eje perpendiculares en los extremos.

viernes, 13 de septiembre de 2013

Iniciación a la programación de Mindstorms EV3


Construcción del robot de prueba: TRACK3R

El TRACK3R es el único robot con las instrucciones incluidas en el Set 31313. Se trata de un robot muy fácil de montar, muy estable y muy fácil de modificar con diferentes complementos. De ahí que lo hayan escogido como plataforma de iniciación.

La imagen siguiente muestra los principales elementos utilizados para construir este robot. En el centro abajo vemos la estructura del casco, basada en la conexión de cuatro marcos. Es una estructura sólida, muy estable y fácil de conectar al resto de elementos. El ladrillo EV3 se puede colocar directamente sobre él, fijándolo con pines simples. A los lados vemos los servomotores y las orugas empleadas como sistema de tracción. Es muy fácil ensamblar estos componentes entre sí, bastan un par de ejes, uno debe pasar a través del agujero para ejes situado en la parte inferior del motor, y el otro debe pasar directamente a través del elemento rotatorio del motor, en rojo. También se han incluido un par de elementos decorativos que podemos ver ya montados y etiquetados en la parte posterior de la imagen, detrás de cada motor.


El manual de instrucciones del TRACK3R incluye 5 misiones distintas, cada una con algún elemento diferente que requiere de una programación específica.  Esta entrada pretende convertirse en un tutorial introductorio sobre la programación del EV3, ya que dicho tutorial no ha sido incluido en el manual de instrucciones.

Una vez ensambladas estos elementos obtenemos la plataforma básica sobre la cual implementar las diferentes misiones propuestas.

Pero antes de proseguir debemos conectar los motores al bloque EV3. Para ello lo mejor es usar los cables cortos. Conectamos el motor izquierdo al puerto B y el motor derecho al puerto C, tal y como se muestra en la siguiente imagen. Nótese que izquierda y derecha se definen tomando como referencia la dirección habitual de marcha del robot (de forma similar a como se definen los márgenes izquierdo y derecho de un río).

Si has seguido los pasos anteriores habrás llegado a la página 15 de las instrucciones de montaje. Por motivos didácticos he preferido detenerme en esa página de las instrucciones porque de momento no se necesita nada más para empezar a programar.

Instalación del software

El primer recurso que debemos tener a mano para programar nuestro pequeño robot es la  página oficial dedicada a este producto. Desafortunadamente no está traducida al español todavía.

En esa página, en la sección de descarga (Downloads) vamos a encontrar todo lo necesario para comenzar a programar nuestro robot.
  • Guía de usuario (hay una versión en Español)
  • Software LEGO MINDSTORMS EV3 Home Edition
Además vamos a necesitar un cable USB a mini-USB. El Set incluye un cable USB de dimensiones generosas que nos permitirá hacer pruebas sin tener que conectar y desconectar continuamente. Alternativamente podemos conectar el PC a nuestro robot utilizando bluetooth, pero eso lo dejaremos para otro día, de momento vamos a centrarnos en lo más básico.

Pasos a seguir:
  1. Descargar el software desde aquí
  2. Instalar el software ejecutando el archivo descargado en el paso anterior: LMS-EV3-WIN32-ENUS-01-01-full-setup.exe. Desde ahora, a este programa lo denominaremos abreviadamente como LMS.
  3. Conectar el bloque EV3 a un PC mediante el cable USB incluido en el set. Se trata de un cable de generosas dimensiones que nos permitirá ir realizando cambios en un programa y probarlos en el robot sin necesidad de andar conectando y desconectando cada vez que modificamos un programa.
  4. Ejecutar el software LMS y comprobar que nuestro bloque EV3 aparece conectado. Para ello debemos crear un nuevo proyecto (mediante el menú File > New Project), lo cual nos abrirá la ventana que se muestra en la imagen inferior. En la sección de información (abajo a la derecha, etiquetada con el número 3) debe aparecer conectado nuestro bloque (en la imagen se observa que el nombre del bloque es EV3, que es el nombre predeterminado, aunque se puede modificar), y debe estar marcada la columna USB. si usáramos conexión por wifi o bluetooth veríamos marcadas als columnas correspondientes.
  5. A continuación es recomendable actualizar el firmware, el cual contiene los controladores de hardware y el sistema operativo (Linux). El firmware se aloja en la memoria del ladrillo EV3 y se puede actualizar directamente desde el LMS, mediante el comando de Menu "Tools > Firmware update". 


Elementos principales del sofware LMS:
1. Área de trabajo
2. Paletas de programación
3. Información de hardware (controladores, sensores y actuadores)

Primer programa de prueba

Antes de proceder con la primera misión, vamos a crear nuestro primer programa de prueba, que se limitará a dar unas órdenes de movimiento muy simples, y así vamos familiarizándonos con el software.

Empezaremos creando un proyecto nuevo (podemos usar el proyecto que hemos creado anteriormente para actualizar el firmware si todavía lo tenemos abierto). Verificamos que tenemos los motores correctamente conectados. Para ello nos vamos al área de información y seleccionamos la pestaña con un icono que recuerda la torre de un castillo. Esto nos lleva a la venta de puertos, donde veremos los componentes conectados al Bloque EV3 activo en ese momento. Deberíamos ver lo siguiente:
Esta pantalla nos muestra los diferentes sensores y/o actuadores conectados al bloque EV3 actualmente seleccionado. Los sensores y actuadores incluidos en el set tienen la capacidad de sera detectados e identificados automáticamente, pero es posible que otros componentes requieran una configuración manual (imagino que será el caso de los motores Power Function por ejemplo).

El entorno de programación es totalmente visual e inspirado por la filosofía Lego: al igual que las construcciones físicas con Lego se basan en la interconexión de piezas de diferente tipo, un programa para Mindstorms se construye mediante la interconexión de una serie de bloques de programa disponibles en forma de paleta gráfica, por lo que no es necesario tener conocimientos de programación. Sin embargo para poder ajustar el comportamiento de los bloques de programa será necesario realizar una configuración de los mismos; esta configuración se puede realizar manipulando el bloque con el ratón, o introduciendo valores numéricos mediante el teclado.

Antes de pasar a la programación de nuestro robot vamos a tratar de definir más concretamente el comportamiento deseado en forma de algoritmo. Para los que no lo sepan, un algoritmo es
Un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema
Hay diferentes formas de escribir un algoritmo, algunas más formales y otras menos. De momento vamos a utilizar el lenguaje natural. En otra ocasión es posible que describamos y utilicemos otros métodos para describir algoritmos, como el pseudocódigo y los diagramas de flujo. El que quiera saber más sobre este tema puede consultar la entrada dedicada a los algoritmos en la wikipedia.

Descripción algorítmica:

  1. Avanzar
  2. Girar a la derecha
  3. Girar a la izquierda
  4. Retroceder

Construcción visual


Vamos a necesitar dos tipos de bloques: Move Tank (para avanzar y retroceder) y Move Steering (para los giros). Para añadir estos bloques a nuestro programa sólo tenemos que arrastrarlos desde la Paleta de bloques al área de trabajo principal (también podemos hacer click para seleccionar un bloque en la paleta y click otra vez sobre el área de trabajo para soltarlo).  Para eliminar un bloque arrástralo desde el área de trabajo a la paleta de bloques.

Cualquier programa se inicia con un bloque de inicio (Start), representado por un triángulo verde. A continuación debemos añadir un bloque por cada acción presente en nuestro algoritmo. Es importante entender el flujo de ejecución de nuestro programa, es decir, el orden en que se ejecutan las diferentes acciones programadas. Siguiendo la convención occidental de leer de izquierda a derecha, el flujo de los bloques de programa Lego también va de izquierda a derecha. Eso se traduce en que los bloques de programa suelen tener 2 conectores de flujo, uno de entrada o inicio del bloque, situado a la izquierda, y otro de salida o fin, situado a la derecha. Así pues para conectar dos bloques en secuencia tenemos que colocar el bloque que se ejecuta en segundo lugar a la derecha del primero, de forma que la salida del primero quede unida a la entrada del segundo. De esta manera, la forma más fácil de crear una secuencia de acciones es ir añadiendo bloques de izquierda a derecha siguiendo el orden de ejecución deseado. La siguiente imagen indica los elementos principales de un bloque de acción:


Si seguimos los pasos descritos en nuestro algoritmo veremos que tenemos que añadir 1 x Move Tank, 2 x Move Steering y 1 x Move Tank. Veremos que estos bloques de acción (controlan motores), en la barra superior (de color verde) llevan la etiqueta B + C. Eso indica que el bloque se va a aplicar a los motores conectados en los puertos B y C, asumiendo que B se corresponde con el motor izquierdo y C con el derecho. Esa es precisamente la forma en que hemos conectado los motores de nuestro robot, así pues está correcto y no hay que modificar ese aspecto. 
  1. Move Tank: déjalo tal y como está, en modo rotación, con potencia al 75% en ambos motores, y una única rotación completa. Eso hará que el robot avance recto la distancia correspondiente a una rotación de la rueda tractora (esa distancia será el perímetro de la rueda = 2 * Pi * r)
  2. Move Steering: modificamos el parámetro de giro (steering) y lo ponemos a 100
  3. Move Steering: modificamos el parámetro de giro y lo ponemos a -100
  4. Move Tank: modificamos la potencia de los motores y la ponemos a -75 para ambos motores.

Al final, tiene que quedarnos tal y como se muestra en la imagen siguiente.



Sólo nos queda ejecutar el programa y verificar que el resultado es el esperado. Para ello apretamos sobre la flecha verde en el bloque de inicio. Si tienes el robot conectado el programa se descargará al robot y a continuación se ejecutará. Si lo quieres ejecutar sin estar conectado tendrás que descargarlo primero (pulsa sobre la flecha descendente que hay en el área de información de hardware, justo debajo de la etiqueta EV3, y luego ejecútalo desde el bloque EV3.  Hasta pronto !

martes, 10 de septiembre de 2013

Conceptos básicos de robótica

En esta entrada se describen algunos conceptos fundamentales de robótica aplicados al EV3.

Hay diferentes enfoques para explicar el concepto de robot, por ejemplo, en la wikipedia leemos que:

Un robot es una entidad virtual o mecánica artificial. En la práctica, esto es por lo general un sistema electromecánico que, por su apariencia o sus movimientos, ofrece la sensación de tener un propósito propio. La independencia creada en sus movimientos hace que sus acciones sean la razón de un estudio razonable y profundo en el área de la ciencia y tecnología. La palabra robot puede referirse tanto a mecanismos físicos como a sistemas virtuales de software, aunque suele aludirse a los segundos con el término de bots.
Yo voy a dar otra explicación que creo que será más útil para hacerse una idea general de cómo son los robots de lego. Y lo voy a hacer tomando como punto de partida la definición de un Agente en el ámbito de las ciencias de computación [wikipedia: Agente_inteligente]

Un agente inteligente, es una entidad capaz de percibir su entorno, procesar tales percepciones y responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a maximizar un resultado esperado. Es capaz de percibir su ambiente con la ayuda de sensores y actuar en ese medio utilizando actuadores (elementos que reaccionan a un estímulo realizando una acción).
En realidad, en la definición anterior podemos eliminar el término inteligente, y nos quedaría que una agente es una entidad capaz de percibir su entorno y actual en él. Un agente puede ser simplemente un programa de ordenador que recibe cierta información (percibe) y actúa (realiza acciones).

Pues bien, un robot es un agente situado en un entorno físico (o virtual) [wikipedia: Agente situado]. No es necesario ser inteligente o mostrar conductas racionales para ser un robot. Es por ejemplo el caso de los robots industriales, que se dedican a repetir las mismas acciones una y otra vez. Diferentes definiciones de agente ponen el énfasis en diferentes aspectos, como puede ser la capacidad de comunicarse con otros agentes, o la capacidad de tomar decisiones de forma autónoma, sin control directo del usuario.

Pues bien, cualquier robot Lego se ajusta a esa definición de agente situado, pues consta de una serie de sensores (de luz, contacto, etc.), una serie de actuadores (motores), y un centro de control (el ladrillo principal) que recibe información de los sensores y genera acciones. Dependiendo de la programación que hagamos del centro de control , la conducta de nuestro robot será repetitiva y mecánica (realizar ciertas acciones de forma prefijada), o flexible y adaptativa, capaz de adaptarse a los cambios en el entorno y enfrentarse a situaciones nuevas. 

Veamos los componentes centrales para construir un robot con Lego Mindstorms.

Arquitectura y componentes principales


La imagen superior muestra de arriba abajo y de izquierda a derecha, los componentes principales que conforman la arquitectura EV3: 
  • 2 x Motor grande (Servomotor)
  • Motor mediano (Motor lineal)
  • Ladrillo EV3
  • Sensor de contacto
  • Sensor de luz
  • Sensor de infrarrojos
  • Mando de control remoto

Ladrillo controlador (y fuente de alimentación)


El componente fundamental, y el que más cambios ha experimentado con respecto a la versión previa de Mindstorms, es el Ladrillo EV3, el cual tiene una doble función: controlador y fuente de alimentación.

El controlador es el elemento encargado de recibir la información procedente de los sensores, tomar decisiones (prefijadas o dependientes de la información obtenida por los sensores) y dar órdenes a los actuadores (como poner en marcha un motor)
Para su función de controlador, el nuevo ladrillo EV3 dispone de 4 conectores de entrada (para los sensores) y 4 conectores de salida (para los actuadores).

Además de controlador y fuente de alimentación, el propio ladrillo incluye elementos de entrada y salida que podemos considerar como sensores (entradas) y actuadores (salidas), los cuales describiremos más adelante.


Las 4 entradas, numeradas del 1 al 4, se sitúan en la parte anterior del ladrillo, y las 4 salidas, identificadas por las letras A a D, se sitúan en la parte posterior del ladrillo. En la parte posterior, además de las salidas encontramos el conector mini USB para conectarlo al PC.



En la parte inferior del ladrillo se alojan 6 pilas AA, a las cuales se accede mediante una práctica tapa sin tornillos. En un lateral encontramos una ranura para introducir una tarjeta micro-SD y un conector USB host, que nos permitirá conectar memorias USB.

Sensores

En el set 31313 encontramos 3 sensores, que de izquierda a derecha son:
  • El sensor de contacto, encargado de detectar presión, típicamente para detectar colisiones, aunque con otros usos.
  • El sensor de luz, con tres modos de funcionamiento: 
    • Medidor de luz reflejada
    • Medidor de luz ambiente
    • Detector de color (distingue 7 colores básicos)
  • El sensor de infrarrojos, con3 modos de funcionamiento
    • Modo proximidad: se utiliza para detectar la distancia
    • Modo baliza: se utiliza para detectar una fuente de infrarrojos, y puede obtener dirección y distancia a esa fuente.
    • Modo remoto: se utiliza para recibir órdenes de un control remoto.

Actuadores

Dentro de los actuadores encontramos 2 grupos:  los periféricos de entrada/salida incluidos en el ladrillo controlador (botones, luz led, pantalla y altavoz); y los motores. Dedicaremos otra entrada a los periféricos incluidos en el propio ladrillo. De momento basta con comentar que de momento los actuadores externos se limitan a 2 tipos de motores.
  • Motor lineal (en inglés se suelen conocer como DC motor, término equivalente a motor de corriente continua, como también se pueden denominar). Son motores que al recibir una corriente eléctrica la convierten en un movimiento rotatorio continuo, es decir, que giran y giran sin parar hasta que dejan de recibir electricidad.
  • Servomotor: es un dispositivo similar a un motor lineal  que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Esta característica los hace más adecuados que los motores lineales para tareas de precisión en las cuales es importante contar el número de rotaciones del motor.
El motor mediano (en el centro en la imagen) pertenece al primer tipo, mientras que los motores grandes pertenecen al segundo tipo.
Imagino que también se podrán utilizar los motores de la serie Power Functions, aunque será necesario adaptarlos de alguna manera, ya que usan conectores diferentes.

Conectores

Por último, el set incluye 7 cables de conexión en 3 tamaños distintos (hay 3 cortos, 3 medianos y 1 cable largo), más un cable USB (no se muestra en la imagen)

Y ahora qué?

Para construir un robot cualquiera se necesita, como mínimo, el ladrillo o bloque EV3 y algún elemento de entra y/o salida. Estrictamente hablando, el propio ladrillo EV3 contiene entradas y salidas, pero en ese caso sería más correcto hablar de computador que de robot, pues la capacidad de interaccionar con el entorno se limita a interaccionar con una persona. En cierta manera, un robot es un computador con una serie de periféricos que le permiten interaccionar físicamente con el mundo, más allá de los periféricos habituales (pantalla, teclado, escáner e impresora) usados para interaccionar con personas.

En la próxima entrada describiremos la programación del único robot incluido en las instrucciones que acompañan al Set 31313: el TRACK3R.


miércoles, 4 de septiembre de 2013

Toma de contacto con LEGO Mindstorms EV3

Toma de contacto con el EV3

Ya está aquí, oficialmente desde el 1 de septiembre de 2013, la nueva versión de los Lego Mindstorms, la EV3. Si no sabes nada sobre la nueva versión o sobre los Mindstorms en general, puedes ver el vídeo oficial de presentación en youtube.

Tras decidir que por fin iba a iniciarme en el universo Mindstorms, he esperado meses a la llegada de la nueva versión, y ahora que ya ha llegado me he apresurado para hacerme con el codiciado Set 31313 LEGO MINDSTORMS EV3. 


A partir de hoy espero compartir y comentar con vosotros cosas que vaya aprendiendo de este maravilloso juguete. En mi toma de contacto con este set, me he dado cuenta del handicap que supone para los recién llegados a esta serie de LEGO, sobre todo para aquellos poco habituados a las nuevas tecnologías. Y es que el set viene acompañado únicamente de las instrucciones de montaje, no hay ninguna documentación acerca de la instalación y uso del software necesario para desarrollar y ejecutar programas. Por eso, he decidido empezar el blog desde lo más básico.

Cuando abrimos la caja, observaremos de inmediato que esta incluye un envoltorio de cartón impreso por la parte de dentro con lo que parece ser el suelo de unas instalaciones futurísticas (con pasillos delimitados por líneas rojas, y círculos de diferentes colores). Si cortamos el cartón por la línea de puntos marcada en la parte trasera y lo desplegamos obtendremos una superficie de pruebas donde experimentar con nuestras creaciones. Como os podéis imaginar, esta superficie es ideal para utilizar el sensor de luz (el cual permite detectar colores).



Al vaciar el contenido de las bolsas nos encontramos un variado surtido de piezas (en torno a las 600 piezas), incluyendo el ladrillo de control, los sensores, y variedad de piezas de las que se suelen encontrar en la serie Technic. Los colores elegidos para esta serie son el blanco, el negro y el rojo.


Foto tomada de una review en ArsTechnica

Aunque es cuestión de gustos, personalmente me gusta colocar las piezas en un maletín con compartimentos, de esos utilizados para guardar tornillería y componentes electrónicos. Es ideal para mantener las piezas ordenadas, ocupa poco espacio y te permite cambiar de espacio de trabajo con mucha facilidad.





En la última página de la documentación podemos encontrar una guía visual de referencia de todas las piezas incluidas en el set.






En la primera página hay unas referencias visuales para poder determinar la longitud de elementos lineales.
Y a lo largo del manual de instrucciones encontraremos escuetas aunque efectivas instrucciones visuales para el uso del ladrillo EV3.


Aparte de eso vienen las típicas instrucciones de montaje paso a paso. Pero a diferencia las instrucciones que encontramos en las demás series de LEGO, el manual de instrucciones se divide en misiones. Cada misión puede incluir algunos elementos distintos, como veremos en seguida cuando describa el modelo incluido en las instrucciones, el Track3r


El manual en concreto, se corresponde con un sólo modelo, denominado TRACK3R, el cual podéis ver ya montado en las siguientes imágenes:



En la próxima entrada describiré algunos conceptos fundamentales de robótica para los no iniciados