หนังสือเขียนโปรแกรมเครื่องบินสี่ใบพัด การเขียนโปรแกรม Quadrotor พื้นฐาน ,การบินอากาศยาน 4 ใบพัด ,โดรน drone ,โดรนคอร์ดคอปเตอร์ Drone QuadCopter ,อากาศยานไร้คนขับ
วีดีโอ
https://www.youtube.com/watch?v=w7J181fQ42M&feature=youtu.be
ทดสอบความเร็วการยกตัว
https://www.youtube.com/watch?v=w7J181fQ42M&list=UUK8SdBKqjdXghqlJf3-sZaQ
หน้าเวป
http://quad3d-tin.lnwshop.com/product/30/auto2560-gy86
/* project_QuadX_2560 GY86_PIDAuto_V1
- Automatic Takeoff
- Landing
- GPS Position Hold by: tinnakon kheowree
http://quad3d-tin.lnwshop.com/
https://www.facebook.com/tinnakonza
date: 22-12-2557(2014) V.1 QuadX_2560 GY86_PIDAuto_V1
date: 28-12-2557(2014) QuadX_2560 GY86_PIDAuto_V2 ,Write P-PID Controller
date: 28-12-2557(2014) QuadX_2560 GY86_PIDAuto_V3 ,Ultrasonic and baro ,,Ultrasonic max 0.8 m change to Baro
date: 30-12-2557(2014) QuadX_2560 GY86_PIDAuto_V4 ,tuning P-PID Controller
date: 31-12-2557(2014) QuadX_2560 GY86_PIDAuto_V5 ,tuning Altitude Hold , Position Hold
support: Board 2560 GY86
• Atmega2560
• MPU6050 Gyro Accelerometer //400kHz nois gyro +-0.05 deg/s , acc +-0.04 m/s^2
• MS561101BA Barometer
• HMC5883L Magnetometer //400kHz
• GPS BS-300
• Ultrasonic Sensor Module
• ESC Dargon 30A
• motor sunny 2212 1400kv
Quad4-X
---------motor---------
int MOTOR_FrontL_PIN = 2;
int MOTOR_FrontR_PIN = 5;
int MOTOR_BackL_PIN = 6;
int MOTOR_BackR_PIN = 3;
----------rx-----------
CPPM pin A8
*/
project_QuadX_2560 GY86_PIDAuto_V1
- Automatic Takeoff
- Landing
- GPS Position Hold by: tinnakon kheowree
http://quad3d-tin.lnwshop.com/
https://www.facebook.com/tinnakonza
บอร์ด Arduino MEGA 2560 กับ เซนเซอร์ GY-86 10DOF
อธิบาย Code QuadX_2560GY86_PIDAuto_V1
-
การกำหนดความเร็วลูป 100 Hz, 50 Hz, 20 Hz, 10 Hz, 5 Hz, 1 Hz
100 Hz ทำ อ่านเซนเซอร์ gyro,acc, ควบคุม PID , Filter 50 Hz ทำ อ่านค่ารีโมท 20 Hz อ่านค่า Ultrasonic ,ทำ Filter 10 Hz ทำ Automatic Takeoff และ Landing อ่านค่า
Magnetometer และ Chack_Command, By Remote idle-up settings 0,1,2 5 Hz คำนวณ GPS ควบคุมต่ำแหน่ง 1 Hz แสดงสถานะหลอดไฟ LED ทำ Accelerometers trim โดยใช้ รีโมท -
การสร้างตัวแปรเพื่อเก็บค่า int 16 bit, long 32 bit ,uint8_t, unsigned long , float 32bit,
-
การอ่านค่าเซนเซอร์ gyroscope , accelerometer, magnetometer
-
การอ่านค่าบาโรเพื่อมาคำนวณค่าความสูงจากเซนเซอร์ MS5611
-
การทำตัวสังเกตเพื่อประมาณค่าความสูง ,State estimation with Kalman Filter
-
การอ่านค่าเซนเซอร์ Ultrasonic , Trigger, Echo
-
การอ่านค่าเซนเซอร์ GPS ใช้ NMEA_BINARY settings ของ MultiWii
-
การอ่านค่ารีโมท PWM 1-1.9 ms แบบ CPPM สายเส้นเดียว ได้ 6 CH
-
การกำหนดค่าเริ่มต้นใน setup()
- ค่าเริ่มต้นการอ่านรีโมท
- ค่าเริ่มต้นสั่งมอเตอร์
- ค่าเริ่มต้น GPS
- ค่าเริ่มต้น I2C เปลี่ยน I2C clock rate to 400kHz
- ค่าเริ่มต้นเซนเซอร์ GY-86 , mpu6050 HMC5883 MS561101BA
- ค่าเริ่มต้นอัลตร้าโซนิค
- การอ่านเซนเซอร์เริ่มต้น
- การทำคาริเบตเซนเซอร์
- ตั้งค่าเริ่มต้นการหามุม AHRS (An attitude and heading reference system , AHRS)
- กำหนดเวลาเริ่มต้น
- การทำ sensor Calibration และการแปลงหน่วย rad/s , deg/s , m/s^2
- การลดสัญญานรบกวน sensor , Moving average filter , Low pass filter
- วิธีการหาค่ามุม AHRS, Quaternion , direction cosine matrix , Euler angles, Rotation matrix Body Fixed Frame, Earth-Fixed frame
- การอ่านค่า GPS latitude and longitude , ความเร็วการเคลื่อนที่ Earth-Fixed frame
- การควบคุม PIDA , P-PID , Roll, Pitch, Yaw
- คำนวณหาค่ามุมรีโมท
- การดิฟหาความเร็วจากมุมรีโมท
- การคำนวณค่า error
- การคำนวณกฏการควบคุมมุมและ Rate Gyro
- การควบคุมความสูงใช้ State feedback control หรือ PID
- เทคนิคการจูนค่า Gain ที่ใช้ควบคุม
- เงื่อนไขการทำ Automatic Takeoff และ Landing
- การควบคุมต่ำแหน่ง GPS ใช้ PID control
- การทำ Motor mixing theory, Quad +,x
- การสั่ง PWM 1-1.9 ms ให้มอเตอร์หมุน
- การทำ Electronic Speed Controllers Calibration 1 - 1.9 ms
- การทำ Accelerometers trim โดยใช้ รีโมท
- การทำ Calibration sensor Magnetometer หาค่า Max , Min
- การทำ ARM and DISARM มอเตอร์ไม่หมุนและหมุน
by: ทินกร เขียวรี tinnakon kheowree