miércoles, 25 de marzo de 2020

Simulador efecto pandemia paso a paso (para hacer en casa). Parte 2

Lo retomamos donde lo dejamos. Teníamos ya el simulador básico donde nuestro enfermo "extiende" la enfermedad entre los individuos sanos.
Vamos ahora a avanzar un poquillo más para parecernos cada vez más al proyecto de Michael Resnick.
Paso 5. Añadimos la posibilidad de que nuestros enfermos, tras un tiempo de enfermedad se curen. Nosotros lo hemos hecho cambiando la bolita de color. Debería quedar algo así (no os olvidéis de restar un enfermo cuando uno se cura)


Paso 6. Consideramos que los enfermos que se han recuperado son inmunes a la enfermedad y no pueden volver a enfermar.




Paso 7. Vamos a añadir la mortalidad (esto no lo hace el simulador de Resnick). Nos parece importante, porque si no podemos caer en la falsa sensación de que una vez estemos infectados todos ya no hay problema  y nos olvidamos de los que murieron en el proceso. Nosotros hacemos desaparecer el clon que fallece. Muy interesante en este punto es jugar con los números, ¿cuánto tiempo tarda cada enfermo en sanar? ¿qué tasa de mortalidad ponemos?




Paso 7. Pasamos al punto clave de reducir la movilidad. Establecemos un porcentaje de la población que no se va a mover. Esas "bolitas" las dejamos quietas en el sitio. Consejillo: variad la cantidad de indivíduos que no se mueven ¿qué observáis?


Ya sólo nos queda la última parte para poder visualizar mejor los datos, pero esa la dejamos para el siguiente post. ¡Ánimo con esto! iremos sacando los vídeos con las explicaciones de las soluciones en los próximos días.
Si tenéis dudas, consejos ideas, nos queréis mandar vuestro código ¡¡no lo dudéis ni un instante!!



martes, 24 de marzo de 2020

Reto Matavirus con Microbit

Va avanzando este periodo de confinamiento necesario y todos vamos pasando por distintos estados de ánimo. Nuestros niños y adolescentes están siendo muy valientes pero seguro que hay días o momentos a los largo del día en los que el enfado les consume. Os proponemos esta actividad para esos momentos o para cualquier otro; puede ser reconfortante luchar contra el enfado creando.

Para este reto os proponemos usar el entorno de programación MakeCode de Micro:bit. La ventaja es que si no tenéis la placa en casa podéis usar el simulador como hemos hecho nosotros. Es un entorno de bloques sencillo e intuitivo.

Os animamos a que programéis la placa Micro:bit de manera que haga lo siguiente:

  1. Muestre en la matriz de LEDs el dibujo de un coronavirus.
  2. Al pulsar los botones A+B vaya eliminando el virus y nos deje el mensaje fundamental de responsabilidad para estos días #quedatencasa.


En este vídeo de nuestro canal de YouTube tenéis el ejemplo de funcionamiento.


Y por si necesitáis una ayuda aquí tenéis el videotutorial con nuestra solución explicada paso a paso.



viernes, 20 de marzo de 2020

Simulador efecto pandemia paso a paso. Soluciones a la primera parte

Nos alegramos mucho de la cálida acogida que ha tenido nuestro proyecto.
Recogemos aquí los vídeos explicativos y los proyectos Scratch para los 4 pasos que os proponíamos en esta primera parte. ¡Esperamos que os sean de utilidad!

Paso 1: un individuo sano moviéndose libremente. 

En este paso básico trabajamos:

  • movimiento por la pantalla
  • rebote contra los bordes
Aquí tenéis el proyecto Scratch y en el vídeo una pequeña explicación.


Paso 2: dos indivíduos moviéndose libremente.

En este paso podemos trabajar:
  • creación de un clon
  • creación de un bloque

De nuevo os dejamos el enlace al proyecto Scratch y al vídeo explicativo.


Paso 3: Creamos la población.

En este sencillo paso simplemente creamos 100 clones en lugar de 1. 
Este es el enlace al proyecto y el vídeo con la explicación.



Paso 4: Creamos el mecanismo de contagio.


Este es el paso más complicado de esta primera parte. Vamos a distinguir por color individuos sanos de enfermos, contagiar cuando un indivíduo sano "toca" a uno enfermo y llevar la cuenta de los enfermos. Podemos trabajar los siguientes conceptos:
  • Variables, creación y uso de variables. Variables para todos los sprites y variables para un sprite.
  • Toma de decisiones: bucle if-then.
  • Bucles anidados.
  • Detección de color.

No os importe dedicarle más tiempo a este paso, sin duda es el más complejo. Esperamos que el vídeo con nuestra explicación que os dejamos a continuación y el proyecto Scratch os sean de ayuda.


Y con este vídeo terminamos las explicaciones a la primera parte. ¡¡Estad atentos porque aún nos quedan  muchas mejoras que hacer!!

martes, 17 de marzo de 2020

Simulador efecto pandemia paso a paso (para hacer en casa). Parte 1

El sábado 14 el periódico The Washington Post publicó un artículo (también disponible en castellano) explicando con una simulación con pelotitas moviéndose en la pantalla por qué el brote de coronavirus crece de la manera que lo hace y por qué el confinamiento ayuda a "aplanar la curva". Os dejamos aquí el enlace al artículo.

Ayer Mitchel Resnick uno de los creadores de Scratch compartió el proyecto Epidemic Simulation en Scratch inspirado en el artículo. Moviendo una barra se puede seleccionar el porcentaje de personas que "se quedan en casa" y ver los efectos en el número de contagios y la evolución de la curva.
El proyecto es fantástico pero complejo para principiantes. Así que hemos desarrollado una secuencia de pasos para ir llegando a ese programa tan chulo que propone el maestro Resnick pero en pequeños pasos, aptos para los más novatos.

Os proponemos la siguiente secuencia para trabajar en casa:
1. Comenzamos con 1 persona sana moviéndose líbremente. El resultado tendría que ser algo así:


2. Vamos ahora a añadir otra persona sana moviéndose líbremente. Debería comenzar en una posición aleatoria. (Pista: podemos usar la herramienta de clonar).

3. El paso 3 es bien sencillo. Vamos a replicar esto y a tener muchas personas moviéndose libremente. Por ejemplo así:

4. Vamos ahora a introducir elementos "enfermos". El enfermo será de otro color. Cada vez que una bolita sana choque con un enfermo, el sano enfermará (cambiará de color). Este es uno de los pasos más complejos de la programación.


Con esto ya tenemos el simulador básico. Pero quedan muchas mejoras que hacer para parecernos a la propuesta de Resnick. Esas para el próximo post.
Os iremos compartiendo nuestras soluciones paso a paso con explicación. Si queréis enviarnos las vuestras o si necesitáis ayuda, ¡aquí estamos, en casa pero presentes!

jueves, 5 de marzo de 2020

Robots ¿teleoperados?

Nunca me han gustado los robots teleoperados. Qué queréis que os diga, no me parecía robots. ¡¡Menos mal que me estoy reformando!!

¿Qué es un robot teleoperado?
Según los expertos un robot teleoperado es un robot que se controla a distancia mediante conexiones inalámbricas de distintos tipos

Y por eso no me gustaba nada, me parecía que eso de controlar un robot a distancia le quitaba interés y "glamour" a la robótica. ¡O robots autónomos completamente o nada de nada!
No tiene mucho sentido plantear teleoperado como opuesto a autónomo. Hay muchos casos en los que aunque el robot pueda considerarse teleoperado, es imprescindible que tenga cierto grado de autonomía, sobre todo si hay mucho retardo en las comunicaciones. Si nuestras órdenes tardan mucho en llegarle necesitamos que pueda hacer ciertas cosas de manera autónoma (no chocarse, por ejemplo) porque nuestro comando va a llegarle tarde seguro.
Que haya retardo en las comunicaciones depende mucho de donde estemos nosotros y donde esté el robot. Por ejemplo, si nosotros estamos en la Tierra y el robot en el espacio. Muchos robots espaciales son teleoperados, como el manipulador Dextre que está en la Estación Espacial Internacional.

Resultado de imagen de robot espacial dextre
Robot espacial Dextre (Fuente: wikipedia.org)
Además de los robots espaciales hay muchos otros robots que también son teleoperados como drones o robots médicos.

Resultado de imagen de robot médico da vinci
Robot médico para cirugía (Fuente wikimedia commons)

Si os quedan todavía dudas os invito a que leáis este estupendo libro "The Robot in the Garden: Telerobotics and Telepistemology in the Age of the Internet" editado por Ken Goldberg.
Insecto teleoperado constuído con el kit de robótica MRT Exciting

martes, 25 de febrero de 2020

Brazo robótico con el kit de robótica educativa Goma Brain

Los brazos y manipuladores robóticos nos acompañan en la industria desde hace ya bastante tiempo. Más nuevos son los proyectos de prótesis robóticas impresas en 3D que, en muchos casos de manera altruista, "makers" de todo el mundo construyen para ayudar a niños y niñas que lo necesitan.
Nuestros alumnos de la extraescolar de robótica Makers1 también construyen y programan un brazo robótico con el kit GomaBrain. Nos gusta que los alumnos que comienzan a iniciarse en el mundo de la robótica tengan referencias reales de todos aquellos robots que ellos construyen y con el caso de los brazos robóticos las referencias reales nos sobran.
Este brazo robótico nos permite trabajar con nuestros alumnos muchos aspectos. Vamos a destacar hoy en este post los siguientes:

  • Transmitir movimiento con engranajes
  • Iniciación a los bucles IF-ELSE
  • Experiencia práctica del rozamiento

Transmitir movimiento con engranajes.
Los motores son fascinantes y hacer girar con ellos ruedas es estupendo pero el salto llega cuando queremos conseguir algo más, como en el caso del brazo robótico: queremos mover ambas pinzas con un único motor. Una de las maneras más bonitas de conseguirlo es usando engranajes. Nuestro motor mueve uno de los engranajes, el tractor, que engrana con otro y lo mueve también. Como además, cada uno de los engranajes rota en sentido contrario justo conseguimos lo que queríamos, que la pinza se abra o se cierre, ya que cada uno de los brazos que la forman se mueve en uno de los sentidos.
El brazo robótico suele ser el primer contacto de nuestros alumnos con los engranajes. Ir entendiendo poco a poco esta transmisión de movimiento nos va a ir abriendo puertas a realizar construcciones cada vez más complejas.


Iniciación a los bucles IF-ELSE
Una de las piedras angulares de la programación es la toma de decisiones. En función de alguna variable o en nuestro caso de alguna entrada lo que nuestro programa o nuestro robot haga será diferente. Una de las estructuras de programación básicas para permitirnos tomar decisiones son los bucles IF-ELSE. En el brazo robótico vamos a tener que programar tres casos diferentes que van a requerir que programemos con las tarjetas una decisión:
1. Si el botón derecho está pulsado el motor ha de girar en sentido antihorario y la pinza se cerrará.
2. Si el botón izquierdo está pulsado el motor tendrá que girar en sentido horario y la pinza se abrirá.
3. Si no hay pulsado ningún botón el motor estará parado.
Este algoritmo va a ser uno de los primeros que nuestros alumnos programen con un bloque IF y aunque parece sencillo hay muchos matices que trabajar.


Experiencia práctica de rozamiento.
No es fácil coger cosas con un brazo robótico, sobre todo algunas. Con nuestro brazo robótico del Goma Brain experimentamos estas dificultades jugando a coger distintos objetos, no es lo mismo coger una pelota blandita que una hoja de papel o una pieza que resbala. No vamos a hablar de coeficiente de rozamiento pero nuestros alumnos sí van a "tocar" esa diferencia entre coger unas cosas u otras y pensarán como se puede modificar el brazo robótico para que sea más sencillo agarrar distintos tipos de objetos. En este vídeo resumen que os dejamos podéis verlo muy bien.



viernes, 14 de febrero de 2020

¿Por qué hacer robots de Sumo?



Resultado de imagen de sumo
El Sumo es un arte marcial japonés donde luchadores corpulentos se enfrentan en un área circular. Es el deporte nacional de Japón y sus orígenes se remontan al siglo VIII, aunque el Sumo moderno,  más o menos como lo conocemos hoy, proviene del s. XVII.
Pero ¿cómo y por qué llega el Sumo a los robots? Al igual que otras competiciones de robots, la competición en sí misma no es más que la excusa para otros fines. Entre estos objetivos se encuentran:


  1. Fomentar el intercambio de ideas y experiencias entre investigadores en robótica (recordad que estas competiciones surgen en el ámbito universitario y de investigación).
  2. Aplicar conocimientos de robótica a entornos diferentes (un tatami para sumo, por ejemplo) y que plantea retos interesantes.
  3. Pasarlo bien y divertirse, que no es menos importante


El sumo robótico al igual que el fútbol para robots y otras competiciones sale del ámbito de investigación y se extiende y generaliza con la llegada de la robótica educativa y amateur. Robots de sumo que en los 90 sólo estaban al alcance de laboratorios de investigación ahora son accesibles para cualquiera con unos mínimos conocimientos de electrónica y programación y sin necesidad de un gran desembolso económico.

El sumo robótico se inventó en Japón a finales de los 80 por Hiroshi Nozawa, jefe de Fuji Software Inc. El primer torneo se celebró en agosto de 1989 con 33 robots y desde entones el sumo robótico se ha ido haciendo popular en todo el mundo. En ambientes de aficionados es una de las competiciones más populares, probablemente por la sencillez de las reglas y del juego. Sólo se necesitan dos robots, un tatami de ciertas dimensiones (podéis consultar las dimensiones oficiales de competición nacional de sumo robótico japonesa aquí) y un cronómetro.
Cada partida dura 3 minutos. Pierde el robot que con cualquier parte de su cuerpo toca el exterior del tatami. Si en esos 3 minutos ninguno ha perdido y el combate está en tablas será el árbitro quién decida el contrincante que gana o si se celebra una prórroga.

En Logix5 no podemos resistirnos a hacer nuestras propias partidas de sumo robótico en las clases, nos ayudan a aprender a construir robots más robustos, que aguanten los embates de los contrincantes, a comprender bien los sensores infrarrojos que harán que nuestros robots no se salgan del tatami y los de ultrasonidos que nos permiten detectar dónde está el contrario.



Tan tan popular se ha hecho el sumo robótico que desde 2014 hay una competición de sumo para robots "mediocres", la hebocon. Este nombre proviene de la palabra japonesa "heboi" que quiere decir imperfecto, de poca calidad. El principal objetivo de esta competición no es desde luego ganar, sino divertirse y construir y ver los robots más extravagantes y peculiares. ¡No dejéis de echar un vistazo a los robots tan originales que se construyen para esta competición!

Para saber más:


  • De Sumo: 

  • De Sumo robótico:

  • De Hebocon:

martes, 28 de enero de 2020

¿Qué es un robot?

Una de las primeras preguntas que planteamos en nuestras clases de robótica es esta: ¿qué es un robot? Es lógico que si estamos en un curso de robótica nos planteemos en primer lugar entender la definición de robot. Pero no es tarea fácil fundamentalmente por tres razones:
  1. Llamamos robots a máquinas que realmente son muy diferentes entre sí. 
  2.  Además tenemos muchísimas imágenes de robots del mundo de la fantasía y la ciencia ficción, maravillosos pero en ocasiones alejados de la realidad (como debe ser con la fantasía).
  3. Y por si fuera poco mezclamos la robótica con el término inteligencia, tan difícil y escurridizo de definir.
Ante tareas complicadas conviene mirar a los expertos y analizar qué dicen los expertos en robótica que es un robot. La primera sorpresa nos la encontramos con Joseph Engelberger ¡¡padre de la robótica industrial! que  dijo una vez cuando le preguntaron por la definición de robot “no sé definirlo pero si veo un robot lo reconozco”.
Si buscamos definiciones "oficiales" lo ideal es irse al documento de la Oficina de Estándares ISO relativo a la robótica. En este documento optan por separar en dos la definición, una referente a robots industriales y otra a robots de servicio (lo que tiene bastante sentido teniendo en cuenta la diferencia entre robots industriales y robots de servicio (los que están fuera de la industria).
Robot industrial: un manipulador multifuncional, controlado automáticamente, reprogramable en tres o más ejes, que puede estar fijo o móvil para uso en aplicaciones de automatización industrial.
Parece razonable y lógica. Vamos con la de robots de servicio.

Robot de servicio:máquina que lleva a cabo tareas útiles para las personas o otras máquinas excluyendo aplicaciones de automatización industrial.

Vaya, la de robot industrial tiene un pase pero en robot de servicio podría valer para cualquier máquina que usamos para algo. ¿No podríamos afinar un poco más en esta definición? En la página de educación del IEEE ofrecen esta definición:
Un robot es una máquina autónoma que es capaz de percibir su entorno, realizar ciertos cálculos para tomar decisiones y actuar en el mundo real de acuerdo con esas decisiones.
Esta definición implica que un robot ha de ser capaz de hacer tres cosas:
  1. Percibir
  2. Calcular
  3. Actuar
En una entrevista publicada en la web serious-science, Mel Siegel, investigador en robótica del Robotics Institute de Carnegie Mellon University añade a estas tres capacidades la de comunicarse.

Parece una definición un poquito mejor. Desde luego engloba todas aquellas máquinas que podemos identificar como un robot. Pero ¿no se nos estarán colando cosas que no son robots? Por ejemplo, un termostato es capaz de percibir la temperatura de la habitación, decidir si hay que encender o no la calefacción y  encenderla. ¿Un termostato es un robot? y ¿una lavadora es un robot? y ¿un robot de cocina es un robot como dice su nombre?
Bueno, pues depende de a qué robótico le preguntes. Hay grandes investigadores de robótica que tienen claro que no lo son, por ejemplo Rodney Brooks, uno de los padres de la famosísima Roomba o el mismo Mel Siegel como cuenta en la entrevista referida antes. Otros como Gill Prat son más favorables a considerar estos aparatos como robots. 

Tal vez no es tan importante para muchas cosas tener una definición precisa de lo que es un robot porque las personas somos capaces, al estilo de Joseph Engelberger de identificar un robot si lo vemos. Pero es verdad que reflexionar sobre qué es un robot sí que nos aporta, por lo menos en nuestras clases.
Y vosotros ¿cómo definiríais un robot?

Créditos y referencias

martes, 7 de enero de 2020

Nuestros tres consejos para empezar a aprender robótica

Los comienzos en general son buenos momentos para plantearnos cambiar alguna cosilla de nuestras vidas o rutinas que no nos gusta o para hacer algo nuevo que nos apetece cambiar. Si para este 2020 que  recién estrenamos os planteais (cosa que os recomendamos sin duda) comenzar a aprender robótica ahí van nuestros tres consejos:

Consejo 1: Elige un proyecto que te apasione.
La neurociencia nos dice lo que ya sabíamos, nada se aprende mejor que aquello que amamos, que lo que nos apasiona. Así que si quieres aprender robótica elige un proyecto que te fascine. ¿Te gusta tu huerto? Piensa en hacer un robot agricultor o en automatizar alguna cosilla del jardín... Es verdad que para realizar un proyecto medianamente complejo hay que empezar aprendiendo lo más básico, pero no es menos cierto que no nos desanimaremos de la misma manera en los comienzos duros si tenemos claro un objetivo que queremos conseguir a toda costa.

Consejo 2: Divide el proyecto en pasos pequeños.
Esta es la clave del éxito de cualquier proyecto. Sigamos con el huerto, podemos irnos planteando objetivos pequeños y asequibles. Por ejemplo, nuestra primera meta podría ser medir la temperatura ambiente y la humedad y mostrarla en una pantalla. Más adelante podremos enviarla al móvil, regar si hace falta...

Consejo 3: Elige tecnologías abiertas.
Nosotros somos grandes defensores de las tecnologías abiertas, porque coinciden con nuestros valores, pero también porque ese conocimiento compartido nos ha ayudado (y nos ayuda) en multitud de ocasiones. Las tecnologías abiertas nos permiten compartir y aprender de otros que saben más o que han hecho cosas parecidas. Nos permite preguntar en foros y en redes a expertos que generosamente nos contestan y ayudan. Nada hay más valioso que la experiencia de otros. También puedes valorar apuntarte a un curso o taller que pueda ayudar con los primeros pasos.

¡¡Cuéntanos cómo te lo planteas tú!!