Arduino animatronics-Maak uw geweldige kostuums meer awesome! (13 / 15 stap)

Stap 13: Ga draadloos met XBee



Voorbeeld 9-Wireless XBee Radio 's

Dit kunt u het besturingselement Nunchuck gebruiken maar doet door het opzetten van een domeincontroller als een zender en een andere controller als de ontvanger. Ik gebruik de draadloze adapter van Adafruit XBee want het is super eenvoudig te gebruiken en kan werken op zowel 3V- en 5V, dus het is geweldig voor vrijwel elke draadloze project van Arduino. Het bestuur van de servo is ingesteld voor Point-to-point communicatie en de XBee adapter stekkers rechtstreeks in een aansluiting aan de bovenkant van het bord. Deze opzet zou echt goed voor het beheersen van spookhuis attracties.

Kunt u de XBee adapter en radio's hier-
http://www.adafruit.com/index.php?main_page=product_info&cPath=29&products_id=126

Er is een volledige XBee tutorial voor het bouwen van de XBee-adapter en het configureren van het hier-
http://www.ladyada.net/make/XBee/

Deze code gebruikt in tegenstelling tot de vorige code voor de besturing van de nuchuck, een nieuwe nunchuck bibliotheek die de code aanzienlijk ruimt. Het heet nunchuck_funcs.h
Je kunt het hier-
http://todbot.com/blog/2008/02/18/WiiChuck-Wii-Nunchuck-adapter-available/comment-page-3/

Plaats eenvoudig de nunchuck_funcs.h-bibliotheek in uw omslag van de bibliotheken van Arduino en je bent goed om te gaan.

De bedrading voor dit is net zoals de bedrading bijvoorbeeld 6 behalve de nunchuck is verbonden met de zender en de servo's en de LEDs zijn aangesloten op de receiver.

Nota - u kan niet verbinden met de USB seriële adapter terwijl de XBee-adapter is aangesloten op de ingang als ze de dezelfde gegevens transmissielijnen gebruiken. U moet de controller eerst program en sluit in de XBee-adapter. Als u kunnen controleren van de seriële poort wilt tijdens het gebruik van de XBee kunt u een paar draden sluit de XBee RX en TX aan digitale uitgang pin 2 en 3, zoals aangegeven in de Adafruit point-to-point tutorial.

Hier is de code voor de zender-

/*
* Voorbeeld 9a
* Nunchuck XBee zender
* Deze code gebruikt de nunchuck functie bibliotheek en een XBee radio (w / Adafruit XBee adapter)
* om een Wii nunchuck een draadloos apparaat
* Honus 2010
* Nunchuck functioneert bibliotheek van Tod E. Kurt, http://todbot.com/blog
*/

#include "Wire.h" / / de draad bibliotheek
#include "nunchuck_funcs.h" / / omvatten de nunchuck functie bibliotheek

int loop_cnt = 0;

byte-accx, accy, zbut, cbut, joyy, joyx;
int ledPin = 13;

VOID Setup
{
Serial.begin(9600);
nunchuck_setpowerpins();
nunchuck_init(); Stuur de handdruk initilization
pinMode (ledPin, OUTPUT);
}

void loop
{
digitalWrite (ledPin, hoge);   de LED aangezet

Als (loop_cnt > 100) {/ / elke 100 msec krijgen nieuwe gegevens
loop_cnt = 0;

nunchuck_get_data();

accx = nunchuck_accelx(); varieert van ongeveer 70-182
accy = nunchuck_accely(); varieert van ongeveer 65-173
zbut = nunchuck_zbutton();
cbut = nunchuck_cbutton();
joyx = nunchuck_joyx();
joyy = nunchuck_joyy();

Serial.Print("joyx:");
Serial.Print((byte)joyx,DEC);
Serial.Print("joyy:");
Serial.Print((byte)joyy,DEC);
Serial.Print("accx:");
Serial.Print((byte)accx,DEC);
Serial.Print("accy:");
Serial.Print((byte)accy,DEC);
Serial.Print("\tzbut:");
Serial.Print((byte)zbut,DEC);
Serial.Print("\tcbut:");
Serial.println((byte)cbut,DEC);
}
loop_cnt ++;
delay(1);
}

Hier is de code voor de ontvanger-

/*
* Voorbeeld 9b
* Nunchuck XBee ontvanger
* Deze code ontvangt input van een Wii nunchuck met behulp van een radio XBee (w / Adafruit XBee adapter)
* en besturingselementen vier servo's en twee digitale pinnen om te zetten LEDs
* Honus 2010
*/

#include "Servo.h" / / de Servo-bibliotheek

int joyx, joyy = 135;
int accx, accy = 135;
int zbut, cbut = 0;
int ledPin1 = 13;
int ledPin2 = 12;
int lightvalue1 = 255;
int lightvalue2 = 255;
char nunchuckData;
int val = 0;
int tempval = 0;
int servo1Pos;
int servo2Pos;
int servo3Pos;
int servo4Pos;
int buttonState1 = 0;
int buttonState2 = 0;
int lightMode1 = 0;
int lightMode2 = 0;

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

