Arduino Wii nunchuck och Wii motion plus med uppdaterad kod för IDE 1.0.2 och lysdioder (6 / 7 steg)

Steg 6: Wii Nunchuck kod



Nu när Wii motion plus fungerar bra, kan du bara bifoga Wii Nunchuck till baksidan av wii motion plus med inga bekymmer,
data kommer att passera rakt igenom, och du är redo att testa nunchuck men du behöver ny kod, öppna en ny arduino IDE, kopiera och klistra in koden:

Igen koden är inte min fast jag bara för att kunna köra i ned IDE och jag lagt till lysdioder, den ursprungliga koden är från denna webbsida:

http://www.windmeadow.com/Node/42

alla krediter för koden är för chadphillips

du behöver inte chage något i bakbord det fungerar med nunchuck

#include < Wire.h >
#include < string.h >

#undef int
#include < stdio.h >

uint8_t outbuf [6]. matrisen att lagra arduino utgång
int cnt = 0;
int ledPin = 13.

void
(setup)
{
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);

Serial.BEGIN (19200);
Serial.Print ("färdiga setup\n");
Wire.BEGIN (); gå med i2c bussen med adress 0x52
nunchuck_init (); Skicka initilization handslag
}

void
nunchuck_init)
{
Wire.beginTransmission (0x52); överföra till enhet 0x52
Wire.write (0x40); skickar minnesadress
Wire.write (0x00); skickar skickade en nolla.
Wire.endTransmission (); stoppa överföring
}

void
send_zero)
{
Wire.beginTransmission (0x52); överföra till enhet 0x52
Wire.write (0x00); skickar en byte
Wire.endTransmission (); stoppa överföring
}

void
loop)
{
Wire.requestFrom (0x52, 6); begäran data från nunchuck
medan (Wire.available ())
{
outbuf [cnt] = nunchuk_decode_byte (Wire.read ()); ta emot byte som ett heltal
digitalWrite (ledPin, hög); anger LED på
CNT ++;
}

Om vi fått 6 byte, gå sedan skriva ut dem
om (cnt > = 5)
{
skriva ut ();
}

CNT = 0;
send_zero (); skicka begäran om nästa byte
fördröjning (10).
}

