Arduno - Probando el NunChuk

Iniciado por Banti, 17 Julio 2010, 04:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Banti

Buenas ahora es mi turno de hacer un thread hablando de mis expperiencias/experimentos con arduino. Ya que Daemon Freedom parece que esta en alguna menuda playa refresacandose (?) y braulio parece que no tiene el presupuesto para comprarse un potencimetro  :xD

Bueno el tema del NunChuk es simple es hardware que cualquier adolesente tiene en su casa (excepto yo que tuve que pedir prestado  :P) y tiene muy lindas cosillas como es la palanca, los botones y el ... acelerometro!

El problema de la conexion era que tenias 2 opciones romper la ficha propietaria para conectar los cables o comprarte un extraño adaptador que venden por internet. Pero claro habia otra solucion! Hincar las agujas de los cables del protobard al puerto propietario  :xD
http://img819.imageshack.us/i/20100715220158295.jpg/
Tendriamos 4 cables: rojo 3.3v, blanco GND, verde Analog4, amarillo Analog5.

La libreria esta aqui:
http://todbot.com/arduino/sketches/WiichuckDemo.zip

Y aca mi pequeña demo con el cual manejo con el joy 4 led por medio de PWM.
#include <Wire.h>
#include <C:\nunchuck_funcs.h>

int loop_cnt=0;

byte accx,accy,zbut,cbut,ajjx,ajjy,menx,masx,meny,masy;
int mnx = 3;
int msx = 5;
int mny = 6;
int msy = 9;
int ledPin = 13;

void setup()
{
   pinMode(mnx, OUTPUT);
   pinMode(msx, OUTPUT);
   pinMode(mny, OUTPUT);
   pinMode(msy, OUTPUT);
   nunchuck_setpowerpins();
   nunchuck_init(); // send the initilization handshake
}

void loop()
{
       nunchuck_get_data();
       accx  = nunchuck_accelx(); // ranges from approx 70 - 182      
       accy  = nunchuck_accely(); // ranges from approx 65 - 173
       ajjx  = nunchuck_joyx();
       ajjy  = nunchuck_joyy();    
       zbut = nunchuck_zbutton();
       cbut = nunchuck_cbutton();
       //funcion masx
       if (ajjx > 130)
       {
         if (ajjx > 210)
         {
           masx = 255;
         }
         else
         {
           masx = (ajjx - 120) * 255 / 100;
         }
       }
       else
       {
         masx = 0;
       }
       //funcion menosx
       if (ajjx < 110)
       {
         if (ajjx < 30)
         {
           menx = 255;
         }
         else
         {
           menx = (120 - ajjx) * 255 / 100;
         }
       }
       else
       {
         menx = 0;
       }
       //comienza con los y
       if (ajjy > 25)
       {
         if (ajjy > 210)
         {
           masy = 255;
         }
         else
         {
           masy = (ajjy - 120) * 255 / 100;
         }
       }
       else
       {
         masy = 0;
       }
       //funcion menosy
       if (ajjy < 110)
       {
         if (ajjy < 25)
         {
           meny = 255;
         }
         else
         {
           meny = (120 - ajjy) * 255 / 100;
         }
       }
       else
       {
         meny = 0;
       }
       analogWrite(mnx, menx);
       analogWrite(msx, masx);
       analogWrite(mny, meny);
       analogWrite(msy, masy);
       delay(1);
}

Los valores de X e Y serian: 20 min, 120 medio, 220 max.
Entonces si X o Y llegase a 130/110 se encenderia levemente el led y si supera los 210/30 (cerca del maximo teorico) el led se encedera al maximo.

PD: Si si el codigo es un asco se podria simplificar mucho con matrices pero era una simple prueba.
http://img413.imageshack.us/img413/4775/20100716090827556.jpg

@synthesize

#1
Ojalá estuviera en la playa o similar, pero no, estoy de estudios y exámenes XD

Añado el post a la lista en mi post de arduino y en la wiki, saludos

https://sites.google.com/a/elhacker.net/wiki/electronica/arduino

Y por cierto, no pongas la imagen directamente, es demasiado grande y hace incómodo ver el post, pon el enlace o hazla pequeña  :)

braulio--

Muy interesante, yo esperaba practicar con el nunchuck en breve, pero no he tenido la oportunidad. Ahora postearé un robot seguidor de luz que he hecho.

Banti

Cita de: braulio-- en 18 Julio 2010, 13:24 PM
Muy interesante, yo esperaba practicar con el nunchuck en breve, pero no he tenido la oportunidad. Ahora postearé un robot seguidor de luz que he hecho.
Que bien! Lo esperare con ansias.

PD: Tan lejos te queda la casa de electronica?

braulio--

Cita de: Vaati en 18 Julio 2010, 22:29 PM
Cita de: braulio-- en 18 Julio 2010, 13:24 PM
Muy interesante, yo esperaba practicar con el nunchuck en breve, pero no he tenido la oportunidad. Ahora postearé un robot seguidor de luz que he hecho.
Que bien! Lo esperare con ansias.

PD: Tan lejos te queda la casa de electronica?
Tengo que coger un bus que pasa cada media hora y hace demasiado calor como para ir de poco en poco.

También tiene un componente de vagueza que es ineludible :xD

Ahora lo grabo (el robot) y lo posteo.