int servoPin1 = 9;
int servoPin2 = 8;
int servoPin3 = 7;
int servoPin4 = 6;

VOID Setup
{
Serial.begin(9600);
Serial.Print ("Nunchuck ready\n");
Serial.begin(9600);

servo1.attach(servoPin1);
servo2.attach(servoPin2);
servo3.attach(servoPin3);
servo4.attach(servoPin4);
pinMode (ledPin1, OUTPUT);
pinMode (ledPin2, OUTPUT);
}

void loop {}

Als (accy > 125) {}
servo1Pos = 90-(accy-125);
Als (servo2Pos < 45)
servo1Pos = 45;
servo1.write(servo1Pos);
}
Als (accy < 125) {}
servo1Pos = 90+(125-accy);
Als (servo1Pos > 135)
servo1Pos = 135;
servo1.write(servo1Pos);
}


Als (accx > 125) {}
servo2Pos = 90-(accx-125);
Als (servo2Pos < 45)
servo2Pos = 45;
servo2.write(servo2Pos);
}
Als (accx < 125) {}
servo2Pos = 90+(125-accx);
Als (servo2Pos > 135)
servo2Pos = 135;
servo2.write(servo2Pos);
}

Als (joyy > 125) {}
servo3Pos = 90-(joyy-125);
Als (servo3Pos < 45)
servo3Pos = 45;
servo3.write(servo3Pos);
}
Als (joyy < 125) {}
servo3Pos = 90+(125-joyy);
Als (servo3Pos > 135)
servo3Pos = 135;
servo3.write(servo3Pos);
}


Als (joyx > 125) {}
servo4Pos = 90-(joyx-125);
Als (servo4Pos < 45)
servo4Pos = 45;
servo4.write(servo4Pos);
}
Als (joyx < 125) {}
servo4Pos = 90+(125-joyx);
Als (servo4Pos > 135)
servo4Pos = 135;
servo4.write(servo4Pos);
}

Als (cbut! = buttonState1) {/ / de status van de knop veranderd!
Als (cbut == 1) {/ / controleren als de knop wordt ingedrukt
Als (lightMode1 == 0) {/ / licht is uitgeschakeld
lightMode1 = 1;               lampje brandt!
digitalWrite (ledPin1, hoge);
} else {}
lightMode1 = 0;               lampje brandt!
digitalWrite (ledPin1, laag);
}
}
}

Als (zbut! = buttonState2) {/ / de status van de knop veranderd!
Als (zbut == 1) {/ / controleren als de knop wordt ingedrukt
Als (lightMode2 == 0) {/ / licht is uitgeschakeld
lightMode2 = 1;               lampje brandt!
digitalWrite (ledPin2, hoge);
} else {}
lightMode2 = 0;               lampje brandt!
digitalWrite (ledPin2, laag);
}
}
}
buttonState1 = cbut;               de nieuwe staat in onze variabele opslaan
buttonState2 = zbut;               de nieuwe staat in onze variabele opslaan



while(Serial.available()) {}
tempval = Serial.read();
Als (tempval == 'x') {}
nunchuckData = 'x';
Val = 0;
}
else if (tempval == 'y') {}
nunchuckData = 'y';
Val = 0;
}
else if (tempval == 'X') {}
nunchuckData = 'X';
Val = 0;
}
else if (tempval == 'Y') {}
nunchuckData = 'Y';
Val = 0;
}
else if (tempval == 'Z') {}
nunchuckData = 'Z';
Val = 0;
}
else if (tempval == 'C') {}
nunchuckData = 'C';
Val = 0;
}
anders als (tempval > = '0' & & tempval < = '9') {}
Val = val * 10;
Val = val + (tempval - '0');

Als (nunchuckData == 'x') {}
joyx = val;
}
else if (nunchuckData == 'y') {}
joyy = val;
}
else if (nunchuckData == 'X') {}
accx = val;
}
else if (nunchuckData == 'Y') {}
accy = val;
}
else if (nunchuckData == 'Z') {}
zbut = val;
}
else if (nunchuckData == 'C') {}
cbut = val;
}
}
} //end van input in seriële buffer
}

Gerelateerde Artikelen

Hoe om uw Andoird UI kijken meer Awesome

Hoe om uw Andoird UI kijken meer Awesome

INTRODUCTIEHallo daar, vandaag zal ik laten u dat hoe kunt u uw android telefoon/tablet meer awesome kijken en als je oude en lelijke Androïde versie (dwz 4.0 ice cream sandwich, 4.1, 4.2 Jellybean, 4.4 Kitkat) en wil het er bijgewerkte en ontzagwekk
Hoe maak je een kostuum van de Terminator Model T-600

Hoe maak je een kostuum van de Terminator Model T-600

