はじめに
今回は前回組み立てたドローンのメインフレームと制御用基盤をいい感じにくっ付けた後、取り付けたモーターが正常に動作するのかを確認しました。
最初はドローンのメインフレームと制御用基盤をいい感じにくっ付けずにやっていたのですが、結果的に指を切って血だらけになったので、いい感じにくっ付けた方が良いです。
制御基盤の取り付け
ネジ穴がうまくはまらなかったので、たまたま家にあった地震対策グッズを使って制御基盤をドローンのメインフレームに貼り付けることにしました。
前回作った制御基盤は裏に配線があって平面でないため、スペーサを使って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); } }
実行
上記のプログラム(スケッチ)を書き込むと次のように動作します。
最後に
とりあえず動いてよかったです。
完成するかな。
コメント