4ESO08

21
Robótica 1 Nombre ........................................... .................. 1

description

Robótica y PICAXE

Transcript of 4ESO08

Page 1: 4ESO08

Robótica 1

Nombre .............................................................

Curso ................................................................

Fecha ................................................................

1

Page 2: 4ESO08

Índice

Circuito para prototipos PICAXE-08

Características del PICAXE-08 y 08M

Comandos BASIC de PICAXE

Alimentación con pila de 9V

Circuito impreso

Utilización del puerto serie

Uso de servos de radiocontrol como motores

Conexión de motores de corriente continua

Otros montajes con motores

Utilización de sensores

Sensores con infrarrojos

2

Page 3: 4ESO08

Circuito para prototipos PICAXE-08

El siguiente producto fabricado por la empresa inglesa “Revolution Education Ltd.” (www.rev-ed.co.uk/) es una buena plataforma para iniciarse en el campo de la robótica. Se trata de la placa AXE021, dispuesta para albergar un microcontrolador de 8 patas, tal como el PICAXE-08 ó el PICAXE-08M, que la empresa vende por separado.

El listado de piezas que se han de soldar es el siguiente:

Placa de circuito impreso.R1 resistencia de 10k y 0,25 w (marrón, negro, naranja, oro).R2 resistencia de 22k y 0,25 w (rojo, rojo, naranja, oro).C1 condensador de poliéster de 100 nF.Conjunto de 3 pins del puente de dos posiciones.Conector estéreo de 3,5 mm para el puerto serie.Conector del portapilas.Zócalo para un circuito integrado de 8 patas.

Tal como se ve en el esquema siguiente, las patas 1 y 8 del integrado se utilizan para la alimentación eléctrica, las patas 2 y 7 para la comunicación con el ordenador mediante el puerto serie y las patas 3, 4, 5, 6 y 7 para entradas de información de sensores y salidas de órdenes del microcontrolador. Como se

3

Page 4: 4ESO08

ve la pata 7 tiene dos funciones que se seleccionan mediante el puente.

Una vez soldados los componentes se puede, si se desea, colocar un condensador electrolítico de 100 nF, tal como se indica en el esquema, para evitar las interferencias electromagnéticas producidas por el equipo en los aparatos cercanos.

La alimentación eléctrica se ha de hacer con pilas que proporcionen 4,5 ó 5 voltios. De ninguna manera se han de utilizar pilas de 9 voltios que dañarían el circuito integrado.

Para programar el microcontrolador necesitamos un programa de edición del lenguaje BASIC que utilizan los microcontroladores PICAXE. Este programa lo podemos descargar de forma gratuita desde www.rev-ed.co.uk/picaxe/ dentro del apartado “Software”. Se trata del “Programming Editor v5.0.7” que ocupa unos 27MB.

Una vez editado el listado del programa que queremos que realice nuestro proyecto debemos transferirlo al microcontrolador mediante un cable especial para conectar al puerto serie (AXE026), aunque también se puede utilizar un cable para conexión USB (AXE027). Mientras se transfiere el programa desde el ordenador al microcontrolador el puente debe estar en la posición indicada en la parte de arriba del siguiente esquema (Posición PROG). Una vez cargado el programa se debe pasar el puente a la posición indicada en la parte de abajo del esquema, para de esta manera aprovechar las posibilidades de la pata 7 (Posición OUT).

Características del PICAXE-08 y 08M

El microcontrolador PICAXE-08 tiene una unidad de memoria, para guardar el programa, los valores de las variables y otras informaciones, con una capacidad de 128 bytes y se puede almacenar en él un programa de unas 40 líneas. La versión superior PICAXE-08M tiene una unidad de memoria de una

4

Page 5: 4ESO08

capacidad de 256 bytes y se puede almacenar en él un programa de unas 80 líneas.Las posibles funciones de las patas de los microcontroladores PICAXE-08 y 08M se muestran en los esquemas siguientes:

Comandos BASIC de PICAXE

Los siguientes comandos se pueden utilizar tanto en el PICAXE-08 como en el 08M:

