Está en la página 1de 50

Proyecto Educacin Tecnologa para la E.S.O.

Castilla La Mancha
Ejecucin: Arduino Verkstad Documento: Semana 2 - beta Temtica: - Introduccin a Arduino - E/S digitales - Proyectos sobre deportes Estado: Beta Versin: 0.1 Contacto: castilla.edu@arduino.cc Licencia de este borrador: Reconocimiento-NoComercial-CompartirIgual 3.0 Unported

Financiado por:

DEPORTES

Introduccin
Esta semana vamos a construir algunos proyectos relacionados con los deportes. Os juntaris en grupos y construiris pequeos juegos electrnicos que simularn diferentes deportes. Al final de la semana os reuniris todos y haris las Electrolimpiadas, donde tendris que competir para ver quin es el mejor en las distintas disciplinas. Pero antes de comenzar, necesitaremos saber algunas cosas sobre las herramientas que vamos a utilizar. Veamos brevemente qu es Arduino y algunos conceptos bsicos sobre tecnologa digital.

Qu es Arduino?
En primer lugar, vamos a utilizar las placas Arduino para leer seales y controlar luces, motores y otros objetos.

Las placas Arduino son pequeos ordenadores. Sin embargo, a estos pequeos ordenadores no se les puede conectar un ratn, teclado o pantalla, por lo tanto, si quieres escribir programas para una placa Arduino, tienes que utilizar un programa externo que se ejecute en un equipo diferente. Ese software es lo que llamamos Arduino IDE, stas son las siglas inglesas para Integrated Development Environment (Entorno de Desarrollo Integrado), y es la manera comn de denominar cualquier tipo de desarrollo software.

El IDE de Arduino es muy sencillo, como ya has podido comprobar al programar en Processing. Hay una barra de herramientas bsica que puedes utilizar para:
verificar si tu programa va a funcionar cargar el programa a la placa de Arduino crear un programa nuevo abrir un programa guardar el programa en el disco duro del ordenador y en la parte derecha de la barra de herramientas se encuentra el Monitor Serial ( abre una ventana de comunicacin con la placa Arduino)

Las placas Arduino se conectan a tu ordenador utilizando un cable USB, al igual que cualquier otro perifrico como la impresora, el teclado, o incluso, un mando de videojuego. Este cable tiene la potencia suficiente para alimentar la placa pero tambin puedes alimentarlo con una batera u otra fuente de alimentacin externa.

Cuando programes tu Arduino, deberas asegurarte de que el IDE est configurado para que ests utilizando la placa correcta. Comprubalo en el men ' Herramientas Puerto Serial' para ver que el puerto est configurado correctamente y en ' Herramientas Tarj eta' para comprobar que est asignado ' Arduino Uno' .

Nota: para saber a qu Puerto Serial est conectada tu Arduino, sigue estos pasos:

1. Desconecta Arduino del ordenador 2. Comprueba ' Herramientas Puerto Serial' para ver si est disponible 3. Conecta Arduino al ordenador 4. Entra en ' Herramientas Puerto Serial' de nuevo y vers un puerto nuevo, se es tu Arduino. 5. Selecciona esta nueva opcin

Seales Digitales
Los ordenadores funcionan principalmente con seales digitales. Seguramente ya ests familiarizado con el trmino digital (Probablemente ya hayas escuchado la palabra digital con anterioridad). Los ordenadores son mquinas digitales. Casi todo lo que nos rodea son ordenadores de distintos tamaos. Los ordenadores no necesitan un teclado o una pantalla, hay ordenadores en el microondas de tu cocina, en el ascensor que detecta los botones que presionas, incluso dentro de los coches hay 70 pequeos ordenadores tipo Arduino... hay ordenadores en todas partes (en todas las parcelas de nuestra vida, hay ordenadores). Una caracterstica comn a todos los ordenadores es que utilizan la lgica binaria. Esto quiere decir que pueden solucionar mltiples operaciones utilizando solo dos smbolos bsicos para representar toda la informacin. Los seres humanos, por ejemplo, utilizan muchos smbolos.
El abecedario espaol, tiene 27 smbolos en minscula, ms las mismas en mayscula, adems de 10 smbolos numricos.

