Programación de los microcontroladores PICAXE

Programas
Programación de los microcontroladores
PICAXE
Los micros Picaxe que usamos en el taller se pueden programar con distintas aplicaciones.
La mejor opción es utilizar la aplicación oficial:
PICAXE Editor 6
Principales características de PICAXE Editor 6

Totalmente gratis.

Traducido al español, además de a otros idiomas.

Funciona en Windows. Está prevista la migración a Mac y Linux

La hemos probado en Ubuntu 14 con Wine y funciona correctamente.

Completísimo editor de texto con múltiples funciones. Exporta en varios formatos.

Sistema de ayudas a varios niveles. Por ejemplo, para cada comando escrito salen sus opciones y enlaces a
los manuales. Vienen integrados todas las hojas de datos y manuales.

Lenguajes de programación: BASIC y Diagramas de flujo

En modo depuración (DEBUG), puede verse el valor de cada pin y de cada variable del programa.

Múltiples asistentes, por ejemplo para calibrar sensores analógicos.

IMPORTANTÍSIMO

Permite la simulación de los programas en el ordenador sin ningún hardware adicional, sin
controladoras, ni sensores, ni nada de nada. Línea a línea se va viendo cómo evoluciona el programa.

Además se puede ver gráficamente la simulación sobre la tarjeta controladora que se use.
NOTA
Los programas que se muestran a continuación, pueden simularse en el ordenador sin necesidad de tener en ese
momento físicamente las tarjetas controladoras. Es suficiente la aplicación anterior, con la que podremos visualizar
dichas tarjetas y su funcionamiento.
PLANTILLA para los programas
PICAXE Editor permite empezar a programar con una plantilla por defecto cada vez que se crea un archivo BASIC
nuevo.
Nosotros recientemente estamos utilizando la siguiente plantilla que prácticamente cubre todos los casos de
programación y que está dividida en cuatro secciones:

I - INFORMACIÓN. Datos con los que se documenta el programa (micro, entradas y salidas utilizadas,
funcionalidad,...).

II - INICIALIZACIÓN. Instrucciones que solo se ejecutan una vez al iniciar el programa.

III - BUCLE PRINCIPAL. Conjunto de instrucciones que por defecto ejecutan indefinidamente.

IV - SUBRUTINAS. Bloques de código que pueden llamarse desde el bucle principal u otra subrutina.
PLANTILLA para los programas
;------------- INFORMACIÓN -------------;
Nombre :
;
Autor
:
;
Micro
:
;
Entradas:
;
Salidas :
;
Función :
;----------------------------------------
;----------- INICIALIZACIÓN ------------;----------------------------------------
;----------- BUCLE PRINCIPAL -----------do
loop
;----------------------------------------
;------------- SUBRUTINAS --------------;----------------------------------------
NOTA
La plantilla anterior solo aparece en los programas más recientes.
En los más antiguos aún utilizamos el formato clásico con "inicio:" y "goto inicio"
LISTA DE PROGRAMAS
que hemos desarrollado para nuestras prácticas y
proyectos:
IMPORTANTE: hemos actualizado todos los programas para que funcionen con micros "M2", que son los últimos que
se ofrecen en el mercado.
Sesiones del programa Profundiza 2012 "El robot resuelve-laberintos".

01.1 Programando un led en la salida C.0 de un Picaxe (parpadeo simple).

01.2 Programando un led en la salida C.0 de un Picaxe (parpadeo doble).

02.1 Semáforo simple con tres led.

03.1 Semáforo peatonal (I) con tres led y un pulsador.

04.1 Siete led en salidas dinstintas parpadeando simultáneamente.

04.2 Seis led dispuestos circularmente y luz-doble dando vueltas.

04.3 Semáforo peatonal completo (y II) con cinco led, pulsador y zumbador.

05.1 Led con parpadeo proporcional a la distancia de un objeto.

05.2 Cuenta repetitiva de 0 a 9 en un visualizador (display de 7 segmentos) con intervalos de 1 segundo.

06.1 Calibración de un sensor de distancias.

06.2 Midiendo con sensor de distancia y mostrando el resultado en un visualizador de 7 segmentos.

07.1 Leyendo los códigos de las teclas de un mando a distancia.

07.2 Controlando cuatro led con un mando a distancia.

08.2 Movimientos básicos de dos motores con un mando a distancia.

11.1 Probando el sensor frontal del robot resuelve-laberintos.

11.2 Probando el sensor derecho del robot resuelve-laberintos.

12.1 PROGRAMA FINAL del Robot resuelve-laberintos.
Proyecto Tecnológico "Cinta elevadora con parada automática"

1. Calibración de la LDR.

2. PROGRAMA FINAL de la "Cinta elevadora con parada automática".
Proyecto Tecnológico "Coche evita-paredes"

1. PROGRAMA FINAL del "Coche evita-paredes".
Proyecto Tecnológico "Coche evita-caídas"

1. PROGRAMA FINAL del "Coche evita-caídas".
Proyecto Tecnológico "Coche teledirigido por mando a distancia de infrarrojos"

1. Lectura de los códigos de los botones a usar del mando a distancia de IR.

2. Prueba básica de movimiento de los motores.

3. PROGRAMA FINAL del "Coche teledirigido por mando a distancia de infrarrojos".
Configuración del módulo JY-MCU V1.06 para comunicaciones por Bluetooth

Enviar comando "AT+VERSION" y leer la versión del módulo

Cambiar el nombre del módulo con "AT+NAMEnombrehasta20caracte"
Proyecto Tecnológico "Coche controlado por Bluetooth"

1. PROGRAMA FINAL del "Coche controlado por Bluetooth"
01.1 Programando un led en la salida C.0 de un Picaxe
(parpadeo simple)

Microcontrolador: Picaxe08.

Tarjeta controladora: "Alarmas Picaxe".

Actuador: Led conectado a la salida C.0 del micro (viene integrado en la tarjeta).

Función: El programa hace parpadear indefinidamente el led; puede ajustarse el tiempo que está encendido
y apagado.

Implementación práctica: Desarrollado en la SESIÓN 01 del programa Profundiza 2012.

Código del programa:
'Tarjeta: Alarmas PICAXE
'Micro : PICAXE-08M2 (también versiones anteriores)
'Salidas: C.0 -> LED
'El siguiente programa hace parpadear el LED:
'
un segundo encendido, medio segundo apagado
'
y todo se repite indefinidamente.
inicio:
high C.0
pause 1000
'salida C.0 -> ON
'pausa de 1,0 segundos
low C.0
pause 500
'salida C.0 -> OFF
'pausa de 0,5 segundos
goto inicio
'ir a inicio
- Volver a la lista de programas -
01.2 Programando un led en la salida C.0 de un Picaxe
(parpadeo doble)

Microcontrolador: Picaxe08.

Tarjeta controladora: "Alarmas Picaxe".

Actuador: Led conectado a la salida 0 del micro (viene integrado en la tarjeta).

Función: El programa hace parpadear el led dos veces muy rápido, seguido de una pausa lenta; todo
indefinidamente.

Implementación práctica: Desarrollado en la SESIÓN 01 del programa Profundiza 2012.

Código del programa:
'Tarjeta:
'Micro :
'Salidas:
Alarmas PICAXE
PICAXE-08M2 (también versiones anteriores)
C.0 -> LED
'El siguiente programa hace parpadear el LED:
'
dos parpadeos muy rápidos seguido de una pausa lenta
'
y todo se repite indefinidamente.
inicio:
high C.0
pause 200
low C.0
pause 200
'PRIMER PARPADEO RÁPIDO
'salida C.0 -> ON, o bien "nivel alto", o bien "1"
'pausa de 0,2 segundos (200 milisegundos)
'salida C.0 -> OFF, o bien "nivel bajo", o bien "0"
'pausa de 0,2 segundos (200 milisegundos)
high C.0
pause 200
low C.0
pause 200
'SEGUNDO PARPADEO RÁPIDO
'salida C.0 -> ON, o bien "nivel alto", o bien "1"
'pausa de 0,2 segundos (200 milisegundos)
'salida C.0 -> OFF, o bien "nivel bajo", o bien "0"
'pausa de 0,2 segundos (200 milisegundos)
pause 2000
'PAUSA LARGA (2 segundos)
goto inicio 'ir a inicio
- Volver a la lista de programas -
02.1 Semáforo simple con tres led

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Actuadores: Tres led conectados a la salidas B.0, B.1 y B.2 (rojo, amarillo y verde).

Función: Alternativamente se van encendiendo los led verde (el que más dura), amarillo y rojo.

