Wiimote Wireless modificatie voor personen met een handicap (3 / 17 stap)

Stap 3: Program de Arduino: ontvanger


De ontvanger is geprogrammeerd zodat het seriële data van de zender ontvangen en vervolgens 5V door middel van de juiste digitale i/o-pinnen verzonden. Bijvoorbeeld, als "a" werd ontvangen, zou de ontvangende Arduino board digitale i/o-1 0V maken. Als "b" is ontvangen, kan de ontvangende Arduino board digitale i/o-1 5V zou maken. Als "c" is ontvangen, kan de ontvangende Arduino board digitale i/o-2 worden 0V zou maken. Als "d" werd ontvangen zou dan de ontvangende Arduino board maken digitale i/o-2 worden 5V. Hieronder zijn de stappen nodig voor het uploaden van de code voor de ontvangende Arduino:

1. Verwijder het Proto-schild uit de Arduino die u hebt gekozen als de ontvanger de ATMEGA microprocessor zou moeten in de Arduino board zijn.
2. Sluit de Arduino op een computer via de USB-kabel.
3. open de Arduino softwareprogramma op uw computer
4. Selecteer Tools seriële poort en vervolgens selecteert u de COM-poort die naar je Arduino board verwijst. Dit is meestal de eerste COM-poort in de lijst.
5. Kopieer en plak de volgende code in het codevenster van de Arduino. Merk op dat deze code voor verzending op een 19200 baud-rate is. Als u verzenden op een verschillende baud-rate wilt dan waar dan ook in de code 19200 staat, wijzigen in uw gewenste baudrate.
Dit programma ontvangt informatie van een MaxStream XBee radio.

seriële out is op poort 1
seriële in is op poort 0

int outputPin2 = 2;
int outputPin3 = 3;
int outputPin4 = 4;
int outputPin5 = 5;
int outputPin6 = 6;
int outputPin7 = 7;
int outputPin8 = 8;
int outputPin9 = 9;
int outputPin10 = 10;
int outputPin11 = 11;
int outputPin12 = 12;
int outputPin13 = 13;

een byte om gegevens te ontvangen:

char inByte = 0;
char inByte2 = 0;
char inByte3 = 0;
char inByte4 = 0;
char inByte5 = 0;
char inByte6 = 0;
char inByte7 = 0;
char inByte8 = 0;
char inByte9 = 0;
char inByte10 = 0;
char inByte11 = 0;
char inByte12 = 0;
char inByte13 = 0;

void setup () {}
pinnen correct ingesteld om input en output

pinMode (outputPin2, OUTPUT);
pinMode (outputPin3, OUTPUT);
pinMode (outputPin4, OUTPUT);
pinMode (outputPin5, OUTPUT);
pinMode (outputPin6, OUTPUT);
pinMode (outputPin7, OUTPUT);
pinMode (outputPin8, OUTPUT);
pinMode (outputPin9, OUTPUT);
pinMode (outputPin10, OUTPUT);
pinMode (outputPin11, OUTPUT);
pinMode (outputPin12, OUTPUT);
pinMode (outputPin13, OUTPUT);

de seriële aansluiting opstarten met 19200-8-n-1-true (niet-omgekeerde):
Serial.begin(19200);

om wat voor reden lijkt te helpen voor het eerst verzenden van een willekeurig karakter
vervolgens wacht u de wacht tijd voordat u aanvraagt de opdrachtmodus
Serial.Print("X");
delay(1100);
Zet de XBee in de command stand
Serial.Print("+++");
delay(1100);
wachten op een reactie van de XBee voor 2000 ms, of start
over met setup als er geen geldige reactie komt

Als (returnedOK() == 'T') {}
Als u een OK ontvangen volg
}
else {}
Setup; anders ga terug en voer setup opnieuw
}

instellen van de PAN (personal area network) ID-nummer
in dit voorbeeld wordt 0x3330, maar u zult willen kiezen uw eigen
unieke hexadecimale getal tussen 0x0 en 0xFFFE
(Let op de puntkomma aan het einde van de opdracht waarmee wordt aangegeven dat een andere opdracht zullen volgen)
Serial.Print("ATID3330,");
instellen van de mijn (16-bits adres)
dit voorbeeld wordt gebruikt 0x0 voor verzenden en 0x1 voor ontvangen, maar u zult
willen kiezen van uw eigen hexadecimale getallen tussen 0x0 en 0xFFFE
Serial.Print("My1,");
afrit opdrachtmodus (merk op dat we hier Serial.printLN gebruiken om te geven een linefeed ter aanvulling van de commando's)
Serial.println("CN");

de voorgaande opdrachten kunnen ook worden verzonden op een enkele lijn als deze, met een enkele opdracht met komma's AT:
Serial.println("ATID3330,My1,CN");

de voorgaande opdrachtregel kan ook als afzonderlijke opdrachten, worden verzonden door de heruitgave van de opdracht AT:
Serial.println("ATID3330");
Serial.println("ATMY1");
Serial.println("ATCN");

wachten op een reactie van de XBee voor 2000 ms, of start
over met setup als er geen geldige reactie komt

Als (returnedOK() == 'T') {}
Als u een OK ontvangen volg
}
else {}
Setup; anders ga terug en voer setup opnieuw
}

}

