การกู้คืนข้อมูลจากเครื่องวัดความเร่งอิ่มตัว


10

ฉันมีaccelerometer ADXL345และติดตั้งกับจรวดไฮบริดเพื่อเปิดตัว น่าเสียดายที่ฉันลืมตั้งค่าช่วงจาก +/- 2g เป็น +/- 8g (เราคาดว่าจะได้ 6g ระหว่างการเปิดตัว)

สำหรับช่วง +/- 2g แผ่นข้อมูลแสดงรายการความละเอียดเอาต์พุต 10 บิตและสำหรับ +/- 8g จะแสดงรายการความละเอียด 12 บิต

ฉันสังเกตเห็นสิ่งนี้ในแผ่นข้อมูลที่ลิงก์ด้านบนภายใต้การDATA_FORMATลงทะเบียน (0x31):

การลงทะเบียน DATA_FORMAT ควบคุมการนำเสนอข้อมูลเพื่อลงทะเบียน 0x32 ผ่านการลงทะเบียน 0x37 ข้อมูลทั้งหมดยกเว้นว่าสำหรับช่วง +/- 16g จะต้องถูกตัดเพื่อหลีกเลี่ยงการโรลโอเวอร์ ( เน้นที่เหมือง )

จากคำสั่งนี้และแผนภาพบล็อกการทำงาน (เซ็นเซอร์ 3 แกนเชื่อมต่อกับ "อุปกรณ์อิเล็กทรอนิกส์สัมผัส" แล้วเชื่อมต่อกับ ADC) ฉันหวังว่าจะมีวิธีแก้ไขข้อมูลที่ถูกต้อง ตัวคูณสเกลแสดงอยู่ในหน้า 3 ของแผ่นข้อมูล

มีวิธีที่ฉันสามารถแก้ไขข้อมูลนี้อย่างน้อย 1 หรือ 2 ตัวเลขที่สำคัญ? (เช่นฉันมีการตรวจจับ 1.9414g - ควรจะประมาณ 6) ฉันไม่คิดว่าเซ็นเซอร์อิ่มตัวเพียงจำนวนในการลงทะเบียนข้อมูล - และกำหนดขนาดของสเกลและการขยับบิตแบบสร้างสรรค์ (ไม่ชัดเจนเลยว่าพวกเขาได้รับจาก 10 ถึง 12 บิตเมื่อเปลี่ยนความละเอียด) หวังว่าฉันจะทำได้ กู้คืนสิ่งที่มีประโยชน์จากข้อมูลของฉัน


หากคุณพล็อตข้อมูลของคุณโดยสมมติว่าจอแสดงผลขนาด 2g มีการเลื่อนลงเพื่อให้คุณเห็นคำศัพท์ที่ยาวกว่า 2 กรัมคำว่า sresult จะมีลักษณะอย่างไร สำหรับการปีนขึ้นไปคุณต้องไปดูซี่ฟันเลื่อยหลายชุด 0-2 = 0-2 2-4 = 0-2 4-6 = 0-2
รัสเซลแม็คมาฮอน

ฉันจะให้กระสุนทันทีที่เรากู้จรวดคืนมา ข้อมูลที่ฉันมีไม่เพียงพอเนื่องจากเราทำมันหายไปหลังคลาวด์ ..
Dang Khoa

คำตอบ:


7

คุณเก็บค่าอะไรลงใน "ลงทะเบียน 0x31 — DATA_FORMAT"

ฉันจะสมมติว่าคุณไม่ได้เก็บอะไรไว้ในรีจิสเตอร์นั้นดังนั้นจึงยังอยู่ในค่ารีเซ็ตเป็น 00 อีกนัยหนึ่งในขณะที่คุณกำลังรวบรวมข้อมูล (จากตารางที่ 16 และหน้า 17 ของแผ่นข้อมูล ADXL345 ):

  • ลงทะเบียน 0x31 — DATA_FORMAT == 00
  • FULL_RES == 0 ดังนั้นอุปกรณ์อยู่ในโหมด 10 บิตและบิตช่วงจะกำหนดช่วง g สูงสุดและตัวประกอบสเกล
  • Justify Bit == 0 ดังนั้นโหมด justified ที่ถูกต้องพร้อมส่วนขยายสัญญาณ
  • ช่วงบิต == 00 ดังนั้นช่วง + 2g

