Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: Banti en 17 Julio 2010, 04:47 am



Título: Arduno - Probando el NunChuk
Publicado por: Banti en 17 Julio 2010, 04:47 am
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.
Código:
#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


Título: Re: Arduno - Probando el NunChuk
Publicado por: @synthesize en 17 Julio 2010, 05:24 am
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 (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  :)


Título: Re: Arduno - Probando el NunChuk
Publicado por: 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.


Título: Re: Arduno - Probando el NunChuk
Publicado por: Banti en 18 Julio 2010, 22:29 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?


Título: Re: Arduno - Probando el NunChuk
Publicado por: braulio-- en 18 Julio 2010, 22:46 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.


Título: Re: Arduno - Probando el NunChuk
Publicado por: snaker190 en 19 Julio 2010, 03:15 am
yo tanbien tenia ese problem ..