Stap 11: Maak een afstandsbediening zender, of gebruik gewoon xbee & computer
OPTIE 1: xbee + computer (zie dit instructable voor meer info)
-Sluit naar de verkennen xbee xbee.
-Sluit xbee explorer op uw computer via de USB-kabel.
-Download en open CoolTerm.
-Klik op "Opties".
-Zorg ervoor dat de BAUD-RATE is ingesteld op 57600.
-Zorg ervoor dat na "poort:" het zegt iets als "usbserial-A700xxx". Als dat niet het geval is, selecteert u "Seriële poorten scannen".
-Klik op OK.
-Klik op "Verbinden"
-Zorg ervoor dat uw xbee is ingesteld op 57600 baud-rate:
Type "+++" (niet ziet u om het even wat geschreven in de seriële poort, tenzij u hebt gecontroleerd "Lokale ECHO" in de TERMINAL lusje van de opties.)
Moet u "OK" keerde terug in de seriële monitor van CoolTerm. Als u niet bent, is misschien xbee niet ingesteld op dat baud-rate. om te debuggen, ga terug naar opties en selecteer "baud rate 9600" en probeer het opnieuw.
Je hebt nu de xbee "commando-modus".
Type "ATBD" voert. (en niet te lang wachten of je zal verlaten opdrachtmodus).
Zou je een geheel getal geretourneerd, overeenkomen met de baud rate xbee is ingesteld op. Om ervoor te zorgen het is ingesteld op 57600, typt u "ATBD 6" vervolgens ENTER.
U moet krijgen "OK" geretourneerd.
Typ nu "ATWR".
Nu, wanneer u de tekens 1-6 in de seriële monitor, typt wanneer de slang is ingeschakeld, de tekens mag afbreuk doen aan de ontwerpresolutie.
5 & 6: invloed op de snelheid van de rotatie van de servo's.
3 & 4: afbreuk doet aan de termijn van de Golf (snelheid van propagatie langs de lijn van de servo's).
1 & 2: invloed van de amplitude van de Golf.
In software visualiseren hoe het gedrag van de Golf is getroffen door de diverse parameters, of typen in gehele getallen van 1-6...
De gekoppelde grafieken tonen de output hoek waarden van elke servo toegewezen na verloop van tijd lichtjes uit fase van elkaar. Het verschil is wanneer er een andere offset (vertraging in de tijd die het neemt een servo om naar de hoek van de vorige in de lijn van de golven).
Als u niet wilt gebruik maken van uw computer, en wil graag een vrijstaande afstandsbediening, voel je vrij om het maken van een arduino gebaseerd r/c. Om dit te doen, sluit de xbee aan een xbee shield gemonteerd op Arduino (zie afbeelding). Het maken van een 6 knop ingangen. Ik een joystick die 2 extra knoppen hadden gekraakt. De 6 knoppen verbinden met Arduino digitale pennen 2-7.
Upload de volgende code naar de arduino.
En nu beïnvloeden het gedrag van de slang op dezelfde manier als via coolTerm.
//Code written by Gabriella Levine to take inputs from button pins and output //chars to the serial port // set pin numbers: const int buttonPin1 = 2; // the number of the pushbutton pin const int buttonPin2 = 3; // the number of the pushbutton pin const int buttonPin3 = 4; // the number of the pushbutton pin const int buttonPin4 = 5; // the number of the pushbutton pin const int buttonPin5 = 6; // the number of the pushbutton pin const int buttonPin6 = 7; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // variables int buttonState1 = 0; // variable for reading the pushbutton status int buttonState3 = 0; // variable for reading the pushbutton status int buttonState2 = 0; // variable for reading the pushbutton status int buttonState4 = 0; // variable for reading the pushbutton status int buttonState5 = 0; // variable for reading the pushbutton status int buttonState6 = 0; // variable for reading the pushbutton status void setup() { Serial.begin(9600); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(buttonPin3, INPUT); pinMode(buttonPin4, INPUT); pinMode(buttonPin5, INPUT); pinMode(buttonPin6, INPUT); } void loop(){ if(Serial.available()>0){ byte incomingByte = Serial.read(); if(incomingByte=='1'||incomingByte=='2'||incomingByte=='6'||incomingByte=='5'||incomingByte=='0') { digitalWrite(ledPin, HIGH); delay(10); digitalWrite(ledPin, LOW); } } // read the state of the pushbutton value: buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); buttonState3 = digitalRead(buttonPin3); buttonState4 = digitalRead(buttonPin4); buttonState5 = digitalRead(buttonPin5); buttonState6 = digitalRead(buttonPin6); // check if the pushbutton is pressed. if (buttonState1 == HIGH) { Serial.print('1'); } if (buttonState2 == HIGH) { Serial.print('2'); } if (buttonState4 == HIGH) { Serial.print('4'); } if (buttonState3 == HIGH) { Serial.print('3'); } if (buttonState5 == HIGH) { Serial.print('5'); } if (buttonState6 == HIGH) { Serial.print('6'); } delay(10); }