Implementación práctica: Desarrollado en la SESIÓN 02 del programa Profundiza 2012.

Código del programa:
'Tarjeta:
'Micro:
'Salidas:
'
'
Proyectos PICAXE-18 estándar (también la de alta potencia)
PICAXE-18M2
(también versiones anteriores)
B.0 -> LED ROJO
B.1 -> LED AMARILLO
B.2 -> LED VERDE
'Se simula un semáforo simple
'Los LED se van encendiendo alternativamente
'El verde dura un poco más que el resto
inicio:
low B.0
low B.1
high B.2
pause 2000
'etiqueta para poder volver
'se apaga
la salida
'se apaga
la salida
'se enciende la salida
'se esperan 2 segundos
a ella
0
1
2 - VERDE -
low B.0
high B.1
low B.2
pause 500
'se
'se
'se
'se
apaga
la
enciende la
apaga
la
esperan 0,5
salida 0
salida 1 - AMARILLO salida 2
segundos
high B.0
low B.1
low B.2
pause 500
'se
'se
'se
'se
enciende la salida 0 - ROJO apaga la salida 1
enciende la salida 2
espera 0,5 segundos
goto inicio
'se vuelve a la etiqueta inicio
- Volver a la lista de programas -
03.1 Semáforo peatonal (I), tres led y un pulsador

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Actuadores: Tres led conectados a la salidas 0, 1 y 2 (rojo, amarillo y verde)

Sensores: Un pulsador en la entrada 7

Función: Se enciende el led VERDE; se espera pulsación; si se PULSA se pasa a AMARILLO, ROJO y de
nuevo al verde, y todo se vuelve a REPETIR

Implementación práctica: Desarrollado en la SESIÓN 03 del programa Profundiza 2012

Código del programa:
'Tarjeta:
'Micro :
Proyectos PICAXE-18 estándar (también la de alta potencia)
PICAXE-18M2
(también versiones anteriores)
'Salidas:
'
'
B.0 -> LED ROJO
B.1 -> LED AMARILLO
B.2 -> LED VERDE
'Entradas: C.7 <- pulsador
'Por defecto se enciende el LED verde
'Si hay pulsación se inicia la secuencia rojo-amarillo-verde
'volviendo a la situación inicial
inicio:
'--- SEMÁFORO EN VERDE --low B.0
low B.1
high B.2
'se apaga la salida 0
'se apaga la salida 1
'se enciende la salida 2 - VERDE -
pulsacion:
'Se espera hasta que se pulse en entrada 7
if pinC.7 is on then cambiar
goto pulsacion
cambiar:
'--- SEMÁFORO EN AMARILLO --low B.0
high B.1
low B.2
pause 1000
'se apaga la salida 0
'se enciende la salida 1 - AMARILLO 'se apaga la salida 2
'se espera 1000 milisegundos - 1 segundo -
'--- SEMÁFORO EN ROJO --high B.0
low B.1
low B.2
pause 3000
goto inicio
'se enciende la salida 0 - ROJO 'se apaga la salida 1
'se apaga la salida 2
'se espera 3000 milisegundos - 3 segundos 'se vuelve a inicio (SEMÁFORO EN VERDE y a esperar)
- Volver a la lista de programas -
04.1 Siete LED en salidas distintas parpadeando
simultáneamente

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar"

Actuadores: Siete led dispuestos circularmente en placa protoboard (con sus resistencias de protección)

Función: Aunque conectados a salidas distintas, parpadean todos a la vez cada 0,5 segundos

Implementación práctica: Desarrollado en la SESIÓN 04 del programa Profundiza 2012.

Código del programa:
'Tarjeta:
'Micro
:
Proyectos PICAXE-18 estándar
PICAXE-18M2
(también versiones anteriores)
'Salidas: B.0 a B.7 -> 7 LED rojos (con resistencias de protección de 330ohm)
'Se trata de una prueba básica de funcionamiento
'Todos los LED se encienden y apagan simultáneamente cada medio segundo
'En este ejemplo vemos cómo pueden manejarse simultánemente todas las salidas
let dirsB=%11111111
;indicamos que desde B.0 a B.7 son todos salidas
inicio:
let pinsB=%00000000
pause 500
;salidas con LED 0 a 6 apagadas (la 7 no se usa)
let pinsB=%01111111
pause 500
;salidas con LED 0 a 6 encendidas (la 7 no se usa)
goto inicio
;se vuelve a empezar
- Volver a la lista de programas -
04.2 Seis led dispuestos circularmente y luz-doble dando vueltas

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar"

Actuadores: Seis LED dispuestos circularmente.en placa protoboard (con sus resistencias de protección).

Función: Se simulan dos luces dando vueltas; el estado de los 6 LED se cambia simultáneamente.

Implementación práctica: Desarrollado en la SESIÓN 04 del programa Profundiza 2012

Código del programa:
'Tarjeta:
'Micro
'Salidas:
:
Proyectos PICAXE-18 estándar
PICAXE-18M2
(también versiones anteriores)
B.0 a B.5 -> 6 LED (con resistencias de protección de 330ohm)
'Los 6 LED están montados en la protoboard formando un círculo
'Se encienden y apagan simultáneamente de dos en dos
'simulando una luz-doble dando vueltas
'En este ejemplo vemos cómo pueden manejarse simultánemente todas las salidas
let dirsB=%11111111
;indicamos que desde B.0 a B.7 son todos salidas
inicio:
let pinsB=%00000011
pause 150
let pinsB=%00000110
pause 150
let pinsB=%00001100
pause 150
let pinsB=%00011000
pause 150
let pinsB=%00110000
pause 150
let pinsB=%00100001
pause 150
goto inicio
;encendidos 0 y 1
;encendidos 1 y 2
;encendidos 2 y 3
;encendidos 3 y 4
;encendidos 4 y 5
;encendidos 5 y 0
;se vuelve a empezar
- Volver a la lista de programas -
04.3 Semáforo peatonal completo (y II) con cinco led, pulsador y
zumbador

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar"

Actuadores:

Tres LED para luces semáforo coches (rojo en salida B.0, amarillo en B.1 y verde en B.2)

Dos LED para luces semáforo peatones (verde en salida B.6 y rojo en la B.7)


Zumbador para semáforo peatones (en salida B.4)
Sensor:

Pulsador fin de carrera para cambiar a paso de peatones (en entrada C.7).

Función: El programa controla un paso de peatones en una vía de coches.
Inicialmente siempre está en verde el semáforo de coches.
Tras pulsar, se cambia a rojo y se pone en verde el de los peatones. Un sonido intermitente se emite mientras dura el
paso de peatones.

Implementación práctica: Desarrollado en la SESIÓN 04 del programa Profundiza 2012

Esquema eléctrico del circuito: E04.3

Código del programa:
'Tarjeta:
'Micro
:
Proyectos PICAXE-18 estándar
PICAXE-18M2
(también versiones anteriores)
'Salidas:
'
LUCES en semáforo para los COCHES
'
B.0 -> LED ROJO
'
B.1 -> LED AMARILLO
'
B.2 -> LED VERDE
'
LUCES y SONIDO en semáforo para los PEATONES
'
B.6 -> LED VERDE
'
B.7 -> LED ROJO
'
B.4 -> Zumbador
'Entradas:
'
BOTÓN para pasar los PEATONES
'
C.7 <- pulsador
'Se simula un SEMÁFORO PEATONAL
'En principio Verde-Coches y Rojo-Peatones siempre encendidos
'Si pulsamos:
'
- se pasa a Amarillo-Coches
'
- se pasa a Rojo-Coches y Verde-Peatones
'
- el zumbador suena 10 veces
'
- un último sonido más largo indica que termina
'
- se vuelve al principio.
inicio:
low B.0
low B.1
high B.2
low B.6
high B.7
pulsacion:
'se
'se
'se
'se
'se
apaga la
apaga la
enciende
apaga la
enciende
salida B.0
salida B.1
la salida B.2
salida B.6
la salida B.7
-VERDE coches-ROJO peatones-
'Se espera PULSACION en la entrada C.7
'
'
a) si se pulsa cambiamos a paso de peatones
b) si no se pulsa seguimos esperando
if pinC.7 is on then cambiar
'a)
goto pulsacion
'b)
cambiar:
low B.0
high B.1
low B.2
'se apaga la salida B.0
'se enciende la salida B.1
'se apaga la salida B.2
pause 2000
'se espera 2 segundos
high B.0
low B.1
low B.2
high B.6
low B.7
'se enciende
'se apaga
'se apaga
'se enciende
'se apaga
la
la
la
la
la
salida
salida
salida
salida
salida
B.0
B.1
B.2
B.6
B.7
-AMARILLO coches-
-ROJO coches-
-VERDE peatones-
for b1=1 to 10
sound 4, (100,60)
pause 100
next b1
'10 pitidos
'para el paso de peatones
sound 4, (100,200)
low B.4
'último pitido más largo
'termina el paso de peatones
goto inicio
'se vuelve a inicio
- Volver a la lista de programas -
05.1 LED con parpadeo proporcional a la distancia a un objeto

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Actuador: Led conectado a la salida 0

