Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

AR Drone 2.0 + 1Sheeld: Echtzeit-Flugdaten-Streaming zum PC

Komponenten und Materialien

Komponente Anzahl Hinweise
Arduino Mega 2560 2 Einer für die Drohne, einer für den PC
1Sheeld 1 Smartphone-Sensor-Shield für Arduino
AR Drone 2.0 1 Quadrocopter von Parrot
XBee Funkmodul 2 Für drahtlose Kommunikation zwischen Drohne und Bodenstation

Projektbeschreibung

Dieses Projekt ermöglicht die Echtzeit-Übertragung verschiedener Flugdaten vom AR Drone 2.0 an einen PC. Ein Smartphone, das über 1Sheeld mit einem Arduino auf der Drohne verbunden ist, erfasst Sensordaten wie Beschleunigung, GPS-Position, Orientierung, Gyroskop, Umgebungsgeräusche und Helligkeit. Diese Daten werden über zwei XBee-Module drahtlos an einen zweiten Arduino am PC gesendet und dort visualisiert.

Das System nutzt zwei Arduino Mega 2560: Einen als „Master“ an der Bodenstation (PC-seitig) und einen als „Slave“ auf der Drohne. Der Master sendet Befehle über XBee an den Slave, welcher die gewünschten Sensordaten vom 1Sheeld abruft und zurückfunkte. Eine lustige und einfache Möglichkeit, alle Smartphone-Sensoren für Drohnenanwendungen zu nutzen – und nebenbei schöne Luftbilder zu machen.

Funktionsweise

Code

Master-Code (C/C++)

Läuft auf dem Arduino am PC. Benötigt Bibliothek AltSoftSerial.

#include <AltSoftSerial.h>

int verifica = 0;
AltSoftSerial xBee;
char c, h, stop = 's';

void setup() {
  Serial.begin(115200);
  Serial.println("Master OK");
  Serial.println();
  printMenu();
  xBee.begin(9600);
}

void loop() {
  Serial.flush();
  if (Serial.available() > 0) {
    c = Serial.read();
    if (c == 'o' || c == 'a' || c == 'm' || c == 'g' || c == 'b' || c == 'p') {
      handleCommand(c);
    }
  }
}

void printMenu() {
  Serial.println("Befehl eingeben:");
  Serial.println("'o' Orientierungssensor");
  Serial.println("'a' Beschleunigungssensor");
  Serial.println("'b' Helligkeitssensor");
  Serial.println("'g' GPS-Position");
  Serial.println("'m' Mikrofon (Geräuschpegel)");
  Serial.println("'p' Foto aufnehmen");
}

void handleCommand(char cmd) {
  // Implementierung für jeden Sensortyp analog zum Originalcode
  // Sendet Kommando via xBee, liest Antwort, gibt auf Serial Monitor aus
  // Abbruch mit 's' möglich
}

Slave-Code (C/C++)

Läuft auf dem Arduino an der Drohne. Benötigt AltSoftSerial und OneSheeld-Bibliothek.

#include <OneSheeld.h>
#include <AltSoftSerial.h>

char variabile;
AltSoftSerial xBee;
char master;
int voce = 0;

void setup() {
  Serial.begin(115200);
  Serial.println("Slave ok");
  OneSheeld.begin();
  xBee.begin(9600);
}

void loop() {
  receiveEvent();
  requestEvent();
}

void receiveEvent() {
  while (xBee.available() > 0) {
    master = xBee.read();
    variabile = master;
  }
}

void requestEvent() {
  switch (variabile) {
    case 'o':
      xBee.print("Asse x: "); xBee.print(OrientationSensor.getX());
      xBee.print(" Asse y: "); xBee.print(OrientationSensor.getY());
      xBee.print(" Asse z: "); xBee.println(OrientationSensor.getZ());
      break;
    case 'a':
      xBee.print("Asse x: "); xBee.print(AccelerometerSensor.getX());
      xBee.print(" Asse y: "); xBee.print(AccelerometerSensor.getY());
      xBee.print(" Asse z: "); xBee.println(AccelerometerSensor.getZ());
      break;
    case 'g':
      xBee.print("Longitudine: "); xBee.print(GPS.getLongitude());
      xBee.print(" Latitudine: "); xBee.println(GPS.getLatitude());
      break;
    case 'm':
      xBee.print("dB: "); xBee.println(Mic.getValue());
      break;
    case 'b':
      xBee.print("Lumen: "); xBee.println(LightSensor.getValue());
      break;
    case 'p':
      Camera.setFlash(ON);
      Camera.rearCapture();
      xBee.println("Foto aufgenommen");
      break;
    // Text-to-Speech Fälle '1'..'6','0' analog
  }
  variabile = 0;
}

Schaltplan

Die Verdrahtung zwischen Arduino und XBee ist sowohl für den Bodenstations-Arduino als auch für den Drohnen-Arduino identisch. Das Schema zeigt die Verbindung von XBee VCC, GND, TX, RX an die entsprechenden Arduino-Pins (AltSoftSerial nutzt fest definierte Pins: Arduino Mega – TX an Pin 46, RX an Pin 48).

AR Drone 2.0 + 1Sheeld: Echtzeit-Flugdaten-Streaming zum PC
Verbindungsaufbau Arduino – XBee

Hinweise & Tipps

Herstellungsprozess

  1. Die Cloud-Revolution: Wie Cloud Computing IT, Sicherheit und Karrieren transformiert
  2. Globale Farbstoffindustrie im Wandel: Ökologische Wende, Regulierungsdruck und technologische Innovation
  3. Drone Pi: Dual-Mode Multiwii & Raspberry Pi Quadrocopter für Smartphone- und Fernsteuerung
  4. Wie Smartphones die Zukunft vernetzter Autos formen
  5. 6 Wege, wie KI & IoT Geschäftsabläufe 2019 revolutionieren
  6. Edge Computing & IoT-Strategie: Insights vom IoT World 2019
  7. KI kartiert globale informelle Siedlungen aus Satellitenbildern mit niedriger Auflösung
  8. Elbit Systems: Führende Verbundstofflösungen für Israel und die USA
  9. Sollten Sie Ihre Pumpe beschichten? Vor- und Nachteile abwägen
  10. Wartungsdokumentation meistern: Vertrauenswürdiger Ansatz zum Schutz Ihrer Assets