Điện tử

Thiết kế Mạch cân bằng Quadcopter

Máy bay không người lái kiểu quadcopter nhỏ đại diện cho một trong những lĩnh vực thú vị nhất của thiết kế hệ thống nhúng trong những năm gần đây. Hãy cùng tham khảo Thiết kế Mạch cân bằng quadcopter tự hành sử dụng MCU Microchip PIC32 làm bộ điều khiển và thu thập dữ liệu từ IMU trên máy bay. Và CDK cũng xây dựng một trạm thu phát mặt đất với PIC32, để liên kết dữ liệu IMU qua radio và gửi lệnh để kiểm soát thời gian bay của quadcopter. Hãy cùng tham khảo nào !

Thiết kế Mạch cân bằng quadcopter
Thiết kế Mạch cân bằng quadcopter

Tổng quan về Thiết kế Mạch cân bằng quadcopter

Mình đã thiết kế, chế tạo và thử nghiệm một quadcopter tự hành sử dụng bộ vi điều khiển Microchip PIC32 (MCU) làm bộ điều khiển bay của nó và thu thập dữ liệu từ IMU trên máy bay. Mình cũng xây dựng một trạm mặt đất với PIC32 để liên kết dữ liệu IMU qua radio và gửi lệnh để kiểm soát thời gian bay của quadcopter. Mình muốn máy bay không người lái có thể cất cánh, ở trên không trong một thời gian do người dùng xác định và sau đó hạ cánh. Mình đã sử dụng một khung in 3D để chứa tất cả các thiết bị điện tử quadcopter và một bộ điều khiển tốc độ điện tử có sẵn (ESC) mà nhận tín hiệu PWM từ PIC32  được sử dụng để điều khiển bốn động cơ.

Tổng quan về Thiết kế Mạch cân bằng quadcopter
Tổng quan về Thiết kế Mạch cân bằng quadcopter (bảng 1)

Các tính toán và thử nghiệm ban đầu, thể hiện trong  Bảng 1 , được sử dụng để xác định tính khả thi của dự án. Để dễ kiểm tra, Mình đã chọn làm cho chiếc quadcopter càng nhỏ càng tốt, vừa đủ lớn để mang PIC32 MCU, các thiết bị điện tử đi kèm và nguồn điện. Tổng khối lượng ước tính của quadcopter là 0,348 kg. Điều này có nghĩa là sự kết hợp động cơ, pin và cánh quạt đã chọn phải có khả năng nâng khối lượng này với tỷ lệ lực đẩy trên trọng lượng lớn hơn 1.

Mạch phát hiện sóng điện thoại

Tính toán thiết kế Mạch cân bằng quadcopter

Mình nhận thấy một số động cơ nặng khoảng 10 g đáp ứng được yêu cầu này, vì vậy việc chế tạo một quadcopter với kích thước này có vẻ khả thi. Hạn chế chính đối với máy bay không người lái là giữa sức nâng và trọng lượng của nó. Mình muốn giảm thiểu trọng lượng bằng cách giảm phần cứng không cần thiết và sử dụng pin có điện áp cao hơn trong giới hạn cho phép.

Tính toán thiết kế Mạch cân bằng quadcopter
Tính toán thiết kế Mạch cân bằng quadcopter (bảng 2)

Để đảm bảo rằng thuật toán điều khiển chuyến bay có đủ thời gian để cân bằng chính xác máy bay quadcopter, Mình đã thực hiện kiểm soát PID (Tỷ lệ, Tích phân, Đạo hàm) trong Quy trình ngắt (ISR). Mình ước tính khoảng thời gian tự nhiên của quadcopter là mili giây và hằng số thời gian vận động là khoảng 10 đến 20 mili giây. Do đó, Mình có thể kiểm tra trạng thái của máy bay không người lái ở tần số trên 1 kHz, vì vậy độ dài của ISR phải trong vòng 1 ms, đó là độ trễ tối đa mà Mình mong đợi sẽ giữ cho quadcopter được kiểm soát. 1 ms này kết hợp thu thập dữ liệu từ IMU, cùng với các tính toán PID.

Mình đã chọn sử dụng động cơ DC không chổi than vì những động cơ này rất phổ biến trong thế giới máy bay và máy bay điều khiển từ xa (RC). Điều này cho phép Mình lựa chọn trong số rất nhiều bộ điều khiển có sẵn được thiết kế để điều khiển các động cơ này trong các ứng dụng máy bay nhỏ. Động cơ BE1104 của DYS là một ứng cử viên sáng giá vì kích thước và trọng lượng nhỏ (đường kính 11 mm và khối lượng 6 g). Ngoài ra, vì động cơ này thường xuyên được sử dụng cho các máy bay nhỏ, nó đã ghi lại dữ liệu thử nghiệm với các cánh quạt và pin cụ thể. Dữ liệu được hiển thị trong  Bảng 2  là từ www.getfpv.com, một trang web về máy bay mô hình và máy bay không người lái.

Dựa trên dữ liệu trong  bảng 2, Mình đã chọn sử dụng một cánh quạt 3020R với đường kính 3 ”. Mình đã mua một pin LiPo 2 cell, 7,4 V và một pin LiPo 3 cell, 11,1 V để kiểm tra sức mạnh của dây culoa. Cần ít nhất 4,5 A đối với pin 7,4 V hoặc 5,4 A đối với pin 11,1 V để nâng khối lượng ước tính 348g của quadcopter lên. Điều này cho phép Mình định kích thước pin cho thời gian bay hợp lý. Tại mỗi động cơ là 4,5 A (tổng cộng là 18 A), thời gian bay trong 1 phút cần một pin 7,4 V có công suất 112,5 mA-giờ. Mình đã mua một pin có 450 mA-giờ để tránh xả độ sâu lớn, điều này cũng có thể giúp tăng tuổi thọ của pin. Pin LiPo 11,1 V phù hợp nhất mà Mình có thể tìm thấy có dung lượng 350 mA/giờ. Cả hai viên pin đều có hệ số phóng điện là 20 C, về chất lượng đủ cho dòng của máy bay không người lái mà Mình đang chế tạo.

Bộ điều khiển tốc độ Mạch cân bằng quadcopter

Mình đã chọn Bộ điều khiển tốc độ điện tử (ESC) DYS F18A, bởi vì nó là ESC 4 trong 1 nhỏ nhất và nhẹ nhất mà có thể tìm thấy trên thị trường, và 18 A cho mỗi động cơ là quá đủ. Hầu hết các ESC có sẵn đều sử dụng xung servo, bao gồm tín hiệu PWM 50 Hz với xung 1-2 ms. Xung 1 ms tương ứng với ga tối thiểu (động cơ không quay) và xung 2 ms tương ứng với ga tối đa (tốc độ động cơ tối đa). ESC chuyển đổi xung servo này thành các tín hiệu PWM mà nó sử dụng để điều khiển các MOSFET được bố trí trong một cầu nối.

Bộ điều khiển tốc độ Mạch cân bằng quadcopter
Bộ điều khiển tốc độ Mạch cân bằng quadcopter

Mỗi cặp MOSFET công suất điều khiển việc đóng cắt một pha của động cơ điện một chiều không chổi than 3 pha. DYS F18A ESC mà Mình sử dụng có bốn mạch, một cho mỗi động cơ. Mỗi mạch chấp nhận một tín hiệu PWM độc lập, nhưng tất cả đều được cấp nguồn bởi cùng một loại pin. Một chức năng thứ cấp của ESC là giảm điện áp pin xuống từ 7,4 V hoặc 11,1 V và cung cấp đầu ra 5 V. Trên máy bay RC, điều này được sử dụng để cấp nguồn cho bộ thu, nhưng Mình đã sử dụng nó để cấp nguồn cho PIC32.

Sơ đồ Mạch cân bằng quadcopter
Sơ đồ Mạch cân bằng quadcopter

IMU đọc dữ liệu thô từ các chip cảm biến, kết hợp nó và chuyển đổi kết quả thành các giá trị có thể sử dụng được. Mình đã chọn sử dụng 6050 IMU từ Invensense để đo gia tốc và các chỉ số con quay hồi chuyển cho PID . PIC32 sử dụng I 2 C để giao tiếp với IMU. Để truy xuất dữ liệu từ IMU, Mình đã sử dụng thư viện PIC32 I 2 C [1] với I 2 C đọc và ghi các hàm trợ giúp. Mình đã sử dụng ba giá trị con quay hồi chuyển và ba giá trị gia tốc kế trên máy bay không người lái . Mỗi giá trị đo được chia thành hai byte được lưu trữ trong hai thanh ghi. Mình đã đọc dữ liệu kiểu char cho byte thấp hơn và byte cao hơn, sau đó nối chúng thành một số nguyên 16 bit. Để có được dữ liệu con quay hồi chuyển đáng tin cậy hơn, Mình đã lấy mẫu con quay hồi chuyển trong khoảng thời gian dài 50 ms và tính trung bình. Mình đọc IMU bên trong ISR để lấy tỷ lệ con quay hồi chuyển của máy bay không người lái và đưa nó vào bộ điều khiển PID để điều chỉnh vị trí của máy bay không người lái.

Sơ đồ Mạch cân bằng quadcopter
Sơ đồ Mạch cân bằng quadcopter

Mình đã sử dụng Radio nRF24L01 + Radio để liên lạc giữa máy bay không người lái và trạm gốc. Để xây dựng toàn bộ hệ thống radio, Mình đã đặt một trong hai chiếc radio trên trạm gốc . Trạm gốc bao gồm một PIC32 gắn trên bảng PCB với màn hình tinh thể lỏng bóng bán dẫn màng mỏng (TFT LCD), vì vậy chúng ta có thể xem dữ liệu được liên kết xuống ( Hình 1 ). Mình cũng bao gồm một chiết áp 10 kΩ được sử dụng để chọn thời gian bay mong muốn cho quadcopter di chuột. Cũng có một công tắc trên bảng gửi tín hiệu khởi động đến quadcopter và báo hiệu nó khởi động thuật toán PID và cất cánh. Mình đã gắn nRF24 khác trên máy bay không người lái và sử dụng nó để truyền dữ liệu IMU và nhận lệnh. Sơ đồ của trạm mặt đất và máy bay không người lái được thể hiện trong  Hình 2  và Hình 3 , tương ứng

Để đảm bảo rằng thứ tự chính xác của dữ liệu IMU được hiển thị trên màn hình TFT, Mình đã thiết kế một giao thức đồng bộ hóa, như sau:

1) Radio trên máy bay không người lái bắt đầu tắt ở chế độ nhận (chế độ RX), đang chờ tín hiệu bắt đầu.
2) Radio trên trạm gốc, bắt đầu ở chế độ truyền, chờ người dùng bật công tắc lên.
3) Ngay sau khi công tắc được bật, thời gian bay sẽ được truyền đi và trạm gốc chuyển sang chế độ RX, chờ dữ liệu IMU từ máy bay không người lái.
4) Khi nhận được tín hiệu khởi động, máy bay không người lái sẽ chuyển sang chế độ truyền. Nó liên kết dữ liệu IMU và thời gian bay xuống, được in trên màn hình TFT của trạm gốc.
5) Máy bay không người lái cũng truyền một chuỗi đã biết đến trạm gốc, để thông báo khi có một đợt dữ liệu mới đến, để đảm bảo rằng cả hai bộ đàm đều được đồng bộ hóa.

Thiết kế cơ khí Mạch cân bằng quadcopter

Sau khi lựa chọn thiết bị điện tử, Mình chuyển sang bố trí cơ khí. Những cân nhắc quan trọng đối với cách bố trí cơ học bao gồm giảm thiểu trọng lượng và giữ thăng bằng cho quadcopter. Khối tâm của nó được đặt ở tâm của bốn động cơ, giúp việc kiểm soát độ cao dễ dàng hơn. Khung máy in 3D được thiết kế với mục đích đơn giản và tiết kiệm trọng lượng. Kích thước của nó dựa trên đường kính cánh quạt 3 ”, để tạo không gian rộng rãi cho các thiết bị điện tử và pin ở trung tâm ( Hình 4 ). Hình 5  cho thấy động cơ của máy bay không người lái và thiết lập kiểm tra ESC.

Thiết kế cơ khí Mạch cân bằng quadcopter
Thiết kế cơ khí Mạch cân bằng quadcopter

Phần quan trọng của máy bay không người lái là thuật toán điều khiển. Mình đã sử dụng thuật toán PID để điều khiển động cơ. Theo định hướng về IMU trên quadcopter, cao độ được định nghĩa là chuyển động quay dọc theo trục X và cuộn được định nghĩa là quay dọc theo trục Y. Quadcopter xác định độ cao của nó bằng cách tích hợp dữ liệu con quay hồi chuyển theo hai trục này để có được hai phép đo góc θ X   θ Y. Sau khi đọc con quay hồi chuyển, góc được xác định bằng tích phân Euler:

Độ lệch con quay hồi chuyển ban đầu bị loại bỏ khi IMU được thiết lập bằng cách lấy hai số đọc con quay hồi chuyển cách nhau 50 ms và lấy trung bình chúng. Quy trình này chỉ được thực hiện một lần, trong vòng lặp chính khi quadcopter ngồi yên trên mặt đất trước khi cất cánh.

Mình đã sử dụng một số phương pháp để bù cho sự trôi (gia tốc trôi) của con quay hồi chuyển. Đầu tiên, Mình đặt lại số hạng tích phân thành 90% giá trị hiện tại của nó bất cứ khi nào tỷ lệ thay đổi dấu, để cải thiện độ chính xác của số hạng tích phân trong một khoảng thời gian. Thứ hai, một bộ lọc bổ sung đã sử dụng dữ liệu gia tốc kế để sửa các số đọc của con quay hồi chuyển. 98% số đo góc đến từ sự tích hợp dữ liệu con quay hồi chuyển đã đề cập trước đây và 2% đến từ việc xác định độ cao của máy đo gia tốc liên quan đến hướng của gia tốc trọng trường. Số đọc của gia tốc kế theo mỗi hướng được biểu thị bằng α X , α Y  và α Z.

Hai bộ điều khiển PID chạy độc lập một cho phép quay trục X và một cho phép quay trục Y. Cả hai bộ điều khiển đều hoạt động để duy trì góc của quadcopter khi cất cánh. Góc ban đầu được lấy là θ X = 0, θ Y = 0, và trong quá trình bay, bộ điều khiển đã cố gắng điều khiển góc quay về 0. Hình 6  là sơ đồ khối của điều khiển PID cho mỗi trục.

Tín hiệu điều khiển có thể được tính bằng các phương trình sau đây trong đó  int x  và  int y  lần lượt thể hiện tích phân theo trục X và trục Y.

Mình đã chuyển đổi tín hiệu điều khiển thành tín hiệu PWM bằng cách gán hai động cơ cho mỗi trục và tăng hoặc giảm tín hiệu PWM của chúng tương ứng với tín hiệu điều khiển trên trục đó. Lưu ý rằng Mình đã cài đặt sẵn 16 và tốc độ đồng hồ cho PIC32 là 40 MHz, vì vậy tốc độ đồng hồ mới là 2,5 MHz. Do đó, 1 ms tương ứng với 2.500 chu kỳ. Khoảng thời gian tạm dừng của tín hiệu PWM là từ 1 ms đến 2 ms, trong đó 1 ms dẫn đến trạng thái tắt và 2 ms dẫn đến trạng thái tốc độ đầy đủ.

Trong các phương trình này, M 0  biểu thị một điểm đặt tại đó các động cơ sẽ ở lại nếu quadcopter gần với một góc bằng không. Điểm đặt này phải đủ cao để quadcopter vẫn có thể nhấc ra nếu tất cả các động cơ chạy ở tốc độ đó. Mình tăng điểm thiết lập lên rồi lại hạ xuống lúc cất cánh và hạ cánh, để làm cho chuyến bay trơn tru hơn và ngăn tiếng ồn đột ngột liên quan đến việc tăng tốc động cơ nhanh chóng. Điểm thiết lập bắt đầu từ 0 và tăng lên đến 1.500 trong suốt chuyến bay. Bằng cách giới hạn tín hiệu PWM (điều chế độ rộng xung) trong phạm vi 2.500-4.500 chu kỳ (xung servo 1 ms đến xung 1,8 ms), có một phạm vi 1.500 chu kỳ ở mỗi bên của điểm đặt để bộ điều khiển PID hoạt động.

Thử nghiệm Mạch cân bằng quadcopter

Bộ điều khiển và bộ điều khiển quadcopter được chế tạo hoàn chỉnh được thể hiện trong  Hình 7 . Đối với giai đoạn đầu tiên của thử nghiệm điều khiển PID và điều chỉnh, Mình cấp nguồn cho hai động cơ cùng một lúc và chỉ điều khiển một trục quay. Mình giữ cố định quadcopter dọc theo một trục và di chuyển nó từ phương ngang để quan sát xem nó phục hồi như thế nào. Tần số thấp của điều khiển xung servo (50 Hz) dẫn đến các vấn đề trong việc tích hợp dữ liệu con quay hồi chuyển và ổn định quadcopter. Mình đã tăng tần số từ 50 Hz lên 500 Hz, mặc dù ESC chỉ được đánh giá ở mức 50 Hz.

Thử nghiệm Mạch cân bằng quadcopter
Thử nghiệm Mạch cân bằng quadcopter (hình 7)

Mặc dù ngưỡng bật động cơ giảm nhẹ và tốc độ động cơ nói chung tăng lên, Mình không thấy tác động bất lợi nào đáng kể. Lưu ý rằng 500 Hz là tần số tối đa vì xung servo 2 ms phải có chu kỳ lớn hơn 2 ms. Mình đã sử dụng 1,8 ms làm độ rộng xung tối đa , vì vậy 500 Hz hoạt động tốt. Sau khi tần số điều khiển được tăng lên 500 Hz, quadcopter đã có thể tích hợp thành công dữ liệu con quay hồi chuyển để thu được các phép đo góc và điều khiển góc của nó ở băng thông đủ cao để bay ở mức hợp lý.

Mình đã chọn độ lợi bộ điều khiển PID ban đầu sao cho mỗi trục ở góc lệch khoảng 30 độ theo phương ngang, xung servo trên một động cơ sẽ ở mức tối đa (1,8 ms) và xung servo trên động cơ khác sẽ ở mức tối thiểu (1 bệnh đa xơ cứng). Mình đã quan sát độ rộng của các xung servo trên một máy hiện sóng mà không có động cơ được kết nối và nghiêng máy quét quad để tìm những lợi ích này. Trong ước tính ban đầu này, độ lợi – đặc biệt là độ lợi tỷ lệ – được chứng minh là quá cao. Trước khi bay thử nghiệm, Mình đã treo chiếc quadcopter lên một sợi dây và kết nối hai động cơ có điện áp pin thấp hơn, để chúng cân bằng với chiếc quadcopter nhưng không khiến nó bay. Đây hóa ra không phải là phương pháp kiểm tra tốt nhất, vì đôi khi dây bị quấn vào cánh quạt. Nhưng nó cho phép Mình thấy rằng chiến lược tốt nhất là sử dụng mức thu nhập khá thấp (KP  = 10, K D  = 50, K I  = 0,04). Bảng 3  cho thấy kết quả từ các cài đặt PID khác nhau. Mục tiêu là cất cánh, di chuột và hạ cánh theo phương thẳng đứng tại cùng một địa điểm. Bộ cài đặt cuối cùng đã mang lại cho Mình hiệu suất tốt nhất.

Mình nhận thấy rằng tốc độ động cơ cao hoặc tốc độ động cơ nhanh đã tạo ra xung nhiễu khiến PIC32 phải thiết lập lại trong quá trình thử nghiệm. Để ngăn chặn điều này, Mình đã giới hạn servo ở mức 1,8 ms, bằng 90% tốc độ động cơ tối đa và tăng điểm đặt PWM một cách chậm rãi, ít hơn 10 chu kỳ PWM trên mỗi chu kỳ ISR. Vấn đề này vẫn gây ra một hạn chế nghiêm trọng cho thiết kế, bởi vì mô-men xoắn nhiễu loạn gây ra, ví dụ do gió, có thể khiến bộ điều khiển PID yêu cầu thay đổi lớn về tốc độ động cơ và đặt lại PIC32. Một thiết kế mạnh mẽ hơn sẽ loại bỏ vấn đề này. PIC32 có thể được cấp nguồn từ một pin riêng biệt và các mạch quang cách ly có thể được sử dụng để cách ly nối đất bộ điều khiển PIC32 và nối đất động cơ. Ngoài ra, chúng ta có thể mua một ESC tốt hơn, với mặt đất pin của nó được cách ly khỏi mặt đất 5 V ra và mặt đất tín hiệu.

Thêm kiểm soát độ cao cũng sẽ là một cải tiến lớn để ổn định chuyến bay. Mặc dù Mình đã cố gắng tích hợp dữ liệu gia tốc kế hai lần, nhưng nó tỏ ra không ổn định và các kết quả đo độ cao không nhất quán. Các chỉ số vị trí bị trôi đi nghiêm trọng đến nỗi chiếc quadcopter không thể biết liệu nó có đang ở độ cao chính xác hay không.

Kết luận :

Trong dự án này, Mình đã thiết kế một máy bay không người lái và làm cho nó bay được. Đây có thể là một nỗ lực ban đầu cho bất kỳ ai quan tâm đến việc chế tạo một chiếc quadcopter quy mô nhỏ. PIC32 và phần cứng có thể truy cập khác có thể hỗ trợ hoạt động bay cơ bản. Mình cũng xây dựng hệ thống liên lạc cho máy bay không người lái và trạm mặt đất. Những hạn chế về thời gian khiến Mình không thể đạt được một mục tiêu ban đầu là làm cho máy bay không người lái bay lơ lửng trong một thời gian xác định và vẫn còn chỗ để cải thiện hiệu suất bay của quadcopter.

Video Thiết kế Mạch cân bằng quadcopter

CDK - CĐ Văn Hóa Nghệ Thuật Và Du Lịch Nha Trang

Trường Cao đẳng Văn hóa Nghệ thuật & Du lịch Nha Trang CDK chính thức được thành lập. Năm 2005, nhà trường được vinh dự đón nhận phần thưởng cao quý của Nhà nước : Huân chương Lao động Hạng Ba.

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button