Sensor: Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 4 a 30cm; 4,5V).

Función: El programa hace parpadear un led proporcionalmente al valor raw que devuelve al micro.
Cuanto más cerca está el objeto, mayor es este valor raw y más rápido parpadea.

Implementación práctica: Desarrollado en la SESIÓN 05 del programa Profundiza 2012.

Código del programa:
'Tarjeta:
'Micro :
Proyectos PICAXE-18 estándar (también la de alta potencia)
PICAXE-18M2
(también versiones anteriores)
'Entradas:
'
C.0 <- Sensor analógico de proximidad;
'
el sensor también está conectado a +4,5V y 0V;
'Salidas :
'
B.0 <- LED
'La señal analógica que devuelve el sensor se guarda en la variable b0
'El led parpadea con velocidad proporcional a la señal raw que da el sensor
'Mientras más cerca detecte algo el sensor, más rápido parpadea el led
inicio:
readadc C.0,b0 'se lee la señal analógica del sensor y mete el valor en b0
'cuanto más cerca detecte algo el sensor, menor será este valor
'debug
'por si se quisiera mostrar en pantalla el valor de "b0"
high B.0
pause b0
'se enciende el led
'pausa de "b0" milisegundos
low B.0
pause b0
'se apaga el led
'pausa de "b0" milisegundos
goto inicio
- Volver a la lista de programas -
05.2 Cuenta repetitiva de 0 a 9 con un visualizador con intervalos
de 1 segundo.

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar".

Actuador: Visualizador (display) de 7 segmentos conectados a las salidas 0 a 6.
Se usan resistencias de protección para cada entrada, puesto se encienden LED.

Función: El programa muestra consecutiva e indefinidamente los dígitos del 0 al 9 en un visualizador en
intervalos de 1 segundo.

Implementación práctica: Desarrollado en la SESIÓN 05 del programa Profundiza 2012.

Código del programa:
'Tarjeta:
'[**]:
'Micro:
Proyectos PICAXE-18 estándar (también la de alta potencia [**])
¡Ojo! En la de alta pot. las salidas B.4 a B.7 tienen la lógica invertida
PICAXE-18M2
(también versiones anteriores)
'Salidas:
'
Desde B.0 a B.6 se conectan a los segmentos (LED) del visualizador
'
(en total hay 7 resistencias de protección para los 7 LED)
'
B.0 -> led_A;
B.1 -> led_B;
... ; B.6 -> led_G
'Se cuenta indefinidamente de 0 a 9 cada segundo
let dirsB = %01111111
'ponemos B.0 a B.6 como salidas
inicio:
'La equivalencia de pines-led es:
let pinsB = %00111111
pause 1000
'0
let pinsB = %00000110
pause 1000
'1
let pinsB = %01011011
pause 1000
'2
let pinsB = %01001111
pause 1000
'3
let pinsB = %01100110
pause 1000
'4
let pinsB = %01101101
pause 1000
'5
let pinsB = %01111101
pause 1000
'6
let pinsB = %00100111
pause 1000
'7
let pinsB = %01111111
pause 1000
'8
let pinsB = %01100111
pause 1000
'9
pinsB = '0GFEDCBA'
goto inicio
- Volver a la lista de programas -
06.1 Calibración de un sensor de distancias

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Sensor: Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 4 a 30cm; 4,5V).

Actuador: Ninguno. El resultado lo vemos en pantalla al depurar (DEBUG).

Función: El programa funciona en modo depuración. Muestra en pantalla en la variable b0 el valor que
devuelve el sensor (0 a 255) cuando colocamos un objeto a una determinada distancia.

Código del programa:
'Tarjeta:
'Micro:
Proyectos PICAXE-18 estándar (también la de alta potencia)
PICAXE-18M2
(también versiones anteriores)
'Entradas:
'
C.0 (ADC0) <- Sensor de distancias (4 a 30cm).
'
Las otras dos patas del sensor van a G y a V+
'CALIBRACIÓN
'- Construimos la tabla: distancia_real_obstáculo - valor_devuelto_por_sensor.
'- Colocamos un obstáculo delante del sensor y anotamos a la distancia que está,
' y en PICAXE Editor vemos el valor que devuelve el sensor.
'Esta tabla de valores nos servirá para hacer la conversión
'distancia_real_obstáculo vs. valor_devuelto_por_sensor.
'NOTA: también se puede usar el asistente de Calibrar Sensor Analógico
'
de la aplicación PICAXE Editor e incluso obtener una gráfica.
inicio:
readadc C.0, b0
debug
pause 100
goto inicio
;se lee de C.0 el valor de la distancia y se guarda en b0
; (C.0 es la entrada analógica 0
;
también se puede usar readadc 0, b0)
;con "debug" podemos leer b0 en pantalla
;se espera 0,1 segundos entre lecturas
- Volver a la lista de programas -
06.2 Midiendo con sensor de distancia y mostrando en
visualizador de 7 segmentos

Microcontrolador: PICAXE-18M2(también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Sensor: Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 4 a 30cm; 4,5V)

Actuadores: Display de 7 segmentos de ánodo común conectado a las salidas B.0 a B.6 usando las
correspondientes resistencias de protección (330ohm)

Función: El rango de medición del sensor se ha dividido en 8 segmentos.
Si se coloca un objeto al inicio del primero, se visualiza un "1" en el display.
Al llegar al segundo un "2" y así sucesivamente hasta el final del último en el se muestra un "9".
Cuando no hay objeto se muestra un "0".
NOTA: previamente hubo que calibrar el sensor como se indica en el programa anterior.

Implementación práctica: Desarrollado en la SESIÓN 06 del programa Profundiza 2012.

Código del programa:
'Tarjeta:
'Micro:
Proyectos PICAXE-18 estándar (también la de alta potencia)
PICAXE-18M2
(también versiones anteriores)
'Entradas:
'
C.0 (ADC0) <- Sensor de distancias (4 a 30cm).
'
Las otras dos patas del sensor van a G y a V+
'Salidas:
'
B.0 a B.6 -> Visualizador de 7 segmentos
'
(ver en la sección de "Actuadores" cómo se conecta)
'Funcionamiento:
' - El rango de distancias del sensor se ha dividido en 8 tramos
'
y se ha tomado el valor (RAW) que devuelve el sensor.
' - Según a la distancia que pongamos un objeto,
'
se mostrará un valor en el display del 1 al 9
' - En caso de fuera de distancia o sin objeto, se mostrará un 0.
let dirsB = %11111111 ;indicamos que desde B.0 a B.7 son salidas
inicio:
readadc C.0, b0
debug
pause 100
;se lee de C.0 el valor de distancia y se guarda en b0
;con "debug" podemos ver la variable b0 en pantalla
;se espera 0,1 segundos entre lecturas
;La siguiente calibración se ha realizado
;previamente de forma manual.
;Según el valor devuelto mostramos uno u otro
;dígito en el display de 7 segmentos.
if b0 > 168 then goto num_1
; 4cm
if b0 > 112
if b0 > 72
if b0 > 53
if b0 > 42
if b0 > 34
if b0 > 29
if b0 > 26
if b0 > 23
goto num_0
then
then
then
then
then
then
then
then
goto
goto
goto
goto
goto
goto
goto
goto
num_2
num_3
num_4
num_5
num_6
num_7
num_8
num_9
; 8cm
;12cm
;16cm
;20cm
;24cm
;28cm
;32cm
;36cm
;fuera de rango
num_0:
let pinsB = %00111111
goto inicio
'0
num_1:
let pinsB = %00000110
goto inicio
'1
num_2:
let pinsB = %01011011
goto inicio
'2
num_3:
let pinsB = %01001111
goto inicio
'3
num_4:
let pinsB = %01100110
goto inicio
'4
num_5:
let pinsB = %01101101
goto inicio
'5
num_6:
let pinsB = %01111101
goto inicio
'6
num_7:
let pinsB = %00100111
goto inicio
'7
num_8:
let pinsB = %01111111
goto inicio
'8
num_9:
let pinsB = %01100111
goto inicio
'9
- Volver a la lista de programas -
07.1 Leyendo los códigos de las teclas de un mando a distancia

