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

Stap 2: Program de Arduino: zender


De Arduino zender is geprogrammeerd zodat wanneer één of meer van de schakelopties op de digitale i/o 2-13 aangesloten werd ingedrukt dat een bepaalde letter van het alfabet via seriële draadloos verzonden zou worden. Bijvoorbeeld het schakelen 1 moest worden uitgeschakeld, de letter "a" werd verzonden draadloos via seriële. Als schakelaar 1 worden moest op werd dan de letter "b" verzonden draadloos via seriële. Als schakelaar 2 worden moest uitgeschakeld, wordt de letter "c" was draadloos verzonden via seriële. De letter "d" werd gestuurd als schakelaar 2 moest worden ingeschakeld. Een voorbeeld van de volledige seriële transmissie voor 12 switches is beneden te zien:
• Voorbeeld 1: schakelaar 1 en 3 zijn gesloten, alle andere switches zijn open
o "bcfgikmoqsuw"
• Voorbeeld 2: schakelaar 2, 3 en 5 gesloten zijn, en alle andere switches zijn open
o "adfgjkmoqsuw"

Hieronder is de uitsplitsing van hoe de Arduino zender is geprogrammeerd.
1. Verwijder het Proto-schild uit de Arduino die u als de zender kiest. De ATMEGA microprocessor moet in de Arduino board.
2. download de Arduino-programma van de Arduino website (www.arduino.cc)
3. Sluit de Arduino op een computer via de USB-kabel.
4. open de Arduino softwareprogramma op uw computer
5. Selecteer Extra -> seriële poort -> en selecteer vervolgens de COM-poort die naar je Arduino board verwijst. Dit is meestal de eerste COM-poort in de lijst.
6. 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 stuurt de gegevens van een MaxStream XBee radio.

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

een digitale ingang is op poorten 2 tot en met 13

int switchPin2 = 2;
int switchPin3 = 3;
int switchPin4 = 4;
int switchPin5 = 5;
int switchPin6 = 6;
int switchPin7 = 7;
int switchPin8 = 8;
int switchPin9 = 9;
int switchPin10 = 10;
int switchPin11 = 11;
int switchPin12 = 12;
int switchPin13 = 13;

een byte voor het verzenden van gegevens:
char thisByte2 = 0;
char thisByte3 = 0;
char thisByte4 = 0;
char thisByte5 = 0;
char thisByte6 = 0;
char thisByte7 = 0;
char thisByte8 = 0;
char thisByte9 = 0;
char thisByte10 = 0;
char thisByte11 = 0;
char thisByte12 = 0;
char thisByte13 = 0;
void setup () {}
pinnen correct ingesteld om input en output
pinMode (switchPin2, INPUT);
pinMode (switchPin3, INPUT);
pinMode (switchPin4, INPUT);
pinMode (switchPin5, INPUT);
pinMode (switchPin6, INPUT);
pinMode (switchPin7, INPUT);
pinMode (switchPin8, INPUT);
pinMode (switchPin9, INPUT);
pinMode (switchPin10, INPUT);
pinMode (switchPin11, INPUT);
pinMode (switchPin12, INPUT);
pinMode (switchPin13, INPUT);
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,");
Stel de bestemming hoog op 0x0
16 bit adressering modus te selecteren. Deze adressen kunnen
worden toegewezen en gewijzigd door het verzenden van opdrachten vanuit een microcontroller
Serial.Print("DH0,");
instellen van de bestemming lage (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("DL1,");
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,DH0,DL1,CN");

de voorgaande opdrachtregel kan ook als afzonderlijke opdrachten, worden verzonden door de heruitgave van de opdracht AT:
Serial.println("ATID3330");
Serial.println("ATDH0");
Serial.println("ATDL1");
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 () {}
Lees de schakelaar:
thisByte2 = digitalRead(switchPin2);
converteren naar een leesbare ASCII-waarde, het afgeven van de seriële poort:
vertraging(20);
Als (thisByte2 == 0) {}
thisByte2 = "a"; }
Als (thisByte2 == 1) {}
thisByte2 = "b";}
Serial.Print(thisByte2);

thisByte3 = digitalRead(switchPin3);
vertraging(20);
Als (thisByte3 == 0) {}
thisByte3 = 'c'; }
Als (thisByte3 == 1) {}
thisByte3 = had ";}
Serial.Print(thisByte3);

thisByte4 = digitalRead(switchPin4);
vertraging(20);
Als (thisByte4 == 0) {}
thisByte4 = 'e'; }
Als (thisByte4 == 1) {}
thisByte4 = "f";}
Serial.Print(thisByte4);

thisByte5 = digitalRead(switchPin5);
vertraging(20);
Als (thisByte5 == 0) {}
thisByte5 = 'g'; }
Als (thisByte5 == 1) {}
thisByte5 = "h";}
Serial.Print(thisByte5);

thisByte6 = digitalRead(switchPin6);
vertraging(20);
Als (thisByte6 == 0) {}
thisByte6 = 'i'; }
Als (thisByte6 == 1) {}
thisByte6 = "j";}
Serial.Print(thisByte6);

thisByte7 = digitalRead(switchPin7);
vertraging(20);
Als (thisByte7 == 0) {}
thisByte7 = 'k'; }
Als (thisByte7 == 1) {}
thisByte7 = "l";}
Serial.Print(thisByte7);

thisByte8 = digitalRead(switchPin8);
vertraging(20);
Als (thisByte8 == 0) {}
thisByte8 = ben '; }
Als (thisByte8 == 1) {}
thisByte8 = 'n ";}
Serial.Print(thisByte8);

thisByte9 = digitalRead(switchPin9);
vertraging(20);
Als (thisByte9 == 0) {}
thisByte9 = ' o '; }
Als (thisByte9 == 1) {}
thisByte9 = 'p';}
Serial.Print(thisByte9);

thisByte10 = digitalRead(switchPin10);
vertraging(20);
Als (thisByte10 == 0) {}
thisByte10 = 'q'; }
Als (thisByte10 == 1) {}
thisByte10 = "r";}
Serial.Print(thisByte10);

thisByte11 = digitalRead(switchPin11);
vertraging(20);
Als (thisByte11 == 0) {}
thisByte11 = de '; }
Als (thisByte11 == 1) {}
thisByte11 = 't ";}
Serial.Print(thisByte11);

thisByte12 = digitalRead(switchPin12);
vertraging(20);
Als (thisByte12 == 0) {}
thisByte12 = 'u'; }
Als (thisByte12 == 1) {}
thisByte12 = "v";}
Serial.Print(thisByte12);

thisByte13 = digitalRead(switchPin13);
vertraging(20);
Als (thisByte13 == 0) {}
thisByte13 = 'w'; }
Als (thisByte13 == 1) {}
thisByte13 = "x";}
Serial.Print(thisByte13);

}

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;
}

7. 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".
8. 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-zender.

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