สิ่งแรกที่ฉันจะทำคือกู้คืนค่า 16 บิตดั้งเดิมจากการอ่านจาก accelerometer (เช่นถ้าฉันทิ้งข้อมูลดั้งเดิมอย่างไม่ระมัดระวังและที่เหลือคือตัวเลขในหน่วยของ "g" ที่คำนวณได้โดยการลบออฟเซ็ตและคูณด้วยตัวคูณสเกลที่ไม่ถูกต้องฉันจะคัดลอกข้อมูลที่รวบรวมไว้ลงใน สเปรดชีตและหารด้วยตัวคูณสเกล (ไม่ถูกต้อง) เดียวกันแล้วเพิ่มออฟเซ็ตนั้นเพื่อพยายามกู้คืนบางสิ่งที่ใกล้เคียงกับค่าดั้งเดิม)

จากนั้นฉันจะสร้างกราฟข้อมูลและดูว่ามันดูเหมือน "saturation", "linear" หรือ "roll-over" (ดังที่อธิบายไว้ด้านล่าง)

แผ่นข้อมูลมีความคลุมเครืออย่างไม่น่าเชื่อว่าเกิดอะไรขึ้นเมื่อเซ็นเซอร์มีความเร่งมากกว่า 2 กรัม

พูดจาโผงผาง

ฉันบอกคุณไหมว่ามันทำให้ฉันรำคาญมากแค่ไหนเมื่อนักเขียนด้านเทคนิคยืนยันในการเขียนด้วยเสียงที่ไม่โต้ตอบ? เมื่อผู้เขียนใช้เสียงแฝงในประโยคที่คุณยกมา

"ข้อมูลทั้งหมดยกเว้นว่าจะต้องมีการตัดช่วง± 16 g เพื่อหลีกเลี่ยงการโรลโอเวอร์" (หน้า 17)

ฉันไม่สามารถบอกได้ว่าใครควรจะทำการตัดนี้

หลายคนแนะนำให้ใช้เสียงที่ใช้งานอยู่ เมื่อฉันทำตามคำแนะนำเหล่านั้นข้อความของฉันมักจะชัดเจนว่าใครทำอะไร มันจะดีกว่าไหมถ้าฉันเขียนเนื้อหาที่เข้าใจง่ายกว่าแทนที่จะใช้สไตล์ที่ผู้คนถูกหลอกให้คิดว่าเสียง "เป็นมืออาชีพมากขึ้น" หรือ "มีความสามารถทางวิชาการมากขึ้น"?

การตัดอัตโนมัติ

การคาดเดาที่ดีที่สุดของฉันคือ accelerometer จะจับภาพนี้โดยอัตโนมัติ

ความอิ่มตัว : หากคุณเห็นความเร่งที่เพิ่มขึ้นตามค่าที่เป็นไปได้จากนั้นก็ติดอยู่ที่ที่ราบสูงที่อิ่มตัวหรือใกล้กับ + 2g จากนั้นมาตรวัดความเร่ง "ช่วย" ดึงข้อมูลมาให้คุณ หลังจากการตัดค่า "top" จะไม่ระบุ "การเร่งความเร็วใกล้กับ +2g" อีกต่อไป แต่ตอนนี้ระบุว่า "การเร่งความเร็วอย่างน้อย 2g และอาจเป็นไปได้มากขึ้น - ไม่มีทางที่จะบอก"

เพราะมันอยู่ในโหมด 10-bit Right-justified เมื่อฉันตีความค่า 16 บิตเหล่านั้นเป็นจำนวนเต็ม 16 บิตปกติที่เซ็นชื่อฉันคาดว่าจะเห็นค่าต่าง ๆ ตั้งแต่

  • 0x01FF = +511 แสดงมากกว่า 1.992 กรัม เป็นไปได้มากยิ่งขึ้น
  • 0x01FE = +510 หมายถึง 510/256 g ~ = 1.992 กรัม
  • 0x01FD = +509 หมายถึง 510/256 g ~ = 1.988 g
  • ...
  • 0x0001 = +1 หมายถึง 1/256 g = 0.0039 กรัม
  • 0x0000 = 0 หมายถึง 0 กรัม
  • 0xFFFF = -1 หมายถึง -1/256 g = 0.0039
  • ...
  • 0xFE02 = -510 หมายถึง -510/256 = -1.992 กรัม
  • 0xFE01 = -511 หมายถึง -511/256 = -1.996 กรัม
  • 0xFE00 = -512 หมายถึงบางสิ่งที่เป็นลบมากกว่า -1.996 กรัม อาจเป็นไปได้มากในแง่ลบ