Microcontrolador: PICAXE-18M2 (también versiones anteriores)

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Sensor: Receptor de señales infrarrojas emitidas por un mando a distancia (protocolo Sony).

Actuador: Ninguno. El resultado lo vemos en pantalla con "DEBUG".

Función: El programa funciona en modo depuración. Muestra en pantalla la variable b5 en la que se ha
guardado el valor que devuelve el sensor para cada tecla pulsada del mando a distancia.

Código del programa:
'Tarjeta:
'Micro:
Proyectos PICAXE-18 estándar" (también la de alta potencia)
PICAXE-18M2
(también versiones anteriores)
'Entradas:
'
C.0 (ADC0) <- Receptor de infrarrojos (protocolo Sony)
'
conectado según manual de PICAXE.
'UTILIDAD DEL PROGRAMA:
'
Con este sencillo programa leemos los códigos de las teclas pulsadas
'
en el mando a distancia de TV
'
y los vemos directamente en la pantalla del ordenador,
'
concretamente en la variable b5.
inicio:
irin [200],C.0,b5
debug
goto inicio
;durante 0,2s se espera señal del mando a distancia
;para ver en pantalla el valor b5 con la tecla pulsada
- Volver a la lista de programas -
07.2 Controlando cuatro led con un mando a distancia

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18".

Sensor: Receptor de señales infrarrojas emitidas por un mando a distancia (protocolo Sony).

Actuadores: Cuatro led conectados a las salidas 0 a 3..

Función: El programa detecta 5 teclas del mando a distancia. Realiza distintas funciones de encendido y
apagado de los led según la tecla pulsada.

Implementación práctica: Desarrollado en la SESIÓN 07 del programa Profundiza.

Esquema eléctrico del circuito: E07.2

Código del programa:
'Tarjeta "Proyectos Picaxe-18"
'Microcontrolador "Picaxe-18M2"
'Receptor de infrarrojos (protocolo Sony)
'conectado según esquema que proporciona Picaxe en el manual.
'En la entrada 0 (C.0) se conecta la señal que devuelve el sensor anterior.
'En las Salidas 0 a 3 se conectan 4 led.
;Función del programa
;Según la tecla que se pulse en un mando a distancia,
;llega un valor distinto del sensor de infrarrojos
;y se realizan distintas acciones de encendido y apagado con los led.
inicio:
irin [200],C.0,b5
;Si hay nueva señal del mando a distancia (por la entrada 0) se guarda en b5.
;Si no hay nueva señal por el mando a distancia, se sale a los 0,2 segundos
;y en b5 sigue el mismo valor anterior.
;irin [200,otra_accion],C.0,b5
;se podría poner que a los 0,2seg sin recibir señal se saltara a otro sitio
;debug b5
;se puede visualizar en el ordenador el valor de tecla_pulsada
if b5=13 then
low 0
low 1
high 2
low 3
endif
;tecla flecha arriba
if b5=22 then
high 0
low 1
low 2
low 3
endif
;tecla flecha abajo
if b5=17 then
low 0
high 1
;tecla flecha izquierda
low 2
low 3
endif
if b5=16 then
low 0
low 1
low 2
high 3
endif
;tecla flecha derecha
if b5=23 then
for b0=0 to 10
high 0
high 1
high 2
high 3
pause 50
low 0
low 1
low 2
low 3
pause 50
next b0
b5=100
endif
;tecla play
;para reiniciar (cualq. valor)
goto inicio
- Volver a la lista de programas -
08.2 Movimientos básicos de dos motores con un mando a
distancia

Microcontrolador: Picaxe 18M2.

Tarjeta controladora: "Proyectos Picaxe 18 alta potencia".

Sensor: Receptor de señales infrarrojas emitidas por un mando a distancia (protocolo Sony).

Actuadores: Dos motores con movimiento reversible.

El motor derecho en las salidas B.4 y B.5 (cables negro y rojo).

El motor izquierdo en las salidas B.6 y B.7 (cables rojo y negro).

Función: El programa detecta 5 teclas del mando a distancia. Realiza distintas combinaciones de
movimiento de los motores según la tecla pulsada.

Implementación práctica: Desarrollado en la SESIÓN 08 del programa Profundiza.

Código del programa:
'Tarjeta "Proyectos Picaxe 18 de alta potencia"
'Microcontrolador "Picaxe-18M2"
'SENSOR
'Receptor de infrarrojos (protocolo Sony)
'conectado según esquema que proporciona Picaxe en el manual
'En la entrada 0 (C.0) se conecta la señal que devuelve el sensor anterior
'la señal se guarda en la variable b0
'ACTUADORES
'Motor derecho
en las entradas B.4 (negro) y B.5 (rojo)
'Motor izquierdo en las entradas B.6 (rojo) y B.7 (negro)
'Función
'Según las teclas pulsadas en el mando
'conseguimos distintos movimientos de los motores
inicio:
irin [200],C.0,b0
;debug b0
;durante 0,2s se espera señal del mando a distancia
;para ver en pantalla los valores de tecla pulsada
if b0=13 then gosub Avanza
;tecla flecha arriba
if b0=22 then gosub Retrocede
;tecla flecha abajo
if b0=17 then gosub Izquierda
;tecla flecha izquierda
if b0=16 then gosub Derecha
;tecla flecha derecha
if b0=23 then gosub Para
;tecla debajo de flecha abajo
goto inicio
Avanza:
low B.4
high B.5
low B.6
high B.7
return
Retrocede:
high B.4
low B.5
high B.6
low B.7
return
; rueda derecha AVANZA
; rueda izquierda AVANZA
; vuelve al "gosub"
; rueda derecha RETROCEDE
; rueda izquierda RETROCEDE
; vuelve al "gosub"
Para:
low B.4
low B.5
low B.6
low B.7
return
Derecha:
low B.4
low B.5
low B.6
high B.7
return
Izquierda:
low B.4
high B.5
low B.6
low B.7
return
; rueda derecha PARADA
; rueda izquierda PARADA
; vuelve al "gosub"
; rueda derecha PARADA
; rueda izquierda AVANZA
; vuelve al "gosub"
; rueda derecha AVANZA
; rueda izquierda PARADA
; vuelve al "gosub"
- Volver a la lista de programas -
11.1 Probando el sensor frontal del robot resuelve-laberintos

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18M2 de alta potencia".

Sensor: Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 4 a 30cm; 4,5V).
El sensor está situado en la parte FRONTAL del coche y conectado a la entrada analógica C.0

Actuadores: Dos motores con movimiento reversible.

El motor derecho en las salidas B.4 y B.5

El motor izquierdo en las salidas B.6 y B.7

Función: El coche avanza mientras no encuentre una pared enfrente. Si la encuentra gira a la izquierda.
El coche debe ser capaz de recorrer un recinto cerrado (por ejemplo cuadrado) por su interior.

Implementación práctica: Desarrollado en la SESIÓN 11 del programa Profundiza.

Código del programa:
'Tarjeta "Proyectos Picaxe-18M2 de alta potencia"
'Microcontrolador "Picaxe-18M2"
'PRUEBA 1. El coche avanza hasta encontrar una pared de frente
'
y entonces gira a la izquierda
'(SDF)
'
'
'
Sensor analógico de distancias FRONTAL conectado a +4,5V y 0V;
La señal analógica que devuelve (SDF)
se lee en la entrada analógica C.0
y se guarda en la variable b0
'(MD)
'(MI)
Motor derecho
conectado en las salidas B.4 y B.5
Motor izquierdo conectado en las salidas B.6 y B.7
;
;
;
;
;
B.4
low
low
high
high
B.5
low
high
low
high
(MD)
parado
avanza
retrocede
parado
goto para
inicio:
readadc C.0, b0
;debug
pause 50
B.6
low
low
high
high
B.7
low
high
low
high
(MI)
parado
Avanza
Retrocede
Parado
; se inicia con el coche parado
;se toma el valor de distancia en b0
;con "debug" podemos leerlo en pantalla
;se espera 0,050 segundos entre lecturas
;La siguiente calibración de (SDF) se ha realizado previamente de forma manual
;b0 -> 168 -> 4cm
;b0 -> 112 -> 8cm
;b0 -> 72 -> 12cm
;b0 -> 53 -> 16cm
;b0 -> 42 -> 20cm
;b0 -> 34 -> 24cm
;b0 -> 29 -> 28cm
;b0 -> 26 -> 32cm
;b0 -> 23 -> +32cm
;PRUEBA 1 - si pared al frente -> giro a la izquierda
if b0>150 then goto Para
;si se esta demasiado cerca -> Para
if b0<50 then goto Avanza
;si quedan mas
de 20cm -> Avanza (CALIBRAR)
if b0>49 then goto Giro_Izq_corto ;si quedan menos de 20cm -> Giro_Izq_corto
goto inicio
Avanza:
low
high
low
high
goto
B.4
;MD avanza
B.5
B.6
;MI avanza
B.7
inicio
Para:
low
low
low
low
goto
B.4
;MD detenido
B.5
B.6
;MI detenido
B.7
inicio
Giro_Der_corto:
low B.4
;MD detenido
low B.5
low B.6
;MI avanza
high B.7
pause 300
;giro de 0,3 seg
goto inicio
Giro_Izq_corto:
low B.4
;MD avanza
high B.5
low B.6
;MI detenido
low B.7
pause 300
;giro de 0,3 seg
goto inicio
- Volver a la lista de programas -
11.2 Probando el sensor derecho del robot resuelve-laberintos

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18M2 de alta potencia".

Sensor: Sensor analógico de distancia (Sharp GP2Y0A41SK0F; rango de 4 a 30cm; 4,5V).
El sensor está situado en la cara DERECHA del coche y conectado a la entrada analógica C.1

Actuadores: Dos motores con movimiento reversible.

El motor derecho en las salidas B.4 y B.5

El motor izquierdo en las salidas B.6 y B.7

Función: El coche avanza mientras detecte una pared a la derecha. Si no la encuentra gira a la derecha.
El coche debe ser capaz de recorrer un recinto cerrado (por ejemplo cuadrado) por su exterior.

Implementación práctica: Desarrollado en la SESIÓN 11 del programa Profundiza.

Código del programa:
'Tarjeta "Proyectos Picaxe-18M2 de alta potencia"
'Microcontrolador "Picaxe-18M2"
; PRUEBA 2. El coche avanza mientras tenga pared a la derecha
;
cuando no la hay entonces gira a la derecha
'(SDD)
'
'
'
Sensor analógico de distancias DERECHO conectado a +4,5V y 0V;
La señal analógica que devuelve (SDD)
se lee en la entrada analógica C.1
y se guarda en la variable b1
'(MD)
'(MI)
Motor derecho
conectado en las salidas B.4 y B.5
Motor izquierdo conectado en las salidas B.6 y B.7
;
;
;
;
;
B.4
low
low
high
high
B.5
low
high
low
high
(MD)
parado
avanza
retrocede
parado
goto para
inicio:
readadc C.1, b1
;debug
pause 50
B.6
low
low
high
high
B.7
low
high
low
high
(MI)
parado
Avanza
Retrocede
Parado
; se inicia con el coche parado
;se toma el valor de distancia en b1
;con "debug" podemos leerlo en pantalla
;se espera 0,050 segundos entre lecturas
;La siguiente calibración de (SDD) se ha realizado previamente de forma manual
;b1 -> 168 -> 4cm
;b1 -> 112 -> 8cm
;b1 -> 72 -> 12cm
;b1 -> 53 -> 16cm
;b1 -> 42 -> 20cm
;b1 -> 34 -> 24cm
;b1 -> 29 -> 28cm
;b1 -> 26 -> 32cm
;b1 -> 23 -> +32cm
;PRUEBA 2 - si no hay pared a la derecha -> giro a la derecha
if b1>109 then goto Giro_Izq_corto
if b1>49 AND b1<110 then goto Avanza
if b1<50 then goto Giro_Der_corto
goto inicio
Avanza:
low
high
low
high
goto
B.4
;MD avanza
B.5
B.6
;MI avanza
B.7
inicio
Para:
low
low
low
low
goto
B.4
;MD detenido
B.5
B.6
;MI detenido
B.7
inicio
Giro_Der_corto:
low B.4
;MD detenido
low B.5
low B.6
;MI avanza
high B.7
pause 300
;giro de 0'3 seg
goto inicio
Giro_Izq_corto:
;si muy cerca
-> Giro_Izq_Corto
;entre 20cm y 4cm -> AVANZA (CALIBRAR)
;si más de 20cm
-> Giro_Der_corto
low B.4
;MD avanza
high B.5
low B.6
;MI detenido
low B.7
pause 300
;giro de 0'3 seg
goto inicio
- Volver a la lista de programas -
12.1 PROGRAMA FINAL del "Robot resuelve-laberintos"

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18M2 de alta potencia".

Sensores: Dos sensores analógico de distancia (Sharp GP2Y0A41SK0F; rango de 4 a 30cm; 4,5V).

Un sensor está situado en parte FRONTAL y se lee en la entrada analógica C.0

En otro sensor está en la cara DERECHA y se lee en la entrada analógica C.1

Actuadores: Dos motores con movimiento reversible.

El motor derecho está conectado a las salidas B.4 y B.5

El motor izquierdo está conectado a las salidas B.6 y B.7

Función: El coche intenta salir de un laberinto. Para ello sigue siempre la pared de su derecha.

Implementación práctica: Desarrollado en la SESIÓN 12 del programa Profundiza.

Código del programa:
'Tarjeta "Proyectos Picaxe-18M2 de alta potencia"
'Microcontrolador "Picaxe-18M2"
;SALIR
;
;
;
DE UN LABERINTO.
El coche sigue siempre la pared de su derecha.
Para ello intenta estar siempre cerca de la pared de la derecha
y si se encuentra una pared de frente entonces gira a la izquierda.
'(SDF) Sensor analógico de distancias FRONTAL conectado a +4,5V y 0V;
'
La señal analógica que devuelve (SDF)
'
se lee en la entrada analógica C.0
'
y se guarda en la variable b0
'(SDD)
'
'
'
Sensor analógico de distancias DERECHO conectado a +4,5V y 0V;
La señal analógica que devuelve (SDD)
se lee en la entrada analógica C.1
y se guarda en la variable b1
'(MD)
'(MI)
Motor derecho
conectado en las salidas B.4 y B.5
Motor izquierdo conectado en las salidas B.6 y B.7
;
;
;
;
;
B.4
low
low
high
high
B.5
low
high
low
high
(MD)
parado
avanza
retrocede
parado
goto para
inicio:
readadc C.0, b0
readadc C.1, b1
;debug
B.6
low
low
high
high
B.7
low
high
low
high
(MI)
parado
Avanza
Retrocede
Parado
; se inicia con el coche parado
;se toma el valor de distancia en b0
;se toma el valor de distancia en b1
;con "debug" podemos leerlo en pantalla
;La calibración puede encontrarse en los programas de prueba
;SENSOR DERECHO
;Se intenta estar entre 10 y 20cm de la pared derecha
;Pared derecha a menos de 10cm se gira a la izq
;Pared derecha a mas
de 20cm se gira a la der
if b1>65 then goto Giro_Izq
;menos de 10 cm -> girar izq
if b1<30 then goto Giro_Der
;mas
de 20 cm -> girar der
;SENSOR FRONTAL
;Pared frontal a menos de 15cm ¡¡se ROTA a la izq!!
;Pared frontal a menos de 24cm se gira a la izquierda
;Pared frontal a mas
de 24cm se avanza
if b0>50 then goto Rotar_Izq ;menos de 15cm
-> rotacion izq
if b0>24 then goto Giro_Izq ;entre 15 y 24cm -> girar izq
;más de 24 cm
-> se avanza
goto Avanza
;desde Avanza se vuelve a Inicio
Avanza:
low
high
low
high
goto
B.4
;MD avanza
B.5
B.6
;MI avanza
B.7
inicio
Para:
low
low
low
low
goto
B.4
;MD detenido
B.5
B.6
;MI detenido
B.7
inicio
Giro_Der:
low B.4
;MD detenido
low B.5
low B.6
;MI avanza
high B.7
pause 300
;giro de 0,3 seg
goto inicio
Giro_Izq:
low B.4
high B.5
low B.6
low B.7
pause 300
goto inicio
Rotar_Izq:
low B.4
high B.5
low B.6
low B.7
pause 500
goto inicio
;MD avanza
;MI detenido
;giro de 0,3 seg
;MD avanza
;MI detenido
;rotación izq de 0,5 seg
- Volver a la lista de programas -
Proyecto Tecnológico "Cinta elevadora con parada
automática".
1. Calibración de la LDR.