Los ordenadores solo utilizan dos: '1' y '0' . Combinando estos dos nmeros, las mquinas digitales pueden representar prcticamente todo lo que hay en el universo.
Como solo hay dos smbolos, denominamos la lgica de este sistema de comunicacin ' lgica binaria' . Tambin es importante tener en cuenta que los ordenadores son mquinas elctricas, stas trabajan con tensin (voltaje) y corriente. Arduino representa el '1' con una seal de 5 voltios y el '0' con una seal de 0 voltios. En programacin llamamos una seal de 5 voltios HIGH (significa ALTA) y la de 0 voltios LOW (BAJA ). Cuando Arduino escribe en un Pin de salida HIGH , pondr 5 voltios en ese Pin o, en otras palabras, se pondr en ON (se encender). Al mismo tiempo, cuando escribimos LOW en el Pin, Arduino pondr el Pin a 0 voltios y lo pondr en OFF (lo apagar). Por ltimo, la lgica binaria cubre un aspecto ms. Decimos que '1' representa verdadero (cierto) mientras '0' representa falso. Esto es as porque la lgica binaria tambin puede ser utilizada para hacer preguntas como 'la temperatura ha subido a 20 grados?', la respuesta ser verdadera o falsa y podr ser representada a travs de '1' o '0'.

Contando en Binario
Los seres humanos tienen un total de 10 smbolos para representar los nmeros de 0 a 9. Cuando contamos, siempre cogemos el siguiente smbolo en la lista: despus de 3 viene 4, despus de 4 viene 5... despus de 8 viene 9... Cuando nos quedamos sin smbolos comenzamos a combinar los smbolos para representar el siguiente nmero en la lista. Por lo tanto despus de 9 viene 10, que es una combinacin de '0' y '1'. Lo mismo ocurre con los ordenadores, la nica diferencia es que solo tenemos dos smbolos entre los que elegir: despus de 0 viene 1, despus de 1 viene 10, despus de 10 viene 11, despus de 11 viene 100 y as sucesivamente. La cuestin es cmo trasladamos los nmeros humanos en binarios. En la siguiente tabla vers cmo funciona:

Blink (Parpadeo)
Durante la introduccin sobre programacin vimos cmo hacer pequeos programas y animaciones utilizando el ordenador. Luego vimos cmo apagar (OFF) y encender (ON) pixels en la pantalla del ordenador. Como ya sabes, la placa Arduino no tiene pantalla pero tiene LED, una pequea pantalla que se puede encender y apagar fcilmente utilizando un programa. Se puede decir que la placa Arduino viene con una pantalla 'pxel'. Ese LED en placa, est conectado al Pin digital 13. Como puedes ver en la placa, todos los Pins estn numerados y agrupados por funcionalidad. Hay un grupo de 14 Pins (numerados del 0 al 13) que son Pins digitales y luego otros grupo de 6 Pins (etiquetados de A0 a A5) que son analgicos. Ms adelante veremos los Pins analgicos. Veamos cmo controlar el LED en tu Arduino utilizando un comando sencillo. El primer ejemplo es el que llamamos 'Blink', que significa encender y apagar el LED repetidamente. Al igual que los programas Processing siempre necesitan tener una funcin setup (configuracin) y una funcin draw, los programas Arduino necesitan las funciones setup y loop (bucle):
setup: Esta parte del programa solo funciona (runs) al princpio. Aqu podrs

configurar las funciones de los Pins, ya sean inputs (entradas) o outputs (salidas), o si van a realizar una funcin ms compleja como enviar seales a travs de USB.
loop: esta parte funcionar infinitamente (o hasta que desconectes la fuente

de alimentacin). Los comandos en el loop sern ejecutadas en orden, una tras otra. Cuando llegamos al ltimo comando, comenzar desde el principio. El programa 'Blink' ms bsico funciona de la siguiente manera:
void setup( ) { pinMode( 13, OUTPUT) ; } void loop( ) { digitalWrite( 13, HIGH) ; delay( 1000) ; digitalWrite( 13, LOW) ; delay( 1000) ; }

Aqu puedes ver tres comandos diferentes: pinMode(pinNumber, INPUT | OUTPUT | INPUT_PULLUP): ste se utiliza para determinar si el Pin digital en tu Arduino est escribiendo (OUTPUT) o leyendo (INPUT | INPUT_PULLUP) las seales desde/hacia el entorno (environment). digitalWrite(pinNumber, HIGH | LOW): se utiliza para hacer que un Pin digital concreto escriba 5 voltios (HIGH) o 0 voltios (LOW) a una salida (to an output). delay(time): detiene el programa durante cierta cantidad de tiempo. El tiempo se expresa en milisegundos. Si quieres detener el programa durante 2 segundos, deberas escribir delay(2000). Recordemos tambin lo que vimos durante la semana de Processing: cada lnea termina con punto y coma ' ; ' los bloques de cdigo estn contenidos (escritos) entre llaves ' { } ' la funcin start (comienzo) functions start with a definition like void las funciones tienen parmetros que figuran entre parntesis ' ( pueden tener tantos parmetros como necesites
)', y

