Vrije vorm XBee Remote (4 / 5 stap)

Stap 4: Instellen en programmeren van de Arduino en XBee ontvangen


Op het ontvangende eind de XBee moet communiceren met de computer te kunnen ontvangen van programma's.  Het is ook handig om te kunnen bekijken van informatie verzameld tussen XBee en computer om te debuggen als nodig.  Dus, om de normale computer seriële verbinding intact laat ik mijn communicatie XBee verhuisd naar een seriële lijn van software.  Daar had ik ook om ervoor te zorgen dat ik zou niet in strijd zijn met de dingen verhuisde gebeurt op mijn motor schild ik de Arduino communicatielijnen met de ontvangende XBee helemaal over naar de eerste twee analoge pinnen.  In het diagram ziet u de oranje en groene lijnen aansluitende A0 (Rx) en A1 (Tx) op de Arduino aan de Tx (pin 2) en Rx (pin 3) respectievelijk op de Xbee.  De andere XBee verbindingen zijn gewoon macht en grond die kan worden overgenomen uit de Arduino.

Het programma van de ontvangende XBee met behulp van X-CTU zoals je deed de verzendende XBee maar met de volgende instellingen:

+++
ZIJN
ATMY5678
ATDL1234
ATDH0
ATID0
ATWR

Het programma dat ik heb gewijzigd van de zeer nuttig Arduino kookboek is hieronder gegeven.  Aangezien ik ben nog steeds bezig het allemaal uit zal laat ik als oefening voor de geinteresseerde gebruikers aan verdeling de manier waarop die het programma uit de belangrijke gegevens die worden verzonden in het kader van de API trekt.  Het spreekt vanzelf dat zonder Michael Margolis vaststelling van het kader voor het verkrijgen van de ontvangen gegevens ik niet zou hebben bedacht dat uit een oneindige hoeveelheid tijd gegeven.  Ik ben vrij zeker dat er details aan de code die kan worden uitgesloten, maar ik heb niet geprobeerd het dunne naar beneden nog en omdat het werkt ik wegga deze zo is voor nu.  Dit programma overbrengen naar je Arduino en vervolgens overgaan tot de laatste stap en overwegen wat u kunt toevoegen aan het project.

/*********
*
* ER_RemoteA (Engineering & Robotics Remote optie)
*
* XBee standalone borstband stuurt analoge joystick lezingen naar een Arduino
* aangesloten ontvanger XBee.  Analoge waarden worden gelezen uit een paar
* Joysticks een motor voor links en rechts om in te rijden "tank mode".
*
* Een Adafruit motorshield is aangesloten op de Arduino UNO om motor richtingscontrole.
* De motoren gebruikt zijn VEX motoren.
*
* XBee communicatie vindt plaats via digitale pennen 14 & 15 (A0 en A1) via seriële-software
* om laat TX en RX gratis voor seriële communicatie en foutopsporing.  There's a lot
* voor foutopsporing lezen outs die kunnen worden uitgesloten van de code.  Subroutines kunnen ook worden gebruikt om
* schoonmaken van de code.
*
* Aangepast van de Arduino kookboek: sectie 14.4
* Datum: 15 augustus 2013
* Auteur: Mylo Hildebrand
*
***********/

#include < AFMotor.h >
#include < SoftwareSerial.h >

SoftwareSerial xbee(14,15); RX, TX

AF_DCMotor leftmotor(1);
AF_DCMotor rightmotor(2);

VOID Setup {}
Serial.begin(9600);

Stel de gegevenssnelheid voor de SoftwareSerial-poort
XBee.begin(9600);

configureRadio(); Controleer de resultaatwaarde als u foutafhandeling
}

Booleaanse configureRadio() {}
Zet de radio in de command stand:
while(XBee.Read() > = 0);

XBee.Print("+++");
delay(100);
Ok_response koord = "OK\r"; de reactie die wij verwachten.
Lees de tekst van het antwoord in de variabele van de reactie
Reactie koord = String("");

