Versnellingsmeter & Gyro Tutorial (1 / 3 stap)

Stap 1: De versnellingsmeter


We beginnen te begrijpen deze eenheid met de versnellingsmeter. Wanneer het denken over versnellingsmeters is het vaak handig om het imago van een doos in de vorm van een kubus met een bal erin. Je kan je voorstellen iets anders zoals een cookie of een donut, maar ik zal voorstellen een bal:

Als wij dit vak op een plaats met geen zwaartekracht velden of voor die kwestie met geen andere velden die van invloed kunnen zijn op de bal positie - zal de bal gewoon zweven in het midden van het vak. U kunt veronderstellen het vak wordt in de buitenste-ruimte ver-ver uit de buurt van de kosmische organen, of als dergelijke plaats is moeilijk te vinden stel je ten minste een ambacht van de ruimte een baan rond de planeet waar alles is in gewichtloze toestand. In de afbeelding hierboven ziet u dat we aan elke as een paar muren toewijzen (we verwijderd de muur Y + zodat we in de doos kijken kunnen). Stel je voor dat elke muur drukgevoelig is. Als we plotseling het vak naar links verplaatsen (we versnellen met versnelling 1g = 9,8 m/s ^ 2), de bal zal raken van de muur X-. We meten de kracht van de druk die de bal is van toepassing op de muur en een waarde van-1 g op de X-as de uitgang.

Houd er rekening mee dat de versnellingsmeter eigenlijk detecteert een kracht die is gericht in de tegenovergestelde richting van de versnelling vector. Deze kracht wordt vaak genoemd Inertial kracht of fictieve dwingen . Een ding je van dit leren moet is dat een versnellingsmeter maatregelen versnelling indirect via een kracht die wordt toegepast op een van de muren (volgens ons model, het zou een veer of iets anders in het echte leven versnellingsmeters). Deze kracht kan worden veroorzaakt door de versnelling, maar zoals we in het volgende voorbeeld zien zullen is het niet altijd veroorzaakt door versnelling.

Als we ons model en het op aarde zet de bal op de Z-muur zal vallen en zal een kracht van 1g van toepassing op de onderste wand, zoals in de afbeelding hieronder:

In dit geval het vak is niet bewegen, maar we krijgen nog een lezing van-1 g op de Z-as. De druk die de bal heeft toegepast op de muur werd veroorzaakt door een kracht van de zwaartekracht. In theorie zou het een ander soort kracht - bijvoorbeeld, als je bedenkt dat onze bal metallic, plaatsen van een magneet naast het vak kan verplaatsen de bal zodat het raakt een andere muur. Dit werd gezegd gewoon om te bewijzen dat in wezen versnellingsmeter maatregelen niet versnelling dwingen. Het gebeurt gewoon dat versnelling veroorzaakt een inertial kracht die gevangen door het detectiemechanisme van de kracht van de versnellingsmeter genomen is.

Hoewel dit model is niet precies hoe een MEMS-sensor is gebouwd is het vaak nuttig bij het oplossen van de versnellingsmeter gerelateerde problemen. Er zijn eigenlijk vergelijkbaar sensoren die hebben metalen ballen binnen, ze heten tilt switches, maar ze meer primitieve zijn en meestal ze alleen vertellen kunnen als het apparaat is geneigd binnen enkele variëren of niet, niet de omvang van de helling.

Tot nu toe hebben wij de versnellingsmeter uitvoer op een enkele as geanalyseerd en dit is alles wat die je met een enkele as versnellingsmeters krijgt. De reële waarde van de triaxiale versnellingsmeters komt van het feit dat ze traagheids krachten op alle drie assen kunnen detecteren. Laten we terug naar onze outkadermodel, en laten we het vak 45 graden naar rechts draaien. De bal zal nu 2 muren raken: Z- en X-zoals in de afbeelding hieronder:

De waarden van 0.71 zijn niet willekeurig, ze zijn eigenlijk een benadering voor SQRT(1/2). Dit wordt meer duidelijk als we onze volgende model voor de versnellingsmeter invoeren.

In het vorige model hebben wij vast de zwaartekracht-kracht en onze denkbeeldige doos gedraaid. In laatste 2 voorbeelden hebben we de output in 2 verschillende vak posities, geanalyseerd, terwijl de kracht vector constant gebleven. Terwijl dit nuttig was in het begrip van hoe de versnellingsmeter samenwerkt met externe krachten, is het meer praktisch berekeningen uit te voeren als we het coördinatensysteem op de assen van de versnellingsmeter repareren en stel je dat de kracht-vector om ons heen draait.