(ใช่ฉันรู้ว่าเซ็นเซอร์นี้มีความแม่นยำทศนิยม 4 ตำแหน่งสำหรับเซ็นเซอร์นี้) (ฉันเคยเห็นอุปกรณ์บางอย่างอิ่มตัวที่จุดอื่นเช่น -511 หรือ -510 ฉันมักจะสามารถดูข้อมูลและหาจุดอิ่มตัวที่แท้จริง)

คุณสามารถกู้คืนบางข้อมูลที่เป็นประโยชน์จากข้อมูลชุดนี้ถูกตัด คุณสามารถใช้มันเพื่อวัดตัวอย่างเช่นกี่มิลลิวินาทีการเร่งความเร็วเป็นอย่างน้อย 1.5 กรัม อนิจจาเมื่อคุณเห็นที่ราบในชุดข้อมูลชนิดนี้มันเป็นไปไม่ได้ที่จะวัดความเร่งสูงสุดหรือแรงกระตุ้นโดยรวม - สิ่งที่ดีที่สุดที่คุณทำได้คือพูดว่า "อืมเรารู้ว่าการเร่งความเร็วสูงสุดนั้นอย่างน้อย 2 กรัมและอาจมากกว่า "และคำนวณ" ดีเราคำนวณว่าแรงกระตุ้นรวมเป็นอย่างน้อย (อย่าง) นิวตัน * วินาที "

ทางเลือก

มันควรจะเป็นไปได้ที่จะคิดออกว่า accelerometer หรือไม่จากข้อมูล (ฉันอธิบายว่า "ความอิ่มตัว", "เชิงเส้น" และ "การหมุน" ในแง่ของทางลาดขึ้น - ด้วยชุดของข้อมูลบางอย่างมันอาจจะชัดเจนกว่าที่จะดูทางลาดลงแทน)

เป็นเส้นตรง : หากคุณเห็นอัตราเร่งเพิ่มขึ้นจากค่าที่เป็นไปได้ให้เพิ่มค่าสูงขึ้นเรื่อย ๆ (ค่าสูงกว่า 512 หรือลบมากกว่า -512) จากนั้นคุณก็โชคออก - accelerometer ไม่ได้ทำการตัดและ คุณมีข้อมูลที่ถูกต้องตลอดช่วงทั้งหมด

roll-over : หากคุณเห็นการเร่งความเร็วขึ้นไปตามค่าที่เป็นไปได้และก่อนที่มันจะถึง +2 g มันจะกระโดดไปที่ค่าที่ไม่เกี่ยวกับร่างกายจริง ๆ ในระยะใกล้ -2 กรัมจากนั้นก็เพิ่มขึ้นเรื่อย ๆ ผ่านศูนย์จากนั้นเข้าใกล้ +2g อีกครั้งและกระโดดกลับลงมาใกล้ -2 กรัมอีกครั้ง - จากนั้นคุณมีการพันรอบ หากคุณโชคดีค่าต่างๆจะเปลี่ยนไปอย่างราบรื่นมากทำให้สามารถตรวจจับแต่ละโรลโอเวอร์และ"แกะ"ค่าเหล่านี้เพื่อกู้คืนแรงจีที่แท้จริง

ps: อย่าลังเลที่จะแก้ไขOpen Circuits: Rocket Computer


ที่ดี! ทันทีที่เรากู้คืนจรวดฉันจะลองทำสิ่งนี้ ณ ตอนนี้เราต้องเช่าเซสนาเพื่อช่วยหา .. แต่หวังว่าเราจะโชคดี
Dang Khoa

ดูเหมือนว่าเราจะไม่สามารถกู้คืนจรวดของเราได้ดังนั้นการสนทนานี้จึงเป็นบิตที่สงสัย (ฉันมีเพียงสองจุดข้อมูลจากสถานีภาคพื้นดิน) แต่ขอบคุณ!
Dang Khoa

@davidcary, วงเปิด: Rocket Computer ลิงก์เสีย
Mahendra Gunawardena

@MahendraGunawardena: ขอบคุณที่บอกฉัน มันใช้งานได้แล้วตอนนี้?
davidcary
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.