Pero volviendo a lo que hace el programa, enciende el LED marcado con la 'L' en tu Arduino, espera 1 segundo, lo apaga y espera otro segundo. Luego esto lo repite una y otra vez hasta el infinito. Crgalo en la placa utilizando la flecha derecha (el segundo botn de la barra de herramientas) y comprueba cmo funciona.

Sigue experimentando!
Ahora puedes probar a ver qu sucede cuando cambias los tiempos dentro de la funcin delay. qu ocurre si haces los delay ms pequeos) La luz parpadea ms rpida o ms lenta? Tambin puedes utilizar la luz para simular los latidos del corazn. Comprueba tus latidos midiendo tu pulso, notars que siempre obtienes dos pulsaciones, algo as como tock tock... pausa... tock tock... pausa...' Puedes simularlo con un LED? (SUGERENCIA: puedes copiar y pegar el cdigo) Por ltimo, qu sucede cuando el delay se hace (convierte en un intervalo) verdaderamente pequeo? Digamos que lo cambias a delay(10), todava puedes ver el parpadeo de la luz?

Adele tus propios LEDs


Quieres aadirle a tu circuito tus propios LEDs? Cuando trabajas con un LED, es importante que recuerdes que tienen polaridad. Los LEDs son construidos para mostrar esto (LEDs are constructed to show this ). El Pin largo, se denomina nodo, y es el positivo, cuando lo (wiring/ cableamos) conectamos al circuito ste debe estar prximo al extremo positivo del alimentador. El Pin corto, o ctodo, debe estar lo ms cerca posible a la tierra (0 voltios).

Los LEDs no se rompern si los conectas a la polaridad opuesta, simplemente no funcionarn. Sin embargo, los LEDs no pueden transportar (llevar) mucha corriente, para asegurarnos de que no se quemen, tienes que poner una resistencia delante de ellos. El valor de la resistencia vara, en nuestro caso, utilizaremos 220 ohmios para los LEDs.

Si haces un circuito como el que hemos mostrado anteriormente, tendrs que cambiar el programa 'Blink' para direccionarlo a el Pin nmero 8 en vez del al Pin nmero 13. El programa se puede parecer al siguiente:
void setup( ) { pinMode( 8, OUTPUT) ; } void loop( ) { digitalWrite( 8, HIGH) ; delay( 1000) ; digitalWrite( 8, LOW) ; delay( 1000) ; }

Tambin puedes utilizar variables que contengan el nmero del Pin, as ser ms fcil cambiar el programa en el caso de que sea necesario. Puede que recuerdes las variables de la primera semana del curso pero solo recordarte, que las variables son lugares dentro de la memoria del ordenador donde podemos almacenar (guardar) nmeros, caracteres o incluso Strings completas. La variables tienen un tipo (fuente? Clase? Cdigo?) (como int para nmero y String para palabra) y un nombre al que le puedes asignar lo que quieras. En este caso, queremos que una variable almacene el nmero que representa el Pin que hemos cambiado con nuestro programa. Veamos cmo sera:
int ledPin = 8; void setup( ) { pinMode( ledPin, OUTPUT) ; } void loop( ) { digitalWrite( ledPin, HIGH) ; delay( 1000) ; digitalWrite( ledPin, LOW) ; delay( 1000) ; }

LedPin es una variable, un lugar en la memoria donde podemos almacenar (guardar) un nmero que puede cambiar. Es como un vaso que puedes llenar de agua, leche o Coca-Cola. El vaso es la variable y el lquido su valor. En este caso, los valores posibles van de 0 a 13, cualquiera de los Pins digitales de la placa Arduino.
''Nota: Te recomendamos que no utilices Pins 0 u 1 a no ser que realmente los necesites. Estos Pins se utilizan para que Arduino enve informacin al ordenador, si les conectas cualquier cosa, Arduino no sner capaz de comunicarse y por lo tanto, no ser posible que lo puedas reprogramar. "

Beep
Vamos a jugar un poco con el sonido. El siguiente experimento se llama 'Beep' y con la ayuda de un zumbador piezoelctrico, vamos a producir un sonido con un programa muy similar al que acabamos de ver para el LED.

El zumbador piezoelctrico
El micrfono de contacto, tambin conocido como piezo zumbador, es un componente electrnico hecho a partir de la combinacin de dos discos de distintos materiales. Uno de ellos es metlico y el otro, generalmente, es cermica y ambas tienen propiedades piezoelctricas. Cuando se le aplica un voltaje al componente, los materiales se repelen produciendo un click audible (chasquido). Haciendo cero la diferencia de tensin (poniendo el voltaje 0), har que los materiales vuelvan a su posicin inicial produciendo de nuevo un sonido click.