void loop () {}
alle binnenkomende gegevens ophalen:
Als (Serial.available() > 1) {}
lezen van een bytewaarde
inByte = Serial.read();
Serial.Print(inByte);
de LED licht als een 1 is ontvangen
Als (inByte == 'a') {}
digitalWrite (outputPin2, laag);
}
Als (inByte == 'b') {}
digitalWrite (outputPin2, hoge);
}

Als (inByte == 'c') {}
digitalWrite (outputPin3, laag);
}
Als (inByte == had') {}
digitalWrite (outputPin3, hoge);
}

Als (inByte == 'e') {}
digitalWrite (outputPin4, laag);
}
Als (inByte == 'f') {}
digitalWrite (outputPin4, hoge);
}

Als (inByte == 'g') {}
digitalWrite (outputPin5, laag);
}
Als (inByte == 'h') {}
digitalWrite (outputPin5, hoge);
}

Als (inByte == 'i') {}
digitalWrite (outputPin6, laag);
}
Als (inByte == 'j') {}
digitalWrite (outputPin6, hoge);
}

Als (inByte == 'k') {}
digitalWrite (outputPin7, laag);
}
Als (inByte == 'l') {}
digitalWrite (outputPin7, hoge);
}

Als (inByte == ben ') {}
digitalWrite (outputPin8, laag);
}
Als (inByte == 'n') {}
digitalWrite (outputPin8, hoge);
}

Als (inByte == ' o ') {}
digitalWrite (outputPin9, laag);
}
Als (inByte == 'p') {}
digitalWrite (outputPin9, hoge);
}

Als (inByte == 'q') {}
digitalWrite (outputPin10, laag);
}
Als (inByte == 'r') {}
digitalWrite (outputPin10, hoge);
}

Als (inByte == de ') {}
digitalWrite (outputPin11, laag);
}
Als (inByte == 't') {}
digitalWrite (outputPin11, hoge);
}

Als (inByte == 'u') {}
digitalWrite (outputPin12, laag);
}
Als (inByte == 'v') {}
digitalWrite (outputPin12, hoge);
}

Als (inByte == 'w') {}
digitalWrite (outputPin13, laag);
}
Als (inByte == 'x') {}
digitalWrite (outputPin13, hoge);
}

}
}

VOID blinkLED (int targetPin, int numBlinks) {}
deze functie knippert de status LED licht zo vaak zoals gevraagd
for (int i = 0; i
digitalWrite (targetPin, hoge); Hiermee stelt u de LED op
delay(250); wacht een seconde
digitalWrite (targetPin, laag); de LED vertrekt
delay(250);
}
}

char returnedOK () {}
deze functie controleert de reactie op de seriële poort te zien als het een "OK" of niet was
char incomingChar [3];
char [okString] = "OK";
char resultaat = 'n';
int startTime = millis();
terwijl (millis() - startTime < 2000 & & resultaat == 'n') {/ / gebruik een timeout van 10 seconden
Als (Serial.available() > 1) {}
drie binnenkomende bytes die een linefeed, "O" en "K" moet lezen:
for (int i = 0; ik < 3; i ++) {}
incomingChar [i] = Serial.read();
}
Als (strstr (incomingChar, okString)! = NULL) {/ / check om te zien of het respose "OK"
Als (incomingChar [0] == ' o ' & & incomingChar [1] == "K") {/ / check om te zien of de eerste twee tekens "OK"
resultaat = 'T'; terugkeer T was als "OK" het antwoord
}
else {}
resultaat = 'F'; anders terug F
}
}
}
resultaat;
}

6. Zodra de code is overgenomen in het codevenster van de Arduino, selecteer dan "Compile" om te controleren dat er staan geen fouten in de code. Als er geen fouten zijn aanwezig en druk op de "Upload naar i/o-Board knop".
7. Zodra de code is geüpload naar de Arduino board, de USB-kabel, en weer aan de ProtoShield (met inbegrip van de Xbee module). Je bent nu klaar voor het uploaden van de code naar de Arduino-ontvanger.

Gerelateerde Artikelen

Wiimote modificatie voor personen met een handicap

Wiimote modificatie voor personen met een handicap

dit instructable zal laten zien hoe je de knop van de Wiimote om grotere knoppen rewire zodat personen met een handicap kundig voor efficiënt gebruik de Wiimote zitten zal door niet te druk op de kleine knoppen op de Wiimote. De knoppen die zal worde
Robotarm voor personen met een handicap

Robotarm voor personen met een handicap

