Con quay hồi chuyển (Gyroscope) hoạt động dựa trên nguyên lý bảo toàn moment của một vật thể chuyển động quay khi tổng các lực tác dụng lên vật triệt tiêu.
Đối với cấu tạo dạng đĩa tròn ta có thể tính được moment quán tính của đĩa trong hệ tọa độ đặt tại tâm đĩa và các trục quanh tương ứng với các trục quay của gimbal. Lưu ý là trong cấu tạo của gyro cơ, trọng tâm của đĩa xoay phải trùng với trọng tâm của hệ gyro gimbal.
Trong quá trình hoạt động, nếu như trạng thái của hệ thống thay đổi, thì các gimbal có thể chuyển động quay quanh trục, nhưng mà đĩa gyro vẫn giữ nguyên phương hướng của trục quay, và giữ trạng thái ổn định trong không gian quán tính. Còn góc quay của các gimbal có thể đo được bằng các thiết bị đo góc gắn liền với trục quay của gimbal, các thiết bị này được gọi bằng thuật ngữ pickoff.
Số lượng gimbal trong cấu tạo của gyro quy định số bậc tự do chuyển động quay của gyro. Ví dụ như gyro có hai bậc tự do thì có cấu tạo gồm có hai gimbal. Nếu trục quay của một gyro hai bậc tự do là thẳng đứng thì nó được gọi là gyro thẳng đứng (vertical gyro), còn nếu như trục quay nằm trong mặt phẳng nằm ngang thì gọi là gyro định hướng (directional gyro), còn một gyro có trục quay không theo một
phương cụ thể nào thì gọi là gyro tự do (free gyro). Sựổn định trong không gian ba chiều đòi hỏi một gyro thẳng đứng và một gyro định hướng, hoặc là hai gyro tự do. Một loại gyro cơ có tầm ứng dụng rộng rãi là gyro một bậc tự do, tức là cấu tạo chỉ
gồm một gimbal quay quanh trục mà thôi, loại gyro này thường được gọi là intergrating rate gyro.
Gyro cơ là loại gyro truyền thống, có độ chính xác cao, và được ứng dụng nhiều trong hệ thống dẫn đường của tên lửa hay tàu ngầm. Gyro cơ có chức năng chủ yếu là
ổn định phương hướng chuyển động của hệ thống. Gyro cơ chủ yếu được sử dụng trong hệ gimbaled INS bởi vì kết cấu cơ khí rất phù hợp. Hầu hết các hệ thống INS
đều sử dụng kết hợp ba cảm biến gyro loại rate intergrating một bậc tự do để ổn định phương hướng trong không gian.
2.2.2.2. Cảm biến gia tốc
Cảm biến gia tốc thường được ứng dụng trong việc xác định gia tốc trọng trường. Tùy theo số trục của cảm biến mà tín hiệu đọc về sẽ là hình chiếu của gia tốc trọng trường trên từng trục tọa độ tương ứng.
Gia tốc trọng trường tại một điểm là không thay đổi do đó khi cảm biến quay thì các trục tọa độ cũng quay theo, khi đó hình chiếu của gia tốc trọng trường lên các trục tọa độ cũng thay đổi. Từđó ta có thể xác định được góc nghiêng của cảm biến và góc mà cảm biến đã quay đi so với vị trí trước đó.
Giá trị đọc về của các cảm biến gia tốc thường tính theo đơn vị “g” là đơn vị của gia tốc trọng trường. Khi tính toán góc nghiêng chia cho nhau sẽ mất đi đơn vị “g”, vì vậy kết quảđo góc không phụ thuộc vào gia tốc trọng trường.
2.2.2.3. Cảm biến gia tốc và vận tốc góc trong MPU6050 a. Giới thiệu cảm biến MPU6050 a. Giới thiệu cảm biến MPU6050
MPU6050 là cảm biến phát hiện, xử lý chuyển động đầu tiên trên thế giới được tích hợp bộ cảm biến 6 trục và thuộc sở hữu của MotionFusion™. Cảm biến này
được sử dụng vào những thiết bị cầm tay, ứng dụng trong máy tính bảng, và các thiết bị tiêu dùng khác. MPU6050 được nhúng con quay hồi chuyển 3 trục vi cơ điện tử
(MEMS), một cảm biến gia tốc MEMS 3 trục và một bộ xử lý tín hiệu số với giao tiếp I2C.
MPU6050 có 3 bộ ADC 16 bit để chuyển đổi tín hiệu tương tự sang tín hiệu số
các kết quả ngõ ra của con quay hồi chuyển và 3 bộ ADC để chuyển đổi tín hiệu tương tự sang số các kết quả ngõ ra của gia tốc. Để theo dõi chính xác cả chuyển
động nhanh và chậm, con quay hồi chuyển có thể lập trình với các mức đo ±2500, ±5000, ±10000 và ±20000/ sec (dps) và một gia tốc có thể lập trình với các mức đo ±2g, ±4g, ±8g và ±16g.
Hình 2.9. Cảm biến MPU6050
Linh hoạt trong việc cấp nguồn, MPU6050 hoạt động với điện áp VDD từ 2.37V
đến 3.46V. Ngoài ra MPU6050 cung cấp một chân điện áp tham chiếu VLOGIC, dùng trong thiết lập mức logic của giao tiếp I2C. Điện áp VLOGIC có thể là 1.8V±5% hoặc VDD.
b. Tính năng của cảm biến MPU6050
Cảm biến tốc độ góc ba trục trong MPU6050 có các tính năng sau:
- Cảm biến tốc độ góc (gyroscope) với ngõ ra là tín hiệu số. Người dùng có thể
lập trình chọn các mức đo ±2500, ±5000, ±10000 và ±20000/giây (dps)..
- Tích hợp ADC 16 bit cho phép lấy mẫu đồng thời các con quay hồi chuyển.
- Hiệu chỉnh độ nhạy.
Các tính năng của cảm biến gia tốc 3 trục trong MPU6050:
- Cảm biến gia tốc ba trục ngõ ra là tín hiệu số có thể lập trình các mức đo ±2g, ±4g, ±8g và ±16g.
- Tích hợp ADC 16 bit cho phép lấy mẫu đồng thời các con quay hồi chuyển.
Một số tính năng bổ sung trong MPU6050:
- Kết hợp chuyển động 6 trục bởi bộ xử lý chuyển động số tích hợp trên chip.
- Bus I2C để đọc dữ liệu từ các cảm biến bên ngoài.
- Dòng tiêu thụ 3.9mA khi tất cả chuyển động 6 trục.
Xử lý chuyển động.
- Xử lý chuyển động 3D .
- Thu thập dữ liệu từ những con quay hồi chuyển và gia tốc trong khi đồng bộ dữ
liệu lấy mẫu tại một mức đo do người dùng định nghĩa.
- Bộđệm FIFO 1024 Byte tích hợp trên MUP6050 giúp tiết kiệm điện năng bằng cách cho phép bộ vi xử lý đọc dữ liệu cảm biến trong sự truyền loạt và sau đó vào chếđộ công suất thấp như MPU thu thập nhiều dữ liệu hơn.
Bộ dao động
- Tùy chọn xung đồng hồ bên ngoài là 32.768kHz hoặc 19.2MHz.
c. Chiều hướng của cảm biến
Hình 2.10. Chiều của vận tốc góc và gia tốc góc của MPU6050 Khi ta đặt cảm biến vào quadrotor cần phải chính xác về vị trì đặt, chiều và hướng trên quadrotor.
d. Thông tin ứng dụng của MPU6050
Hình 2.11. Sơđồ khối của MPU6050
Cảm biến vận tốc góc trong MPU6050: MPU6050 có ba con quay hồi chuyển MEMS độc lập, phát hiện chuyển động xoay của ba trục X, Y, Z. Khi gyros được luân chuyển về bất kì trục nào, hiệu ứng Coriolis gây ra một sự rung động được phát hiện bởi một pickoff điện dung. Tín hiệu kết quảđược khuếch đại, giải điều chế và lọc để tạo ra một điện áp tỉ lệ với tốc độ góc. Điện áp này được bộ ADC 16bit trên chip lấy mẫu mỗi trục. Giai đo của các bộ cảm biến con quay hồi chuyển có thể lập trình đến ±250, ±500, ±1000, or ±2000 độ/giây. Tốc độ lấy mẫu của bộ ADC có thể
lập trình đến 8000 mẫu/giây, và người dùng có thể lập trình lựa chọn các bộ lọc thông thấp cho phép 1 loạt các tần số cắt.
Cảm biến gia tốc 3 trục kiểm tra riêng biệt cho mỗi trục: Gia tốc dọc theo mỗi trục gây ra sự dịch chuyển trên mỗi trục tương ứng, và cảm biến điện dung phát hiện các chuyển vị khác biệt. Khi thiết bị được đặt trên một bề mặt bằng phẳng, nó sẽ
cho kết quả 0g trên trục X và trục Y, trục z sẽ là 1g. Mỗi cảm biến sử dụng một bộ
ADC để chuyển đổi kết quả thành tín hiệu số. Các cảm biến có giai đo có thể lập trình thay đổi ±2g, ±4g, ±8g, or ±16g.
e. Sơđồ chân cảm biến
Hình 2.12. Sơđồ chân MPU6050 Chức năng của một số chân trong MPU6050:
* Chân 23 (SCL/SCLK) : Xung Clock của truyền thông nối tiếp I2C (SDA) hoặc SPI (SDI).
* Chân 24 (SDA/SDI) :
+ Dữ liệu truyền thông nối tiếp kiểu I2C (SDA). + Dữ liệu truyền thông nối tiếp kiểu SPI (SDI).
f. Sơđồ mạch để MPU6050 hoạt động
2.2.2.4. Xác định góc nghiêng từ cảm biến MPU6050
Hai giá trị quan trọng cần đọc từ cảm biến MPU6050 là gia tốc và vận tốc góc. Theo cách đơn giản từ gia tốc ta tính được góc nghiêng tương ứng và từ vận tốc góc chúng ta xác định được tốc độ thay đổi của góc nghiêng (hình 2.13) thậm chí góc nghiêng được tính từ vận tốc góc (hình 2.10) theo công thức:
Góc nghiêng = giá trị vận tốc góc x thời gian lấy mẫu
Nghĩa là chúng ta có thể tính được góc nghiêng từ cả hai giá trị gia tốc và vận tốc góc.
Hình 2.14. Xác định góc nghiêng và vận tốc góc theo gia tốc và vận tốc góc
Hình 2.15. Xác định góc nghiêng và vận tốc góc riêng biệt theo vận tốc góc
Cách tính góc nghiêng từ gia tốc
Nhưng vấn đề nảy sinh ở đây là góc nghiêng tính được từ giá trị gia tốc và góc nghiêng tính được từ giá trị vận tốc góc thường có sự chênh lệch nhau. Hơn nữa vận tốc góc từ cảm biến là vận tốc tức thời, tức không duy trì và bằng không khi cảm biến
không di chuyển, còn gia tốc là gia tốc tĩnh, duy trì giá trị khi cảm biến ở một vị trí nào đó.
Hình 2.16. Cách tính góc nghiêng từ gia tốc
Do đó, chúng ta cần xác định góc nghiêng từ cả giá trị gia tốc và vận tốc góc từ
cảm biến để thu được kết quả chính xác.
Hình 2.17. Mô tả cách xác định góc nghiêng khi kết hợp gia tốc và vận tốc góc Vấn đề tiếp tục nảy sinh là bằng cách nào chúng ta có thể kết hợp giá trị gia tốc và vận tốc góc để xác định góc nghiêng. Cũng lưu ý rằng việc tìm góc nghiêng từ
những dữ liệu thu được từ cảm biến MPU6050, cụ thể ở đây là các giá trị gia tốc và vận tốc góc, rất nhạy và chịu ảnh hưởng bởi nhiễu rất lớn. Môi trường đặt cảm biến càng mất ổn định thì góc nghiêng thu được càng sai lệch nhiều. Đối với môi trường là mô hình tự cần bằng thì điều này rất dễ nhận thấy, góc nghiêng thu được bị sai lệch rất lớn do dao động của máy bay. Góc nghiêng thu được có sai số rất lớn khi chỉ đơn
thuần tính góc nghiêng từ những dữ liệu đọc được từ cảm biến. Do đó, cần áp dụng một giải thuật tối ưu để tính toán góc nghiêng được chính xác.
2.2.2.5. Giao tiếp với MPU6050 bằng I2C
I2C là một loại bus giao tiếp ngoại vi được phát triển bới hãng Philips, thường
được sử dụng để điều khiển nhiều thiết bị điều khiển khác được bố trí trong các khối mạch tương đối xa nhau. I2C là giao tiếp nối tiếp thực hiện trên hai đường dây: Clock (SCL) và Data (SDA) giữa Master và Slave.
Hình 2.18. Kết nối giữa Master và các Slave
+ Master: Là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL.
+ Slave: Là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu từ
Master.
+ SDA - Serial Data: Là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ liệu đều được truyền trên đường này theo thứ tự từng bit một
+ SCL - Serial Clock: Là đường giữ nhịp nối tiếp. I2C là chuẩn truyền thông nối tiếp
đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy mẫu (sample).
Hình 2.19. Trạng thái lấy mẫu một bit dữ liệu trên SDA Dữ liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ở mức cao trong một chu kỳ giữ nhịp, vì thế đường SDA không được đổi trạng thái khi SCL ở mức
cao (trừ Start và Stop condition). Chân SDA có thể được đổi trạng thái khi SCL ở
mức thấp.
+ Các tín hiệu Start và Stop:
SDA = SCL = HIGH: Bus I2C ở trạng thái “Free” sẵn sàng cho một giao tiếp.
Điều kiện Start: SDA ↓ và SCL = HIGH.
Điều kiện Stop: SDA ↑ và SCL = HIGH.
Cả hai điều kiện Star và Stop đều được tạo ra bởi Master. Sau tín hiệu Start, bus I2C
ở trạng thái “busy” thực hiện tác vụ truy xuất nối tiếp. Sau Stop bus I2C ở trạng thái “free” cho lần kế tiếp.
+ Định dạng dữ liệu truyền:
Dữ liệu được truyền trên bus I2C theo từng bit tại mỗi cạnh lên của xung Clock (SCL).
Hình 2.20. Tín hiệu xung SCL và SDA
Sự thay đổi bit dữ liệu trên SDA xảy ra khi SCL đang ở mức thấp. số lượng byte có thể truyền trong một lần tùy ý, tối đa là 128 bytes. Bit MSB sẻ được truyền trước. Sau 8 xung clock 8 bit dữ liệu đã được truyền đi, thiết bị nhận sẽ khéo SDA xuống mức thấp tương ứng với một bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc.
+ Định dạng địa chỉ thiết bị:
Mỗi thiết bị ngoại vi tham gia vào bus I2C đều có địa chỉ duy nhất, có độ dài là 7 bit như vậy trên một bus I2C ta có thể phân biệt tối đa 128 thiết bị. Byte đầu tiên được gửi từ master sẻ bao gồm 7 bit chỉ và bit thứ 8 gọi là bit R/W.
Bit R/W = 0 : Ghi dữ liệu từ Master vào Slave. Bit R/W = 1 : Đọc dữ liệu từ Slave .
+ Sau đây là khung truyền và đọc dữ liệu
Đọc byte đơn
Hình 2.21. Đọc byte đơn
Đọc nhiều byte
Hình 2.22. Đọc nhiều byte Truyền byte đơn
Hình 2.23. Truyền byte đơn Truyền nhiều byte
Hình 2.24. Truyền nhiều byte Trong đó:
- S là start SDA xuống thấp trong khi SCL đang ở mức cao.
- AD là địa chỉ của slave.
- W là bit write (0).
- R là bit read(1).
- ACk bit xác nhận đã nhận dữ liệu.
- RA địa chỉ chứa dữ liệu của slave.
- DATA dữ liệu được truyền hoặc nhận.
2.2.2.6. Đọc dữ liệu từ cảm biến và hiển thị LCD
Hiển thị 5 dữ liệu (Goc_x , Goc_y, GYRO_X, GYRO_Y, GYRO_Z ) từ cảm biến MPU6050 bằng mạch vi điều khiển với chip atmega16 có gắn LCD để hiện thị.
+ Cảm biến nằm trên mặt phẳng ngang và mặt phẳng đứng
Hình 2.25. Cảm biến nằm trên mặt phẳng ngang và mặt phẳng đứng
Khi cảm biến nằm trên mặt phẳng ngang dữ liệu đọc về hiển thị lên LCD như sau :
Goc_x = 0 Goc_y = 0
GYRO_X = 0 GYRO_Y = 0 GYRO_Z = 0
Khi cảm biến đặt trên mặt phẳng đứng dữ liệu đọc về hiển thị lên LCD như sau : Goc_x = - 86 Goc_y = 3
GYRO_X = 0 GYRO_Y = 0 GYRO_Z = 0
+ Cảm biến nghiêng theo trục X
Hình 2.26. Cảm biến nghiêng theo trục X
Khi cảm biến nghiêng theo trục x và hướng về phía trước dữ liệu đọc về hiển thị lên LCD như sau :
Goc_x = - 32 Goc_y = 0 GYRO_X = 0 GYRO_Y = 0 GYRO_Z = 0
Khi cảm biến nghiêng theo trục x và hướng về phía sau dữ liệu đọc về hiển thị lên LCD như sau :
Goc_x = 32 Goc_y = -1 GYRO_X = 0 GYRO_Y = 0 GYRO_Z = 0
+ Cảm biến nghiêng theo trục Y
Khi cảm biến nghiêng theo trục y và hướng về phía trước dữ liệu đọc về hiển thị lên LCD như sau :
Goc_x = 1 Goc_y = 32
GYRO_X = 0 GYRO_Y = 0 GYRO_Z = 0
Khi cảm biến nghiêng theo trục y và hướng về phía sau dữ liệu đọc về hiển thị
lên LCD như sau :
Goc_x = - 45 Goc_y = 0 GYRO_X = 0 GYRO_Y = 0 GYRO_Z = 0
2.2.3. Hệ thống điều khiển từ xa
2.2.3.1. Giới thiệu chung
Với khoảng cách truyền nằm trong khoảng 50m thì truyền thông không dây bằng sóng radio (RF) là phù hợp nhất và gia thành hợp lý. Bộ thu phát tín hiệu RF có vai trò hết sức quan trọng trong điều khiển quadrotor, nó phát và thu tín hiệu lệnh cho quadrotor bay lên, hạ xuống, quay theo trục z, di chuyển trái, phải, trước, sau.