Neem eens een kijkje op het model hierboven, ik de kleuren van de assen bewaard zodat u een geestelijke overgang van het vorige model naar de nieuwe database kunt maken. Stel je voor dat elke as in het nieuwe model loodrecht op de respectieve vlakken van het vak in het vorige model staat. De vector R is de vector van kracht, dat is het meten van de versnellingsmeter (het zou de kracht van de zwaartekracht of de traagheids kracht uit de bovenstaande voorbeelden of een combinatie van beide). RX, Ry, Rz zijn projectie van de R-vector op de X, Y, Z-assen. Let wel op de volgende relatie:

R ^ 2 = Rx ^ 2 + Ry ^ 2 + Rz ^ 2 (Eq. 1)

dat is in feite het equivalent van de stelling van Pythagoras in 3D.

Vergeet niet dat een beetje eerder ik u dat vertelde de waarden van SQRT(1/2) ~ 0.71 zijn niet willekeurig. Als u ze in de bovenstaande formule aansluit, na eraan herinnerend dat onze zwaartekracht-kracht 1 g was we kunnen controleren of die:

1 ^ 2 = (-SQRT(1/2)) ^ 2 + 0 ^ 2 + (-SQRT(1/2)) ^ 2

gewoon door te vervangen door R = 1, Rx = - SQRT(1/2), Ry = 0, Rz =-SQRT(1/2) in Eq.1

Na een lange preambule van theorie krijgen we dichter bij de echte leven versnellingsmeters. De waarden Rx, Ry, Rz eigenlijk lineair gerelateerd zijn aan de waarden die uw levensechte versnellingsmeter zal output en die u kunnen gebruiken voor het uitvoeren van diverse berekeningen.

Voordat we er laten we praten een beetje over de manier waarop versnellingsmeters zullen deze informatie aan ons leveren. Meeste versnellingsmeters zal vallen in twee categorieën: digitaal en analoog. Digitale versnellingsmeters krijgt u informatie over het gebruik van een serieel protocol zoals I2C, SPI of USART, terwijl de analoge versnellingsmeters zal de uitgang van een spanningsniveau binnen een voorgedefinieerd bereik dat u hoeft te converteren naar een digitale waarde met behulp van een ADC (analoog digitaal conversie)-module. Ik zal niet ingaan op veel detail over hoe ADC werkt, deels omdat het een dergelijk uitgebreid onderwerp en deels omdat het verschilt van één platform naar het andere. Sommige microcontroller zal hebben een ingebouwde ADC modules sommigen van hen zal externe onderdelen nodig om uit te voeren van de ADC-conversie. Geen kwestie welk type van ADC zult module kunt u eindigen met een waarde in een bepaald bereik. Voor het voorbeeld een 10-bit ADC-module zal de uitgang van een waarde in het bereik van 0..1023, er rekening mee dat 1023 = 2 ^ 10 -1. Een 12-bit ADC-module zal output van een waarde in het bereik van 0..4095, merk op dat 4095 = 2 ^ 12-1.

Laten we gaan rekening houdend als volgt een eenvoudig voorbeeld, stel dat onze 10 bit ADC-module gaf ons de volgende waarden voor de drie kanalen van de versnellingsmeter (assen):

AdcRx = 586
AdcRy = 630
AdcRz = 561

Elke ADC-module zal hebben een referentie spanning, laten we aannemen dat in ons voorbeeld is 3,3 v. Als u wilt een 10 bit adc waarde omzetten in spanning gebruiken we de volgende formule:

VoltsRx = AdcRx * Vref / 1023

Hier een berichtje: dat voor 8 bit ADC de laatste scheidingslijn zou 255 = 2 ^ 8-1, en voor 12 bit ADC laatste scheidingslijn zou 4095 = 2 ^ 12 -1.

Deze formule toe te passen op alle 3 kanalen krijgen we:

VoltsRx = 586 * 3.3V / 1023 = ~ 1.89V (we ronde alle resultaten op 2 decimale punten)
VoltsRy = 630 * 3.3V / 1023 = ~ 2.03V
VoltsRz = 561 * 3.3V / 1023 = ~ 1.81V

Elke versnellingsmeter heeft een zero-g spanningsniveau, kunt u vinden in specificaties, dit is de spanning die correspondeert met 0g. Om de waarde van een ondertekende spanning te krijgen moeten we berekenen de verschuiving van dit niveau. Laten we zeggen dat onze spanningsniveau 0g is VzeroG = 1.65V. We berekenen de spanning verschuift van zero-g spanning als volgt::

DeltaVoltsRx = 1.89V - 1.65V = 0.24V
DeltaVoltsRy = 2.03V - 1.65V = 0.38V
DeltaVoltsRz = 1.81V - 1.65V = 0.16V

We hebben nu onze versnellingsmeter lezingen in volt, het is nog niet in g (9,8 m/s ^ 2), om te doen de finale conversie we de gevoeligheid van de versnellingsmeter passen, meestal uitgedrukt in mV/g. laat zeggen onze gevoeligheid = 478.5mV / g = 0.4785V / g. gevoeligheid waarden vindt u in de specificaties van de versnellingsmeter. Om de waarden van de laatste kracht uitgedrukt in g gebruiken we de volgende formule:

RX = DeltaVoltsRx / gevoeligheid

RX = 0.24V / 0.4785V / g = ~ 0,5 g
Ry = 0.38V / 0.4785V / g = ~ 0,79 g
RZ = 0.16V / 0.4785V / g = ~ 0.33 g

Kon combineren we uiteraard alle maatregelen in één formule, maar ik ging door alle stappen duidelijk hoe je van ADC lezingen naar een kracht vector component, uitgedrukt in g te maken.

RX = (AdcRx * Vref / 1023 - VzeroG) / gevoeligheid (Eq.2)
Ry = (AdcRy * Vref / 1023 - VzeroG) / gevoeligheid
RZ = (AdcRz * Vref / 1023 - VzeroG) / gevoeligheid

We hebben nu alle 3 onderdelen die onze inertial kracht vector definiëren, als het apparaat is niet onderworpen aan andere krachten anders dan de zwaartekracht, kunnen we aannemen dat is de richting van onze zwaartekracht-kracht-vector. Als u wilt berekenen van de hellingshoek van het apparaat ten opzichte van de grond kunt u de hoek tussen deze vector- en Z-as berekenen. Bent u ook geïnteresseerd in de per-as richting van de helling u dit resultaat kunt opsplitsen in 2 componenten: hellingshoek op de X- en Y-as die kan worden berekend als de hoek tussen zwaartekracht vector en X / Y-as. Het berekenen van deze hoeken is meer eenvoudig dan u zou denken, nu dat we hebben de waarden berekend voor Rx, Ry en Rz. We gaan terug naar onze laatste model van de versnellingsmeter en doen sommige extra notaties:

De hoeken die wij zijn geïnteresseerd in zijn de hoeken tussen de X, Y, Z-as en de kracht vector R. We zullen deze hoeken definiëren als Axr, Ayr, Azr. Je ziet van de rechte hoek driehoek gevormd door R en Rx die:

cos(AXR) = Rx / R, en zo ook:
cos(Ayr) = Ry / R
cos(AZR) = Rz / R

We kunnen aftrekken van de Eq.1 die R = SQRT (Rx ^ 2 + Ry ^ 2 + Rz ^ 2).

We kunnen nu onze hoeken vinden met behulp van de arccos() functie (de omgekeerde cos()-functie):

AXR = arccos(Rx/R)
Ayr = arccos(Ry/R)
AZR = arccos(Rz/R)

We zijn gegaan een lange weg te leggen van de versnellingsmeter model, gewoon om te komen tot deze formules. Afhankelijk van uw toepassingen kunt u elke tussenliggende formules die we hebben afgeleid gebruiken. Zal ook introduceren wij de gyroscoop model binnenkort, en we zullen zien hoe de versnellingsmeter en gyroscoop gegevens kunnen worden gecombineerd om nog nauwkeuriger schattingen van de helling.

Maar voordat we dat laten we doen doen sommige nuttiger notaties:

cosX = cos(Axr) = Rx / R
Gezellige = cos(Ayr) = Ry / R
cosZ = cos(Azr) = Rz / R

Deze triplet heet vaak Richting cosinus , en daarmee in feite de eenheidsvector (vector met lengte 1) die dezelfde richting als onze R-vector heeft. U kunt gemakkelijk controleren dat:

SQRT (cosX ^ 2 + gezellige ^ 2 + cosZ ^ 2) = 1

Dit is een aardige eigenschap omdat het ontslaat ons van het toezicht op de modulus(length) van R vector. Vaak als we gewoon geïnteresseerd zijn in de richting van onze inertial vector, is het zinvol om te normaliseren het modulus ter vereenvoudiging van de andere berekeningen.

Gerelateerde Artikelen

MPU6050: Arduino 6 Axis versnellingsmeter + Gyro - GY 521 Test & 3D-simulatie

MPU6050: Arduino 6 Axis versnellingsmeter + Gyro - GY 521 Test & 3D-simulatie

Bent u op zoek naar uw eigen quadcopter drone of RC vliegtuig met Arduino maar weet niet hoe om de gyro werkend te krijgen? Misschien u al gekocht sommige modules 6 as MPU6050 (op de GY-521 breakout boards) alleen om uit te vinden dat ze niet zo eenv
Raspberry Pi - ADXL345 3-Axis versnellingsmeter Python Tutorial

Raspberry Pi - ADXL345 3-Axis versnellingsmeter Python Tutorial

De ADXL345 is een kleine, dunne, ultralow macht, 3-axis versnellingsmeter met hoge resolutie (13-bits) meting bij tot ±16 g. digitale uitgang gegevens is opgemaakt als aanvulling van de 16-bits tweeën en is toegankelijk via I2 C digitale interface. I
Hoe gebruik ik de RFduino met een 6 Axis versnellingsmeter