Microcontrolador: Picaxe08.

Tarjeta controladora: "Alarmas Picaxe".

Sensor:

LDR conectada a la entrada 1 del micro (entrada digital).

Función: El programa lee y muestra en pantalla el valor RAW que devuelve la LDR según las condiciones de
iluminación.

Implementación práctica: Desarrollado en el Proyecto Cinta elevadora con parada automática.

Código del programa:
;Tarjeta controladora: Alarmas Picaxe
;Microcontrolador:
Picaxe-08
;Sensores:
;
LDR conectada a la entrada analógica in1
e iluminado por una bombilla pequeña a unos 10cm.
;Funcionamiento
;En el ordenador leemos los distintos valores que devuelve la LDR
;según la luz que le llega.
;Se tiene en cuenta la bombillita que tiene enfrente,
;si hay o no un objeto entre ambos
;y la iluminación de la sala de trabajo.
inicio:
debug
;Para visualizar los datos en el ordenador
readadc 1,b1
pause 500
;Se lee el valor que devuelve la LDR
;Se deja algo de tiempo para poder leer
goto inicio
- Volver a la lista de programas -
Proyecto Tecnológico "Cinta elevadora con parada
automática".
2. PROGRAMA FINAL de la "Cinta elevadora con parada
automática".

Microcontrolador: Picaxe08.

Tarjeta controladora: "Alarmas Picaxe".

Sensor:


LDR conectada a la entrada 1 del micro (entrada digital).
Actuadores:

Led conectado a la salida 0 del micro (viene integrado en la tarjeta).

Piezoeléctrico conectado a la salida 2 del micrho (viene integrado en la tarjeta).

Motor conectado a la salida 4 del micro (salida de potencia hasta 500mA).

Función: El programa detecta cuando llega poca luz a la LDR debido a que tiene un objeto delante.

Implementación práctica: Desarrollado en el Proyecto Cinta elevadora con parada automática.

Código del programa:
;Tarjeta controladora: Alarmas Picaxe
;Microcontrolador:
Picaxe-08
;Sensores:
;
;Actuadores:
;
;
LDR conectada a la entrada analógica in1
e iluminado por una bombilla pequeña a unos 10cm.
Motor conectado a la salidad de potencia out4
LED integrado en la tarjeta y conectado a la salida out0
Piezoeléctrico también integrado y conectado a la salida out2
;Funcionamiento
;La LDR devuelve un valor RAW alto cuando le llega mucha luz
;y bajo cuando le llega poca luz.
;Previa calibración y mediante pruebas
;(hay que tener en cuenta la iluminación de la sala de trabajo),
;se establece el valor a partir del cual se considera que llega poca luz
;porque hay un objeto entre la LDR y la bombilla (en este ejemplo es 120).
inicio:
readadc 1,b1
if b1<120 then Parada
high 4
low 0
goto inicio
Parada:
low 4
;Se lee el valor que devuelve la LDR
;Si se baja de un valor previamente calibrado
;entonces ejecutamos la parada.
;Caso contrario se pone en marcha el motor
;Y se apaga el led
;Se apaga el motor
high 0
pause 200
low 0
pause 200
;Se ejecuta un parpadeo rápido del led
sound 2, (120,30)
;Se da también un rápido aviso sonoro
goto inicio
;Volvemos a leer la LDR
repetir el proceso.
- Volver a la lista de programas -
Proyecto Tecnológico "Coche evita-paredes".
1. PROGRAMA FINAL del "Coche evita-paredes".

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18M2 de alta potencia".

Sensores:

Fin de carrera derecho en entrada C.1

Fin de carrera izquierdo en entrada C.2





Actuadores:
Motor derecho en salidas B4 y B5 (movimiento reversible).
Motor izquierdo en salidas B6 y B7 (movimiento reversible).
Función:
Si no está pulsado ningún fin de carrera, el coche avanza.

Si se pulsa un fin de carrera, el coche se para, retrocede, gira atrás para evitar el obstáculo que pulsó
el fdc, se para y vuelve a avanzar.

Implementación práctica: Desarrollado en el Proyecto "Coche evita-paredes".

Código del programa:
'Tarjeta "Proyectos Picaxe-18M2 de alta potencia"
'Microcontrolador "Picaxe-18M2"
'Sensores :
' Fin de carrera derecho
(fdcD)
' Fin de carrera izquierdo (fdcI)
'Actuadores:
' Motor derecho
(MD) en salidas
' Motor izquierdo (MI) en salidas
en entrada C.1
en entrada C.2
B4 y B5
B6 y B7
'Funcionamiento:
'Si el fdcD no está pulsado, el MD avanza
'Si el fdcI no está pulsado, el MI avanza
'Si el fdcD sí está pulsado, (obstáculo a la derecha) entonces:
' - se detienen los dos motores
' - se retrocede (ambos motores giran hacia atrás)
' - se vuelven a detener los dos motores
' - el MI gira hacia atrás (con lo que el coche gira a izq.)
' - y por último empieza a avanzar de nuevo
'Si el fdcI sí está pulsado, todo se hace simétricamente a lo anterior.
principal:
'pin 1
-> fin de carrera derecho
'out 4 y 5 -> rueda derecha
if pinC.2 = 0 then gosub r_izq_avanza
if pinC.1 = 0 then gosub r_der_avanza
if pinC.2 = 1 then gosub retro_y_gira_r_der
if pinC.1 = 1 then gosub retro_y_gira_r_izq
goto principal
r_der_avanza:
low B.4
high B.5
return
r_izq_avanza:
high B.6
low B.7
return
retro_y_gira_r_der:
gosub parar
wait 1
gosub retroceder
wait 1
gosub parar
wait 1
gosub r_der_atras
wait 2
gosub parar
return
retro_y_gira_r_izq:
gosub parar
wait 1
gosub retroceder
wait 1
gosub parar
wait 1
gosub r_izq_atras
wait 2
gosub parar
return
parar:
low B.4
low B.5
low B.6
low B.7
return
retroceder:
high B.4
low B.5
low B.6
high B.7
return
r_der_atras:
high B.4
low B.5
return
r_izq_atras:
low B.6
high B.7
return
- Volver a la lista de programas -
Proyecto Tecnológico "Coche evita-caídas".
1. PROGRAMA FINAL del "Coche evita-caídas".

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18M2 de alta potencia".

Sensores:

Fin de carrera derecho en entrada C.1

Fin de carrera izquierdo en entrada C.2

Actuadores:

Motor derecho en salidas B4 y B5 (movimiento reversible).

Motor izquierdo en salidas B6 y B7 (movimiento reversible).


Función:
Si están pulsados ambos conmutadores fin de carrera, el coche avanza.

Si algún fin de carrera deja de estar pulsado, el coche se detiene, retrocede, gira atrás para evitar
caer, se para y vuelve a avanzar.

Implementación práctica: Desarrollado en el Proyecto "Coche evita-caídas".

Código del programa:
'COCHE EVITA-CAÍDAS
'
'Tarjeta "Proyectos Picaxe-18M2 de alta potencia"
'Microcontrolador "Picaxe-18M2"
'Sensores :
' Fin de carrera derecho
(fdcD)
' Fin de carrera izquierdo (fdcI)
'Actuadores:
' Motor derecho
(MD) en salidas
' Motor izquierdo (MI) en salidas
en entrada C.1
en entrada C.2
B4 y B5
B6 y B7
'Funcionamiento:
'Si el fdcD sí está pulsado, el MD avanza
'Si el fdcI sí está pulsado, el MI avanza
'Si el fdcD no está pulsado, (obstáculo a la derecha) entonces:
' - se detienen los dos motores
' - se retrocede (ambos motores giran hacia atrás)
' - se vuelven a detener los dos motores
' - el MI gira hacia atrás (con lo que el coche gira a izq.)
' - y por último empieza a avanzar de nuevo
'Si el fdcI no está pulsado, todo se hace simétricamente a lo anterior.
principal:
'pin 1
-> fin de carrera derecho
'out 4 y 5 -> rueda derecha
if pinC.2 = 1 then gosub r_izq_avanza
if pinC.1 = 1 then gosub r_der_avanza
if pinC.2 = 0 then gosub retro_y_gira_r_der
if pinC.1 = 0 then gosub retro_y_gira_r_izq
goto principal
r_der_avanza:
low B.4
high B.5
return
r_izq_avanza:
high B.6
low B.7
return
retro_y_gira_r_der:
gosub parar
wait 1
gosub retroceder
wait 1
gosub parar
wait 1
gosub r_der_atras
wait 2
gosub parar
return
retro_y_gira_r_izq:
gosub parar
wait 1
gosub retroceder
wait 1
gosub parar
wait 1
gosub r_izq_atras
wait 2
gosub parar
return
parar:
low B.4
low B.5
low B.6
low B.7
return
retroceder:
high B.4
low B.5
low B.6
high B.7
return
r_der_atras:
high B.4
low B.5
return
r_izq_atras:
low B.6
high B.7
return
- Volver a la lista de programas -
Proyecto Tecnológico "Coche teledirigido por mando a
distancia de IR".
1. Lectura de los códigos de los botones a usar del mando a
distancia.

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18".

Sensor: Receptor de señales infrarrojas emitidas por un mando a distancia (protocolo Sony)
segúnesquema proporcionado por Picaxe.

Actuador: Ninguno. El resultado lo vemos en pantalla.

Función: El programa funciona en modo depuración. Muestra en pantalla en la variable b1 el valor que
devuelve el sensor para cada tecla pulsada del mando a distancia.
Se trata del mismo programa usado en la "Práctica 7 del Programa Profundiza 2012".

Código del programa:
'Tarjeta "Proyectos Picaxe-18"
'Microcontrolador "Picaxe-18M2"
'Receptor de infrarrojos (protocolo Sony)
'conectado según esquema que proporciona Picaxe en el manual.
'En la entrada 1 (C.1) se conecta la señal que devuelve el sensor anterior.
'UTILIDAD DEL PROGRAMA
'Usamos este sencillo programa para leer los codigos de las teclas del mando
'directamente en la pantalla del ordenador, concretamente en la variable b1.
inicio:
irin [200],C.1,b1
debug b1
goto inicio
;durante 0,2s se espera señal del mando a distancia
;para ver en pantalla el valor de la tecla pulsada
- Volver a la lista de programas -
Proyecto Tecnológico "Coche teledirigido por mando a
distancia de IR".
2. Prueba básica de movimiento de los motores.

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18".

Sensor: Ninguno.

Actuadores:



Motor derecho en salidas B4 y B5 (movimiento reversible).
Motor izquierdo en salidas B6 y B7 (movimiento reversible).
Función: El programa funciona realiza los siguientes movimientos indefinidamente:

Avanza 3 segundos (MD y MI avanzan).

Retrocede 3 segundos (MD y MI retroceden).

Giro a la izquierda 3 segundos (MD avanza y MI se detiene).

Giro a la derecha 3 segundos (MD se detiene y MI avanza).

Parada durante 3 segundos (MD y MI se detienen).

Código del programa:
'Tarjeta "Proyectos Picaxe 18"
'Microcontrolador "Picaxe-18M2"
'Motor derecho
en las entradas B.4 (negro) y B.5 (rojo)
'Motor izquierdo en las entradas B.6 (rojo) y B.7 (negro)
'Función: se prueban los movimientos básicos de los motores
inicio:
gosub Avanza
pause 3000
;tecla flecha arriba
;espera 3 segundos
gosub Retrocede
pause 3000
;tecla flecha abajo
;espera 3 segundos
gosub Izquierda
pause 3000
;tecla flecha izquierda
;espera 3 segundos
gosub Derecha
pause 3000
gosub Para
pause 3000
goto inicio
Avanza:
low B.4
high B.5
low B.6
high B.7
return
Retrocede:
high B.4
low B.5
high B.6
low B.7
return
Para:
low B.4
low B.5
low B.6
low B.7
return
Derecha:
low B.4
low B.5
low B.6
high B.7
return
Izquierda:
low B.4
high B.5
low B.6
low B.7
return
;tecla flecha derecha
;espera 3 segundos
;espera 3 segundos
;vuelve a inicio
; rueda derecha AVANZA
; rueda izquierda AVANZA
; vuelve al "gosub"
; rueda derecha RETROCEDE
; rueda izquierda RETROCEDE
; vuelve al "gosub"
; rueda derecha PARADA
; rueda izquierda PARADA
; vuelve al "gosub"
; rueda derecha PARADA
; rueda izquierda AVANZA
; vuelve al "gosub"
; rueda derecha AVANZA
; rueda izquierda PARADA
; vuelve al "gosub"
- Volver a la lista de programas -
Proyecto Tecnológico "Coche teledirigido por mando a
distancia de IR".
3. PROGRAMA FINAL del "Coche teledirigido por mando de IR" .

Microcontrolador: Picaxe-18M2.

Tarjeta controladora: "Proyectos Picaxe-18".

Sensores:


Receptor de infrarrojos en entrada C.1 para leer la señal del mando a distancia.
Actuadores:

Motor derecho en salidas B4 y B5 (movimiento reversible).

Motor izquierdo en salidas B6 y B7 (movimiento reversible).

Función: El programa funciona realiza los siguientes movimientos indefinidamente:

Avanza 3 segundos (MD y MI avanzan).

Retrocede 3 segundos (MD y MI retroceden).

Giro a la izquierda 3 segundos (MD avanza y MI se detiene).

Giro a la derecha 3 segundos (MD se detiene y MI avanza).

Parada durante 3 segundos (MD y MI se detienen).

Implementación práctica: Utilizado en el Proyecto "Coche teledirigido por mando a distancia de infrarrojos".

Código del programa:
'TARJETA : "Proyectos Picaxe 18 de alta potencia"
'MICRO
: "Picaxe-18M2"
'SENSORES:
' - Receptor de infrarrojos (Sony) conectado según esquema de Picaxe
'
En la entrada 1 (C.1) se conecta la señal que devuelve el sensor de IR
'
y la señal se guarda en la variable b1
'ACTUADORES:
' - Motor derecho
en las entradas B.4 (negro) y B.5 (rojo)
' - Motor izquierdo en las entradas B.6 (rojo) y B.7 (negro)
'FUNCIONAMIENTO:
' - Según tecla pulsada en el mando -> distintos movimientos de los motores
b1=222;
;valor usado para no hacer nada (reset)
inicio:
irin [100],C.1,b1
debug b1
;durante 0,1s se espera señal del mando
;si no llega señal 'b1' no cambia
;para ver en b1 en el ordenador
;Movimientos básicos: se realiza la acción hasta que llegue otra nueva
if b1=13 then gosub Avanza
;TECLA flecha arriba
if b1=22 then gosub Retrocede ;TECLA flecha abajo
if b1=17 then gosub Izquierda ;TECLA flecha izquierda
if b1=16 then gosub Derecha
;TECLA flecha derecha
if b1=23 then gosub Para
;TECLA debajo de flecha abajo
;Maniobras varias programadas. Al terminal el coche se detiene
if b1=10 then
;TECLA 0 - giro cerrado sobre si mismo a izq
gosub Giro_cerrado_izquierda
pause 3000
gosub Para
b1=222
endif
if b1=0 then
;TECLA 1 - avanza 50cm, retrocede 50cm
gosub Avanza
;
y al final se detiene
pause 700
gosub Retrocede
pause 700
gosub Para
b1=222
endif
if b1=1 then
;TECLA 2 - cuadrado de 20cm lado hacia izq.
gosub Avanza
;
y al final se detiene
pause 3000
gosub Giro_cerrado_izquierda
pause 2000
gosub
pause
gosub
pause
Avanza
3000
Giro_cerrado_izquierda
2000
gosub
pause
gosub
pause
Avanza
3000
Giro_cerrado_izquierda
2000
gosub Avanza
pause 3000
gosub Giro_cerrado_izquierda
pause 2000
b1=222
endif
if b1=2 then
;TECLA 3 - triangulo de 25cm lado hacia der.
gosub Giro_cerrado_derecha
;y al final se detiene
pause 1500
gosub Avanza
pause 4000
gosub
pause
gosub
pause
Giro_cerrado_derecha
2000
Avanza
4000
gosub Giro_cerrado_derecha
pause 2000
gosub Avanza
pause 4000
b1=222
endif
goto inicio
;--- Fin del bucle principal del programa ---
;SUBRUTINAS DE MOVIMIENTOS DE LAS RUEDAS
Avanza:
low B.4
; rueda derecha AVANZA
high B.5
low B.6
; rueda izquierda AVANZA
high B.7
return
; vuelve al "gosub"
Retrocede:
high B.4
low B.5
high B.6
low B.7
return
Para:
low B.4
low B.5
low B.6
low B.7
return
Derecha:
low B.4
low B.5
low B.6
high B.7
return
Izquierda:
low B.4
high B.5
low B.6
low B.7
return
; rueda derecha RETROCEDE
; rueda izquierda RETROCEDE
; vuelve al "gosub"
; rueda derecha PARADA
; rueda izquierda PARADA
; vuelve al "gosub"
; rueda derecha PARADA
; rueda izquierda AVANZA
; vuelve al "gosub"
; rueda derecha AVANZA
; rueda izquierda PARADA
; vuelve al "gosub"
- Volver a la lista de programas -
Configuración con módulo JY-MCU de Bluetooth
Enviar comando "AT+VERSION" y leer la versión del módulo