zoals u van mijn avatar zien kunt, ik ben een grote fan van de Terminator-serie. Om deze reden dit jaar maakte ik mijn eigen kostuum van een model T-600 Terminator zoals te zien in Terminator Salvation.De definitieve kostuum omvat een minigun, een li
Hoe maak je een kostuum Corvid

Hoe maak je een kostuum Corvid

Ik kan me niet herinneren waarom, maar Halloween feest komen ik besloten om te verkleden als een monsterlijke-Crow / Raven (grote zwarte vogel)Het beste ding over een zelf-gemaakte kostuum is dat kunt u er vrij zeker dat niemand anders gaat er hetzel
Hoe maak je een kostuum Sinestro (paars lantaarn) Corp "Scarecrow"

Hoe maak je een kostuum Sinestro (paars lantaarn) Corp "Scarecrow"

daar gaan we weer! We wisten allemaal dat het uiteindelijk zou gebeuren dat scarecrow zou worden een paars lantaarn voor zijn capaciteit voor het opwekken van grote angst in anderen. Tijden veranderen en wij gotta houden met de trends juiste?Material
Maak een Link kostuum!

Maak een Link kostuum!

Dit instructable zal u tonen hoe een Link kostuum, allermeest naar de componenten aanbrengen van de Legend of Zelda. Met wat ik had, dit geliquideerd wordt een hybride tussen de Link van de Ocarina of Time en Twilight Princess. Dit omvat het maken va
Maak een geweldige zaak-minder flash drive, heb ik al gezegd dat het waterdicht is?

Maak een geweldige zaak-minder flash drive, heb ik al gezegd dat het waterdicht is?

Informatie over het gebruik van sommige algemeen beschikbare materialen die u hebt waarschijnlijk rond het huis om een geweldige zaak-minder flash drive.Stap 1: Verzamel materialen u zal eerst uw materialen die u nodig heeft om de flash drive, verzam
Maak een epische kostuum voor onder $15

Maak een epische kostuum voor onder $15

het is die tijd van het jaar weer, de bladeren vallen van de bomen, Thanksgiving nadert, maar het grootste deel van alle Halloween is de horizon en mensen scramble te hebben de beste kostuum op het blok, of het nu gaat om Iron Man naast de deur, of d
Hoe maak je een kostuum 'Jem'

Hoe maak je een kostuum 'Jem'

Jem was de zanger van een 80's cartoon band genaamd JEM en de hologrammen. Overdag was ze Jerrica, maar haar pseudoniem was Jem. Jem de blik over de afleveringen is geëvolueerd, maar die ik het beste bevalt is haar hete roze omslag jurk, glanzende as
Hoe maak je een kostuum Saber Lily

Hoe maak je een kostuum Saber Lily

ik hield van het ontwerp van dit teken, wanneer ik voor het eerst zag haar, en ten slotte het kostuum van haar maakte te wonen anime verdragen met.  Saber Lily is een alternatieve outfit voor het teken Saber vanaf Fate/Stay Night.  Saber Lily wordt w
Hoe om uw awesome website zelfs meer AWESOME door het toegankelijk te maken

Hoe om uw awesome website zelfs meer AWESOME door het toegankelijk te maken

deel 0: InleidingWanneer haalbaar is, probeer om een website om bruikbaar door zoveel mensen als mogelijk te ontwerpen.  Dit kan mensen die niet kunnen zien, horen of hun muis bewegen goed, of zelfs helemaal omvatten.  Hier zijn enkele hints en tips
Hoe maak je: Lego sleutelhanger + meer

Hoe maak je: Lego sleutelhanger + meer

Hallo iedereen,Ik ben bezig geweest de laatste paar dagen met mijn lego projecten, mijn doel was oude lego voorzien en gebruikt in het dagelijks leven zorg te worden gedragen en genoten:) Dit is een instructable op het proces van het maken van uw eig
Hoe maak je een kostuum voor een hond

Hoe maak je een kostuum voor een hond

ik denk dat ongeacht hoe u persoonlijk gevoel over honden, we er allemaal over eens dat hond kostuums hilarisch zijn. Ja, het klopt dat we op hen, en niet met hen lachen, maar zolang ze bereid bent te spelen mee ik denk niet dat er per se iets mis me
Hoe maak je Locker houden meer Stuff

Hoe maak je Locker houden meer Stuff

ik huurde een locker op mijn lokale TechShop locatie, dus ik houden kan project materialen en hulpmiddelen voor diverse persoonlijke, gunstig gelegen.  De kluisjes zijn lang en smal, zodat alles hoopt zich op in een stapel aan de onderkant.Ik opgeklo
Maak een zeemeermin kostuum uit oude rommel

Maak een zeemeermin kostuum uit oude rommel

ik ben het verblijf in de buurt van het strand in het moment en was geïnspireerd door de rommel er en sommige plastic zak materiële instructables.  Mijn vriend en ik maakte dit kostuum voor een video-shoot. Het is een beetje geïmproviseerde dus hoewe