lunes, 24 de octubre de 2016

Proyecto 10. Máscara asustaniños

Este proyecto consiste en construir una máscara que cuando se acerque un niño lo asuste mediante sonidos, luces y movimientos.

Máscara Asustaniños

Para ello consta de:

- 2 Leds en cada ojo que parpadean.
- 1 Módulo que graba y emite sonidos mediante un altavoz.
- 1 Lengua que se mueve accionada por un servomotor.
- 1 Sensor de infrarrojos que será el encargado de detectar la presencia d ela persona.


Módulo de sonido

Sensor de infrarrojos


Servo para mover lengua

Vídeo del funcionamiento de proyecto






Esquema de conexionado


Conexión a la placa Picaxe


Componentes del grupo

Álvaro, Raúl y Manuel







viernes, 17 de junio de 2016

Proyecto 9. Juego de equilibrio

Este proyecto consiste en construir y programar un juego que consiste en hacer girar una bola por unas guías hasta completar el recorrido y caer.

Juego de equilibrio
Para ello consta de:

1 Placa Picaxe 18M2+

Placa Picaxe y regulador a 5v casero

1 Servomotor que nos permite el giro de la plataforma con unos alambreas a ambos extremos.

Servomotor

1 Potenciómetro de 100K que va a ser el encargado de hacer variar los valores de la entrada analógica y así cambiar el ángulo de giro.

Potenciómetro

El esquema de conexiones en la placa es:

Esquema de conexiones


El funcionamiento del proyecto se muestra en el siguiente vídeo:




El código empleado para su programación es:

Inicio:
readadc C.1, b0
DEBUG b4
if b0>87 and b0<95 then goto girarA
if b0>95 and b0<105 then goto girarB
if b0>105 and b0<111 then goto girarC
if b0>111 and b0<117 then goto girarD
if b0>117 and b0<130 then goto girarE
if b0>130 and b0<137 then goto girarF
if b0>137 and b0<143 then goto girarG
if b0>143 and b0<150 then goto girarH
if b0>150 and b0<156 then goto girarI
if b0>156 and b0<162 then goto girarJ
if b0>162 and b0<169 then goto girarK
if b0>169 and b0<180 then goto girarL

if b0>180 and b0<186 then goto girarM
if b0>186 and b0<192 then goto girarN
if b0>192 and b0<197 then goto girarX
if b0>197 and b0<203 then goto girarO
if b0>203 and b0<208 then goto girarP
if b0>208 and b0<214 then goto girarQ
if b0>214 and b0<220 then goto girarR
if b0>220 and b0<225 then goto girarS
if b0>225 and b0<230 then goto girarT
if b0>230 and b0<236 then goto girarU
if b0>236 and b0<245 then goto girarV
if b0>245 and b0<250 then goto girarW
goto inicio

girarA:
Servo 4,87
pause 100
goto inicio
girarB:
Servo 4,95
pause 100
goto inicio
girarC:
Servo 4,105 
pause 100
goto inicio
girarD:
Servo 4,111 
pause 100
goto inicio
girarE:
Servo 4,117
pause 100
goto inicio
girarF:
Servo 4,130 
pause 100
girarG:
Servo 4,137
pause 100
goto inicio
girarH:
Servo 4,143
pause 100
goto inicio
girarI:
Servo 4,150 
pause 100
goto inicio
girarJ:
Servo 4,156 
pause 100
goto inicio
girarK:
Servo 4,162 
pause 100
goto inicio
girarL:
Servo 4,169 
pause 100
goto inicio


girarM:
Servo 4,180
pause 100
goto inicio
girarN:
Servo 4,186
pause 100
goto inicio
girarX:
Servo 4,192 
pause 100
goto inicio
girarO:
Servo 4,197
pause 100
goto inicio
girarP:
Servo 4,203 
pause 100
goto inicio
girarQ:
Servo 4,208 
pause 100
girarR:
Servo 4,214
pause 100
goto inicio
girarS:
Servo 4,220 
pause 100
goto inicio
girarT:
Servo 4,225 
pause 100
goto inicio
girarU:
Servo 4,230 
pause 100
goto inicio
girarV:
Servo 4,236 
pause 100
goto inicio
girarW:
Servo 4,245 
pause 100
goto inicio


Proyecto realizado por:


Victor, Daniel y David



miércoles, 1 de junio de 2016

Proyecto 8. Robot Vigilante-Expulsa intrusos

Este proyecto consiste en un artilugio que gira y detecta cualquier objeto que entra en su perímetro, expulsándolo al ser detectado, para ello consta de:


1 Placa picaxe CHI 035


Placa Picaxe CHI035


1 Servomotor para realizar el giro continuo en toda la zona que debemos vigilar.

Servomotor
1 Sensor de infrarrojos analógico montado sobre una base acoplada al servo, que es capaz de determinar la presencia o no de un objeto a partir de los valores que arroja según la distancia del objeto al sensor.


Robot vigilante
Sensor infrarrojos SHARP
1 válvula neumática 3/2 (Electrica-resorte) que permite mediante su activación eléctrica a través de la placa picaxe, poder dar paso a un chorro de aire a 5 bares de presíón proporcionado por un compresor que permite expulsar la caja situada en la zona de vigilancia.


Electroválvula neumática 3/2

Debido a que la electroválvula necesita un voltaje de 12v para sua activación y la placa picaxe proporciona en sus salidas 5v, es necesario incorporar un relé que se activa a través de la placa Picaxe y así con una pila a 12v o una fuente de alimentación podemos alimentar a dicha válvula.


