Arduino Wii nunchuck en Wii motion plus met bijgewerkt code voor IDE 1.0.2 en LEDs (6 / 7 stap)

Stap 6: Wii Nunchuck Code


Nu dat de Wii motion plus prima werkt, kunt u gewoon de Wii Nunchuck koppelen aan de achterkant van de wii motion plus met geen problemen,
de gegevens zullen passeren recht, en u bent klaar om te testen de nunchuck maar je moet nieuwe code, open een nieuwe arduino IDE, kopiëren en plakken van de code:

Weer de code is niet de mijne die ik gewoon vast te kunnen uitvoeren in de ned IDE en voegde ik leds, de originele code is van deze webpagina:

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

alle credits voor de code zijn voor chadphillips

u hoeft niet te wijzigen om het even wat in het breadboard dat het met de nunchuck werken zal

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

#undef int
#include < stdio.h >

uint8_t outbuf [6];        matrix voor het opslaan van de output van de arduino
int cnt = 0;
int ledPin = 13;

ongeldig
Setup)
{
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);

Serial.begin (19200);
Serial.Print ("afgewerkte setup\n");
Wire.begin ();        Join i2c bus met adres 0x52
nunchuck_init (); Stuur de handdruk initilization
}

ongeldig
nunchuck_init)
{
Wire.beginTransmission (0x52);    verzenden naar apparaat 0x52
Wire.write (0x40);        stuurt geheugenadres
Wire.write (0x00);        stuurt verzonden een nul.
Wire.endTransmission ();    stoppen met het verzenden van
}

ongeldig
send_zero)
{
Wire.beginTransmission (0x52);    verzenden naar apparaat 0x52
Wire.write (0x00);        stuurt één byte
Wire.endTransmission ();    stoppen met het verzenden van
}

ongeldig
lus)
{
Wire.requestFrom (0x52, 6);    aanvraaggegevens uit nunchuck
terwijl (Wire.available ())
{
outbuf [cnt] = nunchuk_decode_byte (Wire.read ());    Ontvangen bytes als integer
digitalWrite (ledPin, hoge);    Hiermee stelt u de LED op
CNT ++;
}

Als we de 6 bytes ontvangen, ga dan afdrukken
Als (cnt > = 5)
{
afdrukken ();
}

CNT = 0;
send_zero (); stuurt het verzoek om de volgende bytes
vertraging (10);
}

Afdrukken van de invoergegevens die we hebben ontvangen
accel gegevens is 10 bits lang
zodat wij 8 bits lezen, dan moeten zullen we toevoegen
op de laatste 2 bits.  Dat is waarom ik
Ze vermenigvuldigen met 2 * 2
ongeldig
afdrukken)
{
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;

outbuf [5] van de byte bevat bits voor knoppen z en c
het bevat ook de minst significante bits voor de versnellingsmeter-gegevens
dus we hebben om te controleren van elke bit van byte outbuf [5]
Als ((outbuf [5] >> 0) & 1)
{
z_button = 1;

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

}

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

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

Als ((outbuf [5] >> 6) & 1)
{
accel_z_axis += 2;
}
Als ((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");

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

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

anders als (joy_x_axis > = 190) {}
digitalWrite(9,HIGH);
}

else if (joy_x_axis < = 60) {}
digitalWrite(10,HIGH);
}

anders als (joy_y_axis > = 190) {}
digitalWrite(11,HIGH);
}

else if (joy_y_axis < = 60) {}
digitalWrite(12,HIGH);
}

else {}

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

Coderen gegevens opmaken dat meeste wiimote bestuurders behalve
alleen nodig als u een van de regelmatige wiimote stuurprogramma's gebruiken
char
nunchuk_decode_byte (char x)
{
x = (x ^ 0x17) + 0x17;
return x;
}

Gerelateerde Artikelen

PIR Alarm Arduino Motion Sensor (met Encasing)

PIR Alarm Arduino Motion Sensor (met Encasing)

dit is een gids op hoe te om een bewegingsmelder met een arduino! Geniet van!Stap 1: Items nodig Arduino Uno microcontrollerBreadboard, MiniPIR sensor, SE-10Jumper dradenPiëzo-zoemerLED, elke grootte en elk typePlywood(optional)Stap 2: De Arduino dra
Draadloze Wii Nunchuk-aan-muis USB-Stick voor PC, Mac, en Tablet videospelletjes

Draadloze Wii Nunchuk-aan-muis USB-Stick voor PC, Mac, en Tablet videospelletjes

Klaar om te voelen van de legendarische "Bruce Lee" met behulp van draadloze Wii Nunchuk op een leuke stickman kung fu PC video vechtspel bekend als One Finger Death Punch (OFDP). Hoe over het spelen van Jetpack Joyride op Facebook of je Android
Arduino: een gemakkelijkere manier om te werken met zeven segment displays

Arduino: een gemakkelijkere manier om te werken met zeven segment displays