terwijl (response.length() < ok_response.length()) {}
Als (xbee.available() > 0) {}
reactie += (char) xbee.read();
}
}

Als we het juiste antwoord got, het configureren van de radio en terug te keren waar.
Als (response.equals(ok_response)) {}
XBee.Print("ATAP1\r"); API-modus
delay(100);
XBee.Print("ATCN\r");
return true;
}
else {}
return false; Dit geeft aan dat het antwoord onjuist was.
}
}

void loop {}
Als (xbee.available() > = 14) {/ / Wait totdat er een mondvol van gegevens
Als (xbee.read() == 0x7E) {/ / Start scheidingsteken van een frame

Overslaan van de bytes in het frame van de API dat we niet schelen
for (int i = 0; ik < 10; i ++) {}
XBee.Read();
}

De volgende twee bytes worden de bytes van het boven- en onderlimiet van de sensorgegevens
int leftHigh = xbee.read();
Serial.Print ("HL:");
Serial.println(leftHigh);
int leftLow = xbee.read();
Serial.Print ("LL:");
Serial.println(leftLow);
int leftValue = leftLow + (leftHigh * 256);
Serial.Print ("AL:");
Serial.println(leftValue);

int rightHigh = xbee.read();
Serial.Print ("HR:");
Serial.println(rightHigh);
int rightLow = xbee.read();
Serial.Print ("LR:");
Serial.println(rightLow);
int rightValue = rightLow + (rightHigh * 256);
Serial.Print ("AR:");
Serial.println(rightValue);

Functies met behulp van analoge Joysticks rijden.  Links voor links en recht voor de rechterkant.
int leftjoystick = kaart (leftValue, 0, 1023,-250, 250);

if(leftjoystick > 50) / / print stick waarden als een van beide is TRUE
{
leftmotor.setSpeed(leftjoystick);
leftmotor.run(BACKWARD);
}
else if (leftjoystick < -50) / / print stick waarden als een van beide is TRUE
{
leftmotor.setSpeed(abs(leftjoystick));
leftmotor.run(forward);
}
anders
{
leftmotor.setSpeed(0);
}

int rightjoystick = kaart (rightValue, 0, 1023,-250, 250);

Als (rightjoystick > 50) / / print stick waarden als een van beide is TRUE
{
rightmotor.setSpeed(rightjoystick);
rightmotor.run(forward);
}
else if (rightjoystick < -50) / / print stick waarden als een van beide is TRUE
{
rightmotor.setSpeed(abs(rightjoystick));
rightmotor.run(BACKWARD);
}
anders
{
rightmotor.setSpeed(0);
}
delay(50);
}
}
}

Gerelateerde Artikelen

Crystal cMoy vrije vorm hoofdtelefoon versterker

Crystal cMoy vrije vorm hoofdtelefoon versterker

Deze hoofdtelefoon versterker circuit is anders dan conventionele moderne bouwtechnieken in dat er lucht Wired, P2P (peer-to-peer) of vrije vorm bedrading net als in de goede oude dagen van de klep voor de interventie van PCB's en de transistor.In pl
Vrije-vorm gebogen meubelen zonder mallen / deel 1

Vrije-vorm gebogen meubelen zonder mallen / deel 1

Ooit gehoord van Zipshape? Het is een techniek ontwikkeld door Schindler Salmeron waarmee u om het profiel van een vrije vorm te tekenen voor (bijvoorbeeld) een stuk van het meubilair van de kromme, en dan snijd een reeks tanden in twee bladen van di
Vrije vorm gehaakte Clutch Blauw

Vrije vorm gehaakte Clutch Blauw

maakte ik deze koppeling in vrije vorm haak, elke zijde is gemaakt afzonderlijk en verschillend, totdat zij zijn zo dicht bij de dezelfde vorm heeft als ik ze kan krijgen. Toen ik gebruik een enkele haak aan stik de twee zijkanten, ik verliet een ope
Vrije vorm Fruit taart

Vrije vorm Fruit taart

