Programación del EV3

EV3LEGO Mindstorms EV3 es la tercera generación dentro de la línea de productos Lego Mindstorms. El EV3, resultado de la proyección del NXT, fue vio su luz en septiembre de 2013. Lleva ya tiempo entre nosotros y los lenguajes de programación del EV3 que lo soportan han madurado lo suficiente como para que podamos tener una visión actualizada de sus ventajas e inconvenientes. Veamos pues las diferentes opciones de programación del EV3 a mayores de la programación gráfica que ya trae consigo.

El conjunto de LEGO MINDSTORMS EV3 incluye motores, sensores, el ladrillo programable EV3, y elementos de LEGO Technic y un control remoto. Existen dos versiones distintas, igual que sucedía en en el NXT, la comercial y la educativa. El EV3 puede ser controlado por dispositivos inteligentes. Se puede arrancar un sistema operativo alternativo desde una tarjeta microSD, lo que hace que sea posible ejecutar ev3dev, un sistema operativo basado en Linux Debian.

Si lo comparamos con el NXT, podemos ver que la oferta de opciones de programación es un poco menos amplia en el EV3… Aunque más que suficiente. Con desconocimiento de cuál es el objetivo inicial que pudo tener LEGO al lanzar este producto, es fácil suponer al ver el formato del lenguaje de programación visual incorporado, que su objetivo no es sino el lúdico y de aprendizaje. Pero, sin embargo, no olvidemos que eso no ha impedido el desarrollo de otras opciones de programación que no hacen sino permitir que se le pueda sacar todo el partido a un sistema empotrado como el que es, una placa con un microprocesador nada despreciable (ARM926EJ-S a 300 MHz con 64 MB RAM, 16 MB Flash, un display LCD de 178×128 pixels y conexiones USB, WiFI y Bluetooth). Un “juguete” al que se le puede sacar mucho partido y del que también hay, como lo hubo en el NXT, tesis doctorales y empresas que lo usan para prototipado de proyectos reales.

Veamos pues las opciones de programación que se han ido desarrollando en paralelo:

EV3Basic.- Microsoft Small Basic. Se trata de un pequeño compilador de Basic orientado al EV3. Para poder emplearlo es necesario, en primer lugar, descargar e instalar Microsoft Small Basic desde http://smallbasic.com, requiere Microsoft Windows. A continuación descargaremos EV3BasicInstaller.msi y lo instalaremos en el mismo directorio que Small Basic. Podemos encontrar tutoriales sobreEV3Basic en http://ev3basic.com

ev3_scratch.- Scratch es un lenguaje de programación visual de momento gratuito que dispone de extensiones para trabajar con EV3. Tiene la particularidad de no ejecutarse en el ladrillo inteligente, sino de estar recibiendo las órdenes que le envíe un navegador a través de Bluetooth.

LabVIEW.- Aunque sí hubo una versión detallada sobre este potente entorno de programación visual y su suporte para NXT, la información sobre el supuesto soporte de LabVIEW por lo que respecta a EV3 es bastante confusa.

.NET.- Existe un API para .NET para el ladrillo EV3 que puede ser utilizado desde un PC, Windows Phone y WinRT. Con esta API, se puede conectar, controlar y leer los datos de los sensores de su ladrillo LEGO EV3 a través de Bluetooth, WiFi o USB. LEGO Mindstorms EV3 API para .NET. El mismo comentario qsobre .NET que tenía Scratch, que tampoco se ejecuta en le ladrillo.

LeJOS.- Un sistema en tiempo real basado en Java para programadores avanzados que puede manejar la mayoría de los sensores y cosas como el GPS, reconocimiento de voz y tecnología de mapeo. Puede ser interconectado con el IDE de Eclipse o ejecutar desde la línea de comandos. LeJOS EV3 es un lenguaje orientado a objetos (Java), que ofrece soporte para tareas, arrays mutidimensionales, recursión, sincronización, excepciones, tipos como float, long y string, la mayoría de las clases de java.lang, java.util and java.io y un API para robótica bien documentado.

Se trata de una opción de alto nivel potente y gratuita. Aquí podéis encontrar LeJOS para EV3.

RobotC.- ROBOTC dispone de su popio entorno de programación y utiliza un lenguaje en texto basado en el lenguaje C. Su entorno incluye herramientas de depuración, así como plantillas de código, operaciones matemáticas / Trig (sin, cos, tan, asin, acos … etc.), la función de autocompletar integrada en la interfaz, y toda una interesante batería de programas de ejemplo. También es de interés su herramienta de depuración, algo a destacar entre los demás lenguajes de programación de robótica que soportan la plataforma Mindstorms. Como desventaja, que es de pago.

 

Comments are closed.