Skriva ut indata har vi fått
accel data är 10 bitar lång
så vi läsa 8 bitar, då måste vi lägga till
på de sista 2 bitarna. Det är därför jag
multiplicera dem med 2 * 2
void
skriva ut)
{
int joy_x_axis = outbuf [0];
int joy_y_axis = outbuf [1].
int accel_x_axis = outbuf [2] * 2 * 2.
int accel_y_axis = outbuf [3] * 2 * 2.
int accel_z_axis = outbuf [4] * 2 * 2.

int z_button = 0;
int c_button = 0;

byte outbuf [5] innehåller bitar för z- och c-knapparna
den innehåller också de minst signifikanta bitarna för accelerometer data
så vi måste kontrollera varje bit av byte outbuf [5]
om ((outbuf [5] >> 0) & 1)
{
z_button = 1;

}
om ((outbuf [5] >> 1) & 1)
{
c_button = 1;

}

om ((outbuf [5] >> 2) & 1)
{
accel_x_axis += 2.
}
om ((outbuf [5] >> 3) & 1)
{
accel_x_axis + = 1;
}

om ((outbuf [5] >> 4) & 1)
{
accel_y_axis += 2.
}
om ((outbuf [5] >> 5) & 1)
{
accel_y_axis + = 1;
}

om ((outbuf [5] >> 6) & 1)
{
accel_z_axis += 2.
}
om ((outbuf [5] >> 7) & 1)
{
accel_z_axis + = 1;
}

Serial.Print (joy_x_axis, DEC);
Serial.Print ("\t");

Serial.Print (joy_y_axis, DEC);
Serial.Print ("\t");

Serial.Print (accel_x_axis, DEC);
Serial.Print ("\t");

Serial.Print (accel_y_axis, DEC);
Serial.Print ("\t");

Serial.Print (accel_z_axis, DEC);
Serial.Print ("\t");

Serial.Print (z_button, DEC);
Serial.Print ("\t");

Serial.Print (c_button, DEC);
Serial.Print ("\t");

Serial.Print ("\r\n");

om (z_button == 0) {
digitalWrite(7,HIGH);
}

annat if (c_button == 0) {
digitalWrite(8,HIGH);
}

annars om (joy_x_axis > = 190) {
digitalWrite(9,HIGH);
}

annars om (joy_x_axis < = 60) {
digitalWrite(10,HIGH);
}

annars om (joy_y_axis > = 190) {
digitalWrite(11,HIGH);
}

annars om (joy_y_axis < = 60) {
digitalWrite(12,HIGH);
}

annat {

digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
}

Koda data om du vill formatera som de flesta wiimote förare utom
behövs endast om du använder en av de regelbundna wiimote förarna
röding
nunchuk_decode_byte (char x)
{
x = (x ^ 0x17) + 0x17;
återvändande x;
}

Se Steg
Relaterade Ämnen

Hur ta isär & fixa din Wii Motion Plus modul.

INTRO: en av min Wii fjärrkontroller höll å flytta slumpmässigt i en riktning som hade Wii Motion Plus. Med den nun-chuck installerat, om jag tryckte anslutning leden till en riktning det skulle fungera men så fort jag släpper, skulle den gå av sig s...

Arduino IR-sensorn och lysdioder

detta är ett projekt för min fysik 308 lab. Till en början var jag inte säker på vad jag skulle bygga med en arduino. Jag beslöt att göra något med en IR-sensorn. Jag fick en idé av min instruktör att använda fjärrkontrollen för att styra lamporna. J...

Styra din Robot med en Wii Nunchuck (och en Arduino)

efter bär själv spela Wii boxning jag måste tänka vore det inte bra om jag kunde använda detta för att styra min robot, (ser att min vänstra hand).Titta runt på internet hittade jag en uppsjö av människor som gör liknande saker, (länkar till alla bar...

Motion Tracker med PIRs, Arduino och en Servo

detta är min motion tracking huvudet med fyra PIRs (passiva infraröda sensorer), en Arduino Uno styrelse och en servo.Det är ett enkelt sätt att ge intryck av att huvudet (birdy) faktiskt följer rörelsen.Det är mycket lätt att bygga men lite tidskräv...

Arduino / Wii kontrollerade Lego Star Wars raket torn

An Arduino ombord tar emot data från en Wii Nunchuck och skickar det till re servon: x, y och trigger. En oberoende laser har lagts till för inriktning. För närvarande mycket vinglig på grund av de billiga servon används.Steg 1: konstruktion Raket to...

Fjärrstyrda webkamera med Arduino, SensorMonkey, jQuery och Justin.tv

webb-aktivera din interaktiva sensorer över skrivbordet, smartphone och tablet enheter.Denna handledning beskriver i detalj hur du använder tjänsten gratis SensorMonkey till styra en pan och tilt webbkamera ansluten till en Arduino använder inget ann...

Automatiska bevattningssystem med kapacitiv sond och Arduino på billiga (och jag menar det)

Varning: Jag är inte en elektronikingenjör, så jag inte kan ge någon garanti för design (mycket mindre en implementering). Jag vet bara presenteras lösningen fungerade för mig minst 5-6 månader (så jag inte kan ens garantera dess tillförlitlighet öve...

RatPhone - 3 G FONA Arduino cellulära Rörlig Cell Telefonerna med Retro knapp knappsats och råtta fånga App

Strunt det iPhones och androider. Här är ratPhone! Detta är definitivt inte en smart telefon. Men det är inte en dum telefon heller. Du kommer inte att kunna slösa ändlösa timmar på Facebook eller Twitter, men det kommer att hjälpa dig att fånga rått...

Kommunicera med arduino micro controller och dator via usb med en vb program

Om du är som mig och vill kunna styra dina objekt anslutna till din arduino via datorn måste du ett sätt att upprätta en anslutning och kommunicera med din arduino från datorn. Denna video och handledning visar dig hur man gör just det! Jag har tagit...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...

Arduino IOT: Temperatur och luftfuktighet (med ESP8266 WiFi)

Hej alla! Jag är Michalis Vasilakis från www.ardumotive.com och i detta Instructables kommer jag visa dig hur du gör din egen Internet av saker (IOT) termometer med hjälp av Arduino uno styrelsen.Du kan använda den hemma, på kontoret, eller var som h...

InPace - en Arduino baserad GPS-data logga fitness armband med bluetooth och en iOS app

InPace är en Arduino baserat fitness armband, med åtföljande iOS ansökan, som kan ge levande feedback på hur användaren pacing sig under en springa, gå eller cykla rutten. Det spår GPS lokaliseringarna och aktuella tider att jämföra användare nuvaran...

Seriella Servo Controller w/Arduino - kontroll upp till 12 servon samtidigt med Arduino och en USB-anslutning

jag kommer att visa dig hur du använder din Arduino för att styra upp till 12 servon på en gång med minimal jitter. Med ett enkelt seriellt gränssnitt kan du kontrollera positionen för upp till 12 servo kanaler. Upp till 10 ögonblicksbild positioner...

DIY Arduino fjärrkontroll och Lego RC bil!

Uppdatera (8/29/13): tacka er läsare för din entusiasm och typ kommentarer angående detta projekt! Det har varit en enorm resa sedan jag började detta projekt redan i mars, men jag är mycket glad med den resulterande produkten och spänningen som det...

Arduino virtuella Data (i detta exempel klockan) med bearbetning

Hej! I det tidigare projektet visade jag dig hur du styr skiftregister med dator. Nu i´m bara dela vad jag har lärt mig om det: du don´t måste genom delar att testa ditt projekt! Bara dåliga sidan är att du måste köra bearbetning hela tiden när du vi...

ARDUINO gränssnitt och konverterare för INPUT/OUTPUT digital/analog

CE schéma réunit toutes les gränssnitt ou convertisseurs que j'utilise avec mes microcontrôleurs Häll piloter mes systèmes (gaine de ventilation chauffante régulation de température, portail automatisé, fyra thermique, monte avgift, station de pompag...

Arduino Powered RGB humör lampa plus Simon

detta är grunden en arduino powered RGB humör lampa plus simon says spel, två i ett.Hur man använder: Enheten börjar med RGB humör lampa standardprogram, när du trycker på någon av de fyra knapparna längst ner, säger Simon spelet startar. När du tryc...

Hur man gör en Stop Motion Video med telefonen

I detta Instructable kommer jag visa dig hur man gör en bra stopp rörelse video utan högteknologisk programvara eller högteknologisk kameraSteg 1: Historien ombordstigningOmbordstigning berättelse är det första steget som det kan storyboarding men de...

HK spårvagn Laser skär ras spel (Arduino, Pure Data och GSR sensorer)

Detta spelet betalar vördnad till Hong Kongs stressande gator, där den ikoniska Hongkong "Ding Ding" spårvagnar sammanföra lokalbefolkningen och utlänningar. Detta projekt var också inspirerad av aktuella studier som görs på stress och känslomäs...