Mblock e ubuntu

Data de publicación: Nov 15, 2017 8:43:18 PM

Apunteime (osadamente) a dar a docencia nun grupo de traballo polo programa de robótica en primaria da consellería. A verdade é que eu nunca traballei con mblock e os robots de makeblock, así que vou ir listando aquí algunha cousiña que vexa de interese.

Instalar o mblock

Existe unha versión para Linux de 64 bits, pero a min non me funcionou nos equipos da casa, un con Ubuntu 17.04 e outro con Ubuntu 16.04. Descarguei o paquete e, tanto instalando desde o centro de software como desde terminal con sudo dpkg -i mBlock.deb o programa parecía instalar, aparecía desde o iniciador de programas, pero non chegaba arrancar. Aparecía un cacho como aberto, pero logo se pechaba espontaneamente. Recurrín a descargar desde o github a versión 4.0.0, descargo o tar.gz, descomprimo, e parece que o podo arrincar desde terminal con ./mblock.

Subida finalizada?

Despois de instalar o mblock, puiden conectar sen moito problema a placa. Nembargantemente, dáballe a cargar os programas "Subir a Arduino" e o comportamento era moi anómalo. A mensaxe era que a subida estaba finalizada, pero os programas eran erráticos e, se desconectaba do ordenador e alimentaba con pilas, non funcionaba nada. Despois de moito fume, probei a cargar o programa desde Arduino IDE e aí, benditas consolas de erros, deume que faltaba a librería libreadline6. Con iso, sudo apt-get install libreadline6 , reiniciar o Arduino IDE e funcionaba! O mesmo con mBlock, reinicialo, vese que carga esa librería e estamos funcionando (de momento).

Funcionando con bloques

Algunha cousa que, acostumado ao entorno de programación escrito, me está a resultar máis complexa:

- Porto serie: non sei se hai outro xeito, pero estou a usar ao panda coa instrucción "decir" para recibir información por pantalla. Isto ten o problema que, se o quero facer como "programación para robot", como o bloque non é soportado, teño que quitalo e poñelo cada vez que queira saber algún dato por consola.

- Código de Arduino: o código que xenera a aplicación debe estar ben feito, eu recoñezo algunha estructura máis "pro" do que eu sei facer, pero me parece moi pouco útil para facilitar o paso da linguaxe gráfica a escrita... é demasiado complexo!

- Mensaxes de erro: De facer os cambios anteriores, tiña unha variable definida a unha cadea de texto. Ao tentar cargar a placa, dáme "Subida Fallida", pero non vexo mensaxe de erro. Unha vez máis, recurro ao IDE de Arduino e... a variable declarada a texto funcionaba dentro do modo "non robot" pero non no modo robot. A doblemente bendita consola me informa de que o erro é que esa variable está mal declarada e entendo o asunto.

Conectar coa placa

É moi pesado ter que, cada vez que se desconecta o robot, ter que lle dar a actualizar o porto serie e conectar ao porto en cuestión. Para programas con motor principalmente, tamén é incómodo non ter un interruptor independente de motores e non poder apagar a placa para cargarlle sketches. Cando estas a cargar o programa as rodas están a xirar e é un rollo aguantar do cacharro sen que se escape.