工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

AR Drone 2.0 + 1Sheeld: PCへリアルタイムでフライトデータをストリーミング

必要な部品と材料

部品数量備考
Arduino Mega 25602ドローン搭載側とPC側で1台ずつ使用
1Sheeld1スマートフォンのセンサーをArduinoで利用するためのシールド
AR Drone 2.01Parrot社製のクアッドコプター
XBee モジュール2ドローン側とPC側の無線通信用(シリーズ1またはシリーズ2)

プロジェクト概要

このプロジェクトでは、スマートフォンに搭載された各種センサー(加速度計、GPS、ジャイロスコープ、方位センサー、照度センサー、マイクなど)で取得したフライトデータを、AR Drone 2.0に搭載したスマートフォン経由でリアルタイムにPCへストリーミングします。

システム構成は以下の通りです:

スマートフォンの豊富なセンサー機能をドローン制御・監視に活用できる、楽しく実用的なプロジェクトです。また、スマートフォンのカメラで空撮も楽しめます。

回路図

ArduinoとXBeeの接続は、ドローン側・PC側ともに共通です。XBeeのVCCを3.3V、GNDをGND、TXをArduinoのRX、RXをArduinoのTXに接続します(レベル変換が必要な場合があります)。

AR Drone 2.0 + 1Sheeld: PCへリアルタイムでフライトデータをストリーミング

ソースコード

マスターコード(PC側Arduino)

PCに接続されたArduinoに書き込みます。シリアルモニタからコマンドを送信し、ドローン側のセンサーデータを要求します。

事前に AltSoftSerialライブラリ のインストールが必要です。

#include <AltSoftSerial.h>

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

void setup() {
  Serial.begin(115200);
  Serial.println("Master OK");
  Serial.println();
  Serial.println("Commands:");
  Serial.println("'o' - Orientation sensor");
  Serial.println("'a' - Acceleration sensor");
  Serial.println("'b' - Brightness sensor");
  Serial.println("'g' - GPS position");
  Serial.println("'m' - Microphone noise");
  Serial.println("'p' - Take a picture");
  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') {
      // 各センサーごとに同様の処理を実行(簡略化のため省略)
      // 実際のコードでは各センサータイプごとに個別のループ処理を行います
      // 's'キーで停止可能
    }
  }
}

注意: 元のコードは各センサータイプごとにほぼ同一のロジックが繰り返されています。実際の実装では関数化や配列を用いて簡潔に記述することを推奨します。

スレーブコード(ドローン側Arduino)

ドローンに搭載するArduinoに書き込みます。1Sheeld経由でスマートフォンのセンサーデータを取得し、XBeeでマスター側へ送信します。

事前に以下のライブラリが必要です:

#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() {
  if (variabile == 'o') {
    xBee.print("X: "); xBee.print(OrientationSensor.getX());
    xBee.print(" Y: "); xBee.print(OrientationSensor.getY());
    xBee.print(" Z: "); xBee.println(OrientationSensor.getZ());
    variabile = 0;
  }
  if (variabile == 'a') {
    xBee.print("X: "); xBee.print(AccelerometerSensor.getX());
    xBee.print(" Y: "); xBee.print(AccelerometerSensor.getY());
    xBee.print(" Z: "); xBee.println(AccelerometerSensor.getZ());
    variabile = 0;
  }
  if (variabile == 'g') {
    xBee.print("Lon: "); xBee.print(GPS.getLongitude());
    xBee.print(" Lat: "); xBee.println(GPS.getLatitude());
    variabile = 0;
  }
  if (variabile == 'm') {
    xBee.print("dB: "); xBee.println(Mic.getValue());
    variabile = 0;
  }
  if (variabile == 'b') {
    xBee.print("Lux: "); xBee.println(LightSensor.getValue());
    variabile = 0;
  }
  if (variabile == 'p') {
    Camera.setFlash(ON);
    Camera.rearCapture();
    xBee.println("Picture taken");
    variabile = 0;
  }
  // 音声フィードバック用コマンド(1〜6, 0)
  if (variabile >= '1' && variabile <= '6') {
    const char* messages[] = {
      "analysis orientation", "analysis acceleration", "analysis brightness",
      "analysis GPS position", "analysis decibel noise", "Taking a picture"
    };
    TextToSpeech.say(messages[variabile - '1']);
    variabile = 0;
  }
  if (variabile == '0') {
    TextToSpeech.say("analysis stopped");
    variabile = 0;
  }
}

改善のポイント

製造プロセス

  1. Drone Pi:スマートフォンとリモコンのデュアル操作対応 Multiwii & Raspberry Pi クアッドコプター
  2. AIが低解像度衛星画像から世界の非正規居住地を自動検出・マッピング
  3. メンテナンスドキュメンテーションの極意:資産を守る信頼のアプローチ
  4. ポンプにコーティングすべきか?メリットとデメリットを天秤にかける
  5. ウォータージェット切断機の精度と性能を向上させるメンテナンスと設定のポイント
  6. クラウド革命:IT、セキュリティ、キャリアをどう変えるか
  7. スマートフォンがコネクテッドカーの未来をどう形作るか
  8. 2019年、AIとIoTがビジネス運営を変革する6つの方法
  9. IoT World 2019から見るエッジコンピューティングとIoT戦略のインサイト
  10. エルビット・システムズ:イスラエルと米国をリードする複合材ソリューション
  11. 世界染料産業の進化:エコシフト、規制強化、技術革新