17 feb. 2015

Review - Learning LEGO MINDSTORMS EV3

Hace algunas semanas escribí una reseña para un libro sobre LEGO MINDSTORMS de Packt Publishing [Lego Mindstorms EV3 Essentials]. Desde entonces, Packt ha publicado un nuevo libro sobre LMS, esta vez escrito por Gary Garbe. Este no es su primer libro para Packt Publishing (el primero fue “Instant LEGO MINDSTORMS EV3”), pero es el primero de su mano que tengo oportunidad de reseñar.

Al igual que sucede con sus otros títulos, Packt ofrece una variedad de formatos digitales, incluyendo PDF, ePub, Mobi y Kindle. Es de agradecer que una vez hayas adquirido el libro puedas disponer de él en diferentes formatos, según el dispositivo electrónico en el que lo vayas a leer. Del formato físico no puedo opinar ya que no he tenido el placer de tenerlo en mis manos. Sin embargo, el archivo electrónico ya apunta al hecho de que el libro físico no tiene imágenes en color, lo que decididamente significa un plus para el formato digital.

El libro parte de la base que dispones de un set LEGO MINDSTORMS EV3, ya sea Retail o Education, ya que, según dice la introducción, tanto el robot que se usa para las pruebas como las instrucciones referentes al entorno de programación son válidos para ambos sets. El libro muestra las imágenes sacadas del entorno de programación de Education (el entorno Retail está disponible como descarga gratuita en la página web de LEGO. El entorno enfocado a Education tiene un coste de unos €100, pero contienen recursos específicos para el uso en el aula además de una herramienta de registro de datos).

El libro comienza hablando del editor de contenidos – una herramienta que permite documentar un robot o, en un entorno orientado a la educación, preparar contenidos para alumnos. A continuación, el capítulo 2 proporciona una breve introducción al diseño mecánico, con nociones básicas sobre levas, explicaciones sobre cómo utilizar los diferentes engranajes. El capítulo 3 muestra cómo construir un sencillo robot con ambos sets, además de algunas pequeñas variaciones del mismo. Luego viene cómo interactuar con el EV3 por distintos medios, ya sea dando información o recibiéndola, los diferentes tipos de sensores, tanto oficiales como de terceros que funcionan con el EV3.

A partir de este momento el enfoque se centra en la programación, pero aunque se tratan algunos temas interesantes o avanzados hay ocasiones en los que uno se queda con las ganas de saber más. Algunos ejemplos: el capítulo 7 propone programar el robot para que se desplace sobre los lados de un cuadrado imaginario. La primera opción es hacerlo con mediante los sensores de rotación de los motores. Explica que girar un motor 500 grados no es lo mismo que girar el robot 500 grados. Dice que podrías basar el valor necesario en el diámetro de las ruedas que empleas, pero no explica cómo hacerlo. A continuación proporciona un programa que está configurado para conseguir ese giro de 90º (con una rotación de 500º del motor) – una solución sin una explicación no proporciona mucha oportunidad para aprender. Sin embargo, la explicación de por qué la inercia puede causar un giro mayor de 90º aún si empleamos un sensor giroscópico y las diferentes soluciones propuestas para este problema sí demuestran un desarrollo didáctico.  Algo similar con el concepto matriz. Cuando se introduce no está muy claro qué es una matriz y cómo usarlo, pero siguiendo el código que se va elaborando se llega a ver cómo se emplea en el programa de muestra y uno adivina otras posibles aplicaciones.

Algo similar ocurre en el siguiente capítulo: de forma gradual se introduce el concepto de un controlador proporcional. A tal efecto empieza usando el bloque matemática avanzada con algunas fórmulas que van aumentando en complejidad y que van surtiendo efecto, pero para el no iniciado parece más una cuestión de magia que de matemáticas, ya que aunque se indica el objetivo de las fórmulas no se explica cómo se llega a ellas no cómo funcionan exactamente. No tiene que decir que la explicación que sigue sobre el mucho más complejo controlador PID  es todavía más difícil de comprender para un no-iniciado.

El capítulo 10 repasa otras opciones d programación para el EV3, a saber LabVIEW y RobotC y el capítulo 11 propone un divertido experimento basado en la comunicación de datos entre dos EV3 en el que dos vehículos mantienen una distancia fija al desplazarse.

No me he olvidado del capítulo 9, pero quería mencionarlo junto con el 12. La razón evidente es lo que tienen en común. El capítulo 9 proporciona un uso práctico del registro de datos, pero esta opción solamente está disponible en el software Education. De la misma manera, el capítulo 12 disecciona y explica el programa de Gyro Boy, uno de los modelos del set Education. Aunque la descripción y explicación es muy buena, sólo los usuarios de la versión Education tienen acceso a este programa, de modo que nuevamente el libro no cumple la premisa de que sirve para usuarios de cualquiera de los set del EV3.

En definitiva Learning LEGO MINDSTORMS EV3 es un libro que está hecho con conocimiento de causa, pero sin tener en cuenta algunas cosas:
Realmente hace falta disponer del software Education para poder sacar todo el partido del libro
El autor no ha sabido explicar paso a paso los conceptos que maneja de modo que hace falta tener ya un cierto conocimiento teórico de algunos conceptos antes de poder comprender algunos pasajes del libro.

No hay comentarios: