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

dang.123456

Học sinh phổ thông
#11
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á :\
uhm... vì con 16F877A mạnh quá nên mình chỉ có thể làm vậy thôi... còn Y và Z sẽ viết tương tự... ^^" nhưng nếu bạn add thêm Y vào chẳng hạn.. :::^^::: thì ROM, RAM gì nó cũng tràn hết trụi... ^^"
 

dang.123456

Học sinh phổ thông
#12
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
Nhìn thấy thông số của mấy con này uki quá.. mà bạn có biết chỗ nào bán outport sẵn cho mấy con này hông.. ^^" mỗi lần thay đổi con vi điều khiển khác là mình oải cái màn đi vẽ Orcad, ủi mạch, hàn linh kiện 8-|
 

tranthonghuy

Học sinh phổ thông
#14
Đâ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 ^^~
Ư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 )
you có thể giải thích mình 2 câu lệnh:
#use TIMER(TIMER=1, TICK=1ms, BITS=16, NOISR)
timer = get_ticks();
trong ccs c mình đâu thấy có câu lệnh này: #use TIMER(TIMER=1, TICK=1ms, BITS=16, NOISR)
 

dang.123456

Học sinh phổ thông
#15
you có thể giải thích mình 2 câu lệnh:
#use TIMER(TIMER=1, TICK=1ms, BITS=16, NOISR)
timer = get_ticks();
trong ccs c mình đâu thấy có câu lệnh này: #use TIMER(TIMER=1, TICK=1ms, BITS=16, NOISR)
^^" bạn đọc lại những dòng gần cuối bài viết của mình nha...
 

tre_trau

Học sinh phổ thông
#16
mình chưa hiểu nguyên lí đo góc của con này... bạn có thể nói rõ hơn về phần tính toán quy đổi góc cho mình được không bạn. Xin lỗi vì đã làm bạn mất time và thanks. :-(||>
 

sun1211

Kỹ sư
#17
Nhìn thấy thông số của mấy con này uki quá.. mà bạn có biết chỗ nào bán outport sẵn cho mấy con này hông.. ^^" mỗi lần thay đổi con vi điều khiển khác là mình oải cái màn đi vẽ Orcad, ủi mạch, hàn linh kiện 8-|
Dòng PIC mới này được tích hợp sẳn trên 1 board, được giới thiệu trong hội thảo mấy diển ra mấy ngày trước , có thể mua với giá 400k(giả thực hơn 1 chai nếu ship ngoài)
Mình chém thế thôi, chứ mình dùng mấy dòng 18f hay dsPIC30F, hay dsPIC33f chắc đủ rồi.
Xài dòng mới này source từ hãng còn ít, nó khuyến khích mình dùng test lổi cho nó chứ làm gi.
 

hongbme

Học sinh phổ thông
#18
mình cũng chưa bao h ép kiểu data cho con 16f, vì đơn giản như phép ép kiểu float(5/4), máy tính sẽ ra 1,25, nhưng trên con pic16f (khối ALU) nó hiểu là (5 mod 4)=1 (vì ko có FPU, có trên 1 số đời chip cao hơn), còn dữ liệu thô nhận từ 6050 được số hóa 16 bít(MPU6050 có bộ adc 16bit), định dạng khung truyền (ví dụ byte1 là phần nguyên ,byte 2 là phần thập phân...byteN,) nên hiển thị 16x2 đơn thuần là dạng char do người dùng biểu diễn, ko liên quan đến bản chất giá trị biến.
P/S: trường hợp muốn tính số tới 1/100 hay 1/1000 trên MCU 8bit có cách rất đơn giản :D
 

themanh

Học sinh trung cấp
#19
chào bạn, mình có đang tìm hiểu về xe hai bánh tự cân bằng có dùng con cảm biến này, mình dùng con atmega32 liệu có đủ đáp ứng được không nhỉ
 

Quảng cáo Google