INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Sicherheitsformular bei Xbee-Übertragung
26.01.2017, 17:39
Beitrag #1
Sicherheitsformular bei Xbee-Übertragung
Hallo Forum,
ich weiß nicht, ob meine Überschrift wirklich passend ist, aber als Anfänger weiß ich nicht genau, wie ich mein Problem richtig definieren soll, deswegen schildere ich es mal kurz:

Ich habe einen Controller an einem Laptop angeschlossen. Der Laptop ist wiederum mit einem USB-Xbee Sender verbunden, der mit einem anderen Xbee Sender am Arduino gepaart ist.
Mein Projekt sieht am Ende so aus:
Ich möchte über den Controller Servos steuern, die an meinem Arduino angeschlossen sind. Dazu soll auf dem Laptop ein Programm laufen, dass die Werte des Controllers einliest und in Werte zwischen 0 und 180 umwandelt. Diese Werte möchte ich dann in einem Array jeweils über die Xbees an den Arduino senden.
Das ganze ist ein Gruppenprojekt und ich kümmere mich um das Programm auf dem Arduino. Mein Code sieht bislang wie folgt aus:

Code:
#include <Servo.h>
Servo servo1; // Servos zum Ansteuern
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;

long angle1; // Winkel die den Servos zugeordnet werden
long angle2;
long angle3;
long angle4;
long angle5;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println(" < Verbindung hergestellt. > ");

  servo1.attach(7); // Anschlüsse der Servos (nur als Platzhalter aktuell)
  servo1.write(20); // Stellung auf 20°
  servo2.attach(8);
  servo2.write(20);
  servo3.attach(8);
  servo3.write(20);
  servo4.attach(8);
  servo4.write(20);
  servo5.attach(8);
  servo5.write(20);
  
}

void loop() {
  // put your main code here, to run repeatedly:
while (Serial.available()>0) {
if (Serial.read() == '<'){          // Beginn des Arrays mit <

    angle1 = Serial.parseInt();      // Einlesen der Werte aus dem Xbee
    angle2 = Serial.parseInt();
    angle3 = Serial.parseInt();
    angle4 = Serial.parseInt();
    angle5 = Serial.parseInt();

    if (Serial.read() == '>'){    // Ende des Arrays mit >
  // Werte auf Servos übertragen
   servo1.write(angle1);          
   servo2.write(angle2);
   servo3.write(angle3);
   servo4.write(angle4);
   servo5.write(angle5);
  //Empfangene Werte ausgeben
   Serial.println(angle1);
   Serial.println(angle2);
   Serial.println(angle3);
   Serial.println(angle4);
   Serial.println(angle5);
    }
  }
}
}

Bislang kann ich damit ohne Probleme über den Seriellen Monitor meine 5 Servos über die Eingabe von <int1,int2,int3,int4,int5> steuern.

Mein Projektleiter hat mich aber nun drauf hingewiesen, dass später beim Steuern garantiert Probleme auftreten, indem bestimmte Werte gar nicht erst ankommen und somit die Reihenfolge durcheinander gerät und die Servos sich nicht mehr gezielt steuern lassen.

Ich habe nun allerdings überhaupt keine Ahnung, wie und was ich dort nun einbauen kann, damit dieses Durcheinanderkommen verhindert wird. Mit meinen geringen Kenntnissen hat es bislang dafür gereicht, mir mehr oder weniger die Arduino C++-Funktionen anzueignen, für mehr reicht es bei mir ohne Hilfe jedoch nicht.

Habt ihr einen möglichen Lösungsvorschlag?

Vielen Dank für die Hilfe!
Gruß Else
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2017, 17:55
Beitrag #2
RE: Sicherheitsformular bei Xbee-Übertragung
(26.01.2017 17:39)ElseTU schrieb:  Mein Projektleiter hat mich aber nun drauf hingewiesen, dass später beim Steuern garantiert Probleme auftreten, indem bestimmte Werte gar nicht erst ankommen und somit die Reihenfolge durcheinander gerät und die Servos sich nicht mehr gezielt steuern lassen.

Ich habe nun allerdings überhaupt keine Ahnung, wie und was ich dort nun einbauen kann, damit dieses Durcheinanderkommen verhindert wird. Mit meinen geringen Kenntnissen hat es bislang dafür gereicht, mir mehr oder weniger die Arduino C++-Funktionen anzueignen, für mehr reicht es bei mir ohne Hilfe jedoch nicht.

Habt ihr einen möglichen Lösungsvorschlag?
Das ist eine Problematik, die ihr erst mal im Team angehen müsst: Klären, wie die Daten herein kommen können.
Wenn einzelne Servos völlig allein und unabhängig gesteuert werden sollen, dann musst Du jedem Winkel noch mitgeben, zzu welchem Servo er gehört.
z.B. 1:120,3:40
heißt dann Servo 1 auf 120° und Servo 3 auf 40°. Alle anderen Servos bleiben dann, wie sie sind.
Die Zeichenketten parsen geht mit strtok bezw. strtok_r.
Eine Anleitung ist hier mit drin.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  2 Arduinos Serielle Übertragung mit SPI RFID Kit OE5AMP 18 2.914 05.05.2017 20:46
Letzter Beitrag: OE5AMP
  Interrupt bei Serieller Übertragung Binatone 8 2.149 21.06.2016 14:09
Letzter Beitrag: Scheams
  Arduino Ampel mit XBee manau21 2 1.273 16.12.2015 12:36
Letzter Beitrag: manau21
  werte von 2 Ultraschallsensoren mit xbee übertragen Darkon 4 2.981 25.05.2015 21:23
Letzter Beitrag: HaWe
  Falschen XBee gekauft ????? Kurt 2 2.000 12.10.2014 11:07
Letzter Beitrag: Kurt
  Accelerometerwert Übertragung via Bluetooth??? Brauche HIlfe Techniker2012 2 5.703 03.07.2014 18:21
Letzter Beitrag: rkuehle
  Sichere Übertragung mit NRF24 itsy 34 35.394 16.04.2014 07:30
Letzter Beitrag: itsy
  Arduino SoftwareSerial und Xbee Tobse101 5 3.753 06.02.2014 15:19
Letzter Beitrag: burgi650

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste