RC Servo (tt)
E đang làm cái toy sử dụng cảm biến gia tốc MMA7260Q của Thiên Minh để điều khiển servo, đại khái là nghiêng bên nào thì servo sẽ nghiêng theo. code cơ bản như sau:
Code:
#include <16F877A.H> 1/Theo tính toán thì chu kì Timer0 sẽ là TIMER0 period = [((255 - 241) + 1)] x 4 x 1/4000000 x 2 = 0.00003 second = 0.03 ms khi đó biến top_value sẽ nằm trong khoảng 601-634 để có độ rộng xung là 1ms-2ms nhưng thực tế e phải sử để top_value trong khoảng 642-658 thì mới điều khiển được con servo, e muốn hỏi có phải do chất lượng linh kiện là ảnh hưởng tới xung nhịp của PIC (e đã thử với các chu kỳ TIMER0 khác, cả theo y chang hướng dẫn trên website khác nhưng vẫn phải thay đổi giá trị top_value một chút mới điều khiển chuẩn được) hay do code e sai chỗ nào? 2/E xài con RC servo TowardPro MG946R (tháo ra từ con xe RC của e) nhưng không điều khiển được góc quay 180 (chỉ được 160), cái này có phải do thiết kế của Servo không? 3/E chỉ có thể giảm TIMER0 xuống 0,03ms là hết cỡ, giảm nữa mạch chạy o chuẩn (chắc do ngắt xảy ra liên tục nên không đủ thời gian thực hiện các lệnh khác), cho nên độ phân giải của Servo chỉ được 658-642=16 bước, quá bèo để Servo chạy mịn màng như Comfort. E định thay con thạch anh 20MHz để giảm thời gian xung lệnh, nhưng không biết nó có đúng như e nghĩ không (e không có căn bản về điện tử, nên toàn đoán mò) hơn nữa nếu đúng thì cũng không cải thiện được bao nhiêu. Nên mọi người cho e giải pháp khác, có thể đổi sang con vi xử lý khác mạnh hơn chăng? 4/Khả năng đáp ứng của mạch khá chậm (thật ra là rất chậm, nói khá chậm để tự an ủi mình thôi), e biết là do code e viết còn gà lắm + do tốc độ xử lý của PIC. Nên ae có thể cho e một định hướng (về sử dụng vi xử lý gì, code theo hướng nào) để e có thể nghiên cứu tiếp, chứ nghiên cứu lan man mất thời gian lắm. E có đọc bài viết nói về code cho cảm biến gia tốc phải qua bộ lọc Kalman gì đó, mà đọc về bộ lọc Kalman thấy toàn nói về đạo hàm, tích phân, mấy cái đó giờ chắc nó quên e mất rồi, :(. 5/Cuối cùng e muốn hỏi con cảm biến gia tốc nó khác cảm biến gyro chỗ nào vậy, ae nào có thể giải thích một cách mộc mạc dễ hiểu dùm e, chứ nghe mấy từ thuật ngữ con quay hồi chuyển, hồi tiếp, hồi sức e chả hiểu mô tê gì. Đầu năm hỏi nhiều quá :). Chúc cả nhà năm mới hạnh phúc với picvietnam.com. |
Sao o ai giúp em hết vậy trời. Chắc phải tự thân vận động tiếp, hix!
|
Múi giờ GMT. Hiện tại là 07:10 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam