ドローン

Arduino Megaを使って、ドローン用の自動貨物切り離しシステムを作ろう!

dronepayload1

はじめに
今回の記事ではドローンを使って荷物を運ぶことが可能になる工作をご紹介しますが、その前にまずドローンを飛ばす際に注意すべき点をいくつか挙げさせていただきます。
200g以上のドローンを飛ばす場合、許可申請が必要になります。また自作ドローンや、今回ご紹介するような改造を施したドローンは、改造概要や写真と共に情報を追記して申請を行う必要があります。200g以下の小型ドローンや海外から輸入されたドローンを飛ばす際に注意すべき点として「電波法」があります。使用できる電波帯とできない電波帯があり、海外製のドローンを操作するのに用いられる電波帯は国内では許可されていない場合があるので注意しましょう。
最後に、これらの条件をクリアすればどこでもドローンを飛ばしていいわけではありません。他人の所有地で飛行させたい場合は、必ず許可を取る必要があります。下記の国土交通省の定めるルールに必ず目を通した上で、安全な飛行を心がけてください。
http://www.mlit.go.jp/koku/koku_tk10_000003.html

概要
この記事では、手持ちのドローンに搭載できるような形で、ちょっとした小包などを任意の場所に運搬するドローン用貨物運搬システムを作成する方法をご紹介します。スマートかつ低コストなこの運搬システムですが仕組みは簡単で、GPSを用いて運搬ルートを探し出し、超音波センサを用いて自身の高度を認識します。ドローンの性能にもよりますが、最大で2kgまでの荷物を運ぶことが可能です。そしてサーボモータを使うことで、指定の位置で荷物をドローンから切り離すことが出来るようになっています。この記事ではセンサとの結合方法も説明していますが、ドローン本体とGPS、サーボ、超音波センサとの結合には特別な装置は必要ありません。

dronepayload2

備品
1. ブレッドボード

dronepayload3

2. Arduino Mega/Uno

dronepayload4

3. サーボモータ SG90

dronepayload5

4. 超音波センサ HC-SR04

dronepayload6

5. GPSモジュール NEO-6M-001

dronepayload7

6. 接続ワイヤ

dronepayload8

7. ボトルキャップ

dronepayload9

8. ヘアピン

dronepayload10

9. ノリ/テープ

 

手順1: 超音波センサの接続
ブレッドボードに図のような形で Arduino を片面に貼り付けます。反対側に HC-SR04 超音波センサを接続します。

dronepayload11

dronepayload12

図 1に示すように接続してください。接続ピンは下記の通りです。
➢ Vcc (超音波センサ) -> 5V (Arduino)
➢ GND (超音波センサ) -> GND (Arduino)
➢ Trig pin (超音波センサ) -> pin 8 (Arduino)
➢ Echo pin (超音波センサ) -> pin 9 (Arduino)

Arduino Megaと超音波センサの接続

図1

下記のコードを実行し、超音波センサが動作していることを確認してください。

dronepayload14

シリアルモニターに下記が出力されます。

dronepayload15

手順 2: GPSモジュールの接続
NEO-6M GPS モジュールのピンをブレッドボードに差し込みます。

dronepayload16

図 2に示すように接続してください。TinyGPS++ ライブラリがない場合はダウンロードしてください。接続ピンは下記の通りです。
➢ Vcc (GPSモジュール) -> 3.3V (Arduino)2
➢ GND (GPSモジュール) -> GND (Arduino)
➢ RX pin (GPSモジュール) -> pin 1 (Arduino)
➢ TX pin (GPSモジュール) -> pin 0 (Arduino)

Arduino MegaとGPSセンサの接続

図2

下記のコードを実行し、GPSセンサが動作していることを確認してください。この際GPSモジュールのTXピンを外すことを忘れるとコードがアップロードされないので注意しましょう。コードがアップロードされた後に、シリアルモニターを開き、その後にGPSモジュールのTXピンをArduinoの0番ピンに接続することにより、ドローンの現在の位置とその日時を確認することができます。

dronepayload18.1dronepayload18.2

シリアルモニターに下記が出力されます。

dronepayload19

手順 3: ボトルキャップの接続
次はボトルキャップを使って、荷物の切り離し機能の準備をしましょう。仕組み自体は簡単で、キャップを通したヘアピンに荷物をひっかけておき、ドローンが設定しておいた位置に到着するとサーボが動きピンをボトルキャップから引き抜き、荷物が下に落ちるようになっています。

dronepayload20

では早速作っていきましょう。まずはボトルキャップの両端に穴を開け、写真に示すようにブレッドボードの背面に貼り付けます。

dronepayload21

dronepayload22

手順 4: サーボの接続
まずは写真に示すようにサーボの先にヘアピンをホッチキスの芯で接続します。

dronepayload23

サーボをヘアピンがボトルキャップの2つの穴を通るようにしてブレッドボードに貼り付けます。

dronepayload24

dronepayload25

サーボを図 3に示すようにArduinoに接続します。接続ピンは下記の通りです。
➢ PWM Pin (サーボ) -> Pin 14 (Arduino)
➢ Vcc Pin (サーボ) -> 5V (Arduino)
➢ GND Pin (サーボ) -> GND (Arduino)

Arduino Megaとサーボの接続

図3

ドローンに取付けるとこんな感じです。

dronepayload27

下記のコードを実行し、サーボが動作していることを確認してください。

dronepayload28

手順 5: 全体の結合
図4のような形で全ての配線が行われていることを確認してください。センサの接続には中間のモジュールなどは不要です。接続するデバイスを最小限に保つことにより、サーボの振動を和らげることが可能です。

配線の全体図

図4

Arduinoの画面を開き、下記のコードを貼り付けてください。GPSの緯度経度を示す定数(13、14行目)に荷物の切り離し動作を行いたい緯度経度を設定してください。緯度経度の定数を編集した後にコードをアップロードしてください。繰り返しになりますが、アップロードする前にTXピンを0番ピンから外すことを忘れないようにしてください。

dronepayload30.1dronepayload30.2dronepayload30.3dronepayload30.4

アップロードが終わったら右上のシリアルモニターボタンをクリックしてください。現在のドローンのGPS情報が表示されるはずです。ドローンを指定の位置まで飛ばしてみましょう。

dronepayload31

指定した緯度経度にドローンが到着した後、ドローンの高度を下げてみましょう。超音波センサが地面との距離を計測し、約15cm程になるとサーボが動作し、荷物を切り離します。シリアルモニターに貨物が切り離されたことと、その時刻が表示されます。

dronepayload32

注意
冒頭でも解説した通り、このシステム自体が耐えられる重さの上限は2kgです。それ以上の重さの荷物を運ぼうとしないのはもちろんですが、ドローンによって持ち上げられる重量は様々なので、自分のドローンのスペック・仕様をよく確認した上で荷物を選ぶようにしましょう。
また、スペック上は持ち上げて飛行することが可能な重さであっても、普段通りの安定した挙動でドローンが飛んでくれるとは限りません。予想外の挙動をする可能性も十分に考慮して、無理はしないようにした上で、飛行の際は開けた安全な場所で一度テストするようにしましょう。

tello-banner-2
Device Plus編集部

エレクトロニクスやメカトロニクスを愛するみなさんに、深く愛されるサイトを目指してDevice Plusを運営中。

https://deviceplus.jp