Relé picaxe
Relé

 Así los cables del lado derecho son el positivo, negativo y salida que van a la placa picaxe. Los cables de la izquierda son los que permiten cerrar el circuito que alimentará a la electroválvula con la pila de 12v.

1 compresor para proporcionar el aire a presión (sobre 5Kp/cm2).

Compresor de pistón


Por último, la base sobre la que va montada todo el sistema.

Plataforma de vigilancia





El esquema de montaje sobre la placa picaxe es el siguiente:




conexion sensor y relé placa picaxe


Este es el vídeo demostrativo del funcionamiento del proyecto:



 Estos son los componentes del grupo que ha realizado el proyecto.


Sergio, Joel y Víctor

Código del programa

'Programa:
'Realizar un sistema que permita vigilar una superficie 
'marcada con forma de media luna e impida el acceso a esta.
'Haviendo dividido la zona de vigilancia en 14 zonas deberemos
'mover el sensor de ultrasonidos con un servomotor hacia cada una de las zonas,
'en poco tiempo por zona, para que pueda detectar a cualquier intruso en cualquier parte.


'Declaracion de entradas y salidas:
'sensor_infrarrojos= C.0
'valvula_electroneumatica= B.0
'pulsador= pin5
'servo= B.7

symbol valvula_electroneumatica= B.0
symbol sensor_infrarojos=C.0
symbol pulsador= pin5
'y el servo en la B.7


inicio:
if pulsador= 1 then goto comenzar
goto inicio


comenzar:
position1:
servo B.7, 75
readadc sensor_infrarojos, b0
debug b0
pause 400


if pulsador= 0 then goto inicio

if b0<27 and b0>23 then gosub chorro_de_aire 
goto position2


position2:
servo B.7, 80
readadc sensor_infrarojos, b0
debug b0
pause 400


if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto position3


position3:
servo B.7, 85
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire

goto position4

position4:
servo B.7, 90
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position5


position5:
servo B.7, 95
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position6


position6:
servo B.7, 100
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position7


position7:
servo B.7, 105
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position8


position8:
servo B.7, 110
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position9


position9:
servo B.7, 115
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto position10


position10:
servo B.7, 120
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position11


position11:
servo B.7, 125
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position12


position12:
servo B.7, 130
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto position13

position13:
servo B.7, 135
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position14

position14:
servo B.7, 140
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position15

position15:
servo B.7, 145
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position16

position16:
servo B.7, 150
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position17

position17:
servo B.7, 155
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position18

position18:
servo B.7, 160
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position19

position19:
servo B.7, 165
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position20

position20:
servo B.7, 170
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto position21

position21:
servo B.7, 175
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto position22

position22:
servo B.7, 180
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta21

'Regresa al inicio

vuelta21:
servo B.7, 180
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta20

vuelta20:
servo B.7, 175
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta19

vuelta19:
servo B.7, 170
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta18

vuelta18:
servo B.7, 165
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta17

vuelta17:
servo B.7, 160
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta16

vuelta16:
servo B.7, 155
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta15

vuelta15:
servo B.7, 150
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta14

vuelta14:
servo B.7, 145
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta13

vuelta13:
servo B.7, 140
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta12

vuelta12:
servo B.7, 135
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta11

vuelta11:
servo B.7, 130
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta10

vuelta10:
servo B.7, 125
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta9

vuelta9:
servo B.7, 120
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta8

vuelta8:
servo B.7, 115
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta7

vuelta7:
servo B.7, 110
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta6

vuelta6:
servo B.7, 105
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta5

vuelta5:
servo B.7, 100
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta4

vuelta4:
servo B.7, 95
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire  
goto vuelta3

vuelta3:
servo B.7, 90
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta2

vuelta2:
servo B.7, 85
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta1

vuelta1:
servo B.7, 80
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto vuelta0

vuelta0:
servo B.7, 75
readadc sensor_infrarojos, b0
debug b0
pause 400

if pulsador= 0 then goto inicio
if b0<27 and b0>23 then gosub chorro_de_aire 
goto position1


chorro_de_aire:
high valvula_electroneumatica
pause 500
low valvula_electroneumatica
pause 500
return






sábado, 14 de mayo de 2016

Proyecto 7. Clasificador de Bolas

Clasificador de Bolas por colores


 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:

Fritzing con picaxe
Esquema de control



Vídeo de funcionamiento:




Programación con Blockly


Programa con Blockly


Código del programa:

Programa de control
Los componentes del proyecto:

David, Antonio y Mario

miércoles, 10 de febrero de 2016

Carrera de Robots con Bluetooth. Tecnología 4º ESO


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.

HC-05
MulticontrolBT

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:


Bluetooth HC-05


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 de Placa Picaxe
Esquema en Placa Picaxe
Los AUTOS LOCOS construidos por nuestros alumnos tienen este aspecto:

autos locos picaxe
Autos Locos

El código de programación má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


Reportaje fotográfico y de vídeo de la carrera:


Momentos previos a la salida

Colocación en la línea de salida

Vídeo de la carrera:

 


Grupos participantes:

Sergio, El Mahdi y Ramón.

Juan, Raúl, Andrea y Pedro.

Ana Belén, Carmen  y Alicia.

David, Antonio y Mario.

Ganadores: Raúl, Manuel y Álvaro

Víctor, David y Daniel.

Joel, Sergio y Victor.

Víctor, David y Daniel.


Tecnologia Ies Valle de Leiva
4º Tecnología. 2015-16