PDA

View Full Version : Cảm biến Gyro


motu
27-04-2011, 08:31 PM
Theo những gì e đọc được trên mạng thì cảm biến Gyro sẽ cho ta vận tốc góc quay, sau khi thu được các giá trị này thì mình sẽ dùng thuật toán gì để xác định góc quay, có vận tốc nhưng làm sao xác định thời gian t để tính toán góc quay. Ae nào từng chơi gyro hướng dẫn e với, càng chi tiết càng tốt, e hơi bị gà. Thk cả nhà đã đọc bài.

lead_inovation
04-06-2011, 10:50 AM
Hi Motu,

Bạn đã có một số hiểu biết nhất định với cảm biến Gyro rồi đó. Về mặt lý thuyết, khi biết vận tốc góc ta hoàn toàn có thể tính được góc bằng cách lấy tích phân nó.
Trước khi trả lời câu hỏi của bạn, có 2 khái niệm bạn cần nắm:
1. Bias - tạm dịch là điểm phân cực (hay còn gọi là điểm không, là khi vận tốc góc bằng không)
2. Drift - tạm dịch là trôi, là khi điểm không(Bias) bị trôi (bạn cứ hình dung vấn đề là: khi vận tốc góc bằng không rồi, nhưng cảm biến GYRO vẫn trả về tín hiệu có giá trị khác không).

Như bạn thấy, vấn đề là khi vận tốc góc đã bằng zero, nhưng cảm biến vẫn trả tín hiệu khác không về, điều này làm sai lệch việc tính tích phân.

Để giải quyết vấn đề này thông thường người ta hay sử dụng kỹ thuật gọi là Data fusion (cái này hơi khó dịch, bạn cứ hiểu nôm na là kết hợp dữ liệu). trong trường hợp của bạn, để đơn giản bạn có thể sử dụng bộ lọc Kalman (Kalman Filter) bằng cách kết hợp với một cảm biến gia tốc 3 trục (3 axis accelerometer sensor) ước lượng được (estimate) hai góc nghiêng ROLL và PITCH(hai góc nghiêng trong mặt phẳng, bạn tìm hiểu thêm trên google nha, giải thích hơi dài dòng). Hoặc kết hợp với một cảm biến magnetic 3 trục để ước lượng được góc YAW.

Hy vọng giúp được bạn.

nguyenphuocho
06-06-2011, 05:32 PM
Tài liệu về Gyro cho các bạn đây. Được viết trên PIC 16F876.
Các bạn tìmhieeyu và thảo luận nhé

motu
07-06-2011, 01:45 PM
@nguyenphuocho: tài liệu của bạn đâu thấy đoạn code nào đâu.
@lead_inovation: Cám ơn bạn đã cho mình thêm một số kiến thức về gyro, bạn có thể nói cụ thể hơn chút được không, về vấn đề nhiễu thì mình chưa dám đụng tới vì tín hiệu thu được còn chưa biết xử lý ra sao? Theo mình tìm hiểu thì để xác định thời gian t thì giữa 2 lần đọc tín hiệu từ gyro mình ghi nhận giá trị của Timer để xác định thời gian t --> góc quay, không biết đúng không vậy???. Tuy nhiên trong diễn đàn về Quad này "www.kkmulticopter.com/index.php?option=com_content&view=section&id=12&Itemid=65" mình đọc một số code thì nó lấy thẳng tín hiệu từ gyro sử dụng để cân bằng, chẳng thấy tính toán thời gian quái gì, việc tính thời gian không cần thiết??? có thể sử dụng giá trị vận tốc để cân bằng Quad??? Bác nào đã lập trình với với gyro giải thích cho e với. Thk cả nhà. Chúc mọi người nghỉ hè vui vẻ :D.!

lead_inovation
11-06-2011, 09:37 AM
Hi Motu,

Vấn đề nhiễu thì không có gì khó cả, bạn chỉ cần sử dụng bộ lọc thông thấp (lowpass filter) cho tín hiệu từ gyro, accelerometer (nếu cảm biến là analog, bạn sử dụng RC filter, Tùy thuộc vào nhiễu mà bạn fine tune cho đúng, nếu quá lớn sẽ làm tín hiệu bị trễ).
@motu:
"Theo mình tìm hiểu thì để xác định thời gian t thì giữa 2 lần đọc tín hiệu từ gyro mình ghi nhận giá trị của Timer để xác định thời gian t --> góc quay, không biết đúng không vậy???"
-->cái này đúng. Nhưng bạn có thể fix-timer sau đó cứ mỗi lần timer tràn thì lấy mẫu (gọi là fix-time program ). Chương trình viết theo cách này sẽ đơn giản và dễ quản lý hơn.(đây cũng là cách trong diễn đàn bạn nói tới đã làm, mình đoán vậy. Mặc dù chưa review code).

Còn về trong diễn đàn mà bạn nói họ lấy thẳng tín hiệu để cân bằng thì vì 1 lý do khác:
Bản chất Gyro đo vận tốc góc, vận tốc góc lại bằng đạo hàm của góc. như vậy nếu sử dụng bộ điều khiển PID để điều khiển Quadrotor, họ có thể lấy thẳng giá trị Gyro làm đạo hàm của góc (D-term) ,tất nhiên phải Bias trước khi xài.

Còn trong trường hợp họ chỉ xài gyro để feed-back cho quadrotor thì người điều khiển phải liên tục điều khiển để giữ cân bằng cho quadrotor (để bù trừ Bias bị drift).

Hy vọng giúp được bạn,

maimeo
20-02-2012, 10:37 AM
các anh ơi, ai có tài liệu cảm biến gyro bằng tiếng việt không ạ, cho em xin với nhé
Ms.Thanh Mai

maimeo
20-02-2012, 10:38 AM
em cần cấu tạo
Nguyên lý hoạt động
Sơ đồ, chức năng.
Các sư huynh giúp em vói nha, cái này em cần tài liệu tiếng việt nhé,

motu
13-05-2012, 12:05 PM
Thk bác Lead_inovation nhiều, lâu không có thời gian dành cho điện tử, nay mới đọc bài viết của bác, e vẫn chưa hiểu lắm, để đọc từ từ sẽ hỏi bác tiếp.
Dạo này picvietnam.com sắp thành 5giay.com :_(

dajiang
27-05-2012, 07:56 AM
Chào các bạn , mình cũng đang tìm hiểu về con quay và muốn chia sẻ cùng mọi người một số kiến thức cơ bản về con quay mà mình biết .
Con quay về cơ bản được chia làm 2 loại : con quay 3 bậc tự do và con quay 2 bậc tự do.
Con quay 3 bậc tự do hiểu nôm na có nghiã nó có thể tự do quay theo 3 trục vuông góc vơí nhau ,nó có 1 tính chất đặc biệt , đó là tính chất giữ hướng cố định trong không gian quán tính khi không có momen lực nào tác dụng lên nó . Nhờ tính chất đặc biệt này mà ta có thể tính được góc nghiêng cuả các vật thể bay so với bề mặt Trái Đất ( góc ROLL và PITCH )
Con quay 2 bậc tự do có nghiã nó chỉ quay được xung quanh 2 trục vuông góc với nhau , ở con quay 2 bậc tự do không có tính chất đặc biệt giữ hướng cố định như con quay 3 bậc tự do .Con quay 2 bậc tự do có khả năng đo được vận tốc góc quay cuả một vật thể nào đó .
Về nguyên tắc để đo được vận tốc góc quay cuả một vật bạn có thể hiểu thế này , khi vật đó quay với vận tốc góc omega , sẽ có một momen ( goị là mômen con quay ) tác động lên con quay , con quay sẽ thay đổi vị trí ban đầu của mình và tiến theo đường gần nhất sao cho hướng của con quay trùng với hướng vận tốc góc quay . Ta có thể dùng một momen nào đó ( mà momen đó có thể tính được ) để cân bằng với momen làm con quay quay , từ đó có thể tìm ra vận tốc góc quay .
Đây là một số kiến thức cơ bản về con quay mà mình biết , còn thế nào để lấy tín hiệu ra từ cảm ứng gyro thì các bạn có thể viết chương trình tính toán trên máy tính là ok :D