Giá trị nào bạn thực sự lưu trữ vào "Đăng ký 0x31 Đập DATA_FORMAT"?
Tôi sẽ giả định rằng bạn không lưu trữ bất cứ thứ gì vào thanh ghi đó, vì vậy nó vẫn ở giá trị đặt lại là 00. Nói cách khác, trong khi bạn đang thu thập dữ liệu (từ Bảng 16 và trang 17 của biểu dữ liệu ADXL345 ):
- Đăng ký 0x31 DATA_FORMAT == 00.
- FULL_RES == 0. Vì vậy, thiết bị ở chế độ 10 bit và các bit phạm vi xác định phạm vi g và hệ số tỷ lệ tối đa.
- Bit Justify == 0. Vì vậy, chế độ hợp lý với phần mở rộng dấu hiệu.
- Phạm vi Bits == 00. Vì vậy, phạm vi + - 2g.
Điều đầu tiên tôi sẽ làm là khôi phục các giá trị 16 bit ban đầu khi đọc từ gia tốc kế. (nghĩa là, nếu tôi bất cẩn vứt bỏ dữ liệu gốc và tất cả những gì tôi còn lại là các số theo đơn vị "g" được tính bằng cách trừ một số bù và nhân với một số hệ số tỷ lệ không chính xác, tôi sẽ sao chép dữ liệu được thu thập vào một bảng tính và chia cho hệ số tỷ lệ tương tự (không chính xác) đó và sau đó thêm phần bù đó để cố gắng khôi phục một cái gì đó gần với giá trị ban đầu).
Sau đó, tôi sẽ vẽ biểu đồ dữ liệu và xem liệu nó trông giống như "bão hòa", "tuyến tính" hay "cuộn qua" (như được mô tả dưới đây).
Bảng dữ liệu mơ hồ một cách điên cuồng về những gì xảy ra khi cảm biến trải qua gia tốc lớn hơn 2 g.
tiếp tuyến
Tôi đã nói với bạn nó làm tôi khó chịu đến mức nào khi các nhà văn kỹ thuật khăng khăng viết bằng giọng bị động? Khi người viết sử dụng giọng bị động trong câu bạn đã trích dẫn,
"Tất cả dữ liệu, ngoại trừ phạm vi ± 16 g, phải được cắt bớt để tránh cuộn qua." (trang 17)
Tôi không thể biết chính xác ai là người phải làm việc này.
Nhiều người khuyên nên sử dụng giọng nói tích cực . Khi tôi làm theo những khuyến nghị đó, văn bản của tôi thường rõ ràng hơn về việc ai sẽ làm gì. Không phải là tốt hơn khi tôi viết những thứ dễ hiểu hơn , thay vì sử dụng một phong cách mà mọi người đã bị lừa để nghĩ âm thanh "chuyên nghiệp hơn" hoặc "học thuật hơn"?
tự động cắt
Dự đoán tốt nhất của tôi là gia tốc kế tự động thực hiện việc cắt này.
Độ bão hòa : Nếu bạn thấy gia tốc tăng vọt qua các giá trị hợp lý, sau đó bị kẹt một cách bí ẩn tại một cao nguyên, bão hòa ở mức hoặc gần + 2g, thì máy đo gia tốc "giúp đỡ" cắt dữ liệu cho bạn. Sau khi cắt, giá trị "trên cùng" không còn biểu thị "gia tốc rất gần + 2g", nhưng giờ chỉ ra "gia tốc ít nhất 2g, và có thể nhiều hơn nữa - không còn cách nào khác để nói".
Bởi vì nó ở chế độ hợp lý 10 bit, khi tôi diễn giải các giá trị 16 bit đó thành các số nguyên 16 bit được ký bình thường, tôi hy vọng sẽ thấy các giá trị khác nhau từ
- 0x01FF = +511, biểu thị hơn 1.992 g. Có thể nhiều, nhiều hơn nữa.
- 0x01FE = +510, biểu thị 510/256 g ~ = 1.992 g
- 0x01FD = +509, biểu thị 510/256 g ~ = 1.988 g
- ...
- 0x0001 = +1, biểu thị 1/256 g = 0,0039 g
- 0x0000 = 0, biểu thị 0 g
- 0xFFFF = -1, biểu thị -1/256 g = 0,0039
- ...
- 0xFE02 = -510, biểu thị -510/256 = -1,992 g
- 0xFE01 = -511, biểu thị -511/256 = -1.996 g
- 0xFE00 = -512, biểu thị điều gì đó tiêu cực hơn -1,996 g. Có thể xa, tiêu cực hơn nhiều.
(Có, tôi biết rằng 4 vị trí thập phân của độ chính xác là không chính đáng cho cảm biến này). (Tôi đã thấy một số thiết bị bão hòa ở một số điểm khác, chẳng hạn như -511 hoặc -510. Tôi thường có thể nhìn vào dữ liệu và tìm ra điểm bão hòa thực tế).
Bạn có thể khôi phục một số dữ liệu hữu ích từ tập dữ liệu bị cắt này. Bạn có thể sử dụng nó để đo, ví dụ, gia tốc bao nhiêu mili giây ít nhất là 1,5 g. Than ôi, khi bạn thấy các cao nguyên trong loại dữ liệu này, không thể đo được gia tốc tối đa hoặc tổng xung - điều tốt nhất bạn có thể làm là nói, "tốt, chúng tôi biết rằng gia tốc tối đa ít nhất là 2g và có lẽ nhiều hơn "và tính toán" tốt, chúng tôi tính toán rằng xung lực ít nhất là (một cái gì đó) newton * giây ".
lựa chọn thay thế
Có thể tìm ra liệu gia tốc kế có cắt hay không từ dữ liệu. (Tôi đã mô tả "bão hòa", "tuyến tính" và "cuộn qua" theo cách tăng tốc - với một số bộ dữ liệu, có thể rõ ràng hơn khi nhìn vào đoạn đường xuống thay thế).
tuyến tính : Nếu bạn thấy gia tốc tăng vọt qua các giá trị hợp lý, sau đó tiếp tục tăng tốc lên các giá trị cao hơn (giá trị trên 512 hoặc âm hơn so với -512), thì bạn đã may mắn - gia tốc kế thực sự không thực hiện bất kỳ thao tác cắt nào, và bạn có dữ liệu hợp lệ trong toàn bộ phạm vi.
roll-over : Nếu bạn thấy gia tốc tăng vọt qua các giá trị hợp lý và ngay trước khi nó đạt +2 g, nó sẽ ngay lập tức nhảy đến một giá trị phi thực tế gần -2 g và sau đó tiếp tục tăng lên - có thể sẽ tăng qua 0, sau đó tiếp cận + 2g một lần nữa và nhảy xuống gần -2 g lần nữa - sau đó bạn có cuộn quanh. Nếu bạn may mắn, các giá trị thay đổi cực kỳ trơn tru, giúp có thể phát hiện từng cuộn qua và "tháo gỡ " các giá trị này để phục hồi lực g thực sự.
ps: thoải mái chỉnh sửa Open Circuits: Rocket Computer .