Göra en simning Robo-orm (11 / 19 steg)
Steg 11: gör en fjärrkontroll sändare, eller bara använda xbee & dator
ALTERNATIV 1: xbee + dator (se detta instructable för mer info)
-Anslut xbee till xbee explorer.
-Anslut xbee explorer till datorn via USB-kabeln.
-Hämta och öppna CoolTerm.
-Klicka på "Alternativ".
-Kontrollera att överföringshastigheten är inställd på 57600.
-Se till att efter "PORT:" det står något i stil med "usbserial-A700xxx". Om inte, välj "Sök igenom SERIELLA PORTAR".
-Klicka på OK.
-Klicka på "Anslut"
-Se till att din xbee är inställd på 57600 baud-hastighet:
Typ "+++" (du kan inte se något skrivet i den seriella porten om du har kontrollerat "Lokalt eko" i fliken TERMINAL alternativ.)
Du borde få "OK" återvände i följetong monitor av CoolTerm. Om du inte, är kanske xbee inte inställd att överföringshastigheten. för att felsöka, gå tillbaka till alternativ och välj "baud Betygsätt 9600" och försök igen.
Du har nu angett xbee's "kommando-läge".
Typ "ATBD" sedan in. (och inte vänta för länge eller du kommer att avsluta kommando-läge).
Du borde få ett heltal återvände, motsvarar baud rate xbee är inställd på. För att se till att ställs det 57600, typ "ATBD 6" då retur.
Du ska få "OK" tillbaka.
Nu skriver du "ATWR".
Nu, när du skriver tecken 1-6 i följetong monitor, när ormen är påslagen, karaktärerna bör påverka förslaget.
5 & 6: påverka hastigheten på rotation av servon.
3 & 4: påverkar perioden av vinka (hastighet av förökningen ner linjen av servon).
1 & 2: påverkar amplituden på vågen.
Visualisera i programvara hur wave beteendet är drabbade av olika parametrar, eller skriva i heltal 1-6...
De bifogade diagram visar produktionsvärden vinkel för varje servo mappas över tiden, lite ur fas från varandra. Skillnaden är när det finns en annan offset (fördröjning i den tid det tar en servo att få till vinkeln på den tidigare en i raden av vågor).
Om du inte vill använda din dator, och vill ha en fristående fjärrkontroll, gärna göra en arduino baserade r/c. För att göra detta, koppla in xbee en xbee Shield monterad på Arduino (se bilden). Göra en 6 knappen ingångar. Jag hackat sig in en joystick som hade 2 extra knappar. Anslut de 6 knapparna till Arduino digital stift 2-7.
Ladda upp följande kod till arduino.
Och nu påverkar orm på samma sätt som genom coolTerm.
Kod skriven av Gabriella Levine ta ingångar från knappen stift och utgång
tecken till den seriella porten
Ange pin-koder:
CONST int buttonPin1 = 2; numrera av tryckknapp PIN-koden
CONST int buttonPin2 = 3; numrera av tryckknapp PIN-koden
CONST int buttonPin3 = 4; numrera av tryckknapp PIN-koden
CONST int buttonPin4 = 5; numrera av tryckknapp PIN-koden
CONST int buttonPin5 = 6; numrera av tryckknapp PIN-koden
CONST int buttonPin6 = 7. numrera av tryckknapp PIN-koden
CONST int ledPin = 13. antal LED stift
variabler
int buttonState1 = 0; variabel för att läsa tryckknapp status
int buttonState3 = 0; variabel för att läsa tryckknapp status
int buttonState2 = 0; variabel för att läsa tryckknapp status
int buttonState4 = 0; variabel för att läsa tryckknapp status
int buttonState5 = 0; variabel för att läsa tryckknapp status
int buttonState6 = 0; variabel för att läsa tryckknapp status
void setup() {
Serial.BEGIN(9600);
initiera LED stift som en utgång:
pinMode (ledPin, produktionen);
initiera tryckknapp PIN-koden som indata:
pinMode (buttonPin1, ingång);
pinMode (buttonPin2, ingång);
pinMode (buttonPin3, ingång);
pinMode (buttonPin4, ingång);
pinMode (buttonPin5, ingång);
pinMode (buttonPin6, ingång);
}
void loop() {
IF(Serial.available() > 0) {
byte incomingByte = Serial.read();
om (incomingByte == '1' || incomingByte == '2' || incomingByte == '6' || incomingByte == '5' || incomingByte == "0")
{
digitalWrite (ledPin, hög);
Delay(10);
digitalWrite (ledPin, låg);
}
}
Läs statligt av tryckknapp värdet:
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
buttonState5 = digitalRead(buttonPin5);
buttonState6 = digitalRead(buttonPin6);
Kontrollera om tryckknappen trycks.
om (buttonState1 == hög) {
Serial.Print('1');
}
om (buttonState2 == hög) {
Serial.Print('2');
}
om (buttonState4 == hög) {
Serial.Print('4');
}
om (buttonState3 == hög) {
Serial.Print('3');
}
om (buttonState5 == hög) {
Serial.Print('5');
}
om (buttonState6 == hög) {
Serial.Print('6');
}
Delay(10);
}