Académique Documents
Professionnel Documents
Culture Documents
En esta placa, situada en la parte superior del Boe-Bot, se encuentran todos los componentes
electrónicos necesarios para el funcionamiento del robot. En nuestro caso se trata de la versión
C del modelo educativo de Boe-Bot.
1.- Conector para una pila de 9 voltios. Normalmente usaremos el robot con el portapilas de 5
voltios, por lo que no estará conectada la pila de 9 voltios, ya que el diseño de la tarjeta no lo
permite.
2.- Condensadores del filtro del regulador de voltaje de 5 voltios en corriente continua.
3.- Conector del puerto serie para la comunicación con el ordenador. Se utiliza para la carga
de los programas de PBASIC en el Boe-Bot desde el editor instalado en el ordenador.
También se puede utilizar para disponer de la pantalla del ordenador como pantalla del Boe-
Bot en la que aparecen mensajes mediante la orden DEBUG.
7.- LED verde que nos indica que el Boe-Bot está encendido.
8.- Conector de las entradas/salidas del microcontrolador BASIC Stamp para su uso en la
placa protoboard situada a continuación. Los diferentes pines están marcados desde el P0
hasta el P15. Utilizados como entradas se pueden conectar a sensores tales como detectores de
infrarrojos, de luz, pulsadores, etc. Utilizados como salidas proporcionan tensiones de hasta 5
voltios para encender LEDs, emisores de infrarrojos, zumbadores, etc.
9.- Placa protoboard para el montaje de los componentes electrónicos necesarios para los
sensores e indicadores luminosos o acústicos.
10.- Conector de alimentación. Los cinco primeros pines (Vdd) proporcionan una tensión
positiva de 5 voltios, los tres siguientes (Vin) una tensión positiva del voltaje que
proporcionen las pilas o el adaptador de corriente (6 - 9 voltios) y los cinco últimos (Vss)
proporcionan la masa, el polo negativo a una tensión de 0 voltios.
11.- Conectores para cuatro servomotores asociados a las salidas P12, P13, P14 y P15.
13.- Regulador de voltaje que proporciona a los circuitos electrónicos 5 voltios positivos
(Vdd) y la masa (Vss).
1.- Cuatro pines para la comunicación con el ordenador mediante el puerto serie. Esto permite
la carga de programas en lenguaje PBASIC y el retorno hacia la pantalla del ordenador de la
información proporcionada por la orden DEBUG.
2.- Memoria EEPROM de una capacidad de 2K en donde se almacena el código fuente del
programa editado en PBASIC.
9.- Regulador de voltaje que estabiliza la tensión desde los 6 - 9 voltios de la alimentación a
los 5 voltios utilizados por los circuitos electrónicos.
3. Placa protoboard
La placa protoboard permite realizar con facilidad los circuitos electrónicos necesarios para
los sensores y los indicadores luminosos y acústicos. A su lado en la parte superior se
encuentran los conectores de la alimentación y a la izquierda los dieciséis pines de las
entradas/salidas desde la P0 hasta la P15. Los cinco primeros pines (Vdd) proporcionan una
tensión positiva de 5 voltios, los tres siguientes (Vin) una tensión positiva del voltaje que
proporcionen las pilas o el adaptador de corriente (6 - 9 voltios) y los cinco últimos (Vss)
proporcionan la masa, el polo negativo a una tensión de 0 voltios.
La placa está dividida en dos columnas de diecisiete sectores horizontales de cinco pines cada
uno, tal como indica el esquema siguiente.
4. Calibrado de los servomotores
Para comenzar el calibrado se ha de colocar el jumper en la posición adecuada, tal como se
indica en el siguiente esquema. Se utilizará en la posición 1 si se usa como fuente de
alimentación el portapilas de 6 voltios y la posición 2 si se utiliza un adaptador de corriente de
entre 6 y 7,5 voltios y una intensidad de al menos 800 miliamperios (es recomendable que esta
intensidad sea de 1.000 mA).
Los servos se conectan a los conectores de la tarjeta de circuitos electrónicos tal como se
indica en el esquema siguiente, de forma que estén conectados en las salidas P12 y P13.
Para disponer de una información visual de lo que está ocurriendo con las salidas que
controlan los servos conectaremos también un par de LEDs en los pines P12 y P13 tal como
indica el siguiente esquema.
Para calibrar los servos se utiliza un programa específico en PBASIC que genera impulsos de
una determinada frecuencia. Mientras se ejecuta el programa se ha de actuar sobre un
potenciómetro, situado en el interior del servomotor, al que se accede a través de un pequeño
agujero en la carcasa del servo. Haciendo girar el potenciómetro, con suavidad, mediante un
destornillador de estrella, se ha de conseguir que el eje del servo se mantenga inmóvil, sin
girar ni hacia la derecha ni hacia la izquierda y manteniéndose parado sin tan siquiera hacer
ruido.
DO
PAUSE 20
LOOP
La orden PULSOUT envía un pulso de 5 voltios a la salida requerida. Esta orden lleva dos
cifras a continuación. La primera cifra indica la salida a la que estará conectado el servo, en
este caso la P12. La segunda cifra indica la duración del pulso. El valor 750 lo hemos de
multiplicar por 2 microsegundos, lo que significa que el pulso tiene una duración de 15
milisegundos.
La orden PAUSE detiene el programa durante tantos milisegundos como indique el número
que le acompaña. En este caso 20 ms.
Como estas órdenes se encuentran dentro de un bucle DO - LOOP los pulsos se suceden
indefinidamente.
El gráfico siguiente indica la secuencia de pulsos y pausas que genera este programa.
Para calibrar el servomotor que se encuentra conectado a la salida P13 se utiliza un programa
similar.
DO
PAUSE 20
LOOP
5. Montaje del Boe-Bot
El primer paso para el montaje del Boe-Bot consiste en el atornillado de los separadores de
aluminio sobre la carcasa. Sobre estos separadores irá montada la tarjeta de circuitos
electrónicos. A continuación se coloca la goma central por cuyo agujero han de pasar los
cables de los servomotores y del conector del portapilas.
Antes de atornillar los servomotores sobre la carcasa se habrán de calibrar para que funcionen
correctamente, tal como se ha indicado anteriormente, pues una vez montados no se puede
acceder al agujero de regulación.
Los servos, a los que previamente se habrán quitado las cruces de accionamiento que vienen
de fábrica, se sujetan mediante cuatro tornillos a la carcasa de aluminio. Una vez atornillados
se etiquetan sus cables con la D y la I de derecha e izquierda.
A continuación se fijan las ruedas mediante el tornillo correspondiente sobre los ejes de los
servos. Previamente las ruedas se han de recubrir con la banda de goma para mejorar la
adherencia sobre el suelo en los desplazamientos del robot.
La rueda loca trasera se sujeta mediante el pasador que la fija a la carcasa y que sirve a la vez
de eje de giro.
Introducción de los cables de los servos y el portapilas a través del anillo de goma.
Montaje de las ruedas.
Las líneas de programa comenzadas por el signo de apostrofe (‘) son comentarios que el
programa no ejecuta porque no los identifica como órdenes.
La orden DEBUG visualiza en la pantalla del ordenador el texto escrito entre las comillas.
La orden LOOP devuelve el programa a la línea ocupada por DO de forma que la secuencia
intermedia de encendidos y apagados se repite indefinidamente mientras el programa se esté
ejecutando.
La orden HIGH 12 ó HIGH 13 envía una salida de + 5 V por el pin de entrada/salida P12 ó
P13.
La orden PAUSE detiene el programa tantos milisegundos como indique la cifra que le
sigue. En nuestro caso el programa se detiene 500 milisegundos, es decir, medio segundo.
La orden LOW 12 pone a cero el pin de entrada/salida P12. Lo mismo ocurre con la orden
LOW 13.
El listado del programa es el siguiente:
DO
HIGH 13
PAUSE 500
HIGH 12
LOW 13
PAUSE 500
LOW 12
LOOP
Las variables de tipo Word admiten valores entre el 0 y el 65535 (También puede ser entre -
32768 y + 32767).
En el siguiente programa se definen dos variables, se les asigna un valor, una de ellas se
multiplica por 10 y se visualizan las dos en la pantalla del ordenador. La orden END, en la
última línea del programa, finaliza el mismo.
variable1 = 500
variable2 = 2000
DEBUG ? variable1
DEBUG ? Variable2
Variable1 = 10 * variable2
DEBUG ? variable1
DEBUG ? Variable2
END
variable1 = 500
variable2 = 2000
DEBUG ? variable1
DEBUG ? Variable2
Variable1 = variable2 / 10
DEBUG ? variable1
DEBUG ? Variable2
END
variable1 = 500
variable2 = 2000
DEBUG ? variable1
DEBUG ? Variable2
DEBUG ? variable1
DEBUG ? Variable2
END
En la misma línea se comienza por FOR seguido del nombre de la variable un igual y el
valor por el que se comienza a contar. A continuación se escribe TO y el valor hasta el que se
ha de contar. Es opcional el uso de STEP y a continuación el valor que se incrementará al
contador en cada nuevo ciclo hasta llegar al valor máximo.
FOR contador = 1 TO 20
DEBUG ? contador
NEXT
END
En la siguiente versión del programa se utiliza la orden STEP. La orden CLS a continuación
de DEBUG borra la pantalla.
END
También podemos realizar un contador que comience por un valor para la variable mayor y
vaya decreciendo ciclo a ciclo.
END
DO
PULSOUT 12, 800
PULSOUT 13, 800
LOOP
DO
PULSOUT 12, 700
PULSOUT 13, 700
LOOP
Para conseguir que camine hacia atrás el programa puede quedar así:
DO
PULSOUT 12, 800
PULSOUT 13, 700
LOOP
DO
PULSOUT 12, 700
PULSOUT 13, 800
LOOP
DO
PULSOUT 12, 745
PULSOUT 13, 754
PAUSE 4
LOOP
DO
PULSOUT 12, 700
PULSOUT 13, 800
PAUSE 20
LOOP
GOSUB subrutina1
GOSUB subrutina2
GOSUB subrutina3
END
subrutina1:
DEBUG “Primera subrutina.”
RETURN
subrutina2:
DEBUG “Segunda subrutina.”
RETURN
subrutina3:
DEBUG “Tercera subrutina.”
RETURN
Si queremos que los mensajes se escriban en líneas diferentes hemos de escribir CR después
del mensaje:
GOSUB subrutina1
GOSUB subrutina2
GOSUB subrutina3
END
subrutina1:
DEBUG “Primera subrutina.”, CR
RETURN
subrutina2:
DEBUG “Segunda subrutina.”, CR
RETURN
subrutina3:
DEBUG “Tercera subrutina.”, CR
RETURN
DO
LOOP
END
END
navegacion:
NEXT
PAUSE 200
RETURN
DATA "ABCCBAQ"
direccion = direccion + 1
SELECT instruccion
ENDSELECT
LOOP
direccion = direccion + 1
SELECT instruccion
derecha:
FOR contador = 1 TO 64
PULSOUT 12, 850
PULSOUT 13, 850
PAUSE 20
NEXT
RETURN
izquierda:
FOR contador = 1 TO 64
PULSOUT 12, 650
PULSOUT 13, 650
PAUSE 20
NEXT
RETURN
adelante:
FOR contador = 1 TO 64
PULSOUT 12, 650
PULSOUT 13, 850
PAUSE 20
NEXT
RETURN
atras:
FOR contador = 1 TO 64
PULSOUT 12, 850
PULSOUT 13, 650
PAUSE 20
NEXT
RETURN
LOOP