Para aprender a programar se necesita mucho esfuerzo, por lo que nos os preocupéis si no entendéis al principio, poco a poco lo iréis comprendiendo.
Para programar, además de escribir y descargar el programa en el robot, hay que configurar el hardware según lo que vayamos a utilizar. Es decir, cada vez que hagamos un programa, es posible que haya que modificar los cables, poner algunas resistencias… Para que lo entendáis mejor, primero explicaré como es la protoboard, placa con la que trabajaremos.
Placa de educación y Protoboard:La placa de educación es la placa que vamos a utilizar como ``cerebro´´ de nuestro robot. Ella es la encargada de procesar toda la información y actuar en consecuencia según su programación. El programa se descarga en ella y todos los sensores y actuadores (motores, vibradores…) deberán estar conectados a ella. Es la parte más importante, por lo que se deberá tener cuidado con ella. La placa es la CPU, es un microcontrolador, ya que es donde se procesa la información pero no contacta con los seres humanos (no directamente, no tiene teclado…).

Cómo se programa:El programa que se utiliza es el Basic Stamp, con lenguaje PBasic, muy parecido al Basic tan conocido. Este programa se puede descargar de la página web de parallax
Una pantalla en blanco en la cual hay que escribir el programa. Lo primero será ir a directive y señalar que placa vamos a usar (BS1, BS2…) y en que lenguaje de PBasic (2.0, 2.5…). En principio poned BS2. Una vez echo esto, el programa reconocerá en azul los comandos característicos.
Para programar se debe seguir un orden:
1. Variables
2. Entradas y salidas
3. Programa principal
4. Resto del programa
Lo mejor es seguir este orden para no perderse aunque los dos últimos pueden cambiar su posición (dependiendo del caso). Hay muchos comandos por lo que sólo explicaré algunos de ellos, si se quieren conocer todos, se puede ir dentro del programa a help y allí encontrarás toda la información sobre como usarlos y para que sirven (en inglés). Si seguís leyendo encontraréis la descripción de muchos comandos. Cuando los escribáis, es recomendable poner comentarios para que otros puedan comprenderlos. Para ello, se pondrá una coma alta (`) y así el programa pasará a la siguiente línea cuando llegue ahí.
Variables: Para declarar variables hay que hacer varias cosas, lo primero es darle un nombre a la variable (de hasta 32 caracteres), como por ejemplo ``num´´. Después se escribe VAR y después el tamaño de la variable: Las variables pueden ser declaradas en 4 tamaños diferentes: bit (1 bit), nib (nibble - 4 bits), byte (8 bits), & word (16 bits)
Se debería siempre declarar sus variables en el tamaño más pequeño que sea apropiado para los datos que contendrá. El Stamp2 tiene un límite de 208 bits para guardar variables. Estos están agrupados en 13 palabras (de 16 bits cada una). Estos bits pueden ser usados en cualquier combinación de tamaños anteriores. Por ejemplo, su programa puede tener 10 variables
word (160 bits), 10 variables nibble (40 bits), y 8 variables bit (8 bits), o cualquier otra combinación mientras que el valor total no exceda los 208 bits.
Entradas y salidas: Las patitas o pines pueden ser entradas o salidas, dependiendo de si la placa recibe información (entrada) o la envía (salida). Serían salidas los motores, LEDs… y entradas los sensores. Las salidas se declaran con el comando output seguido del número del pin (con un espacio). Ej: OUTPUT 4. La entrada se hace de la misma manera pero con el comando input.
Programa principal y secundarios: El programa principal contiene la parte del programa que siempre se realiza, y los secundarios son las subrutinas o partes que suceden en caso de que ocurra un suceso determinado. Para cada programa hay que crear una etiqueta, es decir, ponerle un nombre y : para identificar esa parte del programa. Una vez acabado, se puede poner el comando goto y la etiqueta a donde se quiera ir. Se puede poner el mismo nombre de la parte ya finalizada si es la parte principal o se quiere crear un bucle (no sale de esa parte) u otro nombre de otra parte del programa.
Con este programa veréis parte de lo mencionado, aunque habrá cosas que todavía no se han comentado:
' {$STAMP BS2}
x VAR Word `crea una variable de tamaño 16 bits
OUTPUT 0 `el led conectado
OUTPUT 1 `el motor izquierdo conectado
OUTPUT 2 `el motor derecho conectado
INPUT 3 `el bumper izquierdo conectado
INPUT 4 `el bumper derecho conectado
leds: `crea una etiqueta para el led
FOR x=1 TO 3 `crea un bucle que se repetirá 3 veces para encender los leds
LOW 0 `enciende el led
PAUSE 250 `espera 250 milisegundos
HIGH 0 `apaga el led
PAUSE 250 `espera 250 milisegundos
NEXT `vuelve al principio del bucle
revisar: `crea una etiqueta para mirar el estado de los bumpers
IF IN3=0 AND IN4=1 THEN giro1 `si el bumper izq. esta pulsado y el der. no entonces gira
IF IN3=1 AND IN4=0 THEN giro2 `si el izq. no está pulsado y el der. si entonces gira
IF IN3=0 AND IN4=0 THEN vuelta `si el izq. está pulsado y el der. también entonces da la vuelta
IF IN3=1 AND IN4=1 THEN avanzar `si el izq. y el der. no están pulsados entonces avanza
GOTO revisar
avanzar: `avanza el robot al no haber obstáculo alguno
FOR x=1 TO 200
PULSOUT 1,1000
PULSOUT 2,500
PAUSE 10
NEXT
GOTO revisar
giro1: `gira hacia la derecha al haber obstáculo en la izquierda
FOR x=1 TO 50
PULSOUT 1,
PULSOUT 2,
PAUSE 10
NEXT
GOTO revisar
giro2: `gira hacia la izquierda al haber obstáculo en la derecha
FOR x=1 TO 50
PULSOUT 1,
PULSOUT 2,
PAUSE 10
NEXT
GOTO revisar
vuelta: `retrocede para después girar hasta darse la vuelta
FOR x=1 TO
PULSOUT 1,500
PULSOUT 2,1000
PAUSE 10
NEXT
FOR x=1 TO 150
PULSOUT 1,500
PULSOUT 2,500
PAUSE 10
NEXT
GOTO revisar
Para descargar el programa deberemos conectar la placa al ordenador y después pinchar en Run, si el programa tiene fallos de sintaxis, te será indicado antes de ser descargado, por lo que tendrás que corregirlo.
¡Necesitas ser un miembro de Aprende Robotica para añadir comentarios!
Participar en Aprende Robotica