ooit hebben moeite programmeercode voor zeven displays segment? Ze maakten ook de 4511 om dingen te maken een stuk makkelijker. Wat de 4511 doet is neemt een 4-cijferige binaire invoerwaarde (enen en nullen), en zet deze om in een decimale waarde op
LeapTek: Sprong Motion Interface met een boord van MediaTek LinkIt!

LeapTek: Sprong Motion Interface met een boord van MediaTek LinkIt!

Hallo iedereen,Ik ben Geeve George een 15-jarige Maker/elektronica Hobbyist.I liefde computervisie, Androïde ontwikkeling en algoritme Design.I ben momenteel in 11de rang Student informatica op Little Rock Indian School. :) Meer informatie vinden ove
AVR/Arduino RFID Reader met UART Code in C

AVR/Arduino RFID Reader met UART Code in C

RFID is de rage, vond overal - van inventarisatiesystemen badge ID systemen. Als je ooit naar een warenhuis geweest en liepen door die metaal detector-uitziende dingen op de oprijlaan-/ uitvoerhavens, dan je RFID gezien heb.Er zijn verschillende plek
Arduino virtuele Data (in dit voorbeeld klok) met verwerking

Arduino virtuele Data (in dit voorbeeld klok) met verwerking

Hallo! In het vorige project toonde ik u hoe u kunt besturen shift register met computer. Nu i´m alleen het delen van wat ik heb geleerd over het: U don´t wilt delen om te testen uw project! Alleen de slechte kant is dat je verwerken van de hele tijd
Arduino bestuurd Model maan fase wijzigingen synchroniseert met werkelijke maankalender

Arduino bestuurd Model maan fase wijzigingen synchroniseert met werkelijke maankalender

Zie het in actie.YouTube-Video van Model maan maanfasen doorlopenDe als-leverde Uncle Milton Moon In My Room is voorzien van een infrarood afstandsbediening waarmee de maan model van hele kamer. De afstandsbediening heeft knoppen te draaien van de LE
Vertind Eiffeltoren Stop Motion Project met vuurwerk en tuinen

Vertind Eiffeltoren Stop Motion Project met vuurwerk en tuinen

Wij houden van het maken van animaties, zodat toen Andy kreeg voor zijn verjaardag een 'Eiffeltoren in een Tin", leek het een geweldig onderwerp voor een stop-motion-video. Hij had het idee dat we gewoon zou een time-lapse van hem het samen brengen,
Programma & controle Arduino + PHIRO robot gelijktijdig met Pocket Code smartphone app

Programma & controle Arduino + PHIRO robot gelijktijdig met Pocket Code smartphone app

PHIRO Pro is een educatieve robot die helpt kinderen leren code. Een van de manieren voor het programmeren en besturen van de PHIRO is via een Android app genaamd Pocket Code beschikbaar op Google Play voor gratis. Zak Code heeft de mogelijkheid voor
Arduino Nano: DS1307 real-time Clock(RTC) met Visuino

Arduino Nano: DS1307 real-time Clock(RTC) met Visuino

DS1307 Real timerklok zijn wijd-beschikbaar low-cost I2C RTC modules. Ze komen met een klok en een kleine batterij, en wanneer aangesloten op de Arduino, annuleerteken vieren voetspoor van real-time zelfs wanneer de Arduino board is niet aangedreven.
Arduino Leonardo/Micro als Game Controller/Joystick met

Arduino Leonardo/Micro als Game Controller/Joystick met

BELANGRIJKE opmerking: Dit artikel is voor de Arduino IDE versie 1.6.6 (of hoger). Om toe te voegen een USB-spelbesturing aan een Arduino Leonardo of Micro met behulp van de Arduino IDE versie 1.6.5 (of onder) de volgende Instructable Zie: Voeg USB-s
Hoe te programmeren Pro Mini Arduino Arduino Uno en ArduShield - zonder de kabels met

Hoe te programmeren Pro Mini Arduino Arduino Uno en ArduShield - zonder de kabels met

Het hoofddoel van deze instructie is om u te tonen hoe te programmeren in de meest eenvoudige manier Arduino Mini of de Pro Mini Arduino met een Arduino UNO en ArduShield – zonder de kabels.Stap voor stap handleiding, met geen stappen overslaan door
Motion Detector met LED voor Beginners

Motion Detector met LED voor Beginners

Dit is een eenvoudig project dat ik maakte voor het testen van sommige bewegingssensoren die ik kocht. Het zal detecteren beweging en een LED licht, als dat zo is. Dit duurt slechts 20-30 minuten start tot finish en is een perfect project voor beginn
Arduino Nano: Analoge 7 Segment MAX7219 Display met Visuino

Arduino Nano: Analoge 7 Segment MAX7219 Display met Visuino

7 segment Displays zijn zeer populaire keuze voor het weergeven van gegevens. Ze bestaan echter uit een groot aantal LEDs en elke LED met een digital pin van de Arduino te beheersen is niet een praktische oplossing. Maxim geïntegreerde biedt zeer han