"Register 0x31 — DATA_FORMAT" içine gerçekte hangi değeri depoladınız?
Bu kayıt defterinde hiçbir şey saklamadığınızı varsayacağım , bu yüzden hala sıfırlama değerinde. Başka bir deyişle, veri toplarken ( ADXL345 veri sayfasının Tablo 16'sından ve sayfa 17'sinden ):
- Kayıt 0x31 — DATA_FORMAT == 00.
- FULL_RES == 0. Böylece cihaz 10 bit modunda ve aralık bitleri maksimum g aralığı ve ölçek faktörünü belirler.
- Yaslama Biti == 0. İşaret uzantısına sahip doğru yaslanmış mod.
- Aralık Bitleri == 00. Yani + - 2g aralığı.
Yapacağım ilk şey, ivmeölçerden okunan orijinal 16 bit değerlerini kurtarmak. (yani, orijinal verileri dikkatsizce fırlattıysam ve kalan tek şey, bazı ofset çıkartılarak ve bazı yanlış ölçek faktörüyle çarpılarak hesaplanan "g" birimlerindeki sayılarsa, toplanan verileri bir elektronik tabloyu ekleyin ve aynı (yanlış) ölçek faktörüne bölün ve ardından orijinal değerlere yakın bir şeyi kurtarmaya çalışmak için bu ofseti ekleyin).
Sonra verileri grafiğe alırdım ve "doygunluk", "doğrusal" veya "devrilme" (daha önce açıklandığı gibi) gibi görünüp görünmediğini görüyorum.
Veri sayfası, sensör 2 g'dan daha yüksek bir hızlanma yaşadığında ne olacağına dair belirsiz bir şekilde belirsizdir.
teğetsel rant
Teknik yazarlar pasif sesle yazmakta ısrar ettiğinde bana ne kadar sinir bozduğunu söyledim mi? Yazar alıntıladığınız cümlede pasif sesi kullandığında,
"Fareyle üzerine gelmekten kaçınmak için ± 16 g aralığı hariç tüm veriler kırpılmalıdır." (sayfa 17)
Bu kırpmayı tam olarak kimin yapması gerektiğini söyleyemem.
Birçok kişi aktif sesi kullanmanızı önerir . Bu öneriyi takip ettiğimde, metnim genellikle kimin ne yaptığını daha net. İnsanların "daha profesyonel" veya "daha akademik" düşünme seslerine kandırıldıkları bir stili kullanmak yerine , anlaşılması daha kolay şeyler yazarken daha iyi değil mi?
otomatik kırpma
En iyi tahminim ivmeölçerin otomatik olarak bu kırpmayı yapmasıdır.
doygunluk : İvme rampasını makul değerlerden yukarı doğru görürseniz, gizemli bir şekilde bir platoya takılıp + 2g'de veya yakınında doyurulursa, ivmeölçer verileri sizin için "yararlı bir şekilde" kırpmıştır. Kırpmadan sonra, "üst" değer artık "+ 2g'ye çok yakın bir ivmeyi" göstermez, ancak şimdi "en az 2g ve muhtemelen çok daha fazla bir ivmeyi gösterir - söylemenin bir yolu yoktur".
10 bit sağa yaslanmış modda olduğu için, bu 16 bit değerleri normal 16 bit işaretli tamsayılar olarak yorumladığımda,
- 1.992 g'dan fazla gösteren 0x01FF = +511. Muhtemelen çok, çok daha fazlası.
- 510/256 g ~ = 1,992 g gösteren 0x01FE = +510
- 510/256 g ~ = 1.988 g gösteren 0x01FD = +509
- ...
- 1/0006 g = 0,0039 g gösteren 0x0001 = +1
- 0 g belirten 0x0000 = 0
- -1 / 256 g = 0,0039'u gösteren 0xFFFF = -1
- ...
- -510/256 = -1.992 g gösteren 0xFE02 = -510
- 0xFE01 = -511, -511/256 = -1,996 g gösterir
- 0xFE00 = -512, daha olumsuz bir şey gösterir -1.996 g. Muhtemelen çok, çok daha olumsuz.
(Evet, bu sensör için 4 ondalık basamak hassasiyetinin olmadığını biliyorum). (-511 veya -510 gibi bazı noktalarda doymuş bazı cihazlar gördüm. Genellikle verilere bakabilir ve gerçek doygunluk noktasını bulabilirim).
Bu kırpılmış veri kümesinden bazı yararlı verileri kurtarabilirsiniz . Örneğin, ivmenin kaç milisaniyenin en az 1,5 g olduğunu ölçmek için kullanabilirsiniz. Ne yazık ki, bu tür veri kümesindeki yaylaları gördüğünüzde, maksimum ivmeyi veya toplam dürtü ölçmek imkansız - yapabileceğiniz en iyi şey "demek, maksimum hızlanmanın en az 2g ve muhtemelen daha fazla olduğunu biliyoruz. ", ve hesapla" iyi, toplam dürtü en azından (bir şey) newton * saniye " olduğunu hesaplıyoruz ".
alternatifleri
İvmeölçerin verilerden kırpma yapıp yapmadığını anlamak mümkün olmalıdır. ("Doygunluk", "doğrusal" ve "devrilme" yi rampa yukarı olarak tanımladım - bazı veri kümelerinde bunun yerine rampaya bakmak daha açık olabilir).
doğrusal : Eğer hızlanma rampasını makul değerlerden yukarı doğru görürseniz, daha yüksek değerlere (512'nin üzerindeki veya -512'den daha fazla olan değerler) kadar rampa etmeye devam ederseniz, şanssızsınız - ivmeölçer aslında herhangi bir kırpma yapmadı ve tüm aralık boyunca geçerli verileriniz var.
devrilme : Hızlanma rampasını makul değerlerle görürseniz ve +2 g'a ulaşmadan hemen önce, -2 g yakınında fiziksel olarak gerçekçi olmayan bir değere atlar ve daha sonra hızlanmaya devam eder - muhtemelen sıfıra, ardından tekrar + 2g'ye yaklaşın ve tekrar -2 g'ye geri atlayın - o zaman yuvarlanma sargısına sahipsiniz. Şanslıysanız, değerler son derece yumuşak bir şekilde değişir, bu da her bir devreyi tespit etmeyi ve bu değerleri gerçek g kuvvetini kurtarmak için "paketini açmayı" mümkün kılar .
ps: Açık Devreler: Roket Bilgisayar düzenlemek için çekinmeyin .