Seite 1 von 3
Fernsteuerung per WLAN
Verfasst: 06.12.2013 18:02
von derschutzhund
Hallöchen,
ich habe ein Flugmodell welches über WLAN gesteuert wird.
Vom Ansatz erst mal einfach.
- Befehle vom PC an das Modell senden.
- Parameter vom Modell empfangen.
- Videostreaming vom Modell empfangen.
Wie geht man da ran um soetwas zu programmieren (also diese drei Teile)?
EDIT: Betriebssystem Windows XP oder Win 7
LG
Wolfgang
Re: Fernsteuerung per WLAN
Verfasst: 06.12.2013 19:41
von NicTheQuick
Du musst halt das Protokoll kennen, über das kommuniziert werden soll. Das ist vermutlich eine einfache TCP- oder UDP-Verbindung, also prinzipiell nichts schwieriges.
Wenn du das Protokoll nicht kennst, dann gibt es aber wahrscheinlich schon ein Programm, mit dem das eh schon geht, oder? Dann muss man eben die Netzwerkdaten mitschneiden.
Re: Fernsteuerung per WLAN
Verfasst: 06.12.2013 21:57
von derschutzhund
Das Protokoll ist in dieser Doku beschrieben:
http://abstract.cs.washington.edu/~shwe ... _Guide.pdf
Auf Seite 17 geht es los.
Es gibt bereits verschiedene Steuersoftware für Windows, Linux, Ipad, Android
Bisher habe ich nur eines für Windows gefunden welches auf meinem Netbook läuft und da fehlen mir Funktionen die ich künftig gerne hätte.
Was es z.B. bisher noch nicht gibt, und zwar in keiner Software, die Steuerung der eingebauten Kamera.
Es geht dabei um eine Drone mit HD-Kamera.
Im Original ist die Kamera fest eingebaut. Ich möchte sie soweit modifizieren, dass sie über die Software geneigt werden kann.
Das geht nur, wenn man eine eigene Software hat in der man das eben einbauen kann wie man will.
Wo fängt man am besten an? Mit der Videoübertragung, weil das wohl das komplizierteste ist?
Re: Fernsteuerung per WLAN
Verfasst: 15.12.2013 14:31
von derschutzhund
Ja wie fange ich denn nun an?
- Habe auf dem PC eine WLan - Verbindung zur Drone eingerichtet
- Auf dieser Seite
https://www.robotappstore.com/Knowledge ... FI/96.html
steht die Basisinfo.
Wie sieht denn nun eine einfaches Programm mit Editfeld für die Befehlszeile aus um einen Befehl an die Drone zu senden?
Wie kann ich das Livebild der Kamera empfangen und anzeigen?
LG
Wolfgang
Re: Fernsteuerung per WLAN
Verfasst: 15.12.2013 14:41
von Kiffi
derschutzhund hat geschrieben:Wo fängt man am besten an? Mit der Videoübertragung, weil das wohl das komplizierteste ist?
ich persönlich fange immer mit dem einfachsten an. Wenn ich beispielsweise die Funktionen
einer mir unbekannten DLL aufrufen will, gebe ich mir zuerst die Versionsnummer aus (sofern
vorhanden). Wenn das geklappt hat, traue ich mich Schritt für Schritt an die nächstkomplizierteren
Funktionen heran.
Hast Du denn schon eine grundlegende Kommunikation mit Deiner Drohne hinbekommen?
Grüße ... Kiffi
Re: Fernsteuerung per WLAN
Verfasst: 15.12.2013 14:54
von - chris -
Probier doch das erstmal aus:
UDP Port 5556 und jeder Befehl wird mit CR abgeschlossen.
Code: Alles auswählen
;How to Horizontally Calibrate AR.Drone
If InitNetwork() = 0
End
EndIf
*buffer = AllocateMemory(1024)
con = OpenNetworkConnection("192.168.1.1", 5556, #PB_Network_UDP)
If con
command$ = "AT*FTRIM=1" + Chr(13)
PokeS(*buffer, command$, Len(command$), #PB_Ascii)
SendNetworkData(con, *buffer, Len(command$))
CloseNetworkConnection(con)
EndIf
End
Code: Alles auswählen
;How to Control AR.Drone LEDs
If InitNetwork() = 0
End
EndIf
*buffer = AllocateMemory(1024)
con = OpenNetworkConnection("192.168.1.1", 5556, #PB_Network_UDP)
If con
command$ = "AT*LED=1,0,1056964608,4" + Chr(13)
PokeS(*buffer, command$, Len(command$), #PB_Ascii)
SendNetworkData(con, *buffer, Len(command$))
CloseNetworkConnection(con)
EndIf
End
Re: Fernsteuerung per WLAN
Verfasst: 16.12.2013 18:22
von derschutzhund
Hallo chris,
ist funktioniert!
Damit kann ich grundsätzlich Befehle an man Drönchen senden.
Wie kann ich Parameter abfragen?
LG
Wolfgang
EDIT: Kannst du damit was anfangen?
Controlling and configuring the drone is done by sending AT commands on UDP port 5556.
The transmission latency of the control commands is critical to the user experience. Those
commands are to be sent on a regular basis (usually 30 times per second). The list of available
commands and their syntax is discussed in chapter 6.
Information about the drone (like its status, its position, speed, engine rotation speed, etc.),
called navdata, are sent by the drone to its client on UDP port 5554. These navdata also include
tags detection information that can be used to create augmented reality games. They are sent
approximatively 15 times per second in demo mode, and 200 times per second in full (debug)
mode.
A video stream is sent by the AR.Drone to the client device on port 5555 (UDP for AR.Drone
1.0 , TCP for AR.Drone 2.0 ). Images from this video stream can be decoded using the codec
included in this SDK. Its encoding format is discussed in section 7.2.
A fourth communication channel, called control port, can be established on TCP port 5559 to
transfer critical data, by opposition to the other data that can be lost with no dangerous effect.
It is used to retrieve configuration data, and to acknowledge important information such as the
sending of configuration information.
Re: Fernsteuerung per WLAN
Verfasst: 16.12.2013 18:48
von Derren
Geht die Frage auch genauer?
Du musst 3 Server erstellen (CreateNetworkServer()) auch mit dem UDP flag und den angegebenen Ports.
Mit ReceiveNetWorkData() fängst du dann die Daten, die von der Drone gesendet werden ab.
In dem Dokument das du gerade zitiert hast steht dann drin, wie genau diese Daten aufgebaut sind, so dass du sie aufschlüsseln kannst.
Re: Fernsteuerung per WLAN
Verfasst: 16.12.2013 18:59
von derschutzhund
Geht die Frage auch genauer?
Klar geht das!
Du musst 3 Server erstellen (CreateNetworkServer()) auch mit dem UDP flag und den angegebenen Ports.
Weshalb 3 Server? Sind die Server nur zum Empfangen (Informationen, Video)?
Senden kann ich mit dem Beispiel ja auch ohne einen Server.
Was sind UDP flags?
Mit ReceiveNetWorkData() fängst du dann die Daten, die von der Drone gesendet werden ab.
Hast du ein Beispielprogramm CreateNetworkServer + ReceiveNetWorkData ?
Re: Fernsteuerung per WLAN
Verfasst: 16.12.2013 19:13
von ts-soft
Wie wäre es, wenn Du Dir erstmal die notwendigen Grundlagen für Netzwerkprogrammierung erarbeitest?
Also, PureBasic.chm, wikepedia, Beispiele hier im Forum usw.
Ohne die notwendigen Grundlagen (ist nicht so schwer

) wirste uns hier ein Loch in den Bauch
fragen.
Wenn Du die Grundlagen verstanden hast, solltest Du auch in der Lage sein, Dein Projekt alleine umzusetzen,
mal abgesehen von dem Videogedöns.
Gruß
Thomas