jueves, agosto 03, 2017

Programar el robot desde el celular

Se agrega a la buena noticia que hace poco traía a “Expediciones Virtuales” respecto a que MakeBlock estaba disponible para Linux, que ya se existe, también, la versión para Chromebook que funciona de maravillas (algún día escribiré un post sobre mi maravillosa experiencia con esta eficiente y económica maquinita basada en Chrome OS más que ideal para usar en educación cuando se cuenta con buena conectividad).
Pero hoy les quiero contar sobre otra forma de programar MBot: a través del celular. Les contaré de una de las aplicaciones (disponibles para Android e iOS) que permiten programar con un código más simplificado pero ideal para iniciarse en la programación de robots, con la ventaja adicional de ofrecer un tutorial para aprener los comandos antes de zambullirse en la creación de nuevos programas. Esta aplicación se llama simplemente MBlock.


Instalar el Firmware
La app de MBlock para el celular se comunica con el robot utilizando Bluetooth, por lo cual es necesario, antes de utilizalo, que sea actualizado el firmware de Arduino, lo cual se debe hacer desde la PC o la Chromebook con MakeBlock. El firmware es un software que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Como el firmware está muy integrado con la electrónica del dispositivo tiene directa interacción con el hardware y es el encargado de controlarlo para ejecutar correctamente las instrucciones externas. Esto significa que sin la actualización correcta del firmware, el robot no podrá recibir las órdenes por bluetooth.
Esto puede parecer complicado pero no lo es. Actualizar el firmware de Mbot es muy fácil: solo hay que conectar el robot por USB y luego elegir la opción de actualización. Esto carga el programa y el robot ya queda listo para recibir instrucciones desde el celular.


1) Conectar el robot


2 - Seleccionar el board (Mbot)


3 - Cargar el firmware

Eso sí: es muy importante tener en cuenta que cada vez que carguemos otro programa desde dispositivos diferentes al celular, el firmware se borrará y será necesario actualizarlo nuevamente repitiendo el procedimiento para volver a programar el robot desde el celular.


Conexión vía bluetooth
Una vez que hemos actualizado el firmware, lo que sigue es activar la conexión entre el celular y el robot. Para ello, habiendo activado la opción bluetooth en el teléfono, tendremos que acercar el dispositivo a fin de que se establezca la conexión, lo cual, si todo está en orden sucederá muy rapido.


El celular buscando la señal del robot (que, obviamente, debe estar encendido)


Tutorial por niveles o creación libre
Apenas se confirma la conexión, la app ofrece dos opciones.





La primera de ellas, el tutorial, es una secuencia de desafíos secuenciados que permite aprender rápidamente los comandos que controlan el robot.


Cada vez que el pequeño código está resuelto de acuerdo al problema planteado en el desafío, el programa invita a testear el programa.



Si la resolución fue correcta, el robot "festeja" permite avanzar con el siguiente desafío.



En la segunda opción, creación libre, el usuario tiene disponibles todos los comandos y permite programar al robot sin ninguna secuencia limitante. Simplemente se escribe el código deseado utilizando los bloques necesarios para luego transmitir el programa al robot bluetooth mediante para ejecutar el programa. Por supuesto, esta es la parte que más potencial tiene para experimentar y aprender.







lunes, junio 05, 2017

Siga la línea (lo mejor que pueda)


Quizá una de las funciones más interesantes de los robots creados para robótica educativa es la que involucra los sensores de línea a los que había presentado en un viejo post hace ya algún tiempo.

El sensor de líneas permite dectectar "blanco" o "negro" sobre el suelo, lo cual resulta ideal para que el robot circule de acuerdo a un camino (o pista). Un programa básico para hacer funcionar al robot sobre una pista sería el siguiente:



En esta versión, el sensor detecta si se aleja de la línea blanca para corregir el curso con un giro según corresponda. El programa parece funcionar muy bien cuando lo probamos:



Pero... ¿si en vez de utilizar una línea blanca, utilizáramos una línea negra como pista? El desafío parece ser simple: invertimos los colores de detección y los correspondientes giros. Sin embargo, al probar el código en otra pista el robot pierde el curso y en curvas más exigentes se despista. Esto nos pone frente al desafío de intentar un programa más preciso. Veamos este intento:



Este es otro modo de pensar el código en el cual se coloca como condición a la eventual situación en la que se encontrarían ambos sensores para decidir giros y nivel de velocidad. El resultado es más preciso. El robot ya no pierde la línea tan facilmente como con la versión anterior.



Sin embargo, subsiste una falla... si el robot pierde la línea comienza a girar sobre sí mismo, lo cual reduce sus posiblidades de volver a encontrar la línea por la cual circulaba. ¿Cómo podría solucionarse esto?


Preguntas como esta se sucederán una y otra vez al probar el programa en pistas distintas. Y así es como el desafío se renueva y puede volverse más exigente. Porque no hay una única solución. No sirve con que funcione "teóricamente", el robot tiene lograrlo, hay que identificar el problema y proponer una hipótesis para corregirlo. Y cada vez que lo volvemos a pensar, hay algo nuevo que aprender. 



lunes, mayo 22, 2017

"MakeBlock" para Linux

Hoy retomo los desafíos de robótica educativa, que dejamos pendientes y con una excelente noticia. MakeBlock está disponible para Linux y resuelve en un solo paso todos los trucos que en su momento explicaba en este viejo post.

"MakeBlock" le da la bienvenida a mi Ubuntu

Eso significa que, ya no tendremos que utilizar Wine y que además no será necesario copiar y pegar el código en un IDE para cargarlo en la placa Arduino del Robot sino que esto esto se podrá hacer directamente desde el mismo entorno.
La forma de cargar el programa a través de un cable USB es muy simple:
  1. Hacer click sobre el bloque “mBot Program” aparecerá automáticamente la “traducción del código” en una columna ubicada a la derecha
  2. Conectar la placa de Arduino al Robot con el cable USB (¡no se olviden de encender la placa!)
  3. Asegurar que el puerto está conectado. Para ello verificar en el menú superior la habilitación del puerto USB.
  4. Hacer click sobre el botón “upload to Arduino”.

Carga del programa en cuatro pasos



El programa comenzará a cargarse mientras se muestra el código binario al pie de la columna derecha. Cuando esté listo, aprecerá un cartel que dirá “upload finish”. Entonces, ya podemos desconectar el cable y verificar si el programa funciona como lo deseamos.


Y si cuando arranca nuestro robot… lo que pasa no es lo imaginado, ya saben, a revisar el programa ¡y a volver a empezar con una nueva versión!

Por último, solo una cosita: para editar directamente el código (hemos mostrado algunos ejemplos de como esto podría ser necesario en nuestro post “Música Robótica”) ahí sí deberán utilizar el IDE de Arduino porque MakeBlock solo permite la edición del programa uitlizando los bloques.

Este es el sexto post sobre nuestras experiencias con mBot. Si te interesa conocer como llegamos aquí podés vistar nuestros post anteriores: “Primeras experiencias en robótica educativa”,  “Con ojos de robot”,  “¡Alto ahi”: Programando con el control remoto” y “Música Robótica” y “Bailando por un programa” en este mismo blog.

lunes, mayo 08, 2017

Programar para aprender: el diseño de una capacitación docente en línea


En los últimos años se han conocido diversos programas con el propósito de introducir la enseñanza de la programación en la escuela. El interés por estos contenidos se funda, entre otras cuestiones, en las ventajas de promover habilidades lógico matemáticas propias del pensamiento computacional en etapas tempranas.

A fin de capacitar a los docentes se ofrecen cursos y talleres generalmente en formatos presenciales e híbridos. Pero para ampliar geográficamente este alcance se requería una propuesta complementamente en línea. 

En alianza con Chicos Net, el PENT de Flacso Argentina asumió esta tarea, cuyo desarrollo y alcance fueron abordados en este artículo que referimos y que  escribimos para el Congreso Interfaces de la UP junto a mi colega Juan Pablo Baraga.

Hemos desarrollado en este artículo el enfoque de la Programación Creativa, que busca la convergencia entre la tradición pedagógica desarrollada la última década en materia de inclusión de TIC con sentido pedagógico y este interés emergente por la enseñanza de la programación.


En segundo lugar, hemos descripto las estrategias de eLearning que tomamos para abordar esta capacitación en "Programación Creativa" buscando una solución intermedia entre el enfoque de la Educación en Línea y los cursos MOOC.