Hoe gebruik ik de RFduino met een 6 Axis versnellingsmeter

Bekijk de RFduino van vinger-tip formaat, Arduino compatibele, draadloze ingeschakelde micro controller:http://www.rfduino.com/product/rfd90101-rfduino-2p...Dit instructable zal laten zien hoe je interface naar de versnellingsmeter/Gyro met de RFduin
Gyro Camera voor motorfiets

Gyro Camera voor motorfiets

zoals gezien in de MotoGP Race, de ruiter wordt gezien door hoeken rijden terwijl zijn fiets naar links en rechts opzij te leggen. Maar er een interessant moment wanneer de motor kijkt is naar boven, samenvouwen de front standpunten horizontaal blijv
Gebruik een versnellingsmeter en de gyroscoop met Arduino

Gebruik een versnellingsmeter en de gyroscoop met Arduino

ik kocht onlangs een combinatie 3 axis versnellingsmeter en 2 as gyroscoop van Sparkfun en ik wilde na een aantal van de code die ik gebruikt om het up and running.  Ik ben van plan gebruik ervan in een Arduino-gebaseerde MIDI controller die ik binne
Hoe maak je vuist pompen met LED animatie

Hoe maak je vuist pompen met LED animatie

het is om een vuist pompen LED controller. Wat is het? Heb je jezelf vuist pompen naar de muziek op een feest of een club? Dat is precies daarvoor. U zou een band dragen met een versnellingsmeter/gyro gemonteerd. Als u uw hand rond de lucht bewegen,
Sugarcube MIDI Controller

Sugarcube MIDI Controller

Dit project is een draagbare, Arduino aangedreven, grid-gebaseerde MIDI controller die zelfstart opwaarts in allerlei apps te doen veel dingen met geluid. Het heeft 16 verlichte knoppen, gebruikt als zowel in- en uitgangen te geven van de controller
Self balancing one wheeled electric skateboard

Self balancing one wheeled electric skateboard

NOTE:Mei 2011: Dit instructable is nu vrij oud (relatief) en ik kan nu bouwen dit project eenvoudiger met een Arduino als de controller.Ik ben momenteel bezig met een eenwieler met dezelfde OSMC motor controller en een Arduino. Wanneer ik dat aan het
Multi-Functional Star Wars Astromech Droid

Multi-Functional Star Wars Astromech Droid

E4-B4Astromech droid voor het huis.Video links voor mobiele apparaten die de videominiaturen bovenstaande animatie wordt niet afgespeeld:Het maken van E4-B4 Astromech Droid VideoE4-B4: Showcase Video, deel 1E4-B4: Rocket Man VideoE4-B4: Zin in een dr
Eenvoudige zelfbalancerende Robot w / Galileo Gen 2

Eenvoudige zelfbalancerende Robot w / Galileo Gen 2

Na vrijwilligerswerk bij de lokale mini Maker Faire, en het krijgen van een kans om te spelen met de Intel Galileo Gen 2 Arduino board, was ik gemotiveerd om het vinden van een maker-project voor mezelf. Na een snel overzicht van de opties en mijn in
Eenvoudige handleiding Magnetometer kalibratie

Eenvoudige handleiding Magnetometer kalibratie

Er zijn verschillende soorten goedkope magnetometer nu beschikbaar, die u gebruiken kunt om het gevoel van een kompas richting, maar alle van hen (voor zover ik weet) moeten kalibratie alvorens u goede resultaten kunt krijgen. In dit Instructable, ik
Rideable Segway kloon - goedkope en gemakkelijk te bouwen

Rideable Segway kloon - goedkope en gemakkelijk te bouwen

Dit Instructable zal u tonen hoe te bouwen van een rit-baar Segway-kloon. Hier zijn de kenmerken:Gemakkelijk op te bouwen met geen lassen, geen ingewikkelde besturing van koppeling en minimale solderen.Gebruikt een beschikbaar $3 digitale MPU6050 ver
Aangepaste Arduino Micro Quadcopter Concept

Aangepaste Arduino Micro Quadcopter Concept

14 APRIL bewerken: Sorry jongens voor de late inschrijving. leven sinds laatste tijd voor mij echt hectisch moesten we ter vervanging van een pijp van de riolering in de betonplaat die ons huis zit op begraven. Maar we hebben enige vooruitgang geboek
Chappie-zelftest-Balancing robot

Chappie-zelftest-Balancing robot

Na het krijgen van zo veel gefrustreerd over het afstemmen van de PID van de quadcopter, heb ik besloten om eerst meester van PID op sommige basisproject en dit project. Zelfbalancerende robot lijkt een inactief keuze. Aangezien er geen nieuwe en nog