Hjem Sosiale medier Utvikler for Project Tango - dummies

Utvikler for Project Tango - dummies

Video: Opplev fiskelykke med mobilteknologi | Telenor Norge 2024

Video: Opplev fiskelykke med mobilteknologi | Telenor Norge 2024
Anonim

Android driver mange av Googles innovative prosjekter. Ta for eksempel tablettapparatet kjent som Project Tango. Ved første øyekast ser en Project Tango-enhet ut som en vanlig syv-tommers tablett. Når du slår på enheten, ser du det kjente Android-startskjermbildet med ikoner for å starte programmer, og med indikatorer for WiFi-signal og batteristyrke.

Enheten kjører til og med Google Play Play-appen, slik at du kan bruke den til å bla gjennom nettet, redigere dokumenter og gjøre alt det andre vanlige nettbrettetheter gjør.

Men Project Tangos maskinvare er ikke vanlig. På baksiden av tabletten har du en dybdesensor, et fiskeøyekamera og et IR-kamera. Kombinere data fra disse kildene med den interne bevegelsessporingsmaskinen, oppretter Project Tango et 3D-kart over det omkringliggende rommet.

Du kan lage et kart over din egen stue og lagre kartet på en Project Tango-enhet. Når du tar enheten tilbake til stuen, husker enheten plassen og alle gjenstandene i rommet.

Tango kommer med noen få demo apps. Med en app, målretter du enheten på to punkter for å måle avstanden mellom disse punktene. Du kan stå flere meter fra start- og sluttpunktene fordi enheten vet hvor langt du er fra hvert av punktene.

Med en annen app går du gjennom virtuelle verdener. For å endre synspunktet i en verden, vri du ikke en joystick, flytt musen eller dra fingrene langs en skjerm. I stedet ser du enhetens skjerm når du beveger deg rundt i ditt eget virkelige miljø. Enheten viser deg hva du vil se i den virtuelle verden mens du går fremover, snu til å se sideveis, og navigere deg rundt virtuelle 3D-objekter.

For å komme i gang med å utvikle, kommer Project Tango med noen prøveapper. Å åpne den grunnleggende QuickStart-appen i Android Studio viser oversettelses- og rotasjonsverdier når du flytter enheten fra sted til sted. (Se følgende figur.)

QuickStart-appen.

Kjernen i QuickStart-appen er en Android-aktivitet. Noen av appens kode vises nedenfor.

/ * * Copyright 2014 Google Inc. Alle rettigheter reservert. * * Lisensiert under Apache-lisensen, versjon 2. 0 ("lisensen"); * Du kan ikke bruke denne filen unntatt i samsvar med lisensen. * Du kan få en kopi av lisensen på * * // www. apache. org / lisenser / lisens-2. 0 * * Med mindre det er påkrevd av gjeldende lov eller avtalt skriftlig, distribueres programvare * distribuert under lisensen på en "AS IS" BASIS, * UTEN GARANTIER ELLER BETINGELSER AV NOEN SIN, enten uttrykkelig eller underforstått.* Se lisensen for det bestemte språket som styrer tillatelser og * begrensninger under lisensen. * / import com. Google. en kran. tangoservice. Tango; importere com. Google. en kran. tangoservice. Tango. OnTangoUpdateListener; importere com. Google. en kran. tangoservice. TangoConfig; importere com. Google. en kran. tangoservice. TangoCoordinateFramePair; importere com. Google. en kran. tangoservice. TangoPoseData; // Det er flere importdeklarasjoner her offentlig klasse MainActivity utvider Aktivitet {@Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); mTranslationTextView = (TextView) findViewById (R. id. translation_text_view); mRotationTextView = (TextView) findViewById (R. id. rotation_text_view); // Instantiate Tango klient mTango = ny Tango (dette); // Sett opp Tango-konfigurasjon for bevegelsessporing mConfig = mTango. getConfig (TangoConfig. CONFIG_TYPE_CURRENT); mConfig. putBoolean (TangoConfig. KEY_BOOLEAN_MOTIONTRACKING, true); @Override protected void onActivityResult (int requestCode, int resultCode, Intent data) {prøv {setTangoListeners ();} catch (TangoErrorException e) {} prøv {mTango. connect (mConfig);} fangst (TangoOutOfDateException e) {} fangst (TangoErrorException e) {}} private void setTangoListeners () {// Velg koordinatrammepar ArrayList framePairs = new ArrayList (); framePairs. legg til (ny TangoCoordinateFramePair (TangoPoseData. COORDINATE_FRAME_START_OF_SERVICE, TangoPoseData. COORDINATE_FRAME_DEVICE)); // Legg til en lytter for Tango pose data mTango. connectListener (framePairs, ny OnTangoUpdateListener () { @Override offentlig tomgang påPoseAvailable (TangoPoseData pose) { // Formatoversettelse og rotasjonsdata endelig String translationMsg = String. format (sTranslationFormat, pose. oversettelse [0], posere. oversettelse [1], utgjøre oversettelse [2]); siste strengrotasjonMsg = Stringformat (sRotationFormat, posere rotasjon [0], utgjør rotasjon [3]); // Vis data i TextViews runOnUiThread (Ny Runnable () { @Override offentlig tomgangsløp () { mTranslationTextView. setText (translationMsg); mRotationTextView } } } );}} Det du ser her, er ikke hele 210-linjen MainActivity klassen, men noen av klassens viktige høydepunkter er oppsummert. Se på MainActivity-klassen. Kjernen til aktivitetens kode er inne i den anonyme OnTangoUpdateListener-klassen med sin onPoseAvailable-metode.

