En esta clase podrás:
Introducir la herramienta Facilino, una herramienta de programación por bloques de Arduino.
Hola, me llamo Leopoldo Armesto y el objetivo de hoy es introduciros
a Facilino, mostraros su interfaz visual, la forma de programación
por bloques que tiene y algunos de los ejemplos.
Bien, Facilino es un entorno programación por bloques que
está pensado para programar arduino, está basado en la librería
blockly, que es de Google, también en una librería
de roboblocks de la empresa BQ y también está basado su
interfaz en Visualino y en la librería Qt.
Es fácil de utilizar, intuitivo que en mi opinión es idóneo
para lo que son centros de formación secundaria, formación
profesional, incluso talleres de robótica,
y por supuesto incluso si estáis acostumbrados a programar
con lenguajes textuales, pienso que puede ser una herramienta
de interés para vosotros, os va a permitir desarrollar
las instrucciones típicas de cualquier programa
como son la lógica control, algunas operaciones matemáticas,
manejo de variables y procedimientos, pero sobre todo también
os va a permitir manejar el hardware de arduino, específicamente
hardware del robot DYOR, pero también está pensado
para utilizar otro hardware, está disponible en varios idiomas
y dispone de una versión demo que es gratuita,
y una licencia que en principio pues bueno, pues si les compras
la electrónica del robot DYOR también es gratuita.
Bueno la interfaz visual, como veis dispone de una serie de
iconos y un menú de herramientas,
disponemos aquí en la parte de la izquierda una caja de herramientas,
en lo que son las diferentes categorías de las instrucciones
que vamos a poder utilizar, aquí la zona de en medio vamos a poder
arrastrar los diferentes bloques y esto va a representar nuestro
código, aquí en esta zona de aquí abajo tenemos una papelera,
de forma que según un bloque no nos gusta, queremos
eliminarlo, lo tenemos que simplemente arrastrar a la papelera,
en esta zona de aquí tenemos una zona en la que tenemos el
código textual que realmente es el que mandamos a arduino, esta
zona es no editable, es decir es un proceso de generación
del código por bloques que hemos visto anteriormente,
aquí la parte superior lo que disponemos es de monitor serie,
esto nos va a permitir ver las variables o determinados datos
que podamos transmitir desde lo qué es arduino a nuestro ordenador
principalmente para depurar y aquí la parte inferior lo que
vamos a poder es seleccionar el hardware de arduino que queremos y el puerto
en que está conectado, bueno mirar, os voy a mostrar aquí
la forma de programación por bloques, esto está fundamentalmente
regido por lo que es la librería blockly, entonces los bloques,
algunos de ellos, tienen lo que se les conoce como una conexión
previa, esto os va a permitir enganchar este bloque a una instrucción
anterior, concretamente a instrucciones que tengan la conexión
siguiente, entonces los vamos a poder ir poniendo uno detrás
de otro, algunas instrucciones disponen de una lista
en la que os va a permitir seleccionar diferentes variantes
de las instrucciones, disponemos de entradas, con esta
forma, de forma que todo lo que pongamos ahí será una un conjunto
de información que le servirá a la instrucción como entrada,
y podemos, aquí en esta instrucción concretamente, podemos
ejecutar lo que contiene, en caso de ser cierto la instrucción,
la entrada que hemos puesto, en caso de ser cierto, entraría
dentro de aquí y se ejecutaría un conjunto de instrucciones, y
con lo que tiene también el conector de salida.
Tenemos aquí también un conjunto de entradas, en este caso
están puestas en línea, las entradas puede estar puestas
una detrás de otra o podrían estar en línea,
aquí disponemos, en algunas instrucciones, de lo que se le llama
un mutador, un modificador de la instrucción, que nos
permite arrastrar determinados casos o situaciones en
las que queremos incluir un código u otro,
algunas instrucciones disponen de digamos de una salida, que
es el resultado que conectaríamos lógicamente la entrada,
pues lógicamente, pues aquí vemos un par de ejemplos en los
que tenemos una serie de operaciones matemáticas, pero aquí
también vemos algunos ejemplos de instrucciones básicas en
las que tenemos la posibilidad de declarar variables, definir
cadenas de texto o definir nuestras propias funciones o procedimientos.
las variables que maneja Facilino son, principalmente son enteros
y números reales, variables binarias o booleanas y también
maneja cadenas de texto o caracteres. Dispone que de por sí
un mecanismo de comprobación de errores,
de forma que no podemos conectar cualquier entrada a cualquier
salida, porque existen incompatibilidades de los tipos
de variables, entonces no podríamos conectar una variable de tipo
carácter, con una variable numérica, salvo que la instrucción
lo permita, entonces si no lo permite, nos generará un error
y nos expulsará a la hora de intentar conectar una con otra.
Después, concretamente arduino dispone siempre de una
función que se llama setup y una función que se llama loop,
esto está incluido en Facilino con una instrucción especial
que se llama setup/Loop y que nos va a permitir incluir dentro
del setup todas las instrucciones que vamos a querer utilizar
para inicialización, frente a las instrucciones que
pongamos en la zona de loop, que nos va a permitir ejecutar el
código en el procedimiento normal de arduino.
Bien, para que veáis aquí a lo que me refería
con que incluso si estáis habituados a programar lenguajes
de texto, fijaos como en este software con un
par de instrucciones o con una instrucción en este caso, podemos implementar
un conjunto de funcionalidades bastante complejas, que tendríamos
que desarrollar en código, y por tanto pues bueno
es mucho más intuitivo a la hora de utilizar el hecho de seleccionar,
arrastrar, un bloque que nos configure cualquier electrónica,
seleccionar sus posibles opciones y especificar los pines
a los que está conectado y todo esto nos genera automáticamente
el código arduino por nosotros.
Bueno ahora vamos a ver algunos algunos ejemplos básicos, en
este ejemplo, os lo muestro porque quiero que trabajemos la
idea de que aquí por ejemplo tenemos la posibilidad de crear
un bucle, también podemos declarar determinadas variables y
como veis, como ponemos aquí el valor en el que inicializamos
la variable, aquí en este bucle podemos especificar la variable
con la que queremos desarrollar el contador e iría
desde uno hasta diez, aquí en este caso estamos haciendo
una concatenación de textos, entonces estamos poniendo la palabra
iterartion y el valor de la variable, esto genera
una cadena de texto y esto lo estamos mostrando por puerto
serie. Aquí en este otro ejemplo estamos utilizando básicamente
el mismo conjunto de instrucciones que hemos visto anteriormente,
pero la diferencia es que hemos creado una función
que nos va a aceptar dos argumentos, esto lo vamos a poder
crear aquí con el mutador y entonces estos argumentos aparecen
aquí como una serie de variables hacemos
una operación, simplemente lo que estamos haciendo es una suma
de dos variables y devolvemos su resultado, concretamente estamos
utilizando esta función dentro del bucle for que hemos visto
antes, para definir una variable que lo que está haciendo
es almacenar una suma total y al hacer el bucle for lo que
estamos haciendo es en realidad calculando las potencias de
dos, en este en este ejemplo sencillo
y finalmente en estos ejemplos que vamos a mostrar ahora
ya digamos que trabajaremos con hardware,
en este primer ejemplo lo que estamos haciendo es mostrar,
bueno mostrar no perdón, de activar o desactivar el
led que tiene la electrónica arduino, está conectado por defecto
al pin 13 y en este caso lo que está haciendo es que cada
quinientos milisegundos está conmutando la señal del led,
entonces está encendiendo y apagando el led.
Aquí en este segundo ejemplo, es muy similar al anterior la
diferencia está en que lo que estamos haciendo es leyendo
lo que nos devuelve un pulsador, que lo hemos conectado a la
entrada 2, entonces si pulsamos, nos devolverá un valor bajo
y en ese momento lo que hacemos es, activamos el led si liberamos
el pulsador, este código lo que hará será a pagar el led
y ahora finalmente en este tercer ejemplo, lo que lo que vemos
aquí es que estamos leyendo de una señal analógica
que la tenemos conectada al pin cero, por ejemplo en este caso
podría ser una LDR, es una resistencia que es variable
con la intensidad lumínica y si el valor de lectura
que estamos obteniendo con esta con esta a señal es
menor que quinientos, entonces en este caso quiere decir que
tenemos poca luz y lo que hacemos es encender un led, por ejemplo
para una especie de lámpara automática. Como veis aquí los
códigos que hemos mostrado son muy sencillos y
simplemente pues un poco a modo de resumen de lo que hemos
visto os he introducido la interfaz gráfica de Facilino,
os he introducido a la forma y los procedimientos de programar
por bloques que dispone Facilino y os he mostrado alguno de
los ejemplos que podéis desarrollar de forma muy básica con Facilino.
Facilino es una aplicación disponible en Windows, Linux, macOS y Android que podéis descargar desde el siguiente enlace:
https://roboticafacil.es/descargas/
Además, disponéis de una versión on-line que con la que podréis acceder con cualquier navegador:
http://roboticafacil.es/facilino/blockly/Facilino.html
Durante el proceso de instalación de la aplicación de Windows se instalará la aplicación Arduino IDE, para el resto de plataformas, debéis tener instalador adecuadamente Arduino IDE, ya que como se ha explicado, Facilino es un generador de código, la compilación se hace a través de la interfaz de progamación de Arduino IDE.
Si observáis un comportamiento lento de la aplicación es probable que el problema resida en la configuración de la tarjeta gráfica. Para un buen funcionamiento, es conveniente aprovechar los recursos de aceleración gráfica al máximo, así que mejor si éstos está adecuadamente configurados (drivers).
En cualquier momento, podréis cargar y/o guardar el código Facilino para su uso en cualquier plataforma, ya que son, en principio 100% compatibles. Es una buena praxis que os guardéis el código de Arduino generado por Facilino en cualquier caso.
La licencia podéis utilizarla en cualquiera de las plataformas, ya que no está limitada al tipo de plataforma, pero sí a la IP asignada a la licencia. Podéis utilizarla en un equipo diferente tras cinco minutos después de su última utilización.
A continuación os incluimos algunas entradas del blog que detallan el proceso de instalación:
http://dyor.roboticafacil.es/guia-de-instalacion-de-facilino-en-windows/
http://dyor.roboticafacil.es/guia-de-instalacion-de-facilino-en-ubuntu/
Si Facilino se os queda corto o no os convence la programación por bloques, tened en consideración que siempre podéis utilizarlo como una herramienta de generación de código y posteriormente adaptar el código generado a vuestras necesidades. Esto es lo que hacen alugnos alumnos de la UPV en asignaturas de Robótica, ya que les resulta cómodo generar partes de código complejas con Facilino a partir de los ejemplos básicos para posteriormente adaptar su propio código basado en el código original creado desde Facilino. Cuando dominéis un poco la herramienta, veréis que os ahorrará mucho tiempo.
Además, si utilizáis una electrónica que no está soportada por Facilino podéis, o bien crear vuestro propio bloque con la herramienta de creación de bloques de Facilino, FacilinoMyBlocks (muy mejorable, pero algo es algo...):
https://roboticafacil.es/facilino/blockly/FacilinoMyBlocks.html
http://dyor.roboticafacil.es/facilino-myblocks/
Por otro lado, si domináis bien otro idioma, os agradeceríamos que contribuyeséis con la traducción de Facilino mediante la herramienta de traducción de Facilino. Estaréis ayudando a muchas personas que están interesadas en programar Facilino, pero con pocos conocimientos de programación y por tanto están buscando una herramienta de programación por bloques adecuada. Si os interesa saber más al respecto, disponéis de más información en:
http://dyor.roboticafacil.es/traduccion-de-facilino/
De hecho, gracias a vuestra colaboración en la traducción de Facilino podéis obtener una licencia de Facilino gratuita.
La versión de Android de Facilino es, por el momento poco operativa salvo que la utilicéis en una tablet (no ha sido desarrollada para móviles). Se ha creado con objeto de dar la máxima difusión a la herramienta, pero sólo debe usarse en casos en los que no sea posible utilizar cualquier otra versión de Facilino. Necesitaréis una aplicación llamada 'ArduinoDroid' para compilar y enviar el código a un dispositivo Arduino, además de un cable USB OTG.
Foro:
Pregunta:
hola, ¿¿¿puedo utilizar Arduino bloks???
Respuesta:
El curso esta orientado para seguirlo con Facilino.
Si Facilino se os queda corto o no os convence la programación por bloques, tened en consideración que siempre podéis utilizarlo como una herramienta de generación de código y posteriormente adaptar el código generado a vuestras necesidades. Esto es lo que hacen algunos alumnos de la UPV en asignaturas de Robótica, ya que les resulta cómodo generar partes de código complejas con Facilino a partir de los ejemplos básicos para posteriormente adaptar su propio código basado en el código original creado desde Facilino. Cuando dominéis un poco la herramienta, veréis que os ahorrará mucho tiempo.
Además, si utilizáis una electrónica que no está soportada por Facilino podéis, o bien crear vuestro propio bloque con la herramienta de creación de bloques de Facilino, FacilinoMyBlocks.
Saludos.