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
Bidirektionales serielles Protokoll
25.07.2015, 07:46
Beitrag #1
Bidirektionales serielles Protokoll
Hallo,
ich bin auf der Suche nach einem Beispiel oder einer Anleitung wie man mit dem Arduino ein bidirektionales serielles Protokoll aufbaut.

Ich möchte vom Arduino mehrere analoge (0-1023 oder 0-255) und mehrere digitale Werte zu einem Rechner übertragen. Umgekehrt soll der Arduino durch vier Werte (0-255) Rückmeldungen anzeigen.

Ich habe jetzt schon einiges an Beiträgen gelesen aber noch nicht so das Richtige gefunden. Vielleicht hilft ja schon ein Hinweis auf den richtigen Suchbegriff.

Vielen Dank
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 09:25
Beitrag #2
RE: Bidirektionales serielles Protokoll
Hi,
ich glaube, da bastelt sich jeder selbst was, da die "offiziellen" Protokolle relativ kompliziert sind. Wenn man nur einen Arduino und einen PC zusammenhängt, dann ist es doch eher übersichtlich.
Wahrscheinlich wurde zu dem Thema schon viel geschrieben, aber ich wüsste auch nicht wo.
Ein paar Gedanken dazu:

Es kommt sehr darauf an, wie zuverlässig die Datenübertragung sein muss. Wenn Du z.B. alle 15 Sekunden einen Temperaturwert überträgst, dann macht es nichts, wenn mal einer fehlt. Je nachdem brauchst Du ein Protokoll mit Rückmeldung.

Kannst Du ein Gerät als "Master" definieren? In Deinem Fall ist es wahrscheinlich so, dass das ganze sowieso nicht sinnvoll läuft, wenn der PC aus ist. D.h. der PC kann Master sein und die Daten abrufen. Der Arduino darf dann von sich aus gar nicht senden, sondern wartet nur, bis der PC fragt und sendet dann eine Antwort. Dadurch werden Kollisionen unwahrscheinlich.

Definiere Dir ein Zeichen (oder ein Byte) als "Startbyte". Das Byte sollte ansonsten nicht in der Nachricht vorkommen. Falls das nicht geht, dann musst Du das Byte, wenn es anderweitig vorkommt "escapen". Wenn immer das Startbyte kommt, dann weißt Du, dass eine neue Nachricht beginnt.
Falls das nicht sowieso durch den Kontext klar ist, brauchst Du auch ein Ende-Kennzeichen oder die Länge der Nachricht in der Nachricht selbst.

Falls es wichtig ist, dass keine fehlerhaften Werte ankommen, kann man eine Prüfsumme an die Nachricht anhängen. Da gibt's diverse CRC-Algorithmen.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 09:44
Beitrag #3
RE: Bidirektionales serielles Protokoll
Hallo Thorsten,
danke für die schnelle Antwort.

Der Aufbau soll im Endausbau so sein:

Arduino:
1x Joystick welcher vier analoge Werte zum Rechner sendet
4x Taster für Zustandsänderungen und Sonderfunktionen
2x RGB LED oder und auch ein Summer für die Anzeige der einzelnen Zustände und Warnungen

Rechner:
Empfängt die Daten vom Arduino
Empfängt die Daten vom Fahrzeug
Visualisiert die Daten
Gibt die Daten per WiFi an das Fahrzeug weiter um dieses zu steuern

Fahrzeug
Empfängt die Informationen
Gibt Daten der Sensorik zurück

Das Fahrzeug soll mit dem Arduino gesteuert werden. Der Rechner dient als Relaisstation und soll die Informationen visualisieren.

Wenn zum Beispiel ein Hindernis erkannt wird, oder sich nähert soll die LED am Arduino die Farbe ändern oder vielleicht auch ein Summer dies signalisieren.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 09:55
Beitrag #4
RE: Bidirektionales serielles Protokoll
Meinst Du im Prinzip so etwas ?

http://www.arduinoforum.de/arduino-Threa...Messwerten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2015, 09:55
Beitrag #5
RE: Bidirektionales serielles Protokoll
Hi,
aha, da ist noch mehr dabei...
Also: Es gibt drei Geräte: Eine Arduino-Fernsteuerung, ein Fahrzeug und ein PC.
Die Fernsteuerung ist mit dem PC seriell verbunden, das Fahrzeug mit dem PC per WiFi. Fahrzeug und Fernsteuerung sind nicht direkt verbunden.
Über die Serielle geht:
1. Vom Arduino zum PC: Joystick-Werte
2. Vom PC zum Arduino: Zustandsinformation und Warnungen

Ich würde da tatsächlich den PC zum "Master" machen. Die Joystick-Werte werden einfach zyklisch abgefragt. Das reicht wahrscheinlich locker aus, um schnell genug zu reagieren. Die Zustandsinformationen werden einfach gesendet.
Zumindest bei der Abfrage der Joystick-Werte solltest Du einen Timeout einbauen. Falls in vernünftiger Zeit keine Antwort kommt, würde ich das Fahrzeug anhalten.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  RS232-Protokoll itsy 16 2.898 28.11.2014 13:50
Letzter Beitrag: itsy
  Auf serielles Zeichen warten und dann Variable schreiben nico2506 1 660 19.11.2014 08:07
Letzter Beitrag: rkuehle

Gehe zu:


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