Microcontrolador: PICAXE-18M2

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Sensor/actuador: Módulo JY-MCU V1.06 de comunicaciones por Bluetooth (HC-06)

Función:

Enviar comando "AT+VERSION" para leer la versión del módulo

Leer en pantalla la versión que se devuelve ("OK LinvorV1.8" en nuestro caso)

De forma similar, enviar cualquier comando "AT" y leer su resultado

Conexiones (módulo-Picaxe):

Vcc ---- V+ (por ej. 4,5V)

Gnd ---- G

Txd ---> C.0

Rxd <--- C.1 (hay que indicar que C.1 funcionará como salida)

Resistencia de 10K entre V+ y C.0 (también vale de 1K)
Esta resistencia se pone porque las entradas de las tarjetas traen una resistencia de
pull-down de 10K que no hace posible la lectura directa desde el módulo

NOTA: si usamos directamente un PICAXE-18M2 sin tarjeta controladora, NO
hace falta la resistencia anterior

Código del programa:
;Tarjeta: "Proyectos PICAXE-18 estándar" (también la de alta potencia)
;Micro : PICAXE-18M2
;Otros : Módulo JY-MCU V1.06 (tiene 4 pines; Vcc-Gnd-Txd-Rxd)
;
;Vcc -- V+
;Gnd -- 0V
;Txd -> C.0 ;más una resistencia de 10K (o de 1K) entre C.0 y V+ !!
;Rxd <- C.1
;Parámetros iniciales de configuración
pause 1000
output C.1 ;(indicamos que C.1 funcionará como salida)
setfreq m8 ; ponemos la frecuencia a 8MHz (por defecto es 4MHz)
do
;Envío del comando AT por salida C.1
serout C.1, T9600_8, ("AT+VERSION")
pause 200
;Lectura de datos devueltos por entrada C.0
serin [1000], C.0, T9600_8, b0,b1,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15
debug
pause 8000
w0=0 w1=0
debug
pause 4000
; (debe aparecer "OK LinvorV1.8" en b0-...-b15)
w2=0
w3=0
w4=0
w5=0
w6=0
w7=0
; (todas las variables aparecen a "0")
loop
;NOTA FINAL
;Si utilizamos el comando: serout C.1, T9600_8, ("AT")
;la lectura de datos nos devolvería "OK"
- Volver a la lista de programas -
Configuración con módulo JY-MCU de Bluetooth
Enviar comando "AT+NAMEnombre" para cambiar nombre del
módulo

Microcontrolador: PICAXE-18M2

Tarjeta controladora: "Proyectos PICAXE-18 estándar" (también la de alta potencia)

Sensor/actuador: Módulo JY-MCU V1.06 de comunicaciones por Bluetooth (HC-06)

Función:

Enviar comando "AT+NOMBREnombrehasta20caracte" para cambiar el nombre del módulo (por
defecto se llama HC-06)

Leer en pantalla "OK setname" si el cambio se realizó correctamente

Comprobar desde tableta Android que cambió el nombre

Conexiones (módulo-Picaxe):

Vcc ---- V+ (por ej. 4,5V)

Gnd ---- G

Txd ---> C.0

Rxd <--- C.1 (hay que indicar que C.1 funcionará como salida)

Resistencia de 10K entre V+ y C.0 (también vale de 1K)
Esta resistencia se pone porque las entradas de las tarjetas traen una resistencia de
pull-down de 10K que no hace posible la lectura directa desde el módulo

NOTA: si usamos directamente un PICAXE-18M2 sin tarjeta controladora, NO
hace falta la resistencia anterior

Código del programa:
;Tarjeta: "Proyectos PICAXE-18 estándar" (también la de alta potencia)
;Micro : PICAXE-18M2
;Otros : Módulo JY-MCU V1.06 (tiene 4 pines; Vcc-Gnd-Txd-Rxd)
;
;Vcc -- V+
;Gnd -- 0V
;Txd -> C.0 ;más una resistencia de 10K (o de 1K) entre C.0 y V+ !!
;Rxd <- C.1
;Parámetros iniciales de configuración
pause 1000
output C.1 ;(indicamos que C.1 funcionará como salida)
setfreq m8 ; ponemos la frecuencia a 8MHz (por defecto es 4MHz)
do while b0=0
;Envío del comando AT por salida C.1
serout C.1, T9600_8, ("AT+NAMEnombrehasta20caracte")
pause 200
;Lectura de datos devueltos por entrada C.0
serin [1000], C.0, T9600_8, b0,b1,b3,b4,b5,b6,b7,b8,b9
debug
;(debe aparecer "OK setname" en b0-...-b9
loop
;NOTAS FINALES
;Este programa finalizará cuando se devuelva el "OK setname".
;Si buscamos ahora el módulo Bluetooth desde una tableta o móvil Android,
;debería aparecer en la misma el nuevo nombre (por defecto es HC-06).
;De forma similar, con el correspondiente comando AT
;se podría cambiar también la contraseña o la velocidad de transmisión.
- Volver a la lista de programas -
1. Coche controlado por Bluetooth (5 movimientos básicos)

Microcontrolador: PICAXE-18M2

Tarjeta controladora: "Proyectos PICAXE-18 de alta potencia"

Sensor: Módulo JY-MCU V1.06 de comunicaciones por Bluetooth (HC-06)

Actuadores: Dos motores

Función:

Se leen los códigos enviados desde la tableta por Bluetooth

Según el valor el coche avanza, gira a izquierda o derecha, se detiene o retrocede.

Comprobar desde tableta Android que cambió el nombre

Conexiones (módulo-Picaxe):

Vcc ---- V+ (por ej. 4,5V)

Gnd ---- G

Txd ---> C.0

Resistencia de 10K entre V+ y C.0 (también vale de 1K)

Esta resistencia se pone porque las entradas de las tarjetas traen una
resistencia de pull-down de 10K que no hace posible la lectura directa desde el módulo

NOTA: si usamos directamente un PICAXE-18M2 sin tarjeta controladora, NO
hace falta la resistencia anterior

Código del programa:
;------------- INFORMACIÓN -------------;
Nombre :
coche-controlado-por-Bluetooth.bas
;
Autor
:
Departamento de Tecnología - IES J. Romero Murube
;
Micro
:
PICAXE-18M2 (CHI035A)
;
Entradas:
C.0 <- Tx del módulo Bluetooth (HC-06)
;
Salidas :
B.4 B.5 -> motor izquierdo
;
B.6 B.7 -> motor derecho
;
Función :
Se controlan los 5 movimientos básicos del coche
;
desde una tableta a través de Bluetooth
;
usando nuestra App de Androig "MultiControlBT"
;----------------------------------------
;----------- INICIALIZACIÓN ------------pause 1000
setfreq m8
pause 1000
;----------------------------------------
;----------- BUCLE PRINCIPAL -----------do
serin c.0, T9600_8, b0 ;se guarda en b0 el valor
;debug
;transmitido por Bluetooth
select case b0
case 2
;Códigos
gosub avanzar
;
2
case 5
; 4 5 6
gosub detener
;
8
case 4
gosub girar_izquierda
case 6
gosub girar_derecha
case 8
gosub retroceder
endselect
loop
;----------------------------------------
;------------- SUBRUTINAS --------------detener:
low B.4
;rueda izquierda se detiene
low B.5
low B.6
low B.7
;rueda derecha se detiene
return
girar_izquierda:
low B.4
low B.5
high B.6
low B.7
;rueda izquierda se detiene
;rueda derecha avanza
return
girar_derecha:
high B.4
low B.5
low B.6
low B.7
;rueda izquierda avanza
;rueda derecha se detiene
return
avanzar:
high B.4
low B.5
high B.6
low B.7
;rueda izquierda avanza
;rueda derecha avanza
return
retroceder:
low B.4
high B.5
low B.6
high B.7
;rueda izquierda retrocede
;rueda derecha retrocede
return
;---------------------------------------- Volver a la lista de programas -