Làm một chiếc UAV cỡ nhỏ gọn, nhẹ, rẻ. Mục đích hiểu rõ các bước xây dựng nên một UAV hoàn chỉnh cũng như thiết kế để máy bay có thể cất cánh, cân bằng và điều khiển một cách tốt nhất.Để máy bay có thể có thể chuyển động tự do trong không gian thì cần thực hiện đủ 6 chuyển động ( 3 chuyển động quay và 3 chuyển động tịnh tiến ) tuy nhiên thì quadcopter lại không đủ số cánh quạt để làm thế. => Cách giải quyết là cần kết hợp các chuyển động với nhau phát triển hệ thống điều khiển kết hợp đẩy và quay thành đôi.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CƠ KHÍ ĐỘNG LỰC
BỘ MÔN KỸ THUẬT HÀNG KHÔNG - VŨ TRỤ
BÀI TẬP LỚN MÔN: KỸ THUẬT ĐIỆN - ĐIỆN TỬ TRÊN MÁY BAY
CHỦ ĐỀ
Thiết kế và xây dựng máy bay quadcopter
Giảng viên hướng dẫn: TS Phạm Gia Điềm
Nhóm 04
Nguyễn Xuân Dũng 20186038
Võ Trung Kiên 20186054Nguyễn Quốc Việt 20186081Lưu Vương Trọng Hiếu 20186042
Tạ Viết Cường 20186033
Hà Nội, Ngày 21 tháng 07 năm 2021
1
Trang 2MỤC LỤC
Phần I: Bài toán thiết kế……… ………
I Đặt vấn đề và mục đích đề tài 3
II.1 Cách phân bố động cơ cánh quạt của UAV có 4 motor (quadcopter) 3
II.2 Chuyển động của quadcopter 3
Phần II: Sơ đồ khối hệ thống 5
Phần III: Linh kiện và thông số kỹ thuật 5
I Mạch vi điều khiển trung tâm arduino nano 5
I.1 Các cấu tạo cơ bản của Arduino Nano 5
I.2 Các chân của Arduino Nano 6
II Động cơ Driver 8
I.1 Mô hình tính toán 8
II.2 Động cơ 1 chiều 2 pha 820 9
II.3 Module L298N 10
Phần IV: Thuật toán điều khiển cơ cấu bập bênh và thử nghiệm tìm thông số PID 11
I Giới thiệu 11
II Tìm hiểu về bộ điều khiển PID và đặc điểm về sự phản hồi trong từng khâu 12
II.1 Khâu tỷ lệ (Hệ số ) 12
II.2 Khâu vi phân (Hệ số ) 13
II.3 Khâu tích phân (Hệ số ) 15
III Lập trình Arduino 16
IV Thực nghiệm 17
Phần V: Bộ điều khiển từ xa 17
I Linh kiện điện tử 17
I.1 Arduino 17
I.2.Module truyền phát tín hiệu 18
II Cách giao tiếp Module nRF24L01 với Arduino Uno và Ardruino Nano 18
II.1 Sơ đồ nối mạch 18
II.1.1 Transmitter : Dùng arduino uno 19
II.1.2 Receiver : Dùng arduino nano 19
II.2 Thư viện Arduino 20
II.2.1 Transmitter : 20
II.2.2 Receiver : 21
Kết luận 22
Tài liệu tham khảo 22
Trang 3Phân chia công việc thành viên trong nhóm:
PHẦN I: Bài toán thiết kế
I Đặt vấn đề và mục đích đề tài
- Làm một chiếc UAV cỡ nhỏ gọn, nhẹ, rẻ
- Mục đích hiểu rõ các bước xây dựng nên một UAV hoàn chỉnh cũng như thiết
kế để máy bay có thể cất cánh, cân bằng và điều khiển một cách tốt nhất
II Các chế độ bay
II.1 Cách phân bố động cơ cánh quạt của UAV có 4 motor
(quadcopter)
- Bố trí theo hình dấu nhân
- 2 cánh quạt cạnh nhau quay ngược chiều
- 2 cánh quạt đối diện nhau quay cùng chiều
II.2 Chuyển động của quadcopter
* Vấn đề: Để máy bay có thể có thể chuyển động tự do trong không gian thì cần thực hiện đủ 6 chuyển động ( 3 chuyển động quay và 3 chuyển động tịnh tiến ) tuy nhiên thì quadcopter lại không đủ số cánh quạt để làm thế
=> Cách giải quyết là cần kết hợp các chuyển động với nhau
phát triển hệ thống điều khiển kết hợp đẩy và quay thành đôi
Họ và tên Công việc
Nguyễn Xuân Dũng Xây dựng chương trình điều khiển
Võ Trung Kiên Xây dựng chương trình điều khiển
Nguyễn Quốc Việt Lựa chọn driver + Xây dựng chươngtrình điều khiển
Lưu Vương Trọng Hiếu Lựa chọn bộ điều khiển từ xa
Tạ Viết Cường Lựa chọn động cơ và driver động cơ
Trang 41 Để tịnh tiến lên xuống dọc theo trục thẳng đứng: tăng hoặc giảm đồngth
ời vận tốc của 4 động cơ
2 Để thực hiện chuyển động Yaw: một trong 2 cặp cánh đối diện tăng lực kéo của động cơ và giảm với cặp còn lại
3 Để thực hiện chuyển động roll: tăng tốc 1 trong 2 cặp cánh 2 bên và giảm cặp còn lại
4 Để thực hiện chuyển động pitch: tăng tốc 1 trong 2 cặp cánh trước sau và giảm cặp còn lại
5 Để di chuyển tịnh tiến theo phương x, y
quadcopter sẽ phải kết hợp với chuyển động pitch và roll
Hình 1 Mô hình động lực học của máy bay quadcopter
PHẦN II: Sơ đồ khối của hệ thống
Trang 5CHỨC NĂNG CỦA CÁC KHỐI CHÍNH TRONG SƠ ĐỒ
Khối điều khiển trung tâm: nhận dữ liệu từ cảm biến và dùng
ngắt ngoài để lấy tín hiệu từ Receiver Thực hiện giải thuật PID tính
toán, xuất tín hiệu PWM ra 4 khối driver
1 Khối cảm biến: là khối lấy dữ liệu độ nghiêng các trục x y
z, vận tốc góc truyền về Arduino
2 Driver: dùng để điều khiển chiều qua và tốc độ của động cơ 2 pha ( nhậntín hiệu PWM từ Arduino)
3 Transmitter: là khối truyền tín hiệu điều khiển cân bằng,
di chuyển dưới dạng song RF ( tần số radio)
4 Receiver nhận tín hiệu điều khiển hướng từ bộ giải mã và gửi về
Arduino
PHẦN III: Linh kiện và thông số kỹ thuật
I Mạch vi điều khiển trung tâm arduino nano:
1 Là bộ mạch điều khiển dựa trên chip Atmega 328P
2 Thông số kỹ thuật của Arduino nano:
I.1 Các cấu tạo cơ bản của Arduino nano:
1 Nguồn: cổng miniUSB, cổng này được sử dụng cho cả
việc lập trình và bộ giám sát nối tiếp
Trang 6- Các chân trên nguồn Nano:
Vin: ta có thể cấp nguồn qua chân này ( ít dùng )
5V: chân này cho nguồn 5V từ bo mạch
3.3V: chân này cho nguồn 3.3V, dòng điện tối đa là 50mA
3 Mạch reset
- Đảm bảo các việc sau:
Reset bằng tay
Reset tự động
Khởi động vi điều khiển trước khi chạy chương trình mới
- Để vi điều khiển khởi động lại thì chân reset phải ở mứclogic low đủ yêu cầu
4 Vi điều khiển Atmega328P trên board Arduino Nano có sẵn trong TQFP(plastic quad flat pack-gói quad phẳng) với 32 chân
I.2 Các chân của Arduino Nano
Trang 7Hình 2 Các chân của Arduino Nano
- Một số chân Digital có chức năng đặc biệt:
Serial O (RX), 1(TX): nhận và truyền dữ liệu
Ngắt ngoài: 5,6
PWM: 6,8,9,12,13,14 cung cấp đầu ra xung PWM Mỗi chân cung cấp tín hiệu điều khiển độ rộng xung 8bit tạo ra bằng cách dung hàm analogWrite()
SPI: 13-16 hỗ trợ giao tiếp SPI
LED: 1 Led nối với chân D16 sáng khi giá trị ở mức cao tắt khi giá trị ở mức thấp
3 Chân 18, 19, 20, 21, 22, 23, 24, 25 và 26 : Ngõ vào/ra tương tự.Tương
tự như các chân digital trong Nano, các chân analog cũng có một sốchức năng khác Các chân dung điện áp từ 0V đến 5V ứng với 1024 giátrị Nếu muốn sử dụng điện áp tham chiếu 0->3.3V có thể nối nguồn chochân AREF bằng cách sử dụng chức năng analof Reference()
Chân A4,A5: giao tiếp I2C
Chân 18: AREF điện áp tham chiếu cho đầu vào dung cho việcchuyển đổi ADC
Chân 28: chân reset
4 Các chân ICSP|
Trang 8
Hình 3 Các chân của ICSP
II Động cơ và driver:
II.1 Mô hình tính toán:
Coi các động cơ hoạt động ổn định, ta có phương trình lực đẩy của từng động
cơ được tính như sau:
Trang 9Như vậy, tính tổng lực nâng của cả 4 động cơ sẽ là:
- Từ đó ta tìm được vận tốc gió dưới cánh là: V1=36.51m/s
vận tốc góc của motor xấp xỉ 4800 rpm
- Để đảm bảo Quadcopter có thể chuyển động được thì khoảng cách giữa 2 động cơ trên một trục phải đủ dài:
II.2 Động cơ 1 chiều 2 pha 820:
* Thông số kỹ thuật của động cơ 2pha 820:
Trang 10L298N là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong với điện
áp làm tăng công suất nhỏ như động cơ DC loại vừa
Hình 6 Mạch cầu H
- Nguyên lý hoạt động mạch cầu H: Mạch cầu H đơn giản để điều khiển động
cơ DC quay thuận hoặc quay nghịch Mở S2, S3 và đóng S1, S4 thì sẽ quay thuận Mở S1, S4 đóng S2, S3 thì sẽ quay nghịch.
* Thông số kỹ thuật:
Điện áp điều khiển: +5V ~ +12 V
Dòng tối đa cho mỗi cầu H là: 2A
Trang 11 Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
Dòng của tín hiệu điều khiển: 0 ~ 36Ma
Công suất hao phí: 20W (khi nhiệt độ T = 75 °C)
Nhiệt độ bảo quản: -25°C ~ +130
Có gắn tán nhiệt chống nóng và các điốt trên board giúp vi xử lý chống dòng điểm cảm ứng từ việc khởi động/tắt động cơ
* Các chân của L298N và cách nối module với mạch vi điều khiển trung tâm:
- 12V power và 5Vpower là 2 chân cấp nguồn trực tiếp đến động cơ
Power GND là chân nối đất của nguồn cấp cho động cơ
Output A và output B nối với động cơ
4 chân INPUT : IN1, IN2, IN3, IN4 nối tương ứng với các chân Digital ở Arduino
Điều khiển chiều quay động cơ bằng cách xuất ra giá trị logic tại cái chân Inx
Điều khiển tốc độ quay của động cơ cần nối các chân EnA và EnB với các chân PWM ở Arduino Nano
SƠ ĐỒ ĐIỆN DRIVER, MOTOR, ARDUINO NANO
Hình 7 Sơ đồ điện Driver, Motor, Arduino Nano
Trang 12PHẦN IV: Thuật toán điều khiển cơ cấu bập bênh và thử nghiệm tìm thông số PID
I Giới thiệu
Trong bài tập lớn này, chúng em đang nhắm tới mục đích là xây dựng được một quadcopter hoàn chỉnh, dựa vào các phân tích động lực học của một quadcopter đã được trình bày, ở đây chúng em chỉ xây dựng thuật toán cân bằng và đưa ra mô hình cho một trục của quadcopter Hoàn thành việc cân bằng
cả 2 trục của quadcopter sẽ giải quyết được bài toán cân bằng cho cả
quadcopter, tuy nhiên chúng em không kể đến sự ảnh hưởng lẫn nhau giữa 2 trục khi cân bằng
Về ý tưởng, việc cân bằng một trục cho một quadcopter lý tưởng là đưa hai vận tốc góc của 2 motor bằng nhau Tuy nhiên trong thực tế không có sự bằng nhau tuyệt đối về mặt vận tốc, sự sai lệch đó phụ thuộc vào nhiều khía cạnh như vật liệu và thiết kế, … nếu gây ra sai lệch đủ nhỏ vẫn có thể làm cho việc cân bằng trục rất khó khăn, nên chúng em sử dụng bộ điều khiển PID để thực hiện việc cân bằng cho một trục
Hình 8 Sơ đồ khối về hoạt động của bộ điều khiển PID
II Tìm hiểu về bộ điều khiển PID và đặc điểm về sự phản hồi trong từng khâu
Bộ điều khiển PID (Proportional-Integral-Derivative) là một cơ chế phản hồi vòng điều khiển tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp bộ điều khiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi Bộ điều khiển PID sẽ tính toán giá trị
"sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn
Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều
Trang 13khiển đầu vào Ở đây PID được sử dụng để điều chỉnh sai số về góc của trục so với phương nằm ngang, từ đó điều chỉnh vận tốc của hai động cơ.
Ở đây, ta có khái niệm setpoint (SP) và process variable (PV) Bộ điều khiển PID liên tục tính toán giá trị “sai số” giữa giá trị mong muốn SP và giá trị thực PV
II.1 Khâu tỷ lệ (Hệ số )
Khâu tỷ lệ có tỷ lệ với hiệu của SP-PV=e(t) với hệ số là Nếu giá trị sai
số này lớn thì đầu ra điều khiển cũng sẽ lớn, tính cả hệ số Chỉ sử dụng khâu tỷ
lệ sẽ không thể triệt tiêu hết sai số vì bản thân MPU6050 cần có độ trễ để cập nhật sai số Trong mô hình của chúng em, sai số e(t) được sử dụng ở đây là góclệch của trục so với phương ngang
Ví dụ tường minh, chúng em đưa ra mô hình một chiếc ô tô muốn đỗ xe tại vị trí mong muốn ở giữa hình vẽ, tuy nhiên do độ “trễ” về việc cập nhật “saisố” cho nên khi chiếc xe lùi lại nhưng lại quá so với vị trí cần đỗ Tiếp tục chiếc
xe tiến lên nhưng cũng vẫn bị sai lệch, cứ làm như thế cho đến khi “sai số” là
Trang 14Đối với mô hình của chúng em, khi chỉ sử dụng hệ số thì trục sẽ không tự cân bằng được, hiện tượng giống như một chiếc bập bênh.
Hình 11 Minh họa hiện tượng bập bênh của mô hình
II.2 Khâu vi phân (Hệ số )
Như đã trình bày, chúng em sẽ thiết lập thêm thành phần vi phân của bộ điều khiển Về mặt toán học, khâu vi phân được đưa ra như sau:
Ở đây, thành phần chính là thành phần vận tốc góc của trục Như vậy, khâu vi phân sẽ có công dụng điều chỉnh cho trục đứng yên Trong mô hình củachúng em, nếu hệ số quá lớn cùng với sự trễ phản hồi sẽ không những làm chotrục không cân bằng được mà còn bị nhiễu loạn hơn khi chỉ dùng khâu tỷ lệ Dựa vào thực nghiệm, chúng em đã tìm được hệ số và thích hợp với mô hình Việc tìm hệ số và thích hợp mất tương đối nhiều thời gian
Hình 12 Hình ảnh minh họa sự nhiễu loạn của trục khi sử dụng hệ số quá lớn
Hình 13 Đồ thị về sự phản hồi (step response) đối với 3 hệ số lần lượt là 0.5, 1, 2
II.3 Khâu tích phân (Hệ số )
Trang 15Khi đã lựa chọn các hệ số và thích hợp, trục về mặt cơ bản đã có thể cân bằng về mặt động học, tuy nhiên nó chưa thể cân bằng về mặt hình học, tức là
nó vẫn nghiêng so với phương ngang một góc nhỏ
Hình 14 Mô hình thể hiện trục cân bằng động họ nhưng vẫn nghiêng so với phương ngang
một góc nhỏ
Hình 15 Đồ thị về sự phản hồi (step response) đối với 3 hệ số lần lượt là 0.5, 1, 2
So với thực tế, trục ngang của quadcopter khó đạt được vị trí cân bằng về mặt hình học như vậy sau một khoảng thời gian đủ lớn, nên chúng em đã không đề cập đến hệ số của khâu tích phân
III Lập trình Arduino
Lập trình về: Thay đổi đơn vị góc từ rad sang degree
Lọc nhiễu của biến tốc độ góc
Giới hạn bão hòa của biến tốc độ góc
Vô hiệu hóa thành phần tốc độ góc
Giới hạn bão hòa của biến góc
Trang 16Lập trình về: Thuật toán PID điều khiển tốc độ của hai động cơ.
In ra các thông số về vận tốc của 2 động cơ, về góc và vận tốc
góc ở các thời điểm,
Chúng em giải thích thêm về thành phần rate effect, qua thực nghiệm cho thấy, khi vượt qua “ngưỡng cân bằng” thì bộ điều khiển ở khâu vi phân sẽ làm nhiễu loạn Vì vậy khi vượt qua “ngưỡng cân bằng”, tức là khi thanh đi qua vi trí cân bằng nhưng vận tốc góc của thanh không cập nhật kịp thời nên nó sẽ tiếp tục vuợt qua “ngưỡng cân bằng” gây ra nhiễu loạn Vì vậy khi vận tốc góc
và góc giữa trục và phương ngang cùng dấu, chúng em sẽ loại bỏ khâu vi phân
Trang 17IV Thực nghiệm
Bộ điều khiển PID với hệ số =3 và =0.2 (chưa có rate effect)
https://drive.google.com/file/d/1SInwuCDJpKk3eSQU_Z0TT_7qZ0i3XQRz/view?usp=sharing
Bộ điều khiển PID với hệ số =2 và =0.2 (chưa có rate effect)
https://drive.google.com/file/d/1-ftrfvPa3IunF9VAOkx9y0CHUyIQyvTp/view?usp=sharing
Trang 18 Bộ điều khiển PID với hệ số =1.2 và =0.16 (chưa có rate effect)
https://drive.google.com/file/d/1HcP6lUA5YU5EPshMEuTaZn2Rh3zk5c8c/view?usp=sharing
Bộ điều khiển PID với hệ số =1.5 và =0.15 (đã có rate effect)
https://drive.google.com/file/d/1es5vXP6k3drOsH3Zb9bvrGAwsfN3hbA-/view?usp=sharing
Quá trình tìm hệ số và thích hợp
https://drive.google.com/drive/folders/1FRAeECXTdMK8b7t6wT75EG8dXU5nArDw
Như vậy, chúng em đã tìm được hệ số và thích hợp là =1.5 và =0.15.
PHẦN V: BỘ ĐIỀU KHIỂN TỪ XA
I Linh kiện điện tử:
I.1.Arduino:
Arduino Uno và Arduino Nano
I.2.Module truyền phát tín hiệu : nRF24L01
Trang 19Module sử dụng băng tần 2,4 GHz và nó có thể hoạt động với tốc độ truyền từ
250 kbps lên đến 2 Mbps Nếu được sử dụng trong không gian mở và với tốc
độ truyền thấp hơn, phạm vi của nó có thể đạt tới 100 mét
Mô-đun có thể sử dụng 125 kênh khác nhau mang lại khả năng có một mạng gồm 125 modem hoạt động độc lập tại một nơi Mỗi kênh có thể có tối đa 6 địachỉ hoặc mỗi đơn vị có thể giao tiếp với tối đa 6 đơn vị khác cùng lúc
Điện áp hoạt động của mô-đun là từ 1,9 đến 3,6V Ba trong số các chân này dành cho giao tiếp SPI và chúng cần được kết nối với các chân SPI của
Arduino, nhưng lưu ý rằng mỗi bảng Arduino có các chân SPI khác nhau Các chân CSN và CE có thể được kết nối với bất kỳ chân kỹ thuật số nào của bảng Arduino và chúng được sử dụng để thiết lập mô-đun ở chế độ chờ hoặc chế độ hoạt động, cũng như để chuyển đổi giữa chế độ truyền hoặc chế độ lệnh Chốt cuối cùng là chân ngắt mà không cần phải sử dụng
Trang 20Đèn Led: đầu dương nối với chân 14 của arduino uno, đầu âm nối với điện trở
Trang 21II.2 Thư viện Arduino
int potValue = analogRead(A0);
int angleValue = map(potValue, 0, 1023, 0, 180); radio.write(&angleValue, sizeof(angleValue)); delay(5);
Trang 22}
Trang 23Kết luận
Trong quá trình làm bài tập lớn, chúng em đã được học thêm nhiều kiến thức mới, cách phối hợp và phân công công việc sao cho hiệu quả Trong bài tập lớn này, chúng em đang nhắm tới mục đích là xây dựng được một
quadcopter hoàn chỉnh, tuy nhiên thực tế chúng em chưa có kết quả thực nghiệm của một quadcopter so sự chậm chễ, nhưng chúng em đã giải quyết được khoảng 70% quá trình xây dựng lên Trong tương lai, chúng em có thể sẽ
mô phỏng quadcopter trong chế độ bay treo và các chế độ bay khác Ý tưởng này dù có từ lâu, nhưng qua việc làm bài tập nhóm này chúng em có thể bắt đầu từ những thứ đơn giản nhất để có thể phát triển và tích lũy kiến thức cho việc đóng góp vào môn kỹ thuật điện - điện tử trên máy bay và cả cơ học vật bay
Tài liệu tham khảo
PID brushless motor control tutorial - YouTube
Atheer L Salih, M Moghavvemi, Haider A F Mohamed and Khalaf Sallom Gaeid Centre - Modelling and PID Controller Design for a Quadrotor
Unmanned Air Vehicle
Arduino Drone - YouTube
PID controller - Wikipedia