El programa para hacer que el piezo reproduzca un sonido, es el mismo que utilizbamos para el ejemplo del 'Blink'.
int speakerPin = 8; void setup( ) { pinMode( speakerPin, OUTPUT) ; } void loop( ) { digitalWrite( speakerPin, HIGH) ; delay( 1000) ; digitalWrite( speakerPin, LOW) ; delay( 1000) ; }

Como has podido comprobar, este programa es el mismo que acabamos de hacer para LED con la diferencia de que a la variable ahora la denominamos speakerPin en vez de ledPin. Al aplicar un voltaje de una frecuencia suficientemente elevada, el click producido por el piezoelctrico se modular hasta crear un tono audible. Para hacer esto, lo nico que tienes que hacer es reducir el tiempo del delay. Intenta cambiar el delay a un milisegundo:
int speakerPin = 8; void setup( ) { pinMode( speakerPin, OUTPUT) ; } void loop( ) { digitalWrite( speakerPin, HIGH) ; delay( 1) ; digitalWrite( speakerPin, LOW) ; delay( 1) ; }

Si has conectado el zumbador correctamente deberas estar escuchando un sonido muy fuerte saliendo de tu Arduino. La nica manera de detenerlo, es o bien desconectarlo de la placa o tirando del cable que va desde el Pin 8 al zumbador.

Sigue experimentando!
! Aprende sobre la relacin que hay entre las seales digitales y el tipo de seales que puedes generar utilizando Arduino. Tu placa solo est cambiando el valor de los Pins entre '0' y '1'. Como ya sabes, la msica est escrita en notas. Cada nota tiene un tono y una duracin. El tono es creado por Arduino cambiando el Pin entre '0' y '1' una cierta cantidad de tiempo por segundo. Esa cantidad es lo que llamamos frecuencia. Los tonos tienen nombres: Do (C), Re (D), Mi (E), Fa (F), Sol (G), La (A), Si (B) y estn agrupadas en lo que denominamos octavas. Cuando llegamos al Si (B), llegamos al final de la octava y la siguiente comenzar otra vez en DO (C). Cada uno de los tonos tiene una frecuencia diferente, por ejemplo, la nota La (A), por lo general, tiene una frecuencia de 440 hertzios (hercios). Esto quiere decir que Arduino tiene que hacer que el Pin oscile 440 veces por segundo para reproducir ese tono.

La forma de la seal generada por Arduino es lo que llamamos un pulso. Los pulsos son seales digitales que solo pueden tomar dos valores '0' y '1'. Los instrumentos musicales pueden distinguirse entre s por tener distintos timbres. El timbre es la forma de la seal que hace los tonos. En otras palabras, dos instrumentos pueden emitir el mismo tono pero de alguna manera suenan distintos. Si quieres tocar distintos tonos, tienes que cambiar la cantidad de tiempo que el Pin est en ON y OFF. Esto lo haces cambiando el valor dentro del delay(1) funcin llamada (you do that by changing the value inside the delay(1)function call). Hay solo un problema: para tocar los tonos, stos deben ser controlados de una manera ms precisa, en vez de utilizar la funcin delay, deberas usar la funcin delayMicroseconds. Como recordars, el delay hace una pausa de cierta cantidad de milisegundos, ientras que el delayMicroseconds hace una pausa de ciertos microsegundos, o 1000 veces menor.

La siguiente ecuacin explica la relacin entre las dos funciones:


delay( 1) = 1000 * delayMicroseconds( 1) = delayMicroseconds( 1000)

Esto quiere decir que el programa que has utilizado para tocar 'Beep', tambin se puede escribir como:
int speakerPin = 8; void setup( ) { pinMode( speakerPin, OUTPUT) ; } void loop( ) { digitalWrite( speakerPin, HIGH) ; delayMicroseconds( 1000) ; digitalWrite( speakerPin, LOW) ; delayMicroseconds( 1000) ; }

Esto nos muestra un aspecto bsico de la programacin: puedes hacer lo mismo de varias maneras! Este programa y el anterior hacen lo mismo. Si quieres que tu zumbador piezoelctrico toque diferentes tonos, solo tienes que cambiar el valor '1000' por otros valores en el delay. La siguiente tabla muestra los valores que puedes utilizar para los distintos tonos de una octava.

Input Digital
Al igual que puedes asignar (escribir) '0' o '1' a un Pin en Arduino, puedes leer el valor generado por un sensor que est conectado a l. Al trabajar con Pins digitales, utilizaremos sensores que solo pueden estar en ON y OFF: Un simple cable es un muy buen ejemplo de un INPUT (entrada) digital. Puedes conectar un cable a por ejemplo, un Pin 5 y encenderlo conectando otra parte del cable o bien a 5 voltios o GND (o voltios) en el conector de tu Arduino.