Robotic arm in statistiekenEen mechanische arm is robotic, meestal programmeerbaar, met gelijkaardige functies om een menselijke arm. De koppelingen van een dergelijke manipulator zijn verbonden door gewrichten waardoor roterende beweging (zoals bij
Mededeling bestuur voor personen met een handicap

Mededeling bestuur voor personen met een handicap

Het onvermogen om te spreken of jezelf express frustrerend kan zijn en een ernstige belemmering in een patiënt-arts relatie kan produceren. Deze eenvoudige en goedkope apparaat kan personen met een handicap om te communiceren met zorg gevers en servi
Het Web meer toegankelijk maken voor mensen met een handicap

Het Web meer toegankelijk maken voor mensen met een handicap

rapporten blijkt dat ten minste 2,1 miljoen van het geschatte 54,4 miljoen Amerikanen met een handicap gebruik het Internet. Voor mensen met een handicap, kunnen toegang tot en het volledig ervaren materialen gepresenteerd op het Internet vaak moeili
Een van een soort Custom mobiliteit Machines voor mensen met een handicap!

Een van een soort Custom mobiliteit Machines voor mensen met een handicap!

Mijn idee!Een van een soort Custom mobiliteit Machines voor mensen met een handicap!Ik heb ontworpen en gebouwd van alle soorten machines in het verleden.Ik ontworpen machines voor Robot Wars en bouwde meer dan 30 elektrische voertuigen en apparaten.
MATIMI - Monitoring en ondersteunende technologieën voor personen met een motorische beperking

MATIMI - Monitoring en ondersteunende technologieën voor personen met een motorische beperking

Zoals de titel vermoeden, kan dit project personen met een motorische handicap (gedeeltelijk of volledig verlies van controle van lichaamsdelen als gevolg van ziekte, trauma of defect) te verwerven van de controle van externe apparaten en systemen, z
Sterkte & Fitness oefeningen voor mensen met een handicap

Sterkte & Fitness oefeningen voor mensen met een handicap

ik vrijwilliger met een organisatie genaamd AccesSports die neemt activiteiten die het meest behendige van atleten uitdagend vinden en brengt deze sport aan kinderen en volwassenen met een handicap. De opwinding die inherent zijn aan elke sport is sl
GEBAAR BIJGESTAAN externe schakelaar voor mensen met een handicap

GEBAAR BIJGESTAAN externe schakelaar voor mensen met een handicap

Veel mensen met fysieke onvermogen veroorzaakt hetzij als gevolg van ziekte en letsel kan niet communiceren met de buitenomgeving. Ze kunnen niet gemakkelijk gaan in de eenvoudigste act van interactie met de buitenwereld. Ondersteunende technologie d
Een Slicer voor mensen met een handicap van de hand

Een Slicer voor mensen met een handicap van de hand

Dit is een instructable om u te tonen hoe je een snijplank kunt maken voor mensen die enige vorm van moeilijkheden met hun handen hebben. U zal zitten kundig voor wijzigen van dit board worden meer aangepast aan een individu, omdat sommige mensen art
Lineaire Glide Arm trog voor kinderen met een handicap

Lineaire Glide Arm trog voor kinderen met een handicap

ProbleemstellingSommige kinderen met beperkingen van de bovenste extremiteit hebben problemen met een tablet. Dit kan zijn omdat ze hun onderarmen kunnen niet met het oppervlak van de Tablet PC weren of niet voldoende kracht hebben om de Schuif van h
Muis voor mensen met een handicap de hand

Muis voor mensen met een handicap de hand

ik dacht op dit instructable toen ik zag een van mijn tantes, ze heeft problemen bij het gebruik van de computermuis, omdat haar handen veel te wijten aan een probleem van de ziekte beven.In CV is dit een wijziging van de Wii Remote Controller, waard
DIY hond leiband systeem helpen mensen met een handicap

DIY hond leiband systeem helpen mensen met een handicap

Getrainde honden zijn een grote troef voor personen met een handicap die in hun dagelijks leven hulp nodig hebben. Hun hond kan ze meer zelfstandig wonen. Helaas zijn ze niet kundig voor verrichten alle acties door zelf.Soms is er nog steeds hulp nod
Maken van een betere frisdrank kan voor plinking, met een ingerichte luchtvaartmaatschappij

Maken van een betere frisdrank kan voor plinking, met een ingerichte luchtvaartmaatschappij

de problemen met plinking aluminium blikjes, ongeacht het kaliber van de munitie, of de kracht van de lucht pistool, is dat ze gemakkelijk in een lichte wind worden geblazen, en in minder dan een dozijn schoten worden vernietigd.  Ook, als u transpor
Mal voor verhardingen met een router

Mal voor verhardingen met een router

dit is een mal voor verhardingen met een router. Ik heb gemaakt om te "vierkant" van een stomp te gebruiken als een werkbank. Monteer een router in het midden van een bestuur dat meer dan tweemaal zo lang als de diameter van uw project is. Nivea