はじめに
今回は前回組み立てたドローンのメインフレームと制御用基盤をいい感じにくっ付けた後、取り付けたモーターが正常に動作するのかを確認しました。
最初はドローンのメインフレームと制御用基盤をいい感じにくっ付けずにやっていたのですが、結果的に指を切って血だらけになったので、いい感じにくっ付けた方が良いです。
制御基盤の取り付け
ネジ穴がうまくはまらなかったので、たまたま家にあった地震対策グッズを使って制御基盤をドローンのメインフレームに貼り付けることにしました。

前回作った制御基盤は裏に配線があって平面でないため、スペーサを使って2枚重ねにしました。

次の画像のようにくっ付いています。

後はバッテリー用のフレームを取り付けてバッテリーを差し込むだけだったのですが、思っていたよりもバッテリーが大きく横向きにしか入りませんでした…。

想定よりも電源ケーブルに長さが必要になったので、XT60オスメスのケーブルを1本作って延長することにしました。

最後に適当にやったときに手を切って血を流したので、安全対策に紐で括り付けて暴走しないようにしました。

動作確認用に使ったプログラム(スケッチ)
Servo.hというPWM制御用のライブラリが存在したのでそれを使いました。
ESCは毎回最初にパルス幅の最小値を入力する必要があるので、setupの部分でそれを実行しています。
//ヘッダ
#include <Servo.h>
//出力の最大最小の設定(固定値)
#define Power_Max 2000 //最大パルス幅
#define Power_Min 1000 //最小パルス幅
//各モータのServoオブジェクトを生成
Servo Front_r; //右前
Servo Front_l; //左前
Servo Rear_r; //右後
Servo Rear_l; //左後
//各モータの出力信号(初期値は最小値とする)
int Power_Fr = Power_Min;
int Power_Fl = Power_Min;
int Power_Rr = Power_Min;
int Power_Rl = Power_Min;
//setup
void setup(){
//モータの設定
Front_r.attach(10); //右前のモータを10pinに設定
Front_l.attach(9); //左前のモータを9pinに設定
Rear_r.attach(5); //右後のモータを5pinに設定
Rear_l.attach(6); //左後ろのモータを6pinに設定
//各ESCに最小PWM幅を送信
Power_Set = Power_Min; //最小値の代入
Front_r.writeMicroseconds(Power_Set);
Front_l.writeMicroseconds(Power_Set);
Rear_r.writeMicroseconds(Power_Set);
Rear_l.writeMicroseconds(Power_Set);
delay(1000); //待ち
}
//loop
void loop(){
for(int i = 0; i < 100; i++){
Front_r.writeMicroseconds(Power_Fr + i);
delay(10);
}
for(int i = 0; i < 100; i++){
Front_l.writeMicroseconds(Power_Fl + i);
delay(10);
}
for(int i = 0; i < 100; i++){
Rear_r.writeMicroseconds(Power_Rr + i);
delay(10);
}
for(int i = 0; i < 100; i++){
Rear_l.writeMicroseconds(Power_Rl + i);
delay(10);
}
delay(2000);
int Power_Set = Power_Min;
Front_r.writeMicroseconds(Power_Set);
Front_l.writeMicroseconds(Power_Set);
Rear_r.writeMicroseconds(Power_Set);
Rear_l.writeMicroseconds(Power_Set);
for(int i = 0; i < 1000; i++){
delay(10);
}
}
実行
上記のプログラム(スケッチ)を書き込むと次のように動作します。
最後に
とりあえず動いてよかったです。
完成するかな。


コメント