Prueba esto! Saca uno de los cables de conexin de tu equipo, conctalo al Pin 5 y programa el siguiente cdigo en tu Arduino:
int inputPin = 5; int ledPin = 13; void setup( ) { pinMode( inputPin, INPUT) ; pinMode( ledPin, OUTPUT) ; } void loop( ) { if ( digitalRead( inputPin) == HIGH) { digitalWrite( ledPin, HIGH) ; } else { digitalWrite( ledPin, LOW) ; } }

Al insertar el cable en el interior de la cabecera de 5 voltios, vers como el LED en el Pin 13 se enciende y cuando lo insertas en la cabecera marcada como GND el LED debera quedarse en OFF (se debera apagar).

Este programa introduce algunas cosas nuevas: primero, vemos que puedes utilizar muchas variables, en este caso, tenemos una para el LED ledPin y otra para el cable inputPin Al igual que un pinMode se puede utilizar para asignarle (declarar) un Pin como un OUTPUT, puedes asignarle al Pin un INPUT hay un comando, digitalRead(inputPin), que leer el valor de un voltio en el inputPin y volver ya sea con un valor HIGH o LOW el programa utiliza una (un trmino, adverbio, instruccin, funcin) condicional 'if' para comprobar el valor del inputPin cuando quieres comparar dos valores en un programa, debes utilizar dos veces el signo 'igual a' es decir, '=='. Esto hace que el ordenador entienda que los quieres comparar. Este 'doble igual' es lo que llamamos un operador. Hay otros operadores que comparan otro tipo de valores.

Sigue experimentando!
- Intenta cambiar el programa anterior que utiliza un Pin diferente al 5 como INPUT - Puedes hacer un programa que reproduzca un sonido cuando el cable est conectado al voltio 5 y detenerlo cuando est conectado al GND?

DEPORTES

Ejercicios 1. Pong
Juega a una versin simplificada del clsico juego de Arcade, Pong! En este juego, un "pong" se mover a travs de cinco LEDs (VU-meter), botar de un lado a otro segn los jugadores vayan pulsando el botn. Los jugadores deben pulsar el botn en el momento preciso con el fin de devolver el pong.

Materiales
1 placa Arduino + 1 Shield Castilla Educacin 2 botones Tinkerkit 2 cables Tinkerkit 5 LEDs 5 resistencias de 2 2 0 ohm 5 cables negros 5 cables de colores

Instrucciones
B. Conecta 5 LEDs a

A. Coloca el shield en la parte superior de tu placa Arduino


travs del hueco de la placa de entrenamiento

C. Conecta la

resistencia de 220 Ohm al Pin digital 2

D. Conecta la

resistencia a la pata larga del primer LED

E. Conecta cada uno de

los Pins digitales 3 hasta 6 a su LED correspondiente siguiendo el mismo mtodo

F. Conecta la pata corta

de los LEDs a un Pin Arduino GND utilizando los cables negros

G. Conecta los

botones Tinkerkit al puerto 9 y 10 del conector Tinkerkit digital

H. Conecta el

conjunto Arduino al ordenador Carga el ejemplo Pong y prueba el juego

Cdigo
Puedes encontrar el cdigo en examples/sports/Pong

No funciona?
Como siempre, consulta a la ilustracin y vuelve a comprobar las conexiones. Asegrate de que el shield y los cables estn firmemente conectados. Si la unidad tiene controladores, asegrate de que estn bien etiquetados para distinguirlos. No puedes golpear el pong? Intenta intercambiar los botones, si sigue sin funcionar, mira la referencia sobre cmo depurar los botones. El VU meter no funciona correctamente? Ver la referencia de soluciones.

Explicacin
El juego comienza con el desplazamiento de los LEDs a la izquierda. Cuando el ltimo LED se apaga, el botn uno debe ser pulsado dentro del tiempo de pulsacin. Si lo haces, el LED se desplazar de nuevo a la derecha. Esta vez, cuando el ltimo LED est apagado, tienes que pulsar el botn nmero 2 dentro del tiempo de pulsacin. Si as lo has hecho, void loop () se ejecutar de nuevo. Siempre que un jugador tarde demasiado tiempo en pulsar el botn, finalizar el juego (GameOver) y el LED parpadear, entonces los LEDs se desplazarn a la izquierda y el juego comenzar de nuevo.

Sigue experimentando!
Intenta cambiar el parpadeo de los LEDs cuando finaliza el juego. Mira el cdigo VUMeterTest de ejemplo para ver los comandos que puedes utilizar. Haz una caja para la placa. Utiliza un material que permita que los LEDs brillen a travs de l. Mira a ver si puedes hacer unas cajas para los botones tambin. Puedes intentar cambiar los Pins digitales a los que estn conectados los LEDs para ver qu pasa. No te olvides de cambiarlos tanto en las conexiones como en el cdigo! Y no te olvides que los Pins digitales 9 y 10 ya estn siendo utilizados para los botones.

