Bluetooth Datenübertragung

Dient dazu, Parameter der OpenMV Kamera während dem Betrieb lesen und ändern zu können oder Aktionen auf der OpenMV Kamera zu starten.

Hardware

Es wird der UART1 der OpenMV Kamera verwendet. Der Anschluss erfolgt über P0 (RXD und P1 (TXD). Zusätzlich wird der Pin P2 verwendet. Dieser kann den Mode-Eingang des Bluetooth-Moduls umschalten. Im Normalbetrieb ist dieser Pin Low.

Datenverbindung

UART1, 115200 Baud, 8 Datenbits, no parity, 1 Stop, kein Handshake

Checksumme

Die Datenübertragung zwischen Handy und OpenMV Kamera erfolgt über Frames (s.u.). Um diese Übertragung sicher zu machen, wird eine Checksumme verwendet. Dieselbe Checksummen-Berechnung wird auch für die Kommunikation zwischen OpenMV und Flightcontroller benutzt.

Frame Protokoll

  • StartByte (0xAA)
  • PacketType (1 Byte unsigned)
  • Index (4 Byte int)
  • Data (4 Byte float)
  • CRC16 (2 Byte, Startwert = 0)
  • StopByte (0x55)

Set Data in OpenMV: PacketType = 1

Datenübertragung vom Handy zur OpenMV Kamera.

Schreibt Daten in Variablen der OpenMV Kamera. Mit jedem Frame wird eine float Variable, die durch Index festgelegt wird, an die OpenMV Kamera gesendet.

Die Kamera antwortet mit PacketType = 3 mit der Einstellung, die geändert wurde.

Die Einstellungen sind:

"Throttle P",   "Throttle I",   "Throttle D",   "Throttle Offset",  "Throttle Status",  "Throttle setPoint",
"Yaw P",        "Yaw I",        "Yaw D",        "Yaw Offset",       "Yaw Status",       "Yaw setPoint",
"Pitch P",      "Pitch I",      "Pitch D",      "Pitch Offset",     "Pitch Status",     "Pitch setPoint",
"Roll P",       "Roll I",       "Roll D",       "Roll Offset",      "Roll Status",      "Roll setPoint",
"CameraPitch P","CameraPitch I","CameraPitch D","CameraPitch Offset","CameraPitch Status","CameraPitch setPoint",
"toleranceFactor", "sendDebugData"

Query Data from OpenMV: PacketType = 2

Datenübertragung vom Handy zur OpenMV Kamera.

Fragt nach einer Variablen der OpenMV Kamera am angegebenen Index. Die OpenMV Kamera antwortet mit „Response Data“ (PacketType = 3) des angefragten Index.

Query all Data from OpenMV: PacketType = 3

Datenübertragung vom Handy zur OpenMV Kamera.

Fragt nach allen Variablen der OpenMV Kamera. Die OpenMV Kamera antwortet mit mehreren „Response Data“ (PacketType = 3) Paketen (für jede Variable ein Paket).

Response Data from OpenMV: PacketType = 4

Datenübertragung von der OpenMV Kamera zum Handy.
Schickt  Variablen der OpenMV Kamera zurück zum Handy. Dies ist eine Antwort auf die „Query Data“ Frage des Handys (PacketType = 2). Mit jedem DatenFrame wird eine float Variable, die durch Index festgelegt wird, von der OpenMV Kamera zurück ans Handy gesendet.

Save Settings to Flash: PacketType = 5

Wenn dieser Befehl an die Kamera and die Kamera geschickt wird, speicht sie alle Einstellungen auf dem Flash Filesystem der OpenMV Kamera.

Index und Data sind Null / dont care.

Debug Data from OpenMV: PacketType = 6

Datenübertragung von der OpenMV Kamera zum Handy.
Schickt  Variablen der OpenMV Kamera zurück zum Handy.Wenn die Variable „SendDebugData“ > 0.5 ist, dann werden die DebugDaten in jedem Kameraframe gesendet.

DEBUG DATA FRAME PROTOKOLL
  1. StartByte (0xAA)
  2. PacketType (1 Byte unsigned) = 4
  3. Led0-X-Pos (-1.0 – 1.0, float)
  4. Led0-Y-Pos (-1.0 – 1.0, float)
  5. Led1-X-Pos (-1.0 – 1.0, float)
  6. Led1-Y-Pos (-1.0 – 1.0, float)
  7. Led2-X-Pos (-1.0 – 1.0, float)
  8. Led3-Y-Pos (-1.0 – 1.0, float)
  9. Entfernung (in m, float)
  10. FPS, float
  11. throttle Short
  12. yaw Short
  13. pitch Short
  14. roll Short
  15. CRC16 (16 Bit, Startwert = 0, alle Daten inkl. PacketType)
  16. StopByte (0x55)

Set Waypoint in OpenMV: PacketType = 7

Wenn dieser Befehl an die Kamera geschickt wird, gibt sie einen Befehl an den FC weiter zum Waypoint-Erstellen.

Im Moment nicht implementiert.

Settings saved to FlashAcknowledge: PacketType = 8

Dieses Package schickt die OpenMV Kamera zurück, sobald alle Settings im Flash gespeichert wurden.

Index und Data sind Null / dont care.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.