Hjem Sosiale medier Grunnleggende om Accelerometer, Gyroskop og Magnetometer Sensorer for IOS Apps - Dummies

Grunnleggende om Accelerometer, Gyroskop og Magnetometer Sensorer for IOS Apps - Dummies

Video: What are the universal human rights? - Benedetta Berti 2024

Video: What are the universal human rights? - Benedetta Berti 2024
Anonim

En iOS-enhet har tre med godt dokumenterte grensesnitt for sensorer - akselerometeret, gyroskopet og magnetometeret. Som med orienteringssensoren begynner prosessen for disse sensorene ved å starte og initialisere en lytter som lytter etter sensorhendelser. Her er koden fra ViewDidLoad-metoden i sensorens visningskontroller:

- (void) viewDidLoad {… accelerationTextView. aktivert = NEI; gyroscopeTextView. aktivert = NEI; magnetometerTextView. aktivert = NEI; … // Sett opp bevegelsesbehandleren selv-> motionManager = [[CMMotionManager alloc] init]; selv-> MotionManager-. accelerometerUpdateInterval = 1; selv-> MotionManager-. gyroUpdateInterval = 1; selv-> MotionManager-. magnetometerUpdateInterval = 1; …}

Objektet som gir deg tilgang til sensorhendelser er en forekomst av CMMotionManager-klassen. Du må opprette en, og bare en, forekomst av denne klassen (det vil si, du må behandle den som en Singleton, selv om den ikke er). Deretter setter du egenskaper som oppdateringsintervall for hver av sensorene.

Deretter starter du overvåkingen ved hjelp av metodene startAccelerometerUpdatesToQueue, startGyroUpdatesToQueue og startMagnetometerUpdatesToQueue, som vist i metoden startMonitoringSensors (som kalles når du trykker Start Monitoring-knappen):

- (IBAction) startMonitoringSensors: (id) avsender {[self-> motionManager startAccelerometerUpdatesToQueue: [NSOperationQueue currentQueue] withHandler: ^ (CMAccelerometerData * akselerometerData, NSError * feil) {[selvbetjeningAccelerationUpdates: accelerometerData. akselerasjon];}]; [self-> motionManager startGyroUpdatesToQueue: [NSOperationQueue currentQueue] withHandler: ^ (CMGyroData * gyroscopeData, NSError * feil) {[self handleGyroUpdates: gyroscopeData. rotationRate];}]; [self-> motionManager startMagnetometerUpdatesToQueue: [NSOperationQueue currentQueue] withHandler: ^ (CMMagnetometerData * magnetometerData, NSError * feil) {[selvhåndtakMagnetometerUpdates: magnetometerData. magneticField];}];}

Hver av disse metodene kalles med en inline-handlerblokk ved hjelp av withHandler-konstruksjonen. Disse inline-håndteringsblokkene kaller håndtaket AccelerationUpdates, handleGyroUpdates, og håndtereMagnetometerUpdates. Disse metodene er som følger:

- (void) handleAccelerationUpdates: (CMAcceleration) accelerationData {NSLog (@ "Acceleration. X>% f% f% f 1. 0) || (accelerationData. X 1. 0) || (accelerationData.y 1 0) || (akselerasjonData.z% f% f% f 0. 5) || (gyroRotationRate. x 0. 5) || (gyroRotationRate. y 0. 5) || (gyroRotationRate.z% f% f% f% f 3000. 0) {savedX = magneticField. x; savedY = magneticField. y; savedZ = magneticField. z; [magnetometerTextView setText: @ "Jeg SENSE NO!"];} else {[magnetometerTextView setText: @ "ALL CLEAR!"];}}

Disse metodene logger de rå dataene. Rå sensoravlesninger vist ved bruk av NSLog vises nedenfor.

De foregående sensormetodene tolker også de rå sensorverdiene for å generere visningen vist nedenfor.

Sensorene bruker heuristikk til å gi meningsfylt innsikt:

  • Akselerometeret måler akselerasjon i g-krefter, hvor 1 g-kraft er lik trening av jordens tyngdekraft.

    Hvis akselerometeret registrerer bevegelse som er større enn Jordens gravitasjonstrekk i en hvilken som helst retning, vises det meldingen, jeg kommer raskt! Ellers vises det for langsomt.

  • Gyroskopet måler rotasjon av enhetens tre akser i radianer per sekund (1 radian per sekund betyr omtrent en sjette av en rotasjon hvert sekund). Derfor, hvis det sanser mest noe rotasjon, skriver det WHEE!

  • I magnetometerkoden vil du bruke en avstand heuristisk for å fornemme en stor forandring i magnetfeltet.

    Hvis en slik endring oppstår, viser appen jeg SENSE NOGEN!

    Hvis ingenting endres i ett intervall, går det tilbake til å tenke på at kysten er klar.

Grunnleggende om Accelerometer, Gyroskop og Magnetometer Sensorer for IOS Apps - Dummies

Redaktørens valg

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Skjermbildet i QuickBooks Modify Report dialogboksen lar deg kontrollere rapportintervalldatoen, rapportgrunnlaget, kolonnene og en annen formatering. Bokstavene Rapporter datoområde - Datoer, Fra og Til - gjør det samme som Datoer, Fra og Til bokser i Rapportvinduet. Disse boksene lar ...

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Hvis du klikker Tilpass rapport, QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Redaktørens valg

Administrere Cloud Computing Resources - dummies

Administrere Cloud Computing Resources - dummies

I teorien bør cloud computing-tjenester ikke være forskjellig fra ressursene i din eget miljø, bortsett fra at de bor eksternt. Ideelt sett har du en komplett visning av cloud computing-ressursene du bruker i dag, eller vil kanskje bruke i fremtiden. I de fleste skymiljøer kan kunden bare få tilgang til ...

Tips for Going Cloud med datanettverkene dine - dummies

Tips for Going Cloud med datanettverkene dine - dummies

Beregning med datanettverket ditt kan være, hva skal du gjøre for å ta nettverket ditt mot skyen? Her er noen anbefalinger: Ikke stole på en dårlig Internett-tilkobling. Først og fremst, før du tar noen av nettverksoperasjonene i skyen, gjør du ...

Nettverkstjenester levert gjennom Cloud Computing - dummies

Nettverkstjenester levert gjennom Cloud Computing - dummies

Tre forskjellige typer nettverkstjenester kan leveres via skyen: applikasjoner , plattformer og tjenester (infrastruktur). I de følgende avsnittene beskrives disse tre typer skyttjenester i større detalj. Programmer i skyen Vanligvis kalt Software as a Service (SaaS), fullt funksjonelle applikasjoner kan leveres via skyen. En av ...

Redaktørens valg

10 Hadoop Ressurser verdt en bokmerke - dummies

10 Hadoop Ressurser verdt en bokmerke - dummies

Følgende er ti fantastiske Hadoop-ressurser som er verdige til å skape en bokmerke i nettleseren din. Disse ressursene hjelper deg med å skape en livslang læringsplan for Hadoop. Sentralnervesystemet: Apache. org Apache Software Foundation (ASF) er det sentrale fellesskapet for open source-programvareprosjekter. Ikke bare et prosjekt kan være et Apache-prosjekt - ...

Data transformasjon i Hadoop - dummies

Data transformasjon i Hadoop - dummies

Ideen om Hadoop-inspirerte ETL motorer har fått mye trekkraft de siste årene. Hadoop er trods alt en fleksibel datalagrings- og behandlingsplattform som kan støtte store mengder data og operasjoner på dataene. Samtidig er det feiltolerant, og det gir mulighet for kapital- og programvarekostnad ...

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Når du lagrer en fil i HDFS, bryter systemet det ned i et sett med individuelle blokker og lagrer disse blokkene i forskjellige slave noder i Hadoop-klyngen. Dette er en helt vanlig ting å gjøre, da alle filsystemer bryter filer ned i blokker før de lagres til disk. HDFS har ingen ...