Nilai apa yang sebenarnya Anda simpan ke "Daftarkan 0x31 — DATA_FORMAT"?
Saya akan menganggap Anda tidak menyimpan apa pun ke dalam register itu, jadi masih dalam nilai reset-nya 00. Dengan kata lain, saat Anda sedang mengumpulkan data (dari Tabel 16 dan juga halaman 17 dari lembar data ADXL345 ):
- Daftarkan 0x31 — DATA_FORMAT == 00.
- The FULL_RES == 0. Jadi perangkat dalam mode 10-bit, dan bit rentang menentukan rentang g dan faktor skala maksimum.
- The Justify Bit == 0. Jadi mode justified dengan ekstensi sign.
- Rentang Bit == 00. Jadi + - rentang 2g.
Hal pertama yang akan saya lakukan adalah memulihkan nilai 16 bit asli saat dibaca dari accelerometer. (yaitu, jika saya dengan sembarangan membuang data asli, dan yang tersisa adalah angka dalam satuan "g" yang dihitung dengan mengurangi offset dan dikalikan dengan faktor skala yang salah, saya akan menyalin data yang dikumpulkan ke dalam spreadsheet dan bagi dengan faktor skala yang sama (tidak benar) lalu tambahkan offset itu untuk mencoba memulihkan sesuatu yang mendekati nilai asli).
Kemudian saya akan membuat grafik data dan melihat apakah itu lebih mirip "saturasi", "linear", atau "roll-over" (seperti dijelaskan di bawah).
Lembar data secara kabur tidak jelas tentang apa yang terjadi ketika sensor mengalami akselerasi lebih dari 2 g.
kata-kata kasar tangensial
Apakah saya memberi tahu Anda betapa jengkelnya saya ketika para penulis teknis bersikeras untuk menulis dengan suara pasif? Ketika penulis menggunakan suara pasif dalam kalimat yang Anda kutip,
"Semua data, kecuali untuk rentang ± 16 g, harus dipotong untuk menghindari rollover." (halaman 17)
Saya tidak tahu siapa yang seharusnya melakukan kliping ini.
Banyak orang merekomendasikan menggunakan suara aktif . Ketika saya mengikuti rekomendasi itu, teks saya biasanya lebih jelas tentang siapa melakukan apa. Bukankah lebih baik ketika saya menulis hal-hal yang lebih mudah dipahami , daripada menggunakan gaya yang orang-orang telah tertipu untuk berpikir suara "lebih profesional" atau "lebih ilmiah"?
kliping otomatis
Dugaan terbaik saya adalah bahwa accelerometer secara otomatis melakukan kliping ini.
saturasi : Jika Anda melihat peningkatan percepatan melalui nilai-nilai yang masuk akal, kemudian secara misterius terjebak di dataran tinggi, jenuh pada atau dekat + 2g, maka accelerometer "membantu" memotong data untuk Anda. Setelah memotong, nilai "atas" tidak lagi menunjukkan "akselerasi yang sangat dekat dengan + 2g", tetapi sekarang menunjukkan "akselerasi setidaknya 2g, dan mungkin jauh, lebih banyak lagi - tidak ada cara untuk mengatakan".
Karena itu dalam mode 10-bit benar, ketika saya menafsirkan nilai-nilai 16 bit sebagai bilangan bulat ditandatangani 16 bit normal, saya berharap untuk melihat nilai mulai dari
- 0x01FF = +511, menunjukkan lebih dari 1.992 g. Mungkin jauh lebih banyak.
- 0x01FE = +510, menunjukkan 510/256 g ~ = 1,992 g
- 0x01FD = +509, menunjukkan 510/256 g ~ = 1.988 g
- ...
- 0x0001 = +1, menunjukkan 1/256 g = 0,0039 g
- 0x0000 = 0, menunjukkan 0 g
- 0xFFFF = -1, menunjukkan -1/256 g = 0,0039
- ...
- 0xFE02 = -510, menunjukkan -510/256 = -1,992 g
- 0xFE01 = -511, menunjukkan -511/256 = -1,996 g
- 0xFE00 = -512, menunjukkan sesuatu yang lebih negatif -1,996 g. Mungkin jauh, jauh lebih negatif.
(Ya, saya tahu bahwa 4 tempat desimal presisi tidak beralasan untuk sensor ini). (Saya telah melihat beberapa perangkat jenuh di beberapa titik lain, seperti -511 atau -510. Saya biasanya dapat melihat data dan mencari tahu titik jenuh yang sebenarnya).
Anda dapat memulihkan beberapa data berguna dari kumpulan data yang terpotong ini. Anda dapat menggunakannya untuk mengukur, misalnya, berapa milidetik percepatan setidaknya 1,5 g. Sayangnya, ketika Anda melihat dataran tinggi dalam kumpulan data semacam ini, tidak mungkin untuk mengukur percepatan maksimum atau total impuls - yang terbaik yang dapat Anda lakukan adalah mengatakan, "baiklah, kami tahu bahwa percepatan maksimum setidaknya 2g dan mungkin lebih ", dan menghitung" dengan baik, kami menghitung bahwa total impuls setidaknya (sesuatu) newton * detik ".
alternatif
Seharusnya dimungkinkan untuk mengetahui apakah accelerometer tidak terpotong atau tidak dari data. (Saya telah menjelaskan "saturasi", "linear", dan "roll-over" dalam hal ramp up - dengan beberapa set data, mungkin lebih jelas untuk melihat ramp down sebagai gantinya).
linier : Jika Anda melihat peningkatan percepatan melalui nilai yang masuk akal, kemudian lanjutkan meningkatkan ke nilai yang lebih tinggi (nilai di atas 512, atau lebih negatif dari -512), maka Anda beruntung - accelerometer tidak benar-benar melakukan kliping, dan Anda memiliki data yang valid melalui seluruh jajaran.
roll-over : Jika Anda melihat peningkatan akselerasi melalui nilai-nilai yang masuk akal, dan tepat sebelum +2 g, itu langsung melompat ke nilai non-fisik-realistis dekat -2 g dan kemudian terus meningkat - mungkin terjadi melalui nol, kemudian mendekati + 2g lagi, dan melompat kembali ke dekat -2 g lagi - maka Anda memiliki roll-over wrap-around. Jika Anda beruntung, nilainya berubah sangat lancar, sehingga memungkinkan untuk mendeteksi setiap rollover dan "membuka" nilai-nilai ini untuk memulihkan kekuatan g yang sebenarnya.
ps: jangan ragu untuk mengedit Open Circuits: Rocket Computer .