Trabajamos con las placas CHI 035 y el Chip PICAXE 18M2+.
AUTOMATIZAMOS procesos, realizamos PRÁCTICAS, APLICACIONES y ROBOTS PICAXE.
Además se ofrece información relativa a los SENSORES, ACTUADORES y los COMANDOS en Basic para Picaxe más habituales.
Este blog es una iniciativa personal apostando por la INNOVACIÓN TECNOLÓGICA en educación.
Tratamos de despertar el interés de los alumnos por las INGENIERÍAS y en particular por la automatización.
Este proyecto consiste en una rampa en cuyo extremo clasificamos y enviamos sa un lado u otro las bolas dependiendo de su color. Para ello hemos diferenciado entre blanco y negro.
Perspectiva del proyecto
El sistema está formado por:
Una LDR que es el sensor encargado de recibir la luz proveniente de la bola.
LDR en la parte inferior de la rampa
Por ello nos basamos en una propiedad física como es la reflexión de la luz y nos apoyamos en que el color blanco es capaz de reflejar una gran cantidad de luz ambiente que le llega y recibirla la LDR, mientras que el color negro en teoriá absorbe la totalidad de la luz que recibe y a la LDR no debe llegar nada.
Reflexión de la luz
Así cada vez que se ponen encima de la LDR una bola, ésta nos arroja un valor que es muy distinto si la bola es blanca y negra.
Un Servomotor que es el actuador encargado de hacer girar unas palas en sentido horario o antihorario y así poder realizar la clasificación de las bolas.
Servomotor
Detalle de las palas que mueve el Servomotor.
El esquema de conexiones a la placa Picaxe es el siguiente:
Esta práctica consiste en programar un Robot compuesto por 2 motores y una rueda loca que se ha personalizado para cada uno de los grupos formados por los alumnos de 4 ESO de Tecnología.
Para ello han utilizado los siguientes componentes:
- Placa Picaxe CHI035 con Chip 18M2+ y driver L293D para invertir el sentido de giro de los motores.
- Módulo Bluetooth HC-05.
- 1 Smartphone que permita conexión mediante Bluetooth.
- App "MulticontrolBT".
- Programación realizada con "Programming Editor" de Picaxe con lenguaje Basic.
El control del Robot se va a realizar de 2 formas diferentes:
- Mediante Botones, con lo que al pulsar cada uno se realizará una acción.
- Mediante la inclinación del Smartphone, con lo que según el giro que produzcamos en el smartphone, éste enviará un dato diferente que llevará asociada una acción.
Las conexiones del módulo Bluetooth a la Placa Picaxe que debemos conectar son las siguientes:
Solo necesitaremos, Vcc, GND y TXD.
Las conexiones a la placa debemos hacerlas del siguiente modo:
Vcc a positivo de la entrada.
GND a negativo de la entrada.
TXD a entrada analógica (C.0 por ejemplo)
Los pasos a seguir para la conexión del Bluetooth son:
-Activar Bluetooth del móvil.
-Escanear dispositivos bluetooth del entorno. "Scan"
-Aparecerá HC-05. Selecciónalo e introduce el código "1234" y se conectará. (Cambiará el parpadeo del dispositivo bluetooth).
-Habremos enlazado el móvil con el módulo bluetooth.
- Por último abrimos la APP "MulticontrolBT" y nos pedirá que seleccionemos el dispositivo bluetooth con el que queremos enlazar.
El vehículo empleado una vez montado queda algo así:
Robot Picaxe control por Bluetooth
El esquema de conexión a la placa es el siguiente:
Esquema en Placa Picaxe
Los AUTOS LOCOS construidos por nuestros alumnos tienen este aspecto:
Autos Locos
El código de programaciónmás común ha sido el siguiente:
setfreq m8 ' Cambiamos la frecuencia para comunicarnos con el bluetooth.
inicio:
serin C.0, T9600_8, b1 ' capturamos el valor de la variable enviada por el móvil y lo almacenamos en b1
pause 50
debug b1
if b1=2 then goto adelante 'si b1=1 el programa va a la subrutina "adelante"
if b1=8 then goto atras
if b1=5 then goto parado
if b1=6 then goto giroD
if b1=4 then goto giroI
goto inicio
adelante:
high B.4 'Motor 1 conectado a las salidas B.4 y B.5 hacia delante
low B.5
high B.6 'Motor 2 conectado a las salidas B.6 y B.7 hacia delante
low B.7
pause 100
goto inicio 'volvemos a inicio para comprobar que valor tiene la variable b1 y realizar una nueva acción
atras:
low B.4
high B.5
low B.6
high B.7
pause 100
goto inicio
parado:
high B.4
high B.5
high B.6
high B.7
pause 100
goto inicio
giroD:
high B.4
low B.5
low B.6
high B.7
goto inicio
giroI:
low B.4
high B.5
high B.6
low B.7
goto inicio
Este proyecto consiste en emplear el aire a presión para accionar un cilindro que descienda para succionar papel y poder desplazarlo a otro punto.
Para ello consta de:
1 Cilindro de doble efecto para el movimiento de subida-bajada.
1 Eyector neumático para succionar el papel y provocar el vacío.
1 Servo motor para girar el mecanismo
1 Placa Picaxe para controlar el movimiento del servo.
La placa Picaxe nos permite en este caso realizar el movimiento de giro mediante 2 interruptores. Así, según el interruptor que pulsemos, generamos un movimiento a derechas o izquierdas. Cuando se deja de pulsar el interruptor, paramos el movimiento.
En esta imagen vemos un detalle del servo empleado.
y en esta otra podemos observar la Placa Picaxe, los 2 interruptores y el servo empleado.
Vídeo de funcionamiento del servo.
Código del programa
b1=75 'Empieza en un extremo
inicio:
if pin5=1 then goto izquierda
if pin6=1 then goto derecha
goto inicio
izquierda:
servo 4,b1 'movemos el servo a la posición de b1
pause 30
b1=b1+1max 225 'incrementamos b1 en 1 unidades cada vez que entramos en "izquierda"
if pin5=0 then goto inicio 'Si soltamos el interruptor volvemos a inicio
goto izquierda
derecha:
servo 4, b1
pause 30
b1=b1-1min 75 'decrecemos b1 en 1 unidades cada vez que entramos en "derecha"
if pin6=0 then goto inicio 'Si soltamos el interruptor volvemos a inicio
goto derecha
Esta práctica consiste en emplear un comando "PLAY" que permite a este chip Picaxe reproducir 4 melodías pregrabadas.
Por lo tanto lo que hemos realizado es una cuenta atrás con un Display de 7 segmentos conectados a las diferentes salidas que comenzará a funcionar cuando se pulse un interruptor.
Tras esta cuenta atrás, se reproducirá una de las melodías.
VÍDEO DE FUNCIONAMIENTO
CÓDIGO DEL PROGRAMA
'practica con Display
'Raul Zamora, Andrea Garcia, Pedro Peñalver y Juan Manzanares (4ºA)
symbol leda= B.7
symbol ledb= B.6
symbol ledc= B.4
symbol ledd= B.2
symbol lede= B.1
symbol ledf= B.0
symbol ledg= B.3
symbol interruptor= pin7
inicio:
let pins=%11110000
if interruptor= 1 then goto cuenta
goto inicio
cuenta:
low leda `numero 9
low ledb
low ledc
high ledd
high ledf
high ledg
pause 1000
high lede `numero 8
pause 1000
low ledf
low ledg `numero 7
low lede
low ledd
pause 1000
high ledb
high ledd `numero 6
high ledf
high ledg
high lede
pause 1000
low lede `numero 5
pause 1000
low ledb
high leda `numero 4
low ledd
pause 1000
low leda
high ledd `numero 3
low ledf
pause 1000
high ledc `numero 2
high lede
pause 1000
high leda
low lede
low ledg `numero 1
low ledd
low ledc
pause 1000
low leda
high ledf `numero 0
high lede
high ledd
play b.5, 1 'Suena melodía
goto inicio
En esta práctica vamos a utilizar Scratch para controlar el sentido de giro de 2 motores de un robot explorador. Es una versión básica ya que no incorpora ningún tipo de sensor por lo que el tipo de movimineto es totalmente independiente del circuito que explora.
Está compuesto por:
- 1 Placa Picaxe 18M2+ con chip L293D
- Regulador de voltaje a 5v para alimentar la placa.
- 2 Motores con reductora.
Vídeo demostrativo de la práctica:
El código del programa en Scratch es:
When clicked
Forever
turn motorC on
turn motorD on
wait 9 secs
turn motorC off
wait 4 secs
turn motorC on
wait 9 secs
turn motorD off
wait 4 secs
Práctica realizada por alumnos de 3º ESO. Curso 2014-15.
En esta práctica vamos a construir un sensor que nos permita iluminar un Led cuando baje el nivel de luz por debajo de un valor que fijaremos mediante un potenciómetro.
Los elementos que vamos a necesitar para llevar a cabo la práctica son:
- LDR y Potenciómetro de 100K (Tambíen sirve de 10K)
- Led y resistencia de 300 Ohmios.
Vamos a emplear una entrada analógica, por ejemplo C.0 en la que conectaremos la LDR junto al potenciómetro.
Como salida, utilizaremos un Led con una resistencia de protección conectada, por ejemplo, a la salida B.0
El resultado es el siguiente:
Conexiones del proyecto
Vídeo del funcionamiento
Código del programa con Blockly
Código con Blockly
Código del programa con Programming Editor
Código del programa
inicio:
readadc 0, b0 'Leemos el valor de la variable b0
debug b0
if b0<50 then goto led ' Previamente hemos comprobado que este valor es el adecuado
if b0>50 then goto noled
Este proyecto consiste en manejar un coche mediante bluetooth y una APP instalada en nuestro Smartphone que permite enviar la información al bluetooth que está conectado a la placa picaxe. Al mover el móvil enviamos un dato a la placa y esto se traduce en una orden nueva para realizar los diferente movimientos.
Los materiales empleados son:
- 2 Motorreductores.
- Placa picaxe con chip 18M2+
- Driver L293D para control de motores.
- Módulo Bluetooth HC-05.
- Smartphone.
- APP gratuita "Blucontrol" o "MulticontrolBT" o similar.
- Batería Lipo 7,4v
En otras prácticas similares explico cómo conectar el módulo bluetooth a la placa y comunicarlo.
Código del programa
setfreq m8 'Cambiamos la frecuencia a 8MHz
inicio:
serin C.0, T9600_8, b1 'recibimos en C.0 el dato y lo almacenamos en b1
pause 50
debug b1
if b1=0 then goto quieto
if b1=16 then goto avance
if b1=32 then goto retroceso
if b1=4 then goto giro_izquierda
if b1=8 then goto giro_derecha
if b1=20 then goto avance_izquierda
if b1=24 then goto avance_derecha
if b1=36 then goto atras_izquierda
if b1=40 then goto atras_derecha
quieto:
high B.4
high B.5
high B.6
high B.7
goto inicio
avance:
high B.4
low B.5
high B.6
low B.7
pause 100
goto inicio
retroceso:
low B.4
high B.5
low B.6
high B.7
pause 100
goto inicio
avance_izquierda:
high B.4
low B.5
high B.6
low B.7
pause 50
low B.4
low B.5
pause 100
high B.4
low B.5
high B.6
low B.7
pause 40
goto inicio
avance_derecha:
high B.4
low B.5
high B.6
low B.7
pause 50
low B.6
low B.7
pause 100
high B.4
low B.5
high B.6
low B.7
pause 40
goto inicio
atras_izquierda:
low B.4
high B.5
low B.6
high B.7
pause 50
low B.4
low B.5
pause 100
low B.4
high B.5
low B.6
high B.7
pause 40
goto inicio
atras_derecha:
low B.4
high B.5
low B.6
high B.7
pause 50
low B.6
low B.7
pause 100
low B.4
high B.5
low B.6
high B.7
pause 40
goto inicio
Modificación al programa para mejorar giro:
setfreq m8 ' Cambiamos la frecuencia para comunicarnos con el bluetooth.
inicio:
serin C.0, T9600_8, b1 ' capturamos el valor de la variable enviada por el móvil y lo almacenamos en b1
pause 50
debug b1
if b1=2 then goto adelante 'si b1=1 el programa va a la subrutina "adelante"
if b1=8 then goto atras
if b1=5 then goto parado
if b1=6 then goto giroD
if b1=4 then goto giroI
goto inicio
atras:
high B.4 'Motor 1 conectado a las salidas B.4 y B.5 hacia delante
low B.5
high B.6 'Motor 2 conectado a las salidas B.6 y B.7 hacia delante
low B.7
pause 100
goto inicio 'volvemos a inicio para comprobar que valor tiene la variable b1 y realizar una nueva acción
adelante:
low B.4
high B.5
low B.6
high B.7
pause 100
goto inicio
parado:
high B.4
high B.5
high B.6
high B.7
pause 100
goto inicio
giroD:
high B.6
low B.7
low B.4
high B.5
pause 250
low B.4
high B.5
low B.6
high B.7
pause 50
high B.4
high B.5
high B.6
high B.7
pause 50
low B.4
high B.5
low B.6
high B.7
pause 50
goto inicio
giroI:
high B.4
low B.5
low B.6
high B.7
pause 250
low B.4
high B.5
low B.6
high B.7
pause 50
high B.4
high B.5
high B.6
high B.7
pause 50
low B.4
high B.5
low B.6
high B.7
pause 50
goto inicio
Vídeo de las carreras realizadas
Trabajo realizado por: Francisco Montiel, Luis, Carlos, Alberto, David, Jaime, Francisco Díaz y Ángel.
Esta práctica básica ha sido realizada por alumnos de 3º ESO y los inicia en la programación de Scratch.
Consiste en realizar diversas secuencias sencillas con 4 Leds conectados a las salidas B.0, B.1, B.2 y B.3.
Los comandos empleados han sido:
Siempre
turn output B."X" ON/OFF
espera "X" segundos
El vídeo de las simulaciones realizadas es el siguiente:
El siguiente proyecto consiste en la construcción de un Robot que avanza y al encontrarse un obstáculo se para, entonces mediante un sensor de infrarrojos acoplado a un servo-motor, valora la mejor opción de giro, midiendo hacia que lado la distancia a un obstáculo es mayor y tomando la decisión de giro hacia dicho lado.
El Robot está compuesto por:
- 1 Placa Picaxe CHI 035 con chip 18M2+ y driver L293D.
El esquema de conexión en la placa Picaxe CHI035 es el siguiente:
Vista de conjunto
VÍDEO DE FUNCIONAMIENTO
CÓDIGO DEL PROGRAMA
servo 0,150 'Servo conectado a la salida 0 directa del chip y en posición central.
setfreq m4
inicio:
b7=150 'variable del servo motor
readadc C.0,b0
pause 10
medida:
if b0<40 then goto avance 'No hay obstáculo. Hemos calibrado el sensor de infrarrojos
if b0>40 then goto evaluacion 'Encontramos un obstáculo
avance:
low B.4
high B.5
high B.6
low B.7
pause 150
goto inicio
if b0<40 then goto giroderecha 'si la distancia es grande, movemos el coche hacia la derecha
if b7<225 and b7>219 then goto evaluacion_izquierda
pause 10
goto derecha
if b0<40 then goto giroizquierda 'si la distancia es grande, movemos el coche hacia la izquierda
pause 10
if b7<81 and b7>75 then goto evaluacion_derecha
pause 10
goto izquierda
giroderecha:
servo 0,150
pause 100
low B.4 'derecha
high B.5
low B.6
high B.7
pause 300
low B.4
low B.5
high B.6
high B.7
readadc C.0,b0
if b0<40 then goto inicio
goto giroderecha
giroizquierda:
servo 0,150
high B.4 'izquierda
low B.5
high B.6
low B.7
pause 300
low B.4
low B.5
high B.6
high B.7
readadc C.0,b0
if b0<40 then goto inicio
goto giroizquierda
Proyecto realizado por Francisco Díaz y Francisco Montiel.