sábado, 19 de diciembre de 2015

Proyecto 6. Máquina para succionar y mover papel.

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





miércoles, 2 de diciembre de 2015

Práctica 20. Reproducir una melodía "Play"

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





sábado, 26 de septiembre de 2015

Práctica 3 Scratch 2.0. Control básico de motores de robot explorador

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.



miércoles, 3 de junio de 2015

Práctica 13. Detector - Sensor de iluminación en oscuridad con LDR.

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:



Detector - Sensor de luz con LDR
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

led:       'Encendemos el Led
high B.0
goto inicio

noled:      'Apagamos el Led
low B.0
goto inicio






viernes, 22 de mayo de 2015

1ª Carrera Coche controlado por bluetooth y smartphone 2Bach

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.

 Placa picaxe y modulo bluetooth

App Picaxe


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

giro_izquierda:
low B.4
low B.5
high B.6
low B.7
pause 100
goto inicio

giro_derecha:
high B.4
low B.5
low B.6
low 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


Carreras de coches Picaxe
 Carreras de coches Picaxe
 




Carrera coches IES Valle de Leiva


Carrera coches IES Valle de Leiva
Trabajo realizado por: Francisco Montiel, Luis, Carlos, Alberto, David, Jaime, Francisco Díaz y Ángel.





viernes, 8 de mayo de 2015

Práctica 2 Scratch 2.0. Diversas secuencias con Leds.

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:

lunes, 6 de abril de 2015

Robot 4 Toma decisiones con servo y sensor de ultrasonidos

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.
- 1 Servo-Motor.
- 1 Sensor de Infrarrojos SHARP analógico.
- 2 Motorreductores.
- 1 Batería LiPo 7.4v
- 1 Regulador de tensión (Salida 5v).

Detalle del servo con el sensor acoplado


servo y sensor Sharp


Detalle del motorreductor.



Detalle de la placa Picaxe.


Placa Picaxe


El esquema de conexión en la placa Picaxe CHI035 es el siguiente:

Esquema de conexión sensor infrarrojos, servo y motor en Pîcaxe

Vista de conjunto


Robot toma decisiones


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


evaluacion:
low B.4 'paramos el coche
low B.5
low B.6
low B.7
pause 50


evaluacion_derecha:
b7=150


derecha:
servo 0,b7
pause 200
let b7=b7+5
pause 10                     
readadc C.0, b0
pause 10

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


evaluacion_izquierda:
b7=150
 
izquierda:
servo 0,b7
pause 200
let b7=b7-5
pause 10               
readadc C.0, b0
pause 10

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.

martes, 17 de marzo de 2015

Robot Sigue-Muros con 2 ultrasonidos (Frontal y lateral)

Este proyecto consiste en la construcción de un robot que debe permanecer junto a la pared independientemente de la forma que tenga ésta.El sentido de circulación del vehículo es siempre horario ya que los sensores que poseen, así están dispuestos.

Su funcionamiento es:
Cuando el robot se separa demasiado, debe girar para acercarse.
cuando el robot se junta demasiado, debe girar para alejarse.
cuando encuentra un obstáculo de frente, debe pararse y girar hacia atrás de tal forma que evite dicho obstáculo y siga junto a la pared.
El sensor lateral se ha girado para que no esté perpendicular a la pared ya que de ese modo se falseaban los datos obtenidos y no se sabía si se separaba o alejaba.

El Robot está compuesto por:
- 1 Placa Picaxe CHI 035 con chip 18M2+ y driver L293D.
- 2 Sensores de Ultrasonidos HC-SR04. (Su conexión aparece en prácticas anteriores)
- 2 Motorreductores.
- 1 Led Rojo (indicador de marcha atrás).
- 1 Batería LiPo 7.4v
- 1 Regulador de tensión (Salida 5v)
  Imagen del sensor HC-SR04 

Sensor HC-SR04


Motor-Reductor 


 El esquema de conexión en la placa es el siguiente:

Esquema de conexión sensor ultrasonidos y motores en Picaxe

Robot sigue-muros



VÍDEO DEL FUNCIONAMIENTO





CÓDIGO DEL PROGRAMA


setfreq m8 '%%%%%%Cambio frecuancia a 8MHz debido a ultrasonidos

'Cambio de variables
symbol frontal=w1
symbol lateral=w3

inicio:
'""""""LECTURA DEL SENSOR FRONTAL""""
Sensorfrontal:
pulsout C.1,2
pulsin C.1,1,w0
pause 10
frontal=w0*5/58
debug frontal


'""""""LECTURA DEL SENSOR LATERAL""""""
Sensorlateral:
pulsout C.0,2
pulsin C.0,1,w2
pause 10
lateral=w2*5/58
debug lateral
if frontal<45 then goto giroesquina 'Pegado de frente
if lateral>=30 and lateral<=50 and frontal>=30 then goto recto  'Distancia correcta
if lateral>50 or lateral =0 and frontal>=30 then goto giroizquierda  'Muy separado de la pared lateral
if lateral<30 and lateral >0 and frontal>=30 then goto giroderecha 'Muy cerca de la pared lateral


recto:'$$$$$$$$$$$$$$$$$$$AVANZA RECTO
low B.4 'avanza el motor 1
high B.5
high B.6 'avanza el motor 2
low B.7
pause 30
goto inicio

giroderecha: '$$$$$$$$$$$$$$$$$$$$GIRO A DERECHAS
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200

low B.4 'Giro hacia la derecha
high B.5
low B.6 
high B.7
pause 100

low B.4 'Se para
low B.5
low B.6
low B.7
pause 200

low B.4 'Recto
high B.5
high B.6
low B.7
pause 30
goto inicio

giroizquierda: '$$$$$$$$$$$$$$$$$$$$GIRO A IZQUIERDAS
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200

high B.6 
low B.7
high B.4 'Giro hacia la izquierda
low B.5
pause 100

low B.4
low B.5
low B.6
low B.7
pause 200

low B.4 'Recto durante unos segundos
high B.5
high B.6
low B.7
pause 30
goto inicio

giroesquina: '$$$$$$$$$$$$$$$$$$$$GIRO DE ESQUINA A DERECHAS
high B.0 'enciende un led rojo

low B.4 'el coche se para
low B.5
low B.6
low B.7
pause 300

low B.4 'gira usando la rueda derecha marcha atrás
low B.5
low B.6
high B.7
pause 450

low B.4 'el coche se para
low B.5
low B.6
low B.7
pause 100
low B.0  'apaga el led rojo

goto inicio


Realizado por: David Legaz y Jaime Hernández.



























lunes, 26 de enero de 2015

P1 Scratch 2.0. Control de Encendido y apagado de Led.

En esta primera práctica nos iniciamos en la programación de Scratch programando el control del encendido y apagado de un Led de forma indefinida.
Aprenderemos a manejarnos básicamente por los paneles de Scrath y a utilizar comandos muy simples e intuitivos.


Configuración de Scratch 2.0 para emplear con Picaxe

En esta práctica inicial daremos las pautas y los programas necesarios para poder configurar y posteriormente programar una placa Picaxe a través del programa Scratch 2.0.

Para más información en la pestaña "programar con Scratch".