Accueil Médias sociaux En développement pour le projet Tango - les mannequins

En développement pour le projet Tango - les mannequins

Vidéo: BANG : la nouvelle billettique pour les usagers de l'Agglo 2025

Vidéo: BANG : la nouvelle billettique pour les usagers de l'Agglo 2025
Anonim

Android conduit de nombreux projets innovants de Google. Prenons, par exemple, la tablette appelée Project Tango. À première vue, un appareil Project Tango ressemble à une tablette ordinaire de sept pouces. Lorsque vous allumez l'appareil, vous voyez l'écran d'accueil Android familier avec des icônes pour lancer des applications, et avec des indicateurs pour le signal WiFi et la puissance de la batterie.

L'appareil exécute même l'application Play Store de Google. Vous pouvez ainsi l'utiliser pour naviguer sur le Web, modifier des documents et effectuer toutes les autres tâches des tablettes ordinaires.

Mais le matériel de Project Tango n'est pas ordinaire. L'arrière de la tablette a un capteur de profondeur, une caméra fish eye, et une caméra IR. En combinant les données de ces sources avec son matériel de suivi de mouvement interne, Project Tango crée une carte 3D de l'espace environnant.

Vous pouvez créer une carte de votre salon et stocker la carte sur un appareil Project Tango. Lorsque vous rapportez l'appareil à votre salon, l'appareil se souvient de l'espace et de tous les objets à l'intérieur de l'espace.

Tango est livré avec quelques applications de démonstration. Avec une application, vous visez l'appareil à deux points pour mesurer la distance entre ces points. Vous pouvez vous tenir à plusieurs pieds des points de départ et de fin car l'appareil sait à quelle distance vous vous trouvez de chacun des points.

Avec une autre application, vous parcourez les mondes virtuels. Pour changer votre point de vue dans un monde, vous ne devez pas tordre un joystick, déplacer une souris ou faire glisser vos doigts le long d'un écran. Au lieu de cela, vous regardez l'écran de l'appareil lorsque vous vous déplacez dans votre propre environnement réel. L'appareil vous montre ce que vous verriez dans le monde virtuel au fur et à mesure que vous avancez, vous vous penchez sur le côté et vous vous déplacez autour des objets 3D virtuels.

Pour vous lancer dans le développement, Project Tango est livré avec des exemples d'applications. L'ouverture de l'application QuickStart très basique dans Android Studio affiche les valeurs de translation et de rotation lorsque vous déplacez l'appareil d'un endroit à l'autre. (Voir la figure suivante.)

L'application QuickStart.

Au cœur de l'application QuickStart se trouve une activité Android. Une partie du code de l'application apparaît ci-dessous.

/ * * Copyright 2014 Google Inc. Tous droits réservés. * * Sous licence Apache, Version 2. 0 (la "Licence"); * vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence. * Vous pouvez obtenir une copie de la licence au * * // www. apache. org / licences / LICENCE-2. 0 * * Sauf si requis par la loi applicable ou accepté par écrit, le logiciel * distribué sous la licence est distribué «TEL QUEL», * SANS GARANTIE OU CONDITION DE QUELQUE SORTE, expresse ou implicite.* Voir la Licence pour la langue spécifique régissant les permissions et * limitations sous la Licence. * / import com Google. un robinet. tangoservice. Tango; import com. Google. un robinet. tangoservice. Tango. OnTangoUpdateListener; import com. Google. un robinet. tangoservice. TangoConfig; import com. Google. un robinet. tangoservice. TangoCoordinateFramePair; import com. Google. un robinet. tangoservice. TangoPoseData; // Il y a plus de déclarations d'import ici public class MainActivity extends Activité {@Overide protected void onCreate (Regrouper savedInstanceState) {super. onCreate (savedInstanceState); setContentView (disposition R., activité_main); mTranslationTextView = (TextView) findViewById (id de R. translation_text_view); mRotationTextView = (TextView) findViewById (id de R. rotation_text_view); // Instancie le client Tango mTango = new Tango (this); // Configurer la configuration Tango pour le suivi de mouvement mConfig = mTango. getConfig (TangoConfig CONFIG_TYPE_CURRENT); mConfig. putBoolean (TangoConfig.KEY_BOOLEAN_MOTIONTRACKING, true);} @Oublide protégé void onActivityResult (int requestCode, int résultatCode, données Intent) {try {setTangoListeners ();} catch (TangoErrorException e) {} try {mTango. connect (mConfig);} catch (TangoOutOfDateException e) {} catch (TangoErrorException e) {}} void privé setTangoListeners () {// Sélectionner les paires de trames de coordonnées ArrayList framePairs = new ArrayList (); framePairs. ajouter (nouveau TangoCoordinateFramePair (TangoPoseData, COORDINATE_FRAME_START_OF_SERVICE, TangoPoseData, COORDINATE_FRAME_DEVICE)); // Ajoute un écouteur pour Tango pose des données mTango. connectListener (framePairs, nouveau OnTangoUpdateListener () { @Override public void onPoseAvailable (pose TangoPoseData) { // Données de traduction et de rotation du format final String TranslationMsg = String. format (sTranslationFormat, pose. translation [0], pose [1], pose. translation [2]); final Chaîne rotationMsg = Chaîne. format (sRotationFormat, pose.rotation [0], pose.rotation [1], pose.rotation [2], rotation [3]); // Afficher les données dans TextViews runOnUiThread (new Runnable () { @Override public void run () { mTranslationTextView.setText (translationMsg); mRotationTextView setText (rotationMsg); } } ); } } );}}