Configuración de las entradas y salidas: input, output, reverse, let dirs =Salidas: high, low, toggle, pulsout, let pins =Entradas: if...(and/or)...then, readadc, pulsin, buttonSonido: soundPuerto serie: serin, seroutControl del flujo del programa: goto, gosub, return, branchLazos: for... nextOperaciones matemáticas: let...(+, -,*,**,/,//, max, min, &, I,^, &/, I/,^/)Variables: if...then, random, lookdown, lookupGestión de la memoria: eeprom, write, readPausas: pause, wait, nap, sleep, endVarios: symbol, debug

El microcontrolador PICAXE-08M admite además los siguientes comandos:

Control de motores PWM: pwm, pwmout Música: play, tune Control de memoria RAM: peek, poke Control de los servos: servo Control de Infrarrojos: infrain2, infraout Interrupciones: setint Convertidor analógico digital de 10 bits: readadc10 Temperatura: readtemp, readtemp12 Introducción de número de serie: readowsnContador: count

5

Page 6: 4ESO08

Puerto serie: sertxd Frecuencia del reloj: setfreq

Alimentación con pila de 9V

El microcontrolador se puede alimentar de cuatro formas diferentes; con un portapilas de tres pilas alcalinas AA (4,5V), con un portapilas de tres pilas recargables AA (4,8V), con un portapilas de cuatro pilas AA en el que se ha puesto en serie un diodo 1N4001 que protege contra cambios de polaridad y rebaja la tensión en 0,7V (5,3V) y mediante un regulador de tensión.

Para poder alimentar los microcontroladores mediante una pila de 9 voltios hemos de hacer pasar esta corriente por un circuito dotado de un regulador de voltaje. El regulador 7805 permite el paso de una corriente de 1 amperio y el 78L05 de 100 mA. Para estabilizar la tensión se utilizan cuatro condensadores. Dos de ellos de una capacidad de 100 nF y otros dos electrolíticos de 100 µF. El diodo 1N4001 protege al circuito contra inversiones de polaridad.

Circuito impreso

Cabe la posibilidad de realizar el circuito impreso por uno mismo para situar todos los componentes necesarios para el microcontrolador PICAXE de 8 patas.

6

Page 7: 4ESO08

El circuito lo podemos alimentar con una tensión máxima de 5 voltios. C1 es un condensador de poliéster de 100 nF. R1 es una resistencia de 10k y R2 de 22k.

El dibujo anterior nos muestra el circuito impreso por la parte superior, es decir, por la cara por donde se insertan los componentes. En la parte inferior están los puntos de conexión, comenzando por la izquierda y yendo hacia la derecha, de la tensión positiva, el pin 4, el pin 3, la masa y los pines 2, 1 y 0.

A continuación podemos ver un dibujo del circuito impreso visto por la cara inferior en la que se realizan las soldaduras.

A continuación se puede ver un esquema del mismo circuito.

7

Page 8: 4ESO08

En el esquema anterior no viene representado el puente utilizado para conectar, de forma alternativa, sobre la pata 7 del circuito integrado, o bien el punto 1 del puerto serie, o bien el pin 0. En vez del puente se puede utilizar un pequeño conmutador, pero nunca se deben tener conectados a la vez el punto 1 del puerto serie y la salida 0, porque al comenzar a ejecutarse el programa se podría dañar algún componente del circuito.

Utilización del puerto serie

Para conectar el microcontrolador al ordenador durante la carga de los programas se necesita un cable de tres hilos. Este cable lo puede facilitar el fabricante (Referencia AXE026). Por un extremo dispone de un conector hembra para puerto RS-232 y por el otro de un conector de sonido estéreo de 3,5 mm de diámetro. Si se desea también se lo puede construir uno mismo.

8

Page 9: 4ESO08

En el siguiente circuito la resistencia de 180 ohmios y el diodo Schottky BAT85 contribuyen a conseguir una mejor adaptación de la tensión de la señal de entrada al puerto serie del microcontrolador.

Uso de servos de radio control como motores

Los servos utilizados en aeromodelismo, del tipo de giro continuo, son adecuados para motorizar pequeños robots como los seguidores de línea. La ventaja sobre los motores normales de corriente continua es que se les puede hacer girar en un sentido y en otro utilizando una única salida del microcontrolador. Se unen a la estructura del robot mediante cuatro tornillos y

9

Page 10: 4ESO08

disponen de un conjunto de engranajes para la reducción de velocidad, por lo que giran bastante despacio, a una velocidad bastante adecuada para los robots.

Para conectarse eléctricamente los servos disponen de tres cables. El de color rojo se ha de conectar al polo positivo de la alimentación (normalmente +6V), el negro se conecta a masa y el blanco (a veces de color amarillo) es el que proporciona la señal de control y se conecta al pin de salida del microcontrolador.

La señal de control está formada por una serie de pulsos de una duración de 0,75 a 2,25 milisegundos que se repiten cada 18 milisegundos (Lo que representa una frecuencia de alrededor de 50 pulsos por segundo.) En el caso de usar servos de giro limitado los pulsos de 0,75 milisegundos hacen girar el servo hasta llevarlo a un extremo, los de 2,25 milisegundos lo hacen girar hasta el extremo contrario y los de 1,5 milisegundos le hacen posicionarse en su punto medio del recorrido. Si se utilizan servos de giro continuo se ha de experimentar hasta encontrar el valor adecuado para la duración de los pulsos que hagan girar a los servos hacia la derecha, hacia la izquierda o pararse.

Un programa válido para mover servos de giro limitado sería el siguiente:

servos: servo 4,75 ‘mueve el servo conectado al pin 4 hacia un extremopause 2000 ‘para 2 segundosservo 4,150 ‘mueve el servo conectado al pin 4 al otro extremopause 2000 ‘para 2 segundosservo 4,225 ‘mueve el servo conectado al pin 4 hacia el centropause 2000 ‘para 2 segundosgoto servos ‘vuelve a iniciar la secuencia servos

El programa ocupa 7 líneas. Utiliza tres comandos del lenguaje BASIC: servo, pause y goto. En el programa se puede substituir el comando servo por el comando pulsout. Los comentarios escritos tras el signo del apostrofe el microcontrolador no los tiene en cuenta, por lo que se pueden escribir las aclaraciones necesarias para recordar que es lo que hace el programa. El cable que proporciona la señal de control, de color blanco, ha de ir unido, en este caso, al pin 4 del microcontrolador (Se trata de la pata 3 en el circuito integrado del PICAXE-08.).

10

Page 11: 4ESO08

Los servos necesitan para funcionar una intensidad de 1A, por lo que es conveniente que dispongan de una alimentación eléctrica independiente del microcontrolador. A continuación se puede ver un esquema del conexionado eléctrico de un servo, en el que se puede observar que la señal de control del servo se hace pasar previamente por una resistencia de 330 ohmios.

Conexión de motores de corriente continua

La corriente de salida del microcontrolador es de baja intensidad y por eso no se puede alimentar con ella un motor ni ningún otro consumo de cierta importancia. Para poder comandar un motor esta señal de salida se ha de amplificar utilizando transistores y relés. En el siguiente circuito se consigue amplificar la señal mediante dos transistores montados como amplificador Darlington. La función del diodo 1N4001 es suprimir interferencias.

Los dos transistores del circuito anterior se pueden sustituir por el transistor Darlington BCX38B que puede controlar una intensidad de 800 mA. En el siguiente dibujo se muestra el esquema eléctrico y la disposición de las patas del transistor BCX38B.

11

Page 12: 4ESO08

También podemos amplificar aun más la corriente utilizando un relé que es accionado a través del transistor Darlington BCX38B. Esto nos permite utilizar para los motores una alimentación con una tensión mayor, digamos de hasta 12 voltios.

También se puede utilizar un transistor MOSFET IRF530 que permite una tensión de alimentación de hasta 20 voltios y 14 amperios.

Un programa para poner en marcha un motor de corriente continua mediante transistores Darlington, relés o MOSFET podría ser este:

motor: high 4 ‘pone en marcha el motor comandado por el pin 4pause 2000 ‘espera 2 segundos

12

Page 13: 4ESO08

low 4 ‘apaga el motor comandado por el pin 4pause 2000 ‘espera 2 segundosgoto motor ‘vuelve a iniciar la secuencia motor

El programa ocupa 5 líneas. Utiliza cuatro comandos del lenguaje BASIC: high, low, pause y goto. Este programa, igual que el anterior, se ejecuta continuamente mientras el microcontrolador esté conectado eléctricamente. Mediante este tipo de montaje y este programa sólo podemos conseguir hacer girar el motor de corriente continua en un sentido, para que pueda girar en los dos sentidos necesitaremos conectarlo de diferente modo y con otros componentes.

Otros montajes con motores

Para poder hacer girar un motor de corriente continua en los dos sentidos, hacia la derecha y hacia la izquierda, podemos utilizar el circuito de la figura siguiente. La base del montaje es el circuito integrado controlador de motores L293D. Los motores funcionan con una alimentación de 6V independiente de la alimentación del microcontrolador. Para controlar cada motor se utilizan las señales de dos salidas del microcontrolador. Para el motor A se necesitan las salidas 0 y 1 y para el motor B las salidas 2 y 4 del microcontrolador.

Un programa que mueve uno de los motores puede ser este:

motor1: high 0 ‘el motor A gira a la derechalow 1pause 2000 ‘espera 2 segundoshigh 0 ‘el motor A se parahigh 1pause 2000 ‘espera 2 segundosgoto motor1 ‘vuelve a iniciar la secuencia motor1

El siguiente cuadro nos muestra la relación que hay entre los estados de las salidas del microcontrolador y el estado de los motores A y B.

Pines Estado Motor A Motor B0 high Giro a la derecha

13

Page 14: 4ESO08

1 low0 low Giro a la izquierda1 high0 high Motor parado1 high0 low Motor parado1 low2 high Giro a la derecha4 low2 low Giro a la izquierda4 high2 high Motor parado4 high2 low Motor parado4 low

Por último, también podemos utilizar relés para controlar el sentido de giro de un motor.

Se necesitan dos relés para conseguir que un solo motor gire en los dos sentidos. Para controlar cada relé es necesaria una de las salidas del microcontrolador. Por tanto, para controlar cada motor se necesitan dos salidas del microcontrolador, lo mismo que en el caso en que se utiliza el controlador L293D.La alimentación del mando de los relés y de los motores se hace por separado tal como muestra el esquema siguiente.

14

Page 15: 4ESO08

En el siguiente cuadro se recoge la correspondencia entre los estados de las salidas del microcontrolador, los relés y el motor.

Pines Estado Relé Contactos Motor0 high RL1 1/1 (1) Giro a la

derecha1/2 (1)1 high RL2 2/1 (1)

0 low RL1 1/1 (0) Giro a laizquierda1/2 (0)

1 high RL2 2/1 (1)

0 high RL1 1/1 (1) Motor parado1/2 (1)

1 low RL2 2/1 (0)

0 low RL1 1/1 (0) Motor parado1/2 (0)

1 low RL2 2/1 (0)

Un posible programa podría ser este:

rele: high 0 ‘el motor gira a la derechahigh 1pause 2000 ‘espera 2 segundoslow 0 ‘el motor se paralow 1pause 2000 ‘espera 2 segundoslow 0 ‘el motor gira a la izquierdahigh 1pause 2000 ‘espera 2 segundoslow 0 ‘el motor se paralow 1pause 2000 ‘espera 2 segundosgoto rele ‘vuelve a iniciar la secuencia rele

15

Page 16: 4ESO08

Para evitar las perturbaciones eléctricas producidas por el chisporroteo en las escobillas del motor se puede soldar un condensador de poliéster de 220 nF entre los terminales, tal como indica el siguiente dibujo.

Utilización de sensores

En todo proyecto robótico es necesario adquirir información del entorno para, en consecuencia, tomar las decisiones pertinentes. Los sensores son los encargados de recoger esa información. Los hay de muchos tipos, unos detectan variaciones en la intensidad luminosa, otros en la temperatura, otros en la presión, otros en el campo magnético, y así un sinfín de ellos.

Para poder apreciar variaciones de la intensidad luminosa se pueden utilizar fotorresistencias, conocidas como LDR, como por ejemplo la ORP-12 o la N5AC08257. Este tipo de sensores analógicos proporcionan una salida de voltaje variable, dado que su resistencia varía en función de la iluminación que recibe. Si no están iluminadas su resistencia es muy grande, del orden de un megaohmio, pero si se iluminan su resistencia desciende drásticamente hasta los dos o cuatro kiloohmios.

La representación gráfica de esta señal analógica nos muestra como evoluciona el voltaje de salida a lo largo del tiempo, pudiendo tomar cualquier valor entre 0 y 5 voltios.

Si introducimos esta señal por unos de los pines del microcontrolador que permiten una entrada analógica, tales como el 1, el 2 y el 4, éste convierte los

16

Page 17: 4ESO08

valores de tensión en un valor comprendido entre el 0, que correspondería a la total oscuridad y el 255 que corresponde a la iluminación más completa. Se trata, por tanto, de un convertidor analógico digital. El esquema de conexión de un LDR que permita utilizarlo como sensor en un microcontrolador es el que muestra el dibujo siguiente.

Los LDR se pueden utilizar como sensores para robots que caminan en dirección a un foco luminoso, como por ejemplo una linterna. (LDR 1M a oscuras y de 2 a 4K iluminado, en www.micropik.com a 1,27 euros más IVA)

El lenguaje BASIC que utilizan los microcontroladores permite leer en la pantalla del ordenador los valores de un sensor analógico conectado a un determinado pin. Un programa para realizar esto puede ser el siguiente:

ajuste: readadc 1, b0 ‘asignar el valor del sensor a la variable b0debug b0 ‘muestra el valor de b0 en la pantallapause 500 ‘el programa se detiene medio segundogoto ajuste ‘vuelve a iniciar la secuencia ajuste

En el caso de utilizar el controlador PICAXE-08M el progrma anterior podría quedar de la siguiente manera:

ajuste1: readadc 1, b0 ‘asignar el valor del sensor a la variable b0sertxd (“El valor es”, #b0, cr, lf) ‘CR y LF minúsculas‘muestra el valor de b0 en la pantallapause 500 ‘el programa se detiene medio segundogoto ajuste1 ‘vuelve a iniciar la secuencia ajuste1

Sensores con infrarrojos

En este tipo de sensores se usa de forma combinada un emisor y un receptor de infrarrojos, a veces situados en el mismo componente. El detector CNY70 es de estos últimos, y está formado por un diodo LED de infrarrojos y un fototransistor en un mismo encapsulado de 4 patas.

17