FISI4087 Experimento Final

Objetivo: Implementar el Arduino al controlador de Wii Nunchuk.

 

Nunchuk: Determinando sus señales digitales

Por: Pablo Sepúlveda y William Serrano

El Arduino es capaz de interactuar con controles de videojuegos como el Nunchuk del Wii. Este proyecto muestra como el Arduino puede reconoser las distintaas señales de dicho control, para esto se utilizo un LCD display y varios LEDs para sus distintos comandos.

Diagrama del circuito:

Codigo para leer las señales del control de Wii.

#include <Wire.h>

#include <ArduinoNunchuk.h>

#include <Servo.h>

#define BAUDRATE 9600

#include<LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

int val1 = 0;

int val2 = 0;

int val3 = 0;

const int led1 = 10;

const int led2 = 11;

const int led3 = 12;

const int led4 = 13;

int a;

int b;

ArduinoNunchuk nunchuk = ArduinoNunchuk();

void setup() {

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

pinMode(led3, OUTPUT);

pinMode(led4, OUTPUT);

lcd.begin(16,2);

lcd.home();

lcd.print("Nunchuk Boricua");

delay(1000);

lcd.clear();

Serial.begin(BAUDRATE);

nunchuk.init();

}

void loop()

{

lcd.setCursor(0,0);

nunchuk.update();

val1=nunchuk.analogX;

val2=nunchuk.analogY;

val3=nunchuk.accelX;

if (val1>=140){

digitalWrite(led2,HIGH);

}

else if (val1<=130){

digitalWrite(led1,HIGH);

}

else if (val1=135) {

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

}

if (val2>=140){

digitalWrite(led3,HIGH);

}

else if (val2<=130){

digitalWrite(led4,HIGH);

}

else if (val2=135) {

digitalWrite(led3,LOW);

digitalWrite(led4,LOW);

}

delay(10);

lcd.print(a = val1-135, DEC);

lcd.print("<x,");

lcd.print(b = val2-135, DEC);

lcd.print("<y,");

lcd.print(val3, DEC);

lcd.print("<ax,");

lcd.print(nunchuk.accelY, DEC);

lcd.println(' ');

lcd.print(nunchuk.accelZ, DEC);

lcd.println(' ');

}

Videos