wat kan er eenvoudiger? Waarom knoeien met taart pannen en rollend spelden. OK... u zult moeten het uitrollen van één keer. Hier zal ik hoe ik 2 vrije vorm taarten gemaakt, of zoals ik onlangs ontdekt heten galetten document.Te zacht... Dit is mijn e
Vrije vorm Gehaakte tas:

Vrije vorm Gehaakte tas:

ik jarenlang hebben haakwerk en maak mijn eigen patronen, maar ik struikelde onlangs over 'Vrije haak' op flickr.  Zodra ik zag deze kunstzinnige stijl van haak wilde ik hebben een go! Ik upcycled een platte zak door bedekken met mijn eigen vrije geh
Vrije vorm Arduino

Vrije vorm Arduino

als kunstenaar, ergens Ik heb gemaakt een kunst stukken zonder vooruit te plannen wat ik wil tekenen of schilderen, wil enkel toevoegen kleuren of lijnen op de tekening of doek en nooit denken van de uitkomsten van het stuk. Laten we onze eigen insti
Vrije-vorm Pluggable LED (kracht) plaat

Vrije-vorm Pluggable LED (kracht) plaat

dit Instructable beschrijft een manier om een flexibele aangedreven oppervlak dat je dingen in op elk gewenst moment vasthouden kunt aan de macht hen.  Aangetoond hier zijn LED's.  Het is een post voor de uitdaging van de laser Epliog.Ik kreunt mijn
Vrije vorm Swirly Ear Cuff geweven

Vrije vorm Swirly Ear Cuff geweven

deze zijn vrij eenvoudig oor manchetten te maken. Ik begon met ongeveer 13" van 20g draad gebogen doormidden. De coiling en weven wordt gedaan met 28g draad.Ik heb moeite om beelden te uploaden vandaag. Omdat ik niet kon alle stappen gepost hier krij
Dood Bug Prototyping en vrije elektronica

Dood Bug Prototyping en vrije elektronica

Dode insect prototyping en vrije elektronica zijn een manier van bouwen werken van elektronische schakelingen, solderen de delen direct samen, of via draden in plaats van de traditionele manier van het gebruik van een Printplaat (PCB).Dode insect pro
Vorm In plaats beton bestratingsafwerkmachines patio

Vorm In plaats beton bestratingsafwerkmachines patio

Sinds enige tijd mij wilden voor wekken een patio buiten mijn huis maar ik wilde niet het geld te besteden aan de straatstenen van de patio en een betonplaat niet hoeft de kijk die ik wilde. Hoewel het onderzoek naar online en bij mijn lokale hardwar
USB-vrije Arduino

USB-vrije Arduino

dit is een project in een poging om het voorganger "Vrije Arduino" door het in een behuizing en hebben de soortgelijke doeleinden als dienen "Palm Arduino Kit" en "Palm Arduino II", die ik het in mijn zak kan dragen en beschi
Hoe te vrije de bicore (BEAM robotica)

Hoe te vrije de bicore (BEAM robotica)

dit instructable maakt deel uit van de ene motor wandelaar.De bicore of zwevende bicore is de naam gegeven aan een beetje circuit gemaakt door Mark Tilden. Hij is de oprichter van BEAM robotica. BEAM robotica is een acroniem voor biologie, elektronic
Kano, kajak-gebouw vorm en Steam Box van gerecyclede Pallets

Kano, kajak-gebouw vorm en Steam Box van gerecyclede Pallets

Ik heb verschillende kano's / kajaks door de jaren heen gebouwd, vaak met behulp van geborgen en gerecycleerd delen, dus toen ik zag een advertentie voor gratis pallets op Kijiji, ik dacht het zou een goed moment dat om een instructable daarop. Voor
Beste technologieprojecten van 2012

Beste technologieprojecten van 2012

voordat de wereld tot een abrupt einde komt, ik dacht dat het zou betrekking hebben op terugkijken op het afgelopen jaar, en de aandacht vestigen op enkele van mijn favoriete Tech Instructables. Aanvankelijk, ik was van plan om dit een top 20-lijst,