Una de las cosas que quería hacer desde que empecé a trastear con Arduino era conectar el mando Nunchuck de la Wii y poder interactuar con él.
¿Porqué el mando Nunchuck? Por tiene un acelerómetro con el que podemos obtener datos del movimiento del mando, un joystic analógico, y dos botones ... TODO INTEGRADO!!!! y además porque el consumo es bastante poco, con 3,3V funciona a la perfección.
El montaje es bastante "fácil", más de lo que pensaba, ya que del conector del mando tan solo nos hacen falta 4 pines, Voltaje, Reloj, Datos y Masa. La conexión por lo tanto sería Voltaje y Masa a los conectores de 3,3V y Gnd de Arduino y Datos y Reloj a los pines SDA y SCL, (hay que tener en cuenta que en el Arduino UNO están etiquetados por la parte de abajo, en el resto no lo se):
En cuanto al código, ya es más complicado, aunque he tenido bastante suerte y he encontrado por Internet una librería que funciona genial, (Web de Gabriel Bianconi), adaptada al Arduino UNO.
Con todo esto ya tenía la librería para controlar el Nunchuk, un programa de Demo, (que venía con la librería), para ver los datos recogidos por el Arduino en la pantalla, y el montaje físico realizado, (en la foto se ve un cartón que utilicé para que los cables se quedaran fijos haciendo conexión en el mando, ya que aún no he acabado el conector casero que estoy haciendo).
Luego seguí buscando un código para el Processing, de forma que pudiese recoger los datos del Arduino con el ordenador y representarlos en pantalla de alguna forma, y encontré un código que mostraba un cubo 3D RGB preparado para usarse con el Nunchuck, (5th and Penn).
Solo tuve que hacer unos pequeños cambios de programación para que el programa utilizado en Processing y el programa cargado en el Arduino se entendiesen, el resultado fue que podía manejar el cubo desde el mando usando los valores del acelerómetro.
En la siguiente captura se pueden ver los datos que aparecían por pantalla:
Como se pueden ver son 5 números, os 3 primeros de 3 cifras y los dos últimos de 1 cifra cada uno. El primer número indica el valor del acelerómetro en el eje X, el segundo número indica el valor del acelerómetro en el eje Y, el tercer número es el valor del acelerómetro en el eje Z, el cuarto valor, (solo puede ser 1 o 0), indica si se ha pulsado el botón z del mando y el último número, (que al igual que el anterior solo puede ser 1 o 0), indica si el botón c ha sido pulsado.
Para acabar esta entrada, quería dar las gracias a todos aquellos que dedican horas a desarrollar código que luego "cuelgan" desinteresadamente en Internet, para que otros podamos aprovechar su trabajo ahorrándonos muchísimo tiempo y muchísimos quebraderos de cabeza.
martes, 12 de junio de 2012
miércoles, 6 de junio de 2012
Primeras pruebas con Arduino
En el kit de iniciación de Arduino venía con el pic 74hc595, (registro de desplazamiento), que, para que nos entendamos, permite utilizar 3 salidas digitales del Arduino, para obtener 8 salidas digitales, de esa forma podemos "multiplicar" la cantidad de salidas digitales que tiene el Arduino de forma más o menos "sencilla".
Para aprender a usar, (más o menos), este registro de desplazamiento, se me ocurrió montar un sistema que mediante 2 botones obtenga números aleatorios de 1 a 6, y en función del valor obtenido se enciendan una combinación de leds, rojos, amarillos o verdes, .... vamos, lo que viene siendo conocido como un par de dados para jugar al parchís.
El montaje físico no fue demasiado complicado, aunque en el esquema se vean unos cuantos cables:
Como podéis ver hay 3 leds amarillos, luego 3 verdes y 2 rojos, junto con un botón a la izquierda de los leds y otro a la derecha. Este montaje lo que hace es que pulsando el botón de la izquierda se obtiene un valor de 1 a 6 aleatorio, y lo representa en binario mediante los leds amarillos, y si el botón que se pulsa es el de la derecha, hace la misma operación, pero lo representa mediante los leds verdes. Los leds rojos indican que uno de los dos jugadores, (led rojo izquierda para el botón de la izquierda, y el led rojo de la derecha para el botón de la derecha), ha sacado un 6 y tiene doble tirada, y se enciende junto con los leds amarillos o verdes que estarán encendidos indicando que se ha sacado un 6.
El código binario sería el siguiente, (0=led apagado, 1=led encendido):
Led 1 Led 2 Led 3 VALOR Led Rojo
0 0 0 0 0
1 0 0 1 0
0 1 0 2 0
0 0 1 3 0
1 0 1 4 0
0 1 1 5 0
1 1 1 6 1
Código del programa
Hay que tener en cuenta que para los leds verdes, hay que multiplicar el valor que obtendríamos en el dado por 8, de forma que el 1 sería el 8 en binario, el 2 el 16, .....
Para aprender a usar, (más o menos), este registro de desplazamiento, se me ocurrió montar un sistema que mediante 2 botones obtenga números aleatorios de 1 a 6, y en función del valor obtenido se enciendan una combinación de leds, rojos, amarillos o verdes, .... vamos, lo que viene siendo conocido como un par de dados para jugar al parchís.
El montaje físico no fue demasiado complicado, aunque en el esquema se vean unos cuantos cables:
Como podéis ver hay 3 leds amarillos, luego 3 verdes y 2 rojos, junto con un botón a la izquierda de los leds y otro a la derecha. Este montaje lo que hace es que pulsando el botón de la izquierda se obtiene un valor de 1 a 6 aleatorio, y lo representa en binario mediante los leds amarillos, y si el botón que se pulsa es el de la derecha, hace la misma operación, pero lo representa mediante los leds verdes. Los leds rojos indican que uno de los dos jugadores, (led rojo izquierda para el botón de la izquierda, y el led rojo de la derecha para el botón de la derecha), ha sacado un 6 y tiene doble tirada, y se enciende junto con los leds amarillos o verdes que estarán encendidos indicando que se ha sacado un 6.
El código binario sería el siguiente, (0=led apagado, 1=led encendido):
Led 1 Led 2 Led 3 VALOR Led Rojo
0 0 0 0 0
1 0 0 1 0
0 1 0 2 0
0 0 1 3 0
1 0 1 4 0
0 1 1 5 0
1 1 1 6 1
Código del programa
Hay que tener en cuenta que para los leds verdes, hay que multiplicar el valor que obtendríamos en el dado por 8, de forma que el 1 sería el 8 en binario, el 2 el 16, .....
martes, 5 de junio de 2012
Primeros pasos con Arduino
¿Qué es Arduino?
“Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.”
Fuente: Arduino.cc
Es decir, se trata de un dispositivo que podemos programar para que interactúe con el mundo que nos rodea a través de sensores, motores, luces, etc…
Todo esto suena muy bonito pero ¿Qué es realmente Arduino? Arduino es esto:
Una PCB programable a la cual se le pueden conectar múltiples sensores, motores, etc... y otras placas llamadas "shields", con los cuales, como ya he dicho antes, es capaz de interactuar con su entorno según lo que programemos.
Gran parte de la “culpa” de que haya "picado" en esto, es de Pepe Chorva, amigo de la facultad que lleva ya un tiempo metido en este mundillo y al que exprimiré con las dudas que me surjan jejejejeje.
Suscribirse a:
Entradas (Atom)