Gói tự làm máy bay 4 cánh Quadrotors

Đăng lúc: Thứ hai - 05/10/2015 09:50 - Người đăng bài viết: SuperG
Quadrotors

Quadrotors

Trong bài này giới thiệu gói linh kiện tự chế tạo một chiếc máy bay 4 chong chóng (quadrotors).

 

Các vật dụng cần thiết:

- 1/32” aluminum sheet
- 2 x cánh quạt 8 x 3.8 slow flyer
- 2 x cánh quạt 8 x 3.8 slow flyer pusher
- 4 x động cơ Turnigy C2028 Micro brushless outrunner 1400kV
- 4 x ESC Turnigy Plush 18A
- Pin Turnigy nano-tech 1800mah 4S 35-70C Lipo Pack
- Vít nhựa 1/2” 4-40
- 4-40 plastic nuts
- Vít nhôm 1/2” 4-40
- Vít nhôm 5/8” 4-40
- Vít nhôm 3/8” 4-40
- 2” threaded 4-40 plastic spacers
- Gia tốc kế + Gyros chip: Sparkfun 6DOF razor IMU
- Vi điều khiển: arduino mini
- Bộ thu + điều khiển: Hobbyking 2.4 GHz
- 1.5” hex threaded 4-40 aluminum spacers
- 2 x ống Carbon .25” x .25” (.180 ID) x 48”
- Strings
- Zip-ties
- Super glue
- Velcro
- Protoboard
- Female header pins
- 3.3 volt regulator
- Jumper Wires

Có thể mua các bộ phận trên ở:

Propellers- http://www.apcprop.com/pindex.asp?Page=2
http://hobbyking.com/hobbyking/store/uh_index.asp
Carbon Fiber square tube - http://www.dragonplate.com/
http://www.mcmaster.com/
http://www.sparkfun.com/commerce/categories.php

Các bước chế tạo:

Bước 1: Cắt các thanh (ống) các bon có chiều dài và số lượng tương ứng và khoan các lỗ có đường kính và kích thước như chỉ dẫn trên hình vẽ:

2 x thanh các bon dài 14";
4 x thanh các bon dài 6.125"
4 x thanh các bon dài 8"

[​IMG]
[​IMG]
[​IMG]

Các lỗ khoan có đường kính 7/64" tại các vị trí như hình vẽ.

Bước 2: Cắt 04 tấm nhôm (dày 1/32") có kích thước 2"x2".

[​IMG]

Chú ý vát tròn các góc.
Khoan lỗ có đường kính 1/8" tại chính giữa mỗi tấm nhôm.
Đặt động cơ (đế động cơ) đồng tâm với lỗ trên và đánh dấu vị trí các vít gá động cơ trên tấm nhôm. Khoan các lỗ 9/64" để gắn động cơ.

Bước 3: Đánh dấu và khoan các lỗ gắn các thanh các bon dài 6.125" trên tấm gắn động cơ (2"x2") (chú ý: có 04 thanh các bon dài 6.125"; có 04 tấm gắn động cơ)

[​IMG]

Bước 4: Tương tự bước 3, nhưng làm với các thanh các bon dài 14"

[​IMG]

Bước 5: Khoan các lỗ gắn thanh các bon 8" trên tấm gắn động cơ (như hình vẽ). Chú ý: có một lỗ trùng với lỗ gắn động cơ

[​IMG]

Bước : các tấm kết nối và gắn mạch + các thiết bị điện:
Gồm có 02 tấm 6 cạnh và 01 tấm chữ nhật gắn với nhau như hình dưới:

[​IMG] 

[​IMG] 

[​IMG] 

[​IMG] 

Download bản vẽ các tấm tại đây

Bước:
Hàn các ESC, động cơ và kết nối chúng sao cho các cánh quạt quay đúng chiều. 
Sơ đồ kết nối mạch điện
[​IMG] 
[​IMG] 
Chú ý:

-1 chân 5V của ESC phải kết nối với chân VCC trên Arduino. Kết nối này sẽ cung cấp điện cho toàn mạch.
-Cả 4 chân nối đất của 4 ESC cùng kết nối với chân nối đất của mạch Arduino.

Bước: Nạp Code

//neutral accelerometer/gyro positions
#define X_ZERO 332
#define Y_ZERO 324
#define Z_ZERO 396
#define PITCH_ZERO 249
#define ROLL_ZERO 249
#define YAW_ZERO 248

#define GYRO_CON 1.47
#define ACCEL_CON 0.93

#define TIME_CON 0.02
#define SEN_CON 0.95

//motor speed vars
int speeds[4];

//gyro inputs - current tilt vars
float pitch, roll, yaw;
int pitchzero, rollzero;
//accelerometer inputs - current acceleration vars
float xin, yin, zin;