I hverdagen er en

pose

slik du orienterer hodet ditt i forhold til omgivelsene dine. Og i Project Tango-terminologi er en pose den måten du orienterer enheten på i forhold til omgivelsene. En pose er beskrevet av syv tall, som oversettelsen og rotasjonsnummeret som du ser i foregående figur. Når enhetens maskinvare registrerer en ny posisjon, kaller programvaren onPoseAvailable-metoden. OnPoseAvailable-metoden må vise meldinger som Oversettelse: -2.6622, 3. 214773, 2. 824979 i aktivitetens tekstfelt. Men det er et problem. Android's threading-regler dikterer at ingen annen tråd enn hovedtråden kan oppdatere et programs brukergrensesnitt. I MainActivity-klassen kjører OnTangoUpdateListener-forekomsten i en tråd helt. Så kan instansens onPoseAvailable-metode ikke vise meldinger i aktivitetens tekstfelter ved å ringe direkte til mTranslationTextView. setText og mRotationTextView. setText metoder.

Men som professor Farnsworth i

Futurama

alltid sier, er det "Gode nyheter, alle! "Android har en runOnUiThread-metode for bare slike anledninger. RunOnUiThread-metoden er en klasse som implementerer Java's Runnable-grensesnitt. I QuickStart-appens kode viser denne klassens kjøremetode tekst på vegne av OnTangoUpdateListener-forekomsten. Til slutt ser enhetens bruker oversettelses- og rotasjonsdataene, og alt er bra.

Utvikler for Project Tango - dummies

Redaktørens valg

Baby Nødhjelp: Når du skal ringe doktoren med en gang - dummies

Baby Nødhjelp: Når du skal ringe doktoren med en gang - dummies

Babyens første år er en tid av undring, glede og usikkerhet. Du lærer ikke å få panikk hver gang babyen din gråter, men det er tider når bunten av glede trenger en lege oppmerksomhet med en gang. Hvis barnet opplever noen av betingelsene i følgende liste, ta kontakt med legen din ...

I hvilken alder bør du få barnet ditt til mobiltelefon? - dummies

I hvilken alder bør du få barnet ditt til mobiltelefon? - dummies

Som foreldre, har du noen vanskelige beslutninger å gjøre med barna dine, også når de skal få en mobiltelefon. En studie utgitt av AT & T inneholder følgende statistikk om barn og telefoner: Gjennomsnittlig alder for at et barn skal motta sin første mobiltelefon er 12. 1 år. Nesten alle (90 prosent) av barna som er undersøkt ...

Redaktørens valg

Hvordan man bygger et håndverkstabell i Minecraft - dummies

Hvordan man bygger et håndverkstabell i Minecraft - dummies

For å bygge et skapbord og oppbevaringsbryst i Minecraft , du trenger treplanker. Følg disse trinnene for å bruke treblokker for å lage treplanker: Trykk E for å vise Inventory-skjermen. Klikk på et firkant som inneholder treblokker for å plukke dem opp, og klikk deretter på et tomt firkant i verktøylinjen for å plassere dem.

Hvordan du bruker fargestoff til Minecraft Items - dummies

Hvordan du bruker fargestoff til Minecraft Items - dummies

Du kan bruke farger på ull, sauer, kragen av tamme ulver, fyrverkeri stjerner, lær rustning, glass og leire i Minecraft. Når du vil fargestille et element, kan du velge hvilken som helst farge du liker for fargestoffdelen av oppskriften. Fortsett å lese for å finne ut hvordan du kan fargestille alle disse forskjellige elementene. ...

Redaktørens valg

Utforsk dialogboksen for Photoshop's Layer Style-dummies

Utforsk dialogboksen for Photoshop's Layer Style-dummies

Det første trinnet i å lage egendefinerte lagestiler er å bli kjent med individuelle lag effekter. Hver av de ti effektene som er tilgjengelige i dialogboksen Lagstil har sitt eget sett med alternativer. De fleste av de grunnleggende standardverdiene er veldig gode utgangspunkt. Du må kanskje bare endre en farge eller ...

HDR-bilder i Adobe Photoshop CC - dummier

HDR-bilder i Adobe Photoshop CC - dummier

Photoshop CC har en måte å skape og jobbe med HDR-bilder ved hjelp av kamera Raw 8 og det nye Camera Raw som et filteralternativ. Velg de brakede skuddene i mini-broen, høyreklikk på bildene og åpne i alternativet Photoshop / Merge to HDR Pro. HDR står for høyt dynamisk område, som ...