2. FENCING (ESGRIMA)
Comprueba tu tiempo de reaccin retando a un oponente!
En este juego, dos jugadores sujetarn espadas tilt switch. El primero que gire su espada cuando el LED verde se encienda aleatoriamente, gana.

Materiales
1 2 2 1 1 2 4 placa Arduino + 1 shield Castilla Educacin tilt switches Tinkerkit cables largos Tinkerkit LED grande roj o LED grande verde LEDs amarillos resistencias de 2 2 0 Ohm

Instrucciones

A. Conecta el shield a la parte superior de la placa Arduino B. Conecta cuatro LEDs a


travs del hueco la placa de entrenamiento en el siguiente orden: (empezando lo ms prximo a la tarjeta SD) amarillo, verde, rojo, amarillo

C. Conecta una resistencia


de 220 Ohm al Pin digital 2

D. Conecta la resistencia de la
pata larga al primer LED

E. Conecta cada uno de los

pines digitales 3 a 5 a su LED correspondiente siguiendo el mismo mtodo

F. Conecta el brazo corto de los


LEDs a un Pin de Arduino GND utilizando cables negros

G. Conecta los

TinkerKit tilt switches a TinkerKit puerto digital 9 y 10

H. Conecta el conjunto

Arduino al ordenador Carga el ejemplo "fencing" y prueba el juego

Cdigo
Puedes encontrar el cdigo en examples/sports/fencing

No funciona?
Como siempre, recurre a la ilustracin y vuelve a comprobar las conexiones. Asegrate de que el shield y los cables estn firmemente conectados. has sido el primero en darle pero ha ganado tu amigo? Intenta intercambiar vuestras espadas tilt switch. Sigue sin pasar nada? Asegrate de que sigues las reglas y mira las referencias para depurar los tilt switches. VUmeter no funciona correctamente? Mira la referencia para depurar el VUmeter?

Explicacin
Primero se ilumina el LED rojo indicando que ambos deben sujetar (ponerlas derechas) sus espadas tilt switch y esperar. Se mantiene en espera un tiempo aleatorio antes de que el LED rojo se apague y el verde se encienda. Luego el juego espera a que una de las espadas gire y el primero en hacerlo, ser el ganador. El LED amarillo que est en el lado del ganador se iluminar unos segundos y comienza el juego de nuevo.

Sigue experimentando!
Seras capaz de hacer el juego ms aleatorio o aadirle ms niveles? Sera posible cambiar las condiciones para ganar o tal vez cambiar la manera de jugar?

3. BASKETBALL
Mete una canasta! En este juego, los jugadores tratarn de hacer botar una pelota de ping pong y meterla en una taza. Para ganar, mete cinco puntos. Las anotaciones se registran utilizando un LDR, light dependent resistor (una resistencia dependiente de la luz).

Materiales
1 placa Arduino 1 shield Castilla Educacin 1 Tinkerkit LDR 1 cable Tinkerkit 1 altavoz o piezoelctrico 5 LEDs 5 resistencias 2 2 0 ohm 5 cables negros 5 Cables de colores 1 taza de plstico 1 pelota de ping pong Cinta adhesiva Tij eras

Instrucciones
A. Conecta el shield a la parte superior de la placa Arduino B. Conecta cinco LEDs a
travs del hueco de la placa de entrenamiento

C. Conecta la resistencia de
220 ohmios al Pin digital 2 Conecta la resistencia a la pata larga del primer LED

D. Conecta cada uno de

los pines digitales 3 a 6 a su LED correspondiente siguiendo el mismo mtodo Conecta la pata corto de los LEDs a un pin de Arduino GND utilizando cables negros

E. Conecta el cable rojo del

altavoz piezo al Pin digital 8 y su cable negro a GND

F. Conecta TinkerKit
LDR al puerto analgico TinkerKit Conecta el conjunto Arduino al ordenador

G. Sube el ejemplo

"LDRtest" y prueba las condiciones de iluminacin Abre el Monitor serial y sujeta el LDR verticalmente. Escribe el valor "uncovered" (descubierto)

H. Coloca una pelota de pingpong encima del LDR. Escriba el valor covered (cubierto) Haz el promedio de los dos nmeros del valor threshold (umbral)

I. Abre ejemplo "Basketball"

Busca lnea de sintaxis "ldr.config (# # # # # #)", cambiando los parmetros # # # al valor uncovered (descubierta) y el valor "umbral", respectivamente.

J. Carga "Basketball" y

prueba el juego Corta un agujero en el fondo del vaso de plstico para que se ajuste LDR.

K. Coloca el LDR en el agujero,


y pgalo (No cubras el LDR). Pega el vaso de plstico a tu mesa, para que se mantenga de pie.

Cdigo
Puedes encontrar el cdigo en examples/sports/Basketball

No funciona?
No cuenta las anotaciones? Intenta cambiar el "threshold (umbral) ms cerca de "baseValue". Mira la referencia x para corregir errores del sensor LDR. VUmeter no funciona correctamente? Mira la referencia x para corregir errores del VU-meter

Explicacin

La variable "puntuacin" seguir contando en tu marcador. Cada vez que pulsas el LDR, es cuando detecta un valor superior al umbral de puntuacin e incrementar con 1. Entonces, segn la puntuacin, se encendern los LEDs que haya en el VU-meter. Se reproducir una pequea meloda. Al final de void loop () comprobamos si la puntuacin es mayor o igual a la cantidad de LEDs conectados a la placa. Si lo es, el programa salta otra vez a void startOver (). All, el marcador se pone a cero otra vez, sonar una meloda de victoria y todos los LEDs parpadearn. Despus, el programa comienza de nuevo en void loop().

Sigue experimentando!
Puedes aadir ms LEDs y aumentar la puntuacin? No olvides agregar ambos fsicamente tanto a la placa como al cdigo del programa! No te acaban de gustar los sonidos que emite el piezo? Prueba a hacer tus propias melodas. Intenta cambiar la manera en que parpadean los LEDs cuando finaliza el juego.

4. React
Test your reaction time! In this game, one of three LEDs will randomly light up. You must tap the corresponding capacitive sensor as quick as possible. If you dont react fast enough, the game is over.

Materiales
1 Arduino board 1 Castilla Education shield 1 piezo speaker 3 LEDs 3 2 2 0 ohm resistors 3 1 Mohm resistors 6 black Cables 9 Cables in different colors 1 small breadboard Tin foil Masking tape

Instrucciones
LEDs a travs del hueco de la placa de entrenamiento (Revisa los Pins)

A. Coloca el shield en la parte superior de tu placa Arduino B. Conecta los tres

C. Conecta una

resistencia de 220 ohmios al Pin digital 9

D.Conecta la resistencia a la pata larga de la primera LED

E. Conecta cada uno de

los pines digitales 10 a 11 a su LED correspondiente siguiendo el mismo mtodo

F. Conecta la pata corta


de los LEDs a un Pin de Arduino GND utilizando cables negros

G. Conecta el cable rojo

del altavoz piezo al pin digital 8 y su cable negro a GND

H. Conecta una resistencia de 1 Mohm entre el digital pin 3 y pin


digital 2, en la placa pequea de entrenamiento

I. Conecta los Pins digitales 4 y 2 y los Pins digitales 5 y 2 siguiendo el


mismo mtodo

J. Haz un sensor de contacto cortando un cuadrado de papel de aluminio de 5


cm x 5 cm Envuelve una esquina de la lmina cuadrada a un cable suelto - el cable de metal debe estar en contacto con el papel de aluminio

K. Haz tres sensores de contacto y conecta cada uno a los Pins digitales 3 a 5
Pega los tres sensores firmemente a la mesa, asegurndote de que no se toquen

L. Conecte el conjunto Arduino al ordenador

Mueve la carpeta CapacitiveSensor de la carpeta Castilla a la librera de la carpeta Arduino Carga el ejemplo React y prueba el juego

Cdigo
Puedes encontrar el cdigo en "ejemplos / deportes / React"

No funciona?
Como siempre, consulta la ilustracin y vuelve a comprobar las conexiones. Asegrate de que el shield y los cables estn firmemente conectados. Si la unidad tiene los controladores, asegrese de que estn bien etiquetados para distinguirlos. Aumenta el tiempo permitido de reaccin para hacer el juego ms fcil para hacer la prueba. Asegrate de volver a cambiarlos cuando todo est funcionando! VU-meter no funciona correctamente? Mira la referencia VU-meter para corregir errores del VU-meter. Sensor capacitivo no funciona? Mira la referencia CapacitiveSwitch para corregir errores del sensor capacitivo No puedes cargar el cdigo? Asegrate de que la librera CapacitiveSensor est colocada dentro de la carpeta de libreras en la carpeta de Arduino.

Explicacin
Primero el juego espera durante un perodo de tiempo aleatorio, antes de elegir un nmero entre 0 y 2. Este nmero representa el LED que se encender y el sensor asociado a l. El LED se enciende, y el sensor correspondiente espera a ser pulsado. Si tienes la habilidad de pulsarlo dentro del reactTime, sonarn unos aplausos. Entonces el proceso comienzar de nuevo. Sin embargo, si fallas, GameOver () llegars al final. Todos los LED se encendern y sonar un sonido y parpadearn un par de veces. Despus, el juego se reiniciar.

