Chia sẻ Đọc dữ liệu từ cảm biến MPU6050 dùng bộ lọc Kalman (code for PIC)

Thảo luận trong 'Robot'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

  1. dang.123456

    dang.123456 Học sinh phổ thông

    Tham gia ngày:
    31/3/13
    Bài viết:
    10
    Đã được thích:
    26
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Đây là một phần project môn học của mình. ^^" Và hiện mình cũng chưa hoàn thành 100% project này.
    Do đó code vẫn còn đang trong quá trình chỉnh sửa.
    Mong anh chị em đã xem qua sẽ đóng góp thêm nhiều ý kiến để project của mình có thể ngày càng hoàn thiện hơn. Cảm ơn anh chị em rất nhiều ^^~
    Snapshot_20140326_1.JPG
    Ưu điểm đạt được:
    Build code, đổ chạy. Không tốn công calib.
    Khi dùng thêm bộ lọc Kalman xử lý dữ liệu đọc về, thì góc xoay đọc được gần như không bị trôi. ^^

    Trong quá trình tiến đến hoàn thành project. Mình rất cảm ơn sự giúp đỡ nhiệt tình của các bạn
    Nguyễn Xuân Hảo
    Phan Đình Huy
    Vũ Trần Thành Công
    và đặc biệt là thầy Trương Quốc Toàn ^^~

    Code của mình biên dịch bằng PIC C Compiler ver 5.021
    Link download file: MPU6050_for_PIC_Complete
    Pass: ngotrankhanhdangbk

    ( ^^" ver 5.021 mình để lạc đâu mất rồi...
    các bạn có thể dùng tạm ver 5.xxx chắc cũng uki thôi he...
    5.015 Full )
     

    Các file đính kèm:

    Last edited: 28/3/14
    ha minh sang, BuiBachTuanAnh, mta_cdt14 others thích bài này.
  2. lon888

    lon888 Học sinh phổ thông

    Tham gia ngày:
    24/3/14
    Bài viết:
    5
    Đã được thích:
    0
    Điểm thành tích:
    1
    Mình cũng đang gặp rắc rối với cái MPU6050 này đây.
     
  3. lon888

    lon888 Học sinh phổ thông

    Tham gia ngày:
    24/3/14
    Bài viết:
    5
    Đã được thích:
    0
    Điểm thành tích:
    1
    Cho mình xin bản CCS 5.021 đi bạn :)
     
  4. hongbme

    hongbme Học sinh phổ thông

    Tham gia ngày:
    17/4/13
    Bài viết:
    19
    Đã được thích:
    4
    Điểm thành tích:
    3
    Giới tính:
    Nam
    con PIC gì mà hỗ trợ tính toán với floating point vậy em?
     
  5. dang.123456

    dang.123456 Học sinh phổ thông

    Tham gia ngày:
    31/3/13
    Bài viết:
    10
    Đã được thích:
    26
    Điểm thành tích:
    3
    Giới tính:
    Nam
    ^^" dạ.. con PIC siêu mạnh, siêu kinh điển 16F877A đó anh :v
    ^^" do nó mạnh quá nên em đang cố gắng lượt code or thay thế các phép tính toán khác nhẹ hơn.. =)) chứ chỉ mỗi đọc cảm biến mà nó chạy ì ạch rồi...
     
    DucThieu08, croket_2512hongbme thích bài này.
  6. hongbme

    hongbme Học sinh phổ thông

    Tham gia ngày:
    17/4/13
    Bài viết:
    19
    Đã được thích:
    4
    Điểm thành tích:
    3
    Giới tính:
    Nam
    8 bít, ko có FPU nên khi lưu float dạng 0.0004 thì pic nó ko thể tính dạng 0.0003x2=0.0006 đc, nên dùng con pic32 hoặc stm32
     
  7. lon888

    lon888 Học sinh phổ thông

    Tham gia ngày:
    24/3/14
    Bài viết:
    5
    Đã được thích:
    0
    Điểm thành tích:
    1
    Mình đọc code và thấy bạn mới tính kalmanX, còn Y và Z thì tương tự hay sao bạn? Mình sợ là không đủ RAM quá :\
     
  8. sun1211

    sun1211 Kỹ sư

    Tham gia ngày:
    7/4/13
    Bài viết:
    211
    Đã được thích:
    96
    Điểm thành tích:
    28
    Thế thì thay bằng dòng PIC mới ra đi
    dsPIC33E Products - Microchip Technology Inc
    , và con giá 1,86$ tham khảo R&P bán 67k

    dsPIC33EP32MC202 - 16-bit PIC® and dsPIC® Microcontrollers

    có đủ đồ chơi,có QEI đọc encoder , DMA , cảm ứng điện dung , xung clock cpu 70 MHZ , lõi DSP 1 lệnh 1 chu kỳ máy, hổ trợ hàm PID, sin cos, PWM có 6 kênh có deadtime lập trình được, chuyên điều khiển động cơ DC, 3 pha AC , brushless DC( động cơ xe đạp điện) , các chân có thể remap , ADC tốc độ cao, hiện tại việt nam chưa bán, có gì cứ mua ở đại lý của PIChttp://store.rpc.vn/index.php?route=product/search&search=dspic33ep32mc202
     
    quang_vi thích bài này.
  9. mroscar

    mroscar Học sinh phổ thông

    Tham gia ngày:
    4/5/13
    Bài viết:
    17
    Đã được thích:
    2
    Điểm thành tích:
    3
    Giới tính:
    Nam
    ban dang cho minh hoi cach ghi cac thong so len mpu 6050
     
  10. dang.123456

    dang.123456 Học sinh phổ thông

    Tham gia ngày:
    31/3/13
    Bài viết:
    10
    Đã được thích:
    26
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Anh hongbme bói trúng bệnh của em rồi đó.. ^^" vì bị ép chạy gần hết công suất ( em đang tham gia thêm 2 cái project khác cũng thú vị cỡ hơn như vầy :D ).. nên tuy em đã thấy cái lỗ hổng này từ lâu rồi.. =,= nhưng mà hông có time để ngâm cứu...
    Khi code trên C, C++, C#, Matlab,... ^^" khi cần tính toán chính xác em đều dùng đến ép kiểu.. test thì thấy nó chạy đúng.. còn cách thức, nguyên lý để ép kiểu dữ liệu như thế nào thì đến nay em vẫn chưa biết.. ^^"
    Còn với con PIC16F877A... chuyện này em cũng không để ý lắm.. ^^" quên mất nó chỉ có 8bit... @@ vậy mà tại sao lúc lấy dữ liệu thô.. nó xuất được LCD16x2 chạy sau dấu phẩy 8 chữ số vậy anh...
    ^^" à.. còn nữa.. a có tài liệu nào liên quan đến ép kiểu dữ liệu, cách thức tính toán các kiểu dữ liệu khác nhau của vi điều khiển hông anh.. :) em cần nó để lấp có lỗ này lại mới được.. hôm nào xui.. sụp phải cái lỗ này là chỉ có tiêu và tiêu thui...
     
    navypro1991 thích bài này.

Chia sẻ trang này