はじめに
私は趣味で様々な大きさの自作ドローンを飛ばしています。
墜落して破損することもよくあります。ですが大きな機体であればあるほど、墜落したときの機体へのダメージと周囲への被害は大きくなります。
そこでドローンに取り付けるパラシュートを作ってみてはどうかと考えました。
調べてみると市販されていましたが、高い高い…
とても個人が買えるような値段のものではありませんでした。
パラシュートを買う代わりに新しいドローンを変えるような金額です。
そこでできるだけ安価に、できるだけ実用的なパラシュートを作ろうというのがこの制作の目的です。
ハードウェア
墜落して周囲へ被害が広がるほどの大きさの機体であればある程度の重さのものは運ぶことができます。そのため、今回は重量についてはそれほど深く考えずに制作しました。
以下、制作で使用したものです。
- Arduino nano
- 3軸加速度センサモジュール KXR94-2050
- SG90サーボモータ
収める筐体は3Dプリンタで制作しました。これも例によって重量については全く考えておりません(おいっ)
設定が良くなかったのか、一部割れてしまっていますが強度への影響はなさそうだったのでそのまま使用することにしました。
重量を図ってみると70gほどでした。これくらいであれば大丈夫だと思います。
次にパラシュートを作ります。
素材は「リップストップナイロン」と呼ばれるもので、本物のパラシュートなんかにも使われていたりします。
半径80cmに切断し、中央に空気が逃げるための穴を半径20cmの大きさで空けました。外形は正八角形になるように周辺を切断し、頂点となる部分からタコ糸を伸ばして中央でまとめました。
そのあとは糸とパラシュートをミシンで縫い付けたりいろいろして…
重量を図ってみると61gでした。大きさの割には軽い方だと思います。
次にArduino nanoと加速度センサをくっつけます。ついでにサーボモータを接続するピンもくっつけます。
ソフトウェア
Arduino IDEでコードを書きました。
以下プログラムです。
それほど難しいことはしておらず、一定の時間の間に大きく傾いたら(通常傾かないほど傾いたら)サーボモータを動作させるという仕組みになっています。
パラシュート展開判定
#include <stdlib.h>
#include<Servo.h>
Servo myservo;
int pos=0;
int value=0;
void setup() {
myservo.attach(2);
Serial.begin(9600);
}
void loop()
{
int a,b,i,c;
long x , y , z ;
// 各データを10回読込んで平均化する
x = y = z = 0 ;
for (i = 0 ; i < 10 ; i++) {
x = x + analogRead(3) ; // X軸を読込む
y = y + analogRead(4) ; // Y軸を読込む
z = z + analogRead(5) ; // Z軸を読込む
}
x = x / 10 ;
y = y / 10 ;
z = z / 10 ;
a=0; //使う関数を宣言
b=0;
if(x<300 || x>700) //傾いているかどうかを判断させる
a=1;
if(y<300 || y>700)
b=1;
c=0;
if(a==1 || b==1){ //サーボモーターを一度だけ作動させる
myservo.write(50);
delay(90) ;
myservo.write(90);
delay(100) ;
exit(0);
}
a=0;
b=0;
}
まとめ
完成したパラシュートはこんな感じです。
これだと使用はできるものの、重量がかさんでしまって飛行時間が低下してしまいそうです。
第二号は重量を重視して作っていこうと思います。
投稿者の人気記事
-
Shuntaroh
さんが
2021/02/28
に
編集
をしました。
(メッセージ: 初版)
-
Shuntaroh
さんが
2021/02/28
に
編集
をしました。
ログインしてコメントを投稿する