Sigue experimentando!
Intenta cambiar el parpadeo de los LEDs cuando finaliza el juego. Mira el cdigo VUMeterTest de ejemplo para ver los comandos que puedes utilizar. Haz una caja para la placa. Utiliza un material que permita que los LEDs brillen a travs de l. Mira a ver si puedes hacer unas cajas para los botones tambin. Puedes intentar cambiar los Pins digitales a los que estn conectados los LEDs para ver qu pasa. No te olvides de cambiarlos tanto en las conexiones como en el cdigo! Y no te olvides que los Pins digitales 9 y 10 ya estn siendo utilizados para los botones.

5. RACING
Corre con tus dedos lo ms rpido que puedas! En este juego, el corredor tiene que golpear dos sensores repetidamente con el fin de completar vueltas. Un LED se encendr por vuelta. Cuando todas las vueltas se hayan completado, los LED parpadearn celebrando la victoria.

Materiales
1 placa Arduino + 1 shield Castilla Educacin 5 LEDs 5 resistencias de 2 2 0 ohm 5 cables negros 11 cables de colores Papel de aluminio Cinta adhesiva

Instrucciones
B. Conecta cinco LEDs

A. Conecta el shield a la parte superior de la placa Arduino


individuales a travs del hueco de la placa de entrenamiento

C. Conecta una resistencia de


220 ohmios al Pin digital 9

D. Conecta la resistencia a
la pata larga del primer LED

E. Conecta cada uno de los Pins


digitales de 10 a 13 a su LED correspondiente siguiendo el mismo mtodo

F. Conecta la pata corta de los


LEDs a un pin de Arduino GND utilizando cables negros

G. Conecta una resistencia de 1 M

ohm entre Pin digital 2 y Pin digital 3. Conecta el Pins digital 4 siguiendo el mismo mtodo

H. Haz un sensor de contacto cortando un cuadrado de papel de aluminio

de 5 cm x 5 cm Envuelve una esquina de la lmina cuadrada a un cable suelto - el cable de metal debe estar en contacto con el papel de aluminio Haz dos sensores de contacto y conecta cada uno a los Pins digitales 3 y 4.

I. Pega los dos sensores firmemente a la mesa asegurndote de que no se


toquen Conecta el conjunto Arduino al ordenador. Mueve la carpeta CapacitiveSensor de la carpeta Castilla a la librera de la carpeta Arduino Carga ejemplo "Racing y prueba el juego

Cdigo
Puedes encontrar el cdigo en examples/sports/racing

No funciona?

Al golpear las lminas no ocurre nada? Mira la referencia Interruptor capacitivo para depurar el sensor capacitivo. VU-meter no funciona correctamente? Mira la referencia VU-meter para depurar VU-meter No se puede cargar el cdigo? Asegrate de que la biblioteca CapacitiveSensor est colocada dentro de la carpeta de libreras en tu carpeta Arduino. Explicacin Funciona de la siguiente manera: Primero, el sensor capacitivo izquierdo espera a ser presionado, y luego el derecho espera lo mismo. Despus de esto, se le suma 1 (se le aade 1) al progreso del juego. El marcador actualizarn tu progreso. Si no has alcanzado el progreso completo, el proceso comienza de nuevo. De lo contrario, el indicador del marcador parpadea un par de veces, tu progreso queda en descanso, y se reinicia el juego.

Explicacin
Funciona de esta manera: Primero, el sensor capacitivo izquierdo espera a ser presionado, y luego el de la derecha espera a ser presionado. Por cada "paso" de la puntuacin actual, el LED se enciende y luego se apaga. Despus, el progreso del juego se aade por 1. Tu progreso ser actualizado en el marcador. Si no has alcanzado el progreso completo, el proceso comienza de nuevo. De lo contrario, el indicador del marcador parpadear un par de veces, tu progreso descansar, y se reiniciar el juego.

Sigue experimentando!
Seras capaz de hacer el juego ms aleatorio o aadirle ms niveles? Sera posible cambiar las condiciones para ganar o tal vez cambiar la manera de jugar?

Proyecto Educacin Tecnologa para la E.S.O. Castilla La Mancha


Ejecucin: Arduino Verkstad Documento: Semana 2 - beta Temtica: - Introduccin a Arduino - E/S digitales - Proyectos sobre deportes Estado: Beta Versin: 0.1 Contacto: castilla.edu@arduino.cc Licencia de este borrador: Reconocimiento-NoComercial-CompartirIgual 3.0 Unported

Financiado por: