Accelerometer

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Shimonu
Inlägg: 294
Blev medlem: 21 oktober 2015, 22:44:33

Accelerometer

Inlägg av Shimonu »

Har påbörjat ett enkelt projekt där jag tänkte utnyttja en accelerometer för att mäta hur något är vinklat. Jag kan hämta mätvärdena och allt verkar stämma. Jag hittade en sida som ger lite tips: https://www.hobbytronics.co.uk/accelerometer-info

Så jag försökte mig på att implementera utnyttjandet av två axlar så jag kan få god precision i ett plan, vinkel = atan(x/y). Vinklar jag mina breadboard där jag har allt monterat verkar det stämma. Vinkeln ökar eller minskar med rimliga värden. Tester jag däremot att ställa den på ända får jag inte riktigt 90 grader eller pi/2 utan det blir något under, kring 70 grader och jag måste vinkla över en del för att jag ska få till 90 grader ut. Det jag testade med var vinkeln mellan x och z då det var enklast när kortet ligger ner men när jag testar x och y axlarna verkar jag få korrekt resultat. Så varför beter sig z-axeln annorlunda? Är det något knas eller något jag behöver hantera?

Det är en MPU9250 och manualen säger: "When the device is placed on a flat surface, it will measure 0g on the X- and Y-axes and +1g on the Z-axis."
Ligger den på bordet visar den ett råvärde kring 1200 på z-axeln men vrider jag så x eller y pekar ner visar de istället kring 1000 eller strax under.
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Accelerometer

Inlägg av agehall »

Och hur läser du av sensorn? Vad säger självtestvärdena den kan leverera? Vad är X,Y och Z-offset-registren satta till?
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Accelerometer

Inlägg av Icecap »

Kanske man ska kompensera för den lokala tyngdkraft vid att kalibrera datan som kommer.

Själv fick jag kalibrera mobilens kompass vid att vifta med den och då tyngdkraften är vad som mäts och att den varierar lite lokalt och och en del mellan ekvator och Sverige.
danei
EF Sponsor
Inlägg: 26335
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Re: Accelerometer

Inlägg av danei »

Jag gissar att du utgår från att värdet 1000 motsvarar 1G i beräkningen. Stämmer det bättre om du använder värdena från kalibreringen? Uppenbarligen är ju inte 1000 1G i alla riktningar.
Shimonu
Inlägg: 294
Blev medlem: 21 oktober 2015, 22:44:33

Re: Accelerometer

Inlägg av Shimonu »

Sa lite fel i första inlägget, koden är lite gammal så mindes fel. Det var inte råa värden jag läste utan skalade, så 1000 motsvarade 1G som danei säger.

Jag klurade ut hur offset-registrena fungerade och satte värden baserat på hur mycket det skiljde sig från vad jag tyckte att det borde vara. Då tog jag också medel av 10 värden för att få något rimligt. Då kom jag ner ganska nära noll. Jag hade fortfarande någon ganska konstant offset kring 50-100 beroende på axel som jag inte förstod och det hårdkodade jag bort. Det verkar ge ganska bra värden nu. Däremot skulle jag väl vilja jobba vidare på det så jag slipper en kalibrering där enheten måste ligga stilla och förstå de hårdkodade värdena.

Finns det en best practice kring kalibrering? På telefoner får man ju vifta den som en 8 i luften men det kanske är mer användarvänligt än att behöva lägga ner telefonen och inte nödvändigtvis mer exakt?
Användarvisningsbild
AndLi
Inlägg: 17044
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Accelerometer

Inlägg av AndLi »

Är inte 8 viftandet för att kalibrera magnetfältssensorn som används till kompassen?

Skulle man kalibrera en Accelerometer skulle jag gissat att man sakta vill ha alla sidor nedåt så man kan utnyttja jordens dragningskraft som referens?
Att ha den bara liggandes platt på bordet ger väl egentligen bara en nollpunkt för X&Y och 1G för Z?
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Accelerometer

Inlägg av Icecap »

Och igen: 1G är INTE den samma på olika ställen av jordklotet! Eller jo, som mätenhet är 1G väl definierat.

Men dragningskraften varierar mellan olika lokationer. Vid ekvator är den lägre och vid polerna högre. Detta borde kunde räknas ut vid att räkna ut den totala kraft-vektor och normalisera alla värden ut ifrån det värde.
Skriv svar