//human inputs - control info vars
float pitchin, rollin, yawin, zhuman;

//random other vars
float xaverage=0, yaverage=0;
int y=0;
int blah;

//proportionality constants
float p=2.5; // P proportionality constant
float d=0.5; // D proportionality constant

void setup() {
zhuman=0;
rollin=0;
Serial.begin(9600);
for(int x=6; x<10; x++) {
pinMode(x, OUTPUT);
}

//send upper bound for human inputs to the motor speed controllers
for(int x=6; x<10; x++) {
pulsout(x,2000);
}
delay(5000);

//get zeros for pitch and roll human inputs
for(int x=0; x<10; x++) {
y=y+analogRead(3);
}
pitchzero=y/10;
y=0;
for(int x=0; x<10; x++) {
y=y+analogRead(4);
}
rollzero=y/10;
}

void loop () {
//accelerometer and gyro inputs ranged -232 to 232?
xin=(analogRead(0)-X_ZERO)*ACCEL_CON;
yin=(analogRead(1)-Y_ZERO)*ACCEL_CON;
zin=(analogRead(2)-Z_ZERO)*ACCEL_CON;
pitch=(pitchzero-analogRead(3))*GYRO_CON;
roll=(rollzero-analogRead(4))*GYRO_CON;
yaw=(analogRead(5)-YAW_ZERO)*GYRO_CON;

//get human inputs through radio here range of -30 to 30 except for zhuman which has an ideal range of 1000-2000, only 2 pulses per loop
if(blah==0) {
yawin=0.06*((signed int) pulseIn(2,HIGH)-1500);
pitchin=0.06*((signed int) pulseIn(3,HIGH)-1500);
blah=1;
}
else {
zhuman=(signed int) pulseIn(4,HIGH);
rollin=0.06*((signed int) pulseIn(5,HIGH)-1400); //1400 instead of 1500 is to correct for the underpowered motor #4 by trimming it in code
blah=0;
}

//averaging, etc.
xaverage= SEN_CON *( xaverage + TIME_CON * pitch) + ( 1 - SEN_CON ) * xin;
yaverage= SEN_CON *( yaverage + TIME_CON * roll) + ( 1 - SEN_CON ) * yin;

//calculate the motor speeds
if(zhuman<1150) {
for(int x=0; x<4; x++) {
speeds[x]=zhuman;
}
}
else {
if(zhuman > 1450) {
zhuman = 1450;
}
speeds[0] = zhuman - p*(xaverage - pitchin) - p*(yawin) - d*pitch;
speeds[1] = zhuman - p*(pitchin - xaverage) - p*(yawin) + d*pitch;
speeds[2] = zhuman - p*(yaverage - rollin) + p*(yawin) - d*roll;
speeds[3] = zhuman - p*(rollin - yaverage) + p*(yawin) + d*roll;
}
//set the upper and lower bounds for motor speeds (1000=no speed, 1600=upper speed limit, 2000=maximum possible speed)
for(int x=0; x<4; x++) {
//speed limit between 1000 and 1600
if(speeds[x]<1000) {
speeds[x]=1000;
}
if(speeds[x]>1600) {
speeds[x]=1600;
}
}

//pulsouts to motor speed controllers
for(int x=0; x<4; x++) {
pulsout(x+6,speeds[x]);
}
}
void pulsout (int pin, int duration) {
digitalWrite(pin, HIGH);
delayMicroseconds(duration);
digitalWrite(pin, LOW);
}
 

(tiếp tục cập nhậtảoo)

Tham khảo thêm:

Mẫu quadcopter khá đẹp của SteadiDrone MAVRIK. Khung gập được, thuận tiện cho việc vận chuyển, đi lại. Đây là phiên bản cải tiến của SteadiDrone QU4D.
[​IMG]
[​IMG]
[​IMG]
[​IMG]
[​IMG]


 

Từ khóa:

n/a

Đánh giá bài viết
Tổng số điểm của bài viết là: 0 trong 0 đánh giá
Click để đánh giá bài viết
 

Quy trình xử lý

Hướng dẫn quý khách hàng tìm hiểu làm quen với cách sử dụng sản phẩm và dịch vụ trong lĩnh vực Robot gia dụng chúng tôi cung cấp. Đặt vấn đề: Khách hàng liên hệ qua Email hoặc Điện thoại, ghi chú nội dung liên hệ và thông tin yêu cầu sản phẩm dịch vụ sơ bộ. Xử lý thông tin: Chúng tôi sẽ trực...

Thăm dò ý kiến

Bạn có muốn sở hữu một Robot trong nhà không?

Cần một Robot để dọn dẹp

Cần một Robot trông nhà

Cần một Robot để giải trí

Bạn cần một Robot theo cách khác

Bạn đã có rồi

Bạn không cần

Liên kết