La Mente

Una de las definiciones más radicales que deben ser tomadas al inicio de un proyecto Robot, es a quien se le encargará la delicada tarea de pensar, evaluar, comparar y finalmente resolver frente a los múltiples desafíos que el robot tendrá en su probablemente breve existencia.

Tal como escribía en el capítulo inicial, un robot se define en términos globales por un conjunto de sensores en el perímetro de su cuerpo, un conjunto de actuadores que responden a los estímulos encontrados o a ciertas condiciones internas y un cerebro que es capaz de organizar todo este enredo en un todo coherente y funcional a los propósitos para los cuales el robot fue diseñado.

Para las funciones del cerebro se debe contar con un procesador, parecido en su estructura al procesador que alberga tu computador, pero sensiblemente más pequeño y mucho más sencillo en sus prestaciones.

Para los efectos de un robot de tamaño pequeño o aún mediano, se acostumbra a utilizar cierto tipo de procesadores denominados Microprocesadores, de los cuales hay decenas o quizás cientos de modelos disponibles en el mercado. La decisión de cual escoger estará basada en la complejidad de los datos que el pequeño cerebro debe procesar y por las dificultades que cada procesador presenta para su programación.

En términos muy generales de nuevo, los procesadores se dividen en aquellos que se deben programar en lenguajes de bajo nivel, es decir cercanos al Assembler y con alto nivel de complejidad y aquellos que son programables usando algún lenguaje interpretado de alto nivel, más cercano al Basic o Fortran. Mi elección personal ha sido inclinarme por microprocesadores que puedan ser programados en lenguajes de alto nivel, para no tener que volver a lidiar con el assembler, que es tan poco amistoso con los extraños.

El cerebro que he seleccionado para mis robots se llama Basic Stamp, "Basic" porque se programa en un lenguaje muy similar al Basic y "Stamp" porque es del tamaño de una estampilla postal. Lo fabrica Parallax y existen varios modelos disponibles que se diferencian en sus capacidades de procesamiento y la cantidad de puertas de Entrada/Salida (se les llama puertas I/O)

En mis primeros robots usé la BS-1, que está muy bien para proyectos pequeños con pocos requerimientos y funcionaba de maravillas. Pero a medida que crecen los requerimientos de más sensores o análisis más complejos, es necesario contar con un cerebro un poco más poderoso. Hasta hoy estoy utilizando la BS2, suficiente para mis últimos proyectos, pero siempre es posible crecer en capacidad de proceso, siempre que lo planifiques desde el inicio, porque cambiar el procesador cuando el robot ya está construido podría significar armarlo casi todo de nuevo.

La BS2 incluye una suite compuesta por el procesador propiamente, una zona de memoria de trabajo y una zona de memoria escribible para albergar el programa computacional que lo guiará en su existencia. Adicionalmente esa zona incluye el intérprete que convierte el programa escrito en PBasic a instrucciones de lenguaje de máquina, tarea que implica un cierto retraso en el funcionamiento del procesador, pero que para los efectos de un robot casero, en realidad no tiene mucha importancia.

Aquí incluyo una foto de una Basic Stamp 2 para que la conozcas.

La tarea del procesador es recoger la información que envían los sensores, analizarla en función de cierta programación que define su comportamiento y luego activar los actuadores correspondientes para tomar un curso de acción, en los casos que se requiera.

Imagínate que tienes un par de sensores de obstáculos en el frente de tu robot: cuando un obstáculo es encontrado, uno de los sensores lo detecta y envía una información de cambio de su señal digital. Este cambio es percibido por el procesador, quien lo evalúa de acuerdo a su programación y decide modificar el curso del robot, activando un actuador (un motor, por ejemplo) que le permite iniciar un giro en la dirección contraria del obstáculo.

Y tal como lo expliqué en la sección de El Cuerpo, los sensores y los actuadores pueden ser de muy diversa naturaleza y por lo tanto, las posibles combinaciones son muchísimas, lo cual da el espacio para el desarrollo de los diferentes comportamientos de cada robot.

En términos prácticos, la cosa es más bien sencilla: el BS2 provee de 16 patitas que representan tantos I/O ports, en donde cada uno de ellos puede ser de Entrada o de Salida, según sean los requerimientos de diseño.

De manera que es conveniente partir la aventura con una etapa de Diseño, provisto de abundante papel y lápiz de grafito, para ahorrarse muchos dolores de cabeza a posteriori. En esta etapa se asignan los puertos I/O a los sensores y a los actuadores, en la forma de un Diagrama esquemático del procesador y sus conexiones, incluyendo el número de I/O y el dispositivo al que está conectado.

Esta información es muy valiosa a la hora de realizar la programación, para no tener que hurgar entre decenas de cables en un espacio muy pequeño para saber a cual patita le fue asignado un determinado LED, por ejemplo. Ese tipo de cosas son las que pueden hacer renunciar prematuramente a una prometedora carrera de Ingeniero en Robótica.