Hemos instalado y ejecutado en muchos equipos la instalación de mBlock 4.x (disponible en nuestro instalador y desde numerosas páginas), en muchos ha funcionado sin problemas, sin embargo, en algunos nos hemos encontrado con que no se ejecuta, y en ningún sitio de Internet (ni pidiendo soporte a la página "oficial"), tenemos la respuesta. "El producto está descatalogado" desde 2015 y no tiene soporte (nos comentan).
Instalando la misma maqueta (Bebian 64) en más de 100 equipos, nos hemos encontrado con que en unos arrancaba sin problemas y otros es imposible (ni con wine).
Tras una investigación exhaustiva, descartando el tema de flashplayer (el programa necesitaba de flash y ya no existe, por eso han migrado a la versión web) y, puesto que la maqueta era la misma para todos los equipos, nos hemos fijado en la diferencias en todos ellos, llegando a la siguiente conclusión:
mBlock 4.x, no funciona en equipos que no tienen tarjeta gráfica que soporte OPEN GL, es decir, no es tema de drivers, ni complementos del sistema, si no que se trata de un tema físico (procesador gráfico).
Dado pues, la imposibilidad de la utilización de mBlock en equipos antiguos, tras la migración a Bebian 64, aquellos equipos que no lo soporten, podrían utilizar herramientas similares, como por ejemplo "visualino". En equipos en los que no sea posible aplicar la versión 64 bits y necesiten mantenerse en 32, sólo podrán utilizar mBlock a través de Wine (también disponible en nuestro instalador).
Si ya has actualizado el arduino que biene en la maqueta base de nuestro Bebian (con el comando arduino en el setup.sh), con este truco podrás utilizar una de las últimas versiones de Arduino IDE para programar las placas Makeblock (mBlock).
Si utilizas mBlock 3.x virtualizado con wine, puede que no os funcionen correctamente los puertos serie a través de la virtualización, así pues aqui tienes una solución rápida:
Bajar las librerías de Makeblock para Arduino
1- Descarga las librerías de Makeblock para Arduino desde el siguiente enlace
2- Descomprime el archivo ZIP descargado y copia la carpeta makeblock dentro de la carpeta /home/usuario/arduino/libraries/ (en nuestra maqueta bebian).
Debe quedarte una estructura similar a la que se muestra en la siguiente imagen :
3 - Ya dispones de los ejemplos y librerias necesarias y te aparecerán en el Arduino IDE de la siguiente forma:
y podrás utilizar los diferentes ejemplos desde Arduino IDE con las diferentes placas de mBlock...
Recuerda que dependiendo de la placa que tenga tu robot, deberás cambiar la cabecera correspondiente de tu librería antes de transferir el ejemplo:
Este "truco" de incluir las librerías de mBlock a Arduino IDE, te permitirá seguir programando con mBlock y luego pasar el código obtenido (copiar y pegar) a la placa a programar utilizando Arduino IDE.
Acuerdate de habilitar el modo Arduino en mblock en el menú editar:
y podrás ver el código que has de copiar luego a Arduino IDE. Aquí tienes el ejemplo de parpadeo del led "hola mundo!" (pin 13) según el esquema de bloques de mBlock.
Copia las lineas de código y pásalas a un fichero nuevo de Arduino IDE, escoge el modelo de placa, el puerto, y "subir!"
En ocasiones nos hemos encontrado que el puerto virtual que se genera al conectar una placa arduino al debian para realizar la programación no funciona.
Una serie de errores en rojo aparece en la consola. Y si te fijas, al principio de los errores del log, se trata de un error de permisos "error: cannot access /dev/ttyUSB0".
Esto puede deberse a que hayas utilizado el congelador del sistema (que toca varios permisos del usuario) o que por otra razón el puerto se haya quedado sin permiso de acceso.
La forma más fácil de solucionar el problema (sin tener en cuenta la seguridad) es habilitar permisos totales a todos los usuarios sobre el puerto virtual serie (ATENCION: El dispositivo tiene que estar enchufado para que funcione el comando.):
chmod 777 /dev/ttyUSB0
Otra forma, es añadir únicamente al usuario (en nuestro caso "usuario") al grupo que tiene permisos sobre el puerto (device -dev-) en cuestión.
usermod -a -G dialout usuario
Que quiere decir... -a añadir al -G grupo dial out a usuario
Introducción (opiniones personales de un maker)...
Para un maker no es muy habitual el irse a productos comerciales, puesto que la filosofía de un desarrollador es partir de una base sólida y libre.
Sin embargo, es la forma más rápida de pasar por encima de muchas horas de trabajo y estudio, y llegar al final del camino más rápido diciendo "hacemos robótica en clase". Es como pensar que quieres hacerte un castillo de juguete y te compras un LEGO para montarlo por que ya te dan los planos.
Tras muchos años con esto del maker, os aseguro que es mucho más instructivo el hacer pasar a una clase por el proceso completo de pensar una estructura, preparar partes mecánicas y estudiar comportamiento de las maquetas, que presentar un trabajo a final de curso del cual no se ha sacado "chicha".
Con la llegada del "software libre" y de la "tecnología libre" (os invitamos a ver este vídeo), también ha llegado la moda de "modifico tecnología libre" y la vendo. Muchas empresas se han dedicado a utilizar el conocimiento libre para sacar sus productos al mercado. Se trata de hacer unas pequeñas variaciones para que el "producto libre" no sea compatible con otros productos y se transforme en un "producto propio".
Lo curioso de esto, es que la administración parece que pica con estas cosas (no se quien es el ingeniero asesor), y en lugar de pagar 10€ de material por alumno, prefiere gastar 150€ encaminando a la gente a utilizar un producto comercial finalizado y "sin chicha"...
Makeblock lo ha hecho de pera. Para "proliferar", ha separado el software de programación de sus kits de montaje para habituar a la gente a utilizar su soft, y con ello engancharlos a sus productos, y así nació mblock es una adaptación basada en SCRATCH (libre) para programar ARDUINO (libre)... en lugar de aprender SCRATCH o ARDUINO (Arduino IDE), pues... ya te lo dan hecho por que tiene sus módulos. Así no aprendes comandos o bucles o condicionales.... una forma de programar sin programar... "es como darle a botones" (aún que no sepas lo que hacen los botones).
mblock es por tanto un "producto hecho" y con la mitad del camino hecho, ya solo queda el trabajo de montaje (armado) del robot (kit) que, con planos e instrucciones, no dejan cabida a confusión... "que fácil es hacer robots!"... hechos.
Si aún así quieres sacar el polvo a esas cajas del armario...
Pues bien. Manos a la obra.... que equipos tienes en clase?. Windows? Linux?, grandes, pequeños.... eh? eh?....
Lo primero que debes saber en esto de la informática y programación, es que no todo vale para todo. Y en esto del software, lo que vale hoy, no vale mañana.
Las versiones de programas como mblock son así. Pueden tener soporte para tu versión de sistema o no. Pueden desaparecer de Internet y no estar disponibles, o no. Puedes tener soporte o no.
Cosas que debes saber:
1 . Los equipos antiguos disponen de sistemas 32bits y los desarrolladores de aplicaciones ya no dan soporte para 32bits por ello es una aventura instalar mblock en sistemas como XP W7 o LINUX 32 (Debian).
2 . Si el punto uno te ha puesto los pelos de punta.... No hay versiones nuevas para LINUX 32 disponibles y las probadas (con instrucciones, no tienen por que funcionar). Además, las versiones (como en otras aplicaciones), llevan la misma numeración en LINUX, MAC o Windows y pueden variar en funcionalidad.
Tras tres días probando diferentes métodos de instalación, consultas,pruebas, etc. puedes salir del apuro con la versión 3.4.12 que funciona en windows (32 bits) y que"por suerte" podemos correr en distribuciones Debian (como nuestro BEBIAN) gracias al emulador wine. Así pues. Descárgalo y ejecútalo (si te pregunta, con wine) y te aparecerá en el escritorio el icono!
Ten en cuenta que se trata de un programa emulado (estará corriendo sobre una "maquina virtual" de windows) con lo cual puede ar problemas de cuelgues y demás.... pero funciona!
Respecto a la versión 4.0.4 instalada desde el root...
Se queda en blanco!
...y tras investigar desde el terminal con la cuenta de usuario, non encontramos con errores de script (sin soporte, por el momento)
A JavaScript error occurred in the main process Uncaught Exception: Error: listen EADDRINUSE :::7070 at Object.exports._errnoException (util.js:1026:11) at exports._exceptionWithHostPort (util.js:1049:20) at Server._listen2 (net.js:1253:14) at listen (net.js:1289:10) at Server.listen (net.js:1385:5) at EventEmitter.listen (/opt/makeblock/mBlock/resources/app.asar/node_modules/express/lib/application.js:618:24) at Object.<anonymous> (/opt/makeblock/mBlock/resources/app.asar/main.js:39:6) at Module._compile (module.js:556:32) at Object.Module._extensions..js (module.js:565:10) at Module.load (module.js:473:32)
La versión desaparecida 4.0
Trasteando por el buscador y restringiendo fechas, nos encontramos una WIKI sobre la versión donde nos indica una url todavía operativa:
wget https://github.com/Makeblock-official/mBlock/releases/download/V4.0.0-Linux/mBlock-4.0.0-linux-4.0.0.tar.gz tar zxvf mBlock-4.0.0-linux-4.0.0.tar.gz cd mBlock/ ./mblock
Probamos!
bash: ./mblock: cannot execute binary file: Formato de ejecutable incorrecto
No funciona!
CONCLUSIONES!
Tras muchas horas invertidas, nos encontramos CON QUE EL PROYECTO NO FUNCIONA DESDE 2015, O NO HACEN MAS QUE SACAR PARCHES:
MBLOCK 3 utiliza FLASHPLAYER!, que ya no se puede instalar (y menos en equipos linux) y el MBLOCK 4 necesita una tarjeta con procesador que soporte OPENGL (impensable en equipos antiguos)
EL poryecto MBLOCK 5 basado en web, no tiene soporte para LINUX y falla en instalaciones con Windows... un desastre.
Como alternativa, recomendamos VISUALINO o utilizar ARDUINO con las librerías de MBLOCK.
Una nueva versión de Arduino IDE... La necesitamos?. Nos es suficiente con la que ya tenemos?. Para lo que hacemos, necesitamos más librerías?....
Poca variación hay entre unas versiones y otras del IDE de Arduino, la principal característica entre las diferentes versiones, es la inclusión de librerías para nuevos componentes, pero también la incompatibilidad con aplicaciones desarrolladas con un IDE anterior. Por eso es tan importante plantearte si debes o no actualizar el IDE (entorno de desarrollo) puesto que muchos ejemplos que puedes encontrar por la red, pueden no estar soportados por un IDE actualizado.
Si aún así decides actualizar, la cosa no es tan sencilla, puesto que existen problemas conocidos para cada versión. En nuestro caso, la versión arduino-1.8.9 no ha estado libre de incidentes.
Tras su descarga, nos encontramos que tras descomprimirla en la carpeta /home/usuario, y tras ejecutar la instalación con el comando ./install.sh, la aplicación se abría y cerraba. No se ejecutaba al ajecutarla desde el navegador de archivos... desde el terminal, al ejecutar ./arduino nos encontramos con este mensaje:
Picked up JAVA_TOOL_OPTIONS:
Carpeta de instalación del IDE Incorrecta: La copia del IDE está instalado en una subcarpeta del cuaderno de bocetos
Por favor, mueve el IDE a otra carpeta.
La solución?, pues que la carpeta de la ruta de instalación NO DEBE CONTENER CARACTERES EXTRAÑOS, así que pasamos de /home/usuario/arduino/arduino-1.8.9/ a pasar todo el contenido a /home/usuario/arduino (pensábamos poder disponer de varias versiones en el mismo equipo, pero hemos visto que puede haber problemas de ejecución). Curioso que al poner un carácter en mayúsculas en la ruta, tampoco funciona la instalación!
Al ejecutar de nuevo el ./install.sh nos encontramos con lo siguiente:
rm: no se puede borrar «/usr/local/bin/arduino»: No existe el fichero o el directorio
por lo que volvimos de nuevo al terminal para eliminar el fichero y volver a insistir en la instalación...
Así pues finalmente ejecutamos lo siguiente desde el root:
Damos permiso a la carpeta para que el usuario pueda manipular el contenido
chmod 777 -R /home/usuario/arduino/
Hacemos la intalación
sh /home/usuario/arduino/install.sh
El proceso instalará el Arduino IDE en la carpeta /home/usuario/arduino/ y nos permitirá modificar directamente (sin permisos) el contenido de las librerías, etc. así como actualizar el contenido (version). Por último verificamos que funcionan los accesos del menú o hacemos un "atajo" desde el escritorio.
Lo importante no es solo tener una idea, si no el compartirla con alguien que quiera participar en ella.
Afaté Gnikou es diseñador de sistemas que en el año 2014 construyó en Togo, y a partir de basura electrónica, una impresora 3D que funcionaba a la perfección.
Espero hayáis sido curiosos con los artículos anteriores, por que si no no seguiremos el ritmo...
Como habéis visto en el artículo anterior, nos hemos basado en la utilización del entorno Ardunio (a estas alturas, ya habréis comprendido que, Arduino, a parte de ser una placa electrónica - de muchos tipos - También es el programa con el que se programan las placas).
No solo podemos programar con Arduino el lenguaje C, si no que podemos utilizar el bloc de notas, word, programas deitore s de texto, etc... pero ahora lo que se lleva es programar con programas basados en SCRATCH, pero debemos entender que, estos programas, no son ni mas ni menos que conversores de lenguaje.
La ventaja de estos nuevos programas con respecto a la programación que veníamos haciendo hasta ahora, es que en el propio programa de edición, tenemos el apartado que nos hace la grabación al chip (cosa que veníamos haciendo con otros programas).
En el caso de los entornos de programación de bloques, basados en SCRATCH, convierten los esquemas de bloques en "codigo C", y este a su vez, es convertido en código binario en le proceso de "quemado" (grabación del chip), a través de nuestro cable de programación (que utiliza una comunicación serie).
Existe otro tipo de programación del cual hemos hablado en un artículo pasado, llamada "programación de lineas", que es la que se venía utilizando a nivel industrial para, por ejemplo, programar los autómatas de SIEMENS, en especial los modelos S7, que invadieron en su día muchas fábricas para la automatización de sus procesos, en especial SIEMENS y OMROM
AUTOMATA SIEMENS (LOGO)
AUTOMATA OMROM
Si estáis interesados en la programación por lineas (PLC), revisad este articulo. y echad un vistazo a este otro, donde se comenta la comunicación entre un Arduino y un autómata. Podríamos quitarnos el polvo de encima los que hemos utilizado este lenguaje de programación y seguir utilizándolo, pero no os lo recomendamos. Por que?, por que la programacón de bloques, nos podrá extrapolar nuestra programación a otros modelos de equipos sin necesidad de mucha conversión en el programa. Hacer un repaso rápido a este artículo de la wikipedia.
Pero sigamos con los lenguajes de programación...
Necesitamos, para programar nuestras placas ARDUINO y derivados comerciales como makeblock, robots BQ, etc unos programas que nos permitan generar el código, así, que si aún no los tenéis (en nuestra maqueta BEBIAN ya están incluidos), aquí van los links de los más interesantes y seguimos con esto en el próximo artículo.
Por que empezar con el "Hola Mundo" de siempre encendiendo y apagando un led?... Si ya has visto lo que hemos publicado anteriormente y has visto los artículos propuestos, aventúrate a algo "mas dificil", transferir el código siguiente al Arduino.
Trabajar con sonido en Arduino.
Partiendo de que el sonido se genera por una bibracion (frecuencia), este circuito se basa en el movimiento de un BUZZ generando la frecuencia deseada por la puesta en estado alto (1) y bajo (0) la salida del pin 3 de la placa Arduino.
Este programa puedes pasarlo a la placa transfiriéndolo (copiar y pegar el código en el Arduino (programa).
El trabajo de programación se basa en disponer de un objetivo. Asigna objetivos a los alumnos o grupos, o haz que ellos busquen un objetivo cumplir. El trabajo de programador consiste en buscar soluciones a través de crear un código (proceso).
Un vehiculo, un ascensor, un sistema de riego, un seguidor de luz...
La forma más habitual de conseguir ideas, es echar un vistazo a Youtube y ver algunos proyectos.
Puedes seguir a varios canales de Youtube, donde publican contenidos sobre los temas que te interesen. en este caso te vamos a proponer dos fuentes de información relacionadas con nuestra página.
La pagina www.pesadillo.com, donde encontraras circuitos electrónicos para preparar tus sensores para aplicar a tus proyectos y donde también podrás ver paso a paso la construcción de lo que podríra ser tu primer robot Arduino, con un coste inferior a los 20€, date cuenta que este coste es ínfimo, teniendo en cuenta que lo que más cuestan son las baterías (AA). La web también dispone de un canal de Youtube, donde podrás ver en su playlist recopilación de vídeos sobre robótica, arduino y avances en tecnología robótica
Por otro lado ya hay miles de canales que podrías seguir, pero en especial, te recomiendo que visites el canal de El Profe García, quien, a la vez que muchos de nosotros, se ha interesado por compartir conocimiento.
Parte del principio de que después de tener una idea, hay que llevarla a cabo, en la programación se hace lo mismo, partimos de una estructura, creamos un programa, y luego lo convertimos al un fichero (binario) que pasamos a nuestro proyecto (en caso del Arduino, a través de una comunicación SERIE -puerto emulado por el USB-).
Por donde empezar?
La programación de los distintos aparatos, LEGOS, mBlock, Arduino,están ahora mismo enfocados a la utilización del lenguaje de bloques. Seguramente has oido hablar del SCRATCH, desarrollado por el MIT. Este programa, sin conocimientos previos, permite programar juegos en su página directamente a base de incluir bloques de ordenes....
Eh?
Si, que ahora no hay que aprender lenguaje de programación (en este caso lenguaje de programación "C"), para programar Arduinos, si no que tan solo siguiendo unas pequeñas pautas, se insertan unos bloques que dan lugar a una secuencia (programa).
Si no tengo conocimientos, de programación por bloques por donde empiezo?
Intenta completar estos juegos. Te explican paso por paso el funcionamiento de la programación por bloques.
Otras páginas que te pueden interesar para profundizar en la programación por bloques:
CODE.ORG (recomebdado) Si ya habéis hecho vuestros pinitos con el blockly, ha llegado el momento de la programación. En esta página, podrás seguir desarrollando las "Ciencias de la Computación" y aprender a realizar juegos, herramientas, animaciones,.... echad un vistazo (para los mas jóvenes es adictiva, ya que plantean los problemas como juegos).
Y luego que?
Este lenguaje nuevo de programación , se aplica para desarrollo de juegos, programas de móvil, páginas web... Se trata de convertir el esquema de bloques en el lenguaje que necesitamos para nuestro proyecto...
Lo entenderás mejor si visitas esta página: https://developers.google.com/blockly/ en ella aprenderás, que con un sencillo programa, podrás convertirlo en distintos lenguajes de programación.
Que hacer con esos kits que hay en los armarios? Que finalidad les puedo dar? Les gustará a los alumnos?
A estas alturas, si aún no has empezado con el desarrollo de kits o la electrónica aplicada, estás posiblemente a la cola de otros centros educativos de Galicia. Que quiere decir esto?. Que esos alumnos que tienes en clase, estarán menos preparados que otros que cursan sus estudios en otros centros y que ya han aprendido a automatizar o crear sus propios juguetes...
Implica mucho tiempo implementar el desarrollo en la clase?
No. Los kits proporcionados son tan básicos que ya vienen con todo hecho. Tienen sus piezas y sus componentes que permiten su ensamblado y configuración.
Cual es el objetivo de los kits?
La comprensión de los lenguajes de programación, y de la automatización de procesos que ya se aplican a todas las cosas (cafeteras, cocinas, frigoríficos, coches, aviones, teléfonos...). Todo ya tiene o esta controlado por un chip o tiene un chip en su interior.
Es fácil montar y programar?
Si. El problema no es montar o programar, si no buscar lo que montar o programar. Es decir, lo primero, es buscar un objetivo, y luego ver como conseguirlo. Por ejemplo; quiero montar una grua, pues tendré que montar una estructura, estudiar su funcionamiento, aplicar la electrónica, y generar la programación. Quiero montar un coche?, quiero montar un dron?... que queréis montar?
Que tengo en el armario?
Tienes un KIT modular (de montaje por bloques) comercial que se llama mblock. Un Kit que sobrepasa los 140€ unidad y que no es "accesible" a una familia media para regalar a su hijo, pero al que si le puedes sacar partido tu en clase, pues dispones de muchos accesorios y estructuras interesantes que puedes aplicar a tus proyectos. Aquí tienes manuales de la placa Auriga para empezar con tus proyectos. Así como un enlace al centro de descargar (curiosea!!!) Aqui, un curso (en ingles) paso a paso con la placas makeblock (mblock). Su página de soporte.
También tienes unas plaquitas pequeñas azules (Arduinos), que pueden controlar mas me 8 cosas a la vez y que no superan en coste los 3€ (en ebay) y que te permitirían, por ejemplo, automatizar la iluminación de una vivienda!.
Nos centraremos en Arduino, pues los KITs, son lo mismo (son arduinos modificados) y como son versiones comerciales, son mucho más caros y con clabijas de conexión no estandar. Basicamente, lo que hacen con los KITs, es coger una idea libre y barata, aplicarle una marca, gente de desarrollo, y vender el aparato.
Que puedo hacer con Arduino?
Todo. Arduino dispone de varias versiones, las cuales varían en memoria y numero de patillas, que permiten controlar desde impresoras 3D, hasta vehiculos, pasando por modelos que pueden montarse dentro de una bombilla para controlarla en remoto. Simplemente hay que buscar un objetivo, y ver las posibilidades.
Cual seria el siguiente paso después de conocer Arduino?