Ce que vous voyez ici n'est pas la MainActivity de 210 lignes classe, mais quelques-uns des faits saillants importants de la classe ont été résumés.

Jetez un coup d'œil à la classe MainActivity. Le cœur du code de l'activité se trouve dans la classe anonyme OnTangoUpdateListener avec sa méthode onPoseAvailable.

Dans la vie quotidienne, une pose est la façon dont vous orientez votre tête par rapport à votre environnement. Et dans la terminologie du projet Tango, une pose est la façon dont vous orientez l'appareil par rapport à son environnement. Une pose est décrite par sept nombres, comme les numéros de translation et de rotation que vous voyez dans la figure précédente.

Lorsque le matériel de l'appareil détecte une nouvelle pose, le logiciel appelle la méthode onPoseAvailable. La méthode onPoseAvailable doit afficher des messages tels que Translation: -2.6622, 3. 214773, 2. 824979 dans les champs de texte de l'activité.

Mais il y a un problème. Les règles de threads d'Android dictent qu'aucun thread autre que le thread principal ne peut mettre à jour l'interface utilisateur d'une application. Dans la classe MainActivity, l'instance OnTangoUpdateListener s'exécute dans un thread qui lui est propre. La méthode onPoseAvailable de l'instance ne peut donc pas afficher les messages dans les champs de texte de l'activité en appelant directement mTranslationTextView. setText et mRotationTextView. Méthodes setText

Mais comme le dit toujours le professeur Farnsworth dans Futurama , il y a «Bonne nouvelle, tout le monde! "Android a une méthode runOnUiThread pour de telles occasions. Le paramètre de la méthode runOnUiThread est une classe qui implémente l'interface Runnable de Java. Dans le code de l'application QuickStart, la méthode d'exécution de cette classe affiche du texte pour le compte de l'instance OnTangoUpdateListener. À la fin, l'utilisateur de l'appareil voit les données de traduction et de rotation, et tout va bien.

En développement pour le projet Tango - les mannequins

Le choix des éditeurs

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Grande question est toujours sur la sécurité. Comment pouvez-vous repérer les failles de sécurité hébergées sur le Web pour protéger votre site et garantir qu'il ne sera pas piraté? La réponse courte est la suivante: Vous ne pouvez pas. Tout est piratable avec suffisamment de temps, des cerveaux sournois et des ressources. Cependant, il y a des choses que vous pouvez faire pour vous protéger un peu. ...

Comment utiliser MySQL Workbench pour votre site Web - dummies

Comment utiliser MySQL Workbench pour votre site Web - dummies

Bien que phpMyAdmin et d'autres outils d'hébergement Web Pour gérer les bases de données, il est possible que vous ayez besoin de quelque chose de plus puissant. MySQL Workbench est une bonne source dans cette instance. MySQL Workbench est un outil de conception et d'administration de base de données gratuit créé par Oracle qui réunit deux produits: MySQL Query Browser et MySQL ...

Le choix des éditeurs

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Sur un cercle - c'est-à-dire texte suivant l'extérieur d'un cercle ou ovale - est un élément de conception commun dans les mises en page. C'est vraiment facile à faire dans QuarkXPress, mais ce n'est pas du tout évident comment. Procédez comme suit: Obtenez l'outil Ovale de la palette Outils et dessinez ...

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

Deux types d'échanges de bitcoins sont utilisés : peer-to-peer et régulier. D'une part, il y a les échanges de bitcoins réguliers, qui utilisent un carnet de commandes pour faire correspondre les ordres d'achat et de vente entre les personnes. Cependant, ni l'acheteur ni le vendeur n'ont la moindre idée de l'identité de l'autre partie, ce qui permet à tous les utilisateurs ...

L'interface d'application QuarkXPress - les nuls

L'interface d'application QuarkXPress - les nuls

Les palettes visibles à gauche, à droite et en bas de QuarkXPress sont flottantes - vous pouvez les faire glisser n'importe où qui vous convient. Contrairement aux palettes, les menus de la barre de menu sont collés: vous devez toujours passer la souris à la barre de menu pour y accéder. Cependant, ...

Le choix des éditeurs

Sept erreurs d'optimisation de moteur de recherche - nuls

Sept erreurs d'optimisation de moteur de recherche - nuls

Lorsque vous essayez d'obtenir votre site Web, c'est facile de faire des erreurs d'optimisation de moteur de recherche. Voici quelques-unes des erreurs de référencement les plus courantes. Vous ne connaissez pas vos mots-clés C'est également un problème majeur: la grande majorité des sites sont créés sans que les propriétaires ou les développeurs du site ne sachent vraiment ce que sont les mots-clés ...

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Vous avez probablement vu "soumission "Services annoncés pour le référencement, peut-être sous la forme de spam dans votre boîte de réception, offrant de soumettre votre site Web à des centaines de moteurs de recherche, encore et encore. Dans la plupart des cas, ces services de soumission sont une perte totale de temps et d'argent. Voici comment obtenir votre site Web dans les moteurs de recherche. You ...

Six mythes À propos de Search Engine Optimization - mannequins

Six mythes À propos de Search Engine Optimization - mannequins

Il existe une grande confusion dans le monde des moteurs de recherche. beaucoup de mythes. Voici quelques-uns des mythes communément crus qui peuvent nuire à vos positions de moteur de recherche. Tout est une question de métabalises et de soumissions. C'est le mythe le plus répandu et le plus préjudiciable de tous, tenu par de nombreux concepteurs et développeurs Web. ...