Por ahora, en el San Gabriel, hemos estado profundizando en cómo construir mecanismos basados en máquinas simples: palanca, polea, engranajes y combinaciones de ellos para conseguir cambiar la dirección de una fuerza, realizar menos esfuerzo para mover una carga o conseguir una mayor velocidad de giro. Todo lo aprendido va a constituir la parte física de nuestros robots o también llamado hardware.
Ha llegado el momento de automatizar todos esos mecanismos y darles un uso razonable dentro de sistemas que, realistas o no, realizan una función bien definida y de manera autónoma. Es decir, nos vamos a ir acercando a la robótica propiamente dicha. Para ello nos valemos de la programación o software.

hw vs sw

Así:

  • Nuestro HARDWARE es el kit de Lego Wedo: compuesto de los bloques de construcción, las piezas especiales de mecanismos, sensores (de distancia e inclinación) y actuadores (motor).
  • Y el SOFTWARE, que se comunica y controla ese hardware, es el Scratch.

Una vez construido el mecanismo y verificado que funciona, la manera que tenemos de automatizar su comportamiento es mediante sensores, que envían información del entorno a nuestro ordenador, y actuadores, que a partir de las órdenes mandadas de nuestro ordenador realizan una acción, por ejemplo, dotar a nuestro robot de movimiento.

El código programado con Scratch analiza la información llegada desde los sensores y, en función de sus valores, mandará las órdenes para realizar las acciones que deseemos.

Resumiendo, se puede decir que el hardware nos permite la interacción con el entorno (tanto de analizarlo como de actuar sobre él) mientras que el software dota a ese mecanismo físico de “inteligencia” creando las pautas de actuación en función de la información del entorno. En definitiva, es una comunicación bidireccional.

Una vez interiorizado el sentido la programación para la creación de nuestros robots pasemos a aprender a crear código:

lenguajes

Nuestro pequeño Einstein, al igual que nosotros, sabe dar e interpretar órdenes en el lenguaje natural (español, inglés, alemán…). Pero los ordenadores, por ahora, no son duchos a la hora de interpretar el lenguaje  humano. Es por ello por lo que tenemos que aprender a manejar su propio lenguaje: lenguaje de programación de alto nivel, en nuestro caso Scratch. Es muy difícil programar directamente un código que funcione correctamente incluso sabiendo claramente lo que tenemos que hacer. Por lo que es recomendable esbozar en un papel las órdenes individuales que queremos que nuestro robot realice. Estas órdenes, muy parecidas al lenguaje de alto nivel  y también a nuestro lenguaje natural,  que un ordenador aún no es capaz de entender recibe el nombre de pseudocódigo (falso código). Una vez tenemos esquematizado nuestro objetivo a través de órdenes simples en pseudocódigo es la hora de pasarlo a código de alto nivel. Cuanto más pormenorizado sea nuestro pseudocódigo más fácil resultará la tarea de implementarlo con Scratch.

Para debutar como programadores hemos decidido programar a nuestros compañeros. Nuestro objetivo: que desde sus sitios caminen y lleguen la silla del profesor y se sienten. Parece fácil, sin embargo sólo han llegado a realizar correctamente la misión un par de robots por clase. Las principales cosas que hemos aprendido son:

  • Un robot no funciona a “medias”: o funciona correctamente o no funciona. No nos valen las lavadoras que laven y no centrifuguen o las neveras que enfríen por las mañanas y no por las noches. Un robot que se choca no está funcionando bien. Un robot debe funcionar correctamente en todo momento y en cualquier tipo de entorno y circunstancias.
  • Hay  muchas formas de implementar un objetivo: por ejemplo, para llegar de un punto a otro en tres pasos se puede dar la orden de “da un paso, da un paso, da un paso” o la orden “repetir tres veces: dar un paso”. Las dos soluciones son correctas e igual de válidas.
  • Condiciones iniciales: es muy importante definir el estado de nuestro robot al comenzar su funcionamiento. No es lo mismo que nuestro robot esté sentado inicialmente o que ya esté de pie mirando en dirección al punto de llegada. En cualquiera de los dos casos hay que indicarlo al inicio de nuestro programa y empezar a dar órdenes a partir de ahí.
  • Calibración del robot: debemos conocer muy bien el comportamiento de nuestro robot para que las órdenes que le demos se ajusten al objetivo que buscamos. Por ejemplo, no es lo mismo los pasos de un niño pequeño que los de un adulto, o pasos normales que zancadas, o el giro completo de la rueda de un tractor recorre más distancia en metros que un giro completo de la rueda de unos patines.

Cuando se programa es muy probable que no nos funcione todo a la primera: NO PASA NADA. Lo bueno de la programación es que se puede modificar muy fácilmente, a diferencia del hardware, tan sólo tenemos que añadir o borrar una línea de código.

Consejos varios: es bueno ir verificando cada línea de código para ver que cumple su misión correctamente. Una vez escrito el programa, si hay que cambiar algo, es aconsejable hacer modificaciones de una en una e inmediatamente comprobar el efecto del cambio. Si cambiamos muchas líneas de código simultáneamente las consecuencias pueden ser catastróficas. Si se hace necesario la modificación de muchas partes del código es mejor volver a la etapa del pseudocódigo para aclarar nuestros objetivos.

Este sitio web usa cookies. Más información. ACEPTAR

Pin It on Pinterest

Share This