• Like
ROBOT à base d'Android - Rapport PFE
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

ROBOT à base d'Android - Rapport PFE

  • 6,058 views
Published

Rapport PFE Cycle ingénieur, ROBOT à base d'Android

Rapport PFE Cycle ingénieur, ROBOT à base d'Android

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,058
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
733
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SIGNATURESSignature EncadreurESPRITECSignatureDépartement delangue
  • 2. Robot à base d’AndroidDEDICACESJe dédie ce travail en témoignage de mon profond respect, mon grand amour et toute magratitude à :Mes chers parents,Tous les membres de ma famille,Et tous mes amis. Houssem Eddine LASSOUED i Dédicaces
  • 3. Robot à base d’AndroidREMERCIEMENTSC’est avec un grand plaisir que je tiens tout d’abord à exprimer toute mareconnaissance à mon cher encadrant à ESPRIT : Mr Imed AMRI, pour lattentionquil a apportée à mon projet tout au long de ses divers stades allant de l’idée à laréalisation et pour ces précieux conseils.Je veux aussi, adresser mes remerciements à tous les membres de l’équipe ‘’ESPRITMOBILE‘’ Sana, Salma, Wael, Hamza et Karray pour leurs soutien, appui etencouragement.Je suis redevable à tous mes enseignants d’ESPRIT pour leurs efforts qui ont guidémes pas tout au long de mes études universitaires.Que tous ceux qui mont soutenu de près ou de loin, trouvent dans ce travaill’expression de ma reconnaissance infinie.Je tiens enfin, à exprimer lhonneur que me font les membres du jury pour avoiraccepté de me prêter leur attention et évaluer mon travail. ii Remerciements
  • 4. Robot à base d’AndroidRESUMLe travail présenté dans ce rapport, qui a été effectué au sein d’ESPRITEC, entre dans lecadre du projet de fin d’études pour l’obtention du diplôme national d’ingénieur entélécommunication. Il concerne la conception et la réalisation d’un ROBOT à base d’Android.Ce ROBOT assure un ensemble de fonctionnalités tels que l’exploration des milieuxquotidiens, dangereux et inaccessibles, il assure la sécurité dans les milieux industriels, par ladétection d’obstacles, détection de fuite de gaz, envoi d’alerte, par plusieurs moyens.Mots-clés: Android, Robot, Embarqué, IOIO, capteursABSTRACTThe work presented in this report, which was performed within ESPRITEC, is part of thegraduation project for the National Diploma in telecom engineering, it concern the designand implementation of an Android Based ROBOT.This ROBOT ensures a variety of features such as the exploration of daily zones, dangerousand inaccessible; it provides security in industrial sectors, obstacle detection, detection ofgas leakage, sending alarm by several methodsKeywords: Android, Robot, Embedded, IOIO, sensors. iii Résumé
  • 5. Robot à base d’AndroidTABLE DES MATIERES SIGNATURES .................................................................................................... i DEDICACES ...................................................................................................... i REMERCIEMENTS ........................................................................................... ii RESUM ........................................................................................................ iii TABLE DES MATIERES .................................................................................... iv LISTE DES FIGURES ....................................................................................... viii LISTE DES TABLEAUX ...................................................................................... x INTRODUCTION GENERALE ............................................................................ 1 1. PRESENTATION GENERALE ......................................................................... 3Introduction ............................................................................................................................ 3I. Contexte du projet .......................................................................................................... 3II. Présentation de l’Organisme d’Accueil ........................................................................... 3III. Problématique du projet ............................................................................................. 4IV. Solution proposée........................................................................................................ 5Conclusion .............................................................................................................................. 5 2. ETAT DE L’ART ............................................................................................ 6Introduction ............................................................................................................................ 6I. Présentation des Solutions Existantes ............................................................................ 6 Choix de la solution ............................................................................................................. 7 Avantages de la carte IOIO.................................................................................................. 8II. La Carte IOIO ................................................................................................................... 9 1. Présentation ................................................................................................................ 9 2. Caractéristiques Techniques et capacités ................................................................. 10 3. Plateforme de développement ................................................................................. 11 iv Table des matières
  • 6. Robot à base d’AndroidConclusion ............................................................................................................................ 13 3. SPECIFICATIONS ET ANALYSE DES BESOINS .............................................. 14Introduction .......................................................................................................................... 14I. Gestion du projet ........................................................................................................ 14 1. Approche Agile vs. Séquentielle ............................................................................ 15 2. Choix de méthodologie .......................................................................................... 16 1. Adaptative Software Development (ASD) ............................................................ 16 2. Dynamic Software Development Method (DSDM)............................................. 16 3. eXtreme Programming (XP) ................................................................................... 16 4. Rapid Application Development (RAD) ................................................................ 17 5. Scrum ........................................................................................................................ 17 3. Choix de la méthodologie : Mobile D .................................................................. 17II. Identification des acteurs .............................................................................................. 19III. Spécification fonctionnelle ........................................................................................ 19 1. Vision du produit ....................................................................................................... 19 2. Besoin fonctionnels ................................................................................................. 20 3. Besoin non fonctionnels ......................................................................................... 20 4. Cas d’utilisation généraux ......................................................................................... 21IV. Cas d’utilisations Détaillés ...................................................................................... 23 1. Le 1er Cas- Explorer un lieu .................................................................................... 23 2. Le 2ème Cas- Récupérer le Streaming Vidéo ........................................................ 24 3. Le 3ème Cas- Détecter un obstacle ........................................................................ 25 4. Le 4ème Cas- Détecter une fuite de gaz ................................................................ 26 5. Le 5ème Cas- Récupérer l’état du ROBOT.............................................................. 27V. Diagramme de séquence système ............................................................................ 28VI. Diagrammes de Séquence détaillés...................................................................... 29 1. Diagramme de séquence 1– Déplacer le ROBOT ............................................... 29 2. Diagramme de séquence 2– Surveiller un lieu .................................................... 30 3. Diagramme de séquence 3– Détecter un Obstacle ............................................ 31 4. Diag.de séquence 4 – Détecter une fuite de Gaz .............................................. 32 v Table des matières
  • 7. Robot à base d’AndroidVII. Maquettes ................................................................................................................. 33Conclusion ............................................................................................................................ 35 4. CONCEPTION ............................................................................................ 36Introduction ........................................................................................................................ 36I. Diagramme de séquence objets ............................................................................... 36II. Diagramme d’activités................................................................................................... 37III. Diagramme de Classe ................................................................................................ 38Conclusion ........................................................................................................................... 39 5. REALISATION ............................................................................................ 40Introduction .......................................................................................................................... 40I. Réalisation Logicielle .................................................................................................. 40 1. Environnement de travail .......................................................................................... 40II. Réalisation Matérielle ................................................................................................... 48 1. Environnement de travail ....................................................................................... 48 3. Construction matérielle .......................................................................................... 53 4. Estimation du coût .................................................................................................. 55 5. Produit final .............................................................................................................. 56 a. Montage électronique Fritzing .................................................................................. 56 b. Album Photos ............................................................................................................ 57III. Défis relevés............................................................................................................... 58IV. Perspective & Evolution ............................................................................................ 58V. Chronogramme ............................................................................................................. 59 CONCLUSION GENERALE .............................................................................. 60 BIBLIOGRAPHIE ............................................................................................ 61 ANNEXE ........................................................................................................ 62OpenAccessory et ADK ...................................................................................................... 62 OpenAccessory.................................................................................................................. 62 ADK .................................................................................................................................... 62Spécification Huawei Gaga U8180 ................................................................................... 63Capteur Ultrason – Dossier Technique ............................................................................ 64 vi Table des matières
  • 8. Robot à base d’AndroidMotor Driver TB6612FNG .................................................................................................. 68Capteur de Gaz (MQ5) ....................................................................................................... 721er Article sur Tunandroid.com ........................................................................................ 73Participation à TUNIROBOTS2012 et premier prix ........................................................ 75Participation à ComNet’2012 Supcom à Hammmet .................................................... 77Participation à Droidcon Tunis 2012 (cité des sciences) ............................................... 78 vii Table des matières
  • 9. Robot à base d’AndroidLISTE DES FIGURESFigure 1 - Android@Home ......................................................................................................... 1Figure 2 - Logo ESPRIT Mobile .................................................................................................... 3Figure 3 - Différents environnement du projet ......................................................................... 4Figure 4 - ADK de Google............................................................................................................ 6Figure 5 - Arduino Mega2560..................................................................................................... 7Figure 6 - IOIO – Logo officiel ..................................................................................................... 9Figure 7 - IOIO – Distributeur Sparkfun ...................................................................................... 9Figure 8 - Montage de la carte IOIO ......................................................................................... 10Figure 9 - Carte IOIO ................................................................................................................. 10Figure 10 - Classification des Pins ............................................................................................ 11Figure 11 - Montage de lexemple Démo ................................................................................. 13Figure 12 - Interface de lapplication Démo ............................................................................. 13Figure 14 - Cas d’utilisation généraux du projet ..................................................................... 21Figure 15 – Cas d’utilisation - Explorer un lieu ......................................................................... 23Figure 16 - cas dutilisation - Récupérer le Streaming Vidéo ................................................... 24Figure 17 - Cas dutilisation – Détecter un obstacle ................................................................ 25Figure 18 - Cas dutilisation - Détecter une fuite de gaz .......................................................... 26Figure 19 - Cas dutilisation - Récupérer l’état du ROBOT ....................................................... 27Figure 20 - Diagramme de séquence système ......................................................................... 28Figure 21 - Diagramme de séquence – Déplacer le ROBOT ..................................................... 29Figure 22 - Diagramme de séquence – Surveiller un lieu ........................................................ 30Figure 23 - Diagramme de séquence – Détecter un Obstacle ................................................. 31Figure 24 - Diagramme de séquence – Détecter une fuite de Gaz ......................................... 32Figure 25 - Maquette du ROBOT .............................................................................................. 33Figure 26 - Maquette de l’interface principale de l’application de commande ..................... 34Figure 27 - Diagramme de séquence objets............................................................................. 36Figure 28 - Diagramme dactivités............................................................................................ 37Figure 29 - Diagramme de Classe ............................................................................................. 38Figure 30 - Logo Eclipse ............................................................................................................ 40Figure 31 - Logo Fritzing ........................................................................................................... 41Figure 32 - Logo Photoshop...................................................................................................... 41Figure 33 - Logo GIT.................................................................................................................. 41Figure 34 - Dropbox logo .......................................................................................................... 41 viii Liste des figures
  • 10. Robot à base d’AndroidFigure 35 - Interface de connexion .......................................................................................... 42Figure 36 - Joystick de déplacement ........................................................................................ 42Figure 37 - Zone daffichage du streaming ............................................................................... 42Figure 38 - SeekBars ................................................................................................................. 43Figure 39 - Interface de détection de Gaz ................................................................................ 43Figure 40 - Interface de détection de distance ........................................................................ 43Figure 41 - Interface daffichage détat de Batterie ................................................................. 43Figure 42 - Notification de connexion ...................................................................................... 44Figure 43 - Tab dorientation .................................................................................................... 44Figure 44 - écran 1 - Interface de connexion ........................................................................... 44Figure 45 - écran 2 - Interface de commande .......................................................................... 45Figure 46 - Interface de lapplication Daemon ......................................................................... 48Figure 47 - Huawei Gaga .......................................................................................................... 49Figure 48 - Carte IOIO ............................................................................................................... 50Figure 49 - Plateforme de déplacement .................................................................................. 50Figure 50 - Motor Driver........................................................................................................... 50Figure 51 - Détecteur Ultrason ................................................................................................. 51Figure 52 - Capteur de gaz........................................................................................................ 51Figure 53 - Servo Moteur ......................................................................................................... 52Figure 54 - Brackets .................................................................................................................. 52Figure 55 - Montage du bras de la caméra .............................................................................. 52Figure 56 - Batterie ................................................................................................................... 52Figure 57 – Montage Carte IOIO - Smartphone ....................................................................... 53Figure 58 – Montage électronique de la plateforme de déplacement .................................... 53Figure 59 – Montage Carte IOIO et capteur de gaz ................................................................. 54Figure 60 – Montage Carte IOIO et capteur ultrason .............................................................. 54Figure 61 – Montage de la carte IOIO avec les servos moteurs .............................................. 55Figure 62 - Estimation du coût du ROBOT................................................................................ 55Figure 63 - Schéma électronique global ................................................................................... 56Figure 64 - Le Robot dans sa première phase .......................................................................... 57Figure 65 - Le Robot dans la phase intermédiaire ................................................................... 57Figure 66 - Le Robot en phase finale ........................................................................................ 58Figure 67 - Chronogramme général ......................................................................................... 59Figure 68 - USB Host and Accessory Modes ............................................................................. 62 ix Liste des figures
  • 11. Robot à base d’AndroidLISTE DES TABLEAUXTableau 1 Comparaison entre les différentes solutions ........................................................... 7Tableau 2 - Comparatif entre approche agile et approche classique ..................................... 15Tableau 3 - Caractéristiques du Mobile-D................................................................................ 18Tableau 4 - Définition du problème ......................................................................................... 19Tableau 5 - Position du produit ................................................................................................ 19Tableau 6 - Description du cas dutilisation Explorer un lieu ................................................... 23Tableau 7 - Description du cas dutilisation Récupérer le streaming vidéo ............................. 24Tableau 8 - Description du cas dutilisation Récupérer la distance ......................................... 25Tableau 9 - Description du cas dutilisation récupérer le niveau de gaz ................................. 26Tableau 10 - Description du cas dutilisation récupérer létat du ROBOT ............................... 27Tableau 11 – Commande des Moteurs .................................................................................... 46 x Liste tableaux
  • 12. Robot à base d’AndroidINTRODUCTIONGENERALEAndroid est devenu de plus en plus intéressant pour le développement de matériel.Maintenant, on devrait bientôt pouvoir brancher des manettes de jeu, un matérielpersonnalisé, des capteurs et autres dispositifs et de faire une plate-forme Android-Anywhere.Les nouvelles API1 de gestion de matériel permettront à tout le monde de développer desaccessoires matériels pour Android, à partir d’amateurs individuels vers les grandes marquesmondiales. On n’a pas à signer un NDA2, et vous n’avez pas besoin d’une licence de matérielspéciale, les aspects qui concernent la politique d’Apple n’existeront pas chez Android.On a toujours été en mesure de connecter un appareil Android à un ordinateur, mais jusquàquelques mois avant, il ny avait aucun moyen pour les applications Android d’interagir avecun autre matériel via le port USB. Dans ce contexte, nous explorons un nouvel appui pour lespériphériques dentrée USB, ainsi que de nouvelles possibilités pour les applications decommuniquer avec des périphériques via le port USB ou même la connectivité Bluetooth.L’une des annonces (1) les plus importantes du Google IO 20113, est l’arrivée du géantd’internet dans les systèmes domotiques et électroniques pour maison, office, industrieetc... Google devrait proposer un écosystème composé de plusieurs éléments Software etHardware tournant autour d’Android, le tout disponible en open source.Pour satisfaire ce nouveau besoin, plusieurs sociétés ont commencé déjà des mois avantl’annonce de Google, à proposer différentes solutions, parmilesquelles nous trouvons La carte IOIO, la solution de Ytai BEN TSVI(2) , un jeune ingénieur développeur et amateur d’électronique, qui aconçu cette carte dans son passe-temps sans savoir au préalableque son produit serait exploitable mondialement et adoptéofficiellement par Google (3).C’est dans ce cadre que notre projet s’inscrit : il s’agit de Concevoir, Figure 1 - Android@Homeconstruire, développer un système embarqué intelligent basé sur1 Application Programming Interface2 Non-Disclosure Agreement3 Google I/O est une conférence annuelle de deux jours, organisée par Google au Moscone Center de SanFrancisco, en Californie. 1 Introduction Générale
  • 13. Robot à base d’AndroidAndroid, soit un Robot à base d’Android.Tout au long de ce rapport, nous exposerons les différentes étapes de réalisation de notreprojet, en commençant par une présentation des notions fondamentales relatives à lacompréhension de notre sujet, ensuite nous présenterons les différentes solutionsexistantes et finalement dans la dernière partie, on donnera une description détaillée de lasolution formulée. 2 Introduction Générale
  • 14. Robot à base d’Android 1. PRESENTATION GENERALE Introduction Nous présentons dans ce chapitre une étude préliminaire du projet. Dans un premier temps, nous présentons l’environnement du stage. Par la suite, nous décrivons la problématique, ainsi que les principaux objectifs du projet.I. Contexte du projet Dans le cadre de la formation d’ingénieurs Télécommunications à l’École Supérieure Privée d’ingénierie et de Technologies (ESPRIT), nous avons eu l’occasion d’effectuer notre projet de fin d’études pour l’obtention du diplôme d’ingénieur national en Télécommunications au sein du Laboratoire de Recherche et Développement EPRITEC attaché à ESPRIT précisément avec l’équipe ESPRIT Mobile, généralement ce projet vise à compléter notre formation universitaire acquise, durant trois ans, au sein de cet établissement, et de nous introduire dans la vie professionnelle grâce à une mise en pratique de nos connaissances, à l’utilisation des compétences acquises et à mettre en épreuve notre esprit d’ingénieur. Le projet consiste à concevoir et réaliser un ROBOT à base du système Android dans le but d’initier et d’améliorer la recherche dans le domaine Mobile/Embarqué à ESPRIT.II. Présentation de l’Organisme d’Accueil Le projet a été réalisé au sein d’ESPRITEC, l’unité de Recherche-Développement-Innovation (RDI) de l’Ecole Supérieure Privé d’Ingénierie et de Technologies (ESPRIT) situé au pôle technologique El Ghazela. Cette unité s’oriente vers la «Recherche appliquée » et privilégie deux axes : – L’axe «Technologique» : pour la maitrise des technologies avancées. Elle nécessite la mise en place d’une plate-forme pour le développement des services et l’expérimentation des nouvelles applications et des nouvelles technologies. – L’axe «Application et service» : pour développer des prototypes, des nouveaux services et applications avancées pouvant avoir des retombées industrielles et/ou socio-économique. ESPRITEC partage ses activités entre plusieurs équipes : Figure 2 - Logo ESPRIT Mobile 3 Présentation générale
  • 15. Robot à base d’Android - L’équipe ESPRIT Mobile1 réalise des Projets sur les différentes plateformes et systèmes mobile, comme Android, BlackBerry, iOS, WP7, et aussi sur la SMART TV, l’AR-Drone, ADK, Panda Board etc… – L’équipe M2M (Machine to Machine) spécialisé dans la technologie ambiante et le traitement d’image. – L’équipe Cloud travaille sur la mise en place des systèmes de Cloud Computing. – L’équipe E-GOV réalise des projets d’intégration et d’urbanisation des systèmes d’informations. Les projets entrepris mobilisent des équipes composées de plusieurs chercheurs, enseignants-chercheurs, ingénieurs et étudiants en projet de fin d’études (PFE) et projet de fin de l’année (PFA) sous la conduite d’un chef de projet. Des étudiants en PFE, Mastères ou Doctorats d’autres institutions sont aussi intégrés dans les équipes de projets dans le cadre de conventions de partenariat avec les laboratoires et unités de recherche des établissements publics. Notre projet, réalisé au sein de l’équipe ESPRIT Mobile entre également dans le cadre d’un grand projet pédagogique innovant à ESPRIT, vise à intégrer les toutes nouvelles tendances technologiques dans l’environnement pédagogique à travers des Workshops orientés, des Travaux Pratiques dirigés, et même des Produits finis à réalisés.III. Problématique du projet Pour aboutir à un système embarqué intelligent basé sur Android et qui répond aux besoins demandés par ESPRITEC et par des différents clients potentiels (entreprises, personnes), il est important de se focaliser en premier lieu sur les problématiques du projet pour pouvoir sorganiser. De la sorte, on va déterminer le périmètre daction et de faisabilité de ce projet. Comme il est illustré à la figure 3, le projet passe par plusieurs environnements, cela commence sur la machine du développeur, en passant par une phase de réalisation matérielle, vers l’environnement de test réel pour arriver finalement à l’environnent de production. De plus, le projet peut être Figure 3 - Différents environnement du projet transféré d’un environnement à un autre plusieurs fois avant qu’il soit finalisé. 1 http://www.espritmobile.com/ 4 Présentation générale
  • 16. Robot à base d’Android La migration et le déploiement du projet d’un environnement vers un autre ne se fait pas de la même façon et ne présente pas les mêmes degrés de complexité, puisque sur l’environnement de développement, une simple compilation suffira, mais le déploiement de la solution sur les autres environnements surtout la réalisation matérielle présente plusieurs contraintes et difficultés de plus si nous voulons transférer seulement un composant ou une fonctionnalité bien spécifique, sans toucher aux autres composants ce qui rend cette manipulation délicate et pénible d’où le besoin de concevoir une approche qui permet de réaliser cette tâche. Il y a aussi d’autres scénarios possible du système qui nous obligent de concevoir une solution polyvalente tel que :  Système qui répond à des besoins spécifiques en termes de fonctionnalités.  Système qui possède une marge d’évolutivité assez grande.  Prouver la possibilité de fusionner l’intelligence d’Android avec le milieu quotidienIV. Solution proposée La solution proposée comme système embarqué intelligent basée sur le OS Android, sera un ROBOT à base d’Android, équipé avec deux applications, la première aura comme rôle d’assurer le fonctionnement interne du Robot et l’interaction avec le milieu extérieur, la deuxième permet à l’utilisateur de commander et interagir avec le ROBOT en offrant une interface graphique dotée de plusieurs fonctionnalités avancées, et une interface de connexion sans fil. Conclusion Ce chapitre nous a servi à mettre notre projet dans son cadre. En effet, notre projet de fin d’études est réalisé à ESPRITEC, et qui consiste à créer un robot intelligent basée sur Android, dans le but de suivre et accroître l’innovation technologique dans ce domaine et initier tout un nouvel horizon dans la création et l’exploitation des systèmes embarqués intelligents. Dans le chapitre suivant, nous introduirons les concepts nécessaires à la compréhension de ce projet à savoir : une présentation de la solution choisie comme concept et comme plateforme de développement logicielle et matérielle et les autres solutions existantes ainsi qu’une comparaison entre ces derniers pour mettre l’accent sur leurs points forts et faibles. 5 Présentation générale
  • 17. Robot à base d’Android2. ETAT DE L’ARTIntroductionDans ce chapitre nous allons présenter quelques notions et technologies qui vont servir àmieux comprendre notre sujet, ce chapitre sera composé de cinq parties qui seront répartiescomme suit.La première partie sera consacrer à la présentation du principe et concept des solutionsexistantes et leurs nouveaux enjeux avec une étude comparative entre les produits similairesdu marché, la seconde partie présente la carte IOIO, son architecture physique et logiqueainsi toutes ces composantes pour finir avec une brève présentation de sa plateforme dedéveloppement. I. Présentation des Solutions ExistantesLes systèmes embarqués ne sont pas particulièrement nouveaux, les premiers systèmessont apparus au début des années 60. La première génération de ces systèmes a étéconstruite sur des solutions lourdes et complexes à déployer en se basant essentiellement àla programmation bas-niveau et les résultats obtenus n’ont pas toujours été à la hauteur desespérances des utilisateurs. Il faut également ajouter que les systèmes embarqués classiquesn’étaient pas suffisamment matures pour tenir véritablement les promesses de l’unificationdes interfaces de communications vis-à-vis l’utilisateur.Fort heureusement la situation a beaucoup changé ces derniers tempsgrâce à l’apparition du système mobile Open Source Android: denouvelles plates-formes techniques embarquées plus simples et pluscomplètes telles que la carte IOIO, la carte Arduino (4), l’ADK de Google(5) , la PANDA BOARD et la Beagle BOARD sont apparues et le niveau dematurité des systèmes embarqués à base d’Android s’estconsidérablement accru. Il en résulte le début d’un grand retour desprojets embarqués conçues à base d’ANDROID.Vu la présence de quelques produits exploitables sur le marché, le choix Figure 4 - ADK de Googled’une solution pour la création du ROBOT, se base sur plusieurs critères tel que le prix et lesfonctionnalités offertes, la compatibilité avec les autres acteurs environnementaux tel queles composants électroniques, et surtout la réponse aux besoins demandés. 6 Etat de l’art
  • 18. Robot à base d’AndroidLe tableau ci-dessous présente une étude comparative entre les principales solutions sur lemarché.Critères de comparaison Carte Arduino Carte Google ADK Carte IOIODéveloppement JAVA, C++ Sketch JAVA, C++ Sketch JAVA (+IOIO Lib)Compatibilité Versions Android V1.5 with ADB V3.1 Or V2.3.4 V1.5 and UPDimensions 68 - 53mm 86 - 53mm 70 - 30mmCompatibilité Bluetooth Bluetooth Bluetooth Shield NATIVE (V.3) Shield Plug & PlayCompatibilité OpenAccessory Non Oui Oui (V.3)Connectivité USB Hôte Oui Oui OuiPrix 75$ 80$ - 400$ 50$ Tableau 1 Comparaison entre les différentes solutionsD’après le comparatif ci-dessus nous constatons que la carte IOIO est la carte la plus adaptéeà la création de ce système intelligent.Choix de la solution :Les deux différences les plus significatives entre les 3 solutions sont les suivantes:ADK et ses clones ne fonctionnent que sur des appareils Android très spécifiques, tandis quela carte IOIO pourrait fonctionner sur presque nimporte quel appareil Android depuisAndroid 1.5.Avec ADK ou l’Arduino vous devriez écrire à la fois le côté Android (Java) et de côté carte(C++) du logiciel (Sketch (6)) et détablir un protocole de communication (7) entre eux. Vousauriez à connaître les deux langages et deux IDE1 différents et, même si vous faites quelquechose de très trivial, il faudra une importante durée de temps pour obtenir quelque chosequi fonctionne de manière fiable. Avec IOIO, vous écrivez simplement le côté dAndroid. Ilsuffit d’inclure une bibliothèque appelée IOIOLib dans l’application, ce qui fournit une APIqui vous permet de contrôler les broches de la carte IOIO et ses fonctions comme silsétaient physiquement connectés à votre Android. Vous navez pas besoin de se soucier dufait quil y a un processeur distinct, des protocoles de communication, etc…Si vous vous en tenez un Dongle Bluetooth dans IOIO au lieu dun câble USB àlAndroid, il communiquera sans fil avec l’appareil. La bonne chose est quevotre application na pas besoin de sen soucier, et vous pourrez mêmerevenir en arrière lorsque votre application est en coursdexécution.IOIO Supporte officiellement le protocole OpenAcessory(ADK)2 de Google.Cette nouvelle fonctionnalité est actuellement réalisée enmode bêta. Les Informations techniques disponibles sur le wiki Figure 5 - Arduino Mega25601 Integrated Development Environment2 Le terme "ADK" Accessory Development Kit : est souvent utilisé comme synonyme de "OpenAccessory",lorsqu’on dit que cette carte supporte ADK ça veut dire quelle supporte le protocole OpenAccessory. 7 Etat de l’art
  • 19. Robot à base d’AndroidIOIO. La façon dont cela fonctionne est que la carte IOIO sera capable de communiquer avecle périphérique Android via le protocole OpenAccessory. Lorsque ce nest pas supporté, ilsera parfaitement switcher à ADB1. Cela vous permet de connecter la même carte IOIO auxdeux types de dispositifs, les nouveaux et les anciens. L’application peut très facilement êtreportée sur le nouveau mode, cela ne nécessite que quelques non-intrusive modifications auxmétadonnées de l’application.Avantages de la carte IOIOLa carte IOIO Supporte toutes les versions Android - puisque elle fonctionne aussi bien avecOpenAccessory et l’ADB elle peut communiquer avec une très grande variété de dispositifsAndroid existants, en sappuyant sur OpenAccessory quand elle existe et en tirant parti desfonctionnalités supplémentaires de l’ADB. Dautres cartes, qui ne prennent pas en charge del’ADB, sont limitées à tous, sauf aux derniers appareils Android sur le marché.Fonctionnalité - IOIO est presque identique à Arduino Mega (figure 5) en termes de nombrede broches (pins) et de fonctions. La seule différence est le nombre de canaux PWM (IOIO-9,Mega-16) et les canaux de TWI (IOIO-3, Mega-1).Coût - à 50 $, IOIO semble actuellement être la carte la moins chère commercialisée etdisponible sur le marché. Une alternative à proximité est une version DIY, ce qui coûte 55 $et nécessite une certaine amélioration de plus.Développement de haut niveau - les autres cartes nécessite à la fois une application Androidet un code intégré en C pour la carte, la conception de votre propre protocole decommunication. IOIO fait tout cela automatiquement, il ne reste qu’écrire le code Androidde l’application, En utilisant une API Java de haut niveau pour contrôler les fonctions de lacarte.Support Forum et Wiki - IOIO a un groupe de discussion active et une extensivedocumentation wiki, qui continue de croître rapidement. Le projet IOIO est engagé aussibien dans la communauté amateur que dans la communauté professionnelleDimensions - IOIO est probablement la plus petite carte, presque aussi petit qu’on pourraitobtenir avec 48 broches E/S, des broches dalimentation et dun connecteur USB. Il estbeaucoup plus petit que la carte ADK.Bootloader - firmware - IOIO comprend un chargeur de démarrage sécurisé, qui permet lesmises à niveau à effectuer à travers un appareil Android.Alimentation - IOIO possède un commutateur-mode à 5V capable de délivrer jusquà 1,5 A.Cela permet de charger simultanément un appareil Android et alimenter deux servosmoteurs standard sans problème. Quelques autres cartes nécessitent une alimentation de5V externe pour soutenir ce cas dutilisation. En outre, IOIO a un limiteur intégré qui permetde limiter le courant de charge dAndroid. Ceci est très utile pour les configurationsfonctionnant sur batterie, lorsque vous ne voulez pas lappareil Android à vider votre1 Android Debug Bridge 8 Etat de l’art
  • 20. Robot à base d’Androidbatterie.Open-Source - Contrairement à certaines des autres solutions, le matériel de lIOIO, leFirmware et le logiciel(les APIs) sont totalement open-source avec une licence FreeBSD (trèspermissive). Cette approche a été choisie parce que selon l’inventeur cest ce qui marche lemieux pour la communauté des amateurs, et permet aux gens de personnaliser le produitpour leurs besoins, contribuer au projet, le comprendre mieux et concurrencer sur son prix.En conclusion, la carte IOIO est très compétitive avec les autres plates-formes compatiblesOpenAccessory, d’où le choix d’utiliser cette carte lors de ce projet. Figure 6 - IOIO – Logo officielII. La Carte IOIO 1. Présentation IOIO (prononcez: yo-yo) est un produit qui vous permet de connecter des circuits électroniques à un appareil Android et de les contrôler à partir dune application Android. Il est composé dune petite carte PCB (2.7x1.2 "= 7x3cm) spécialement conçu pour être piloté via un dispositif Android (avec version dOS 1.5 et sup.) par le biais de son port USB Ce pilotage seffectuera via des API JAVA™ simples et intuitives que vous utilisez dans votre application Android qui gère toutes les communications avec la carte sans avoir recours à une programmation embarquée bas Figure 7 - IOIO – Distributeur Sparkfun niveau, ni au moindre programmateur externe). Aucune modification de lappareil Android est nécessaire - vous éviter la complication de la modification et lannulation de la garantie. Dès lors le module IOIO permettra à votre système Android dinteragir avec le monde extérieur en lui permettant de disposer de ports dentrée/sorties tout ou rien, de sortie PWM, dentrée analogiques, de liaison SPI™, I2C™, UART... 9 Etat de l’art
  • 21. Robot à base d’Android IOIO est disponible pour achat en ligne à partir du site officiel de SparkFun Electronics1. La totalité du logiciel et du matériel sont à 100% open-source sous une licence permissive. 2. Caractéristiques Techniques et capacitésLa carte électronique est construite autour d’un microcontrôleur PIC série 24F, qui disposed’une connexion USB hôte. Il suffit donc de la relier à l’aide d’un câble USB à un périphériqueAndroid (OS v1.5 minimum) pour que la carte IOIO interprète des commandes reçues parune application.Pour mieux comprendre c’est quoi la carte IOIO et comment utiliser au mieux sescaractéristiques, cette section prend une brève tournée à travers ce produit et fournit desintroductions aux quelques-unes de ses caractéristiques et ses capacités. Figure 9 - Carte IOIO Figure 8 - Montage de la carte IOIOPour les spécifications techniques, la carte IOIO se compose de :1. Connecteur USB (type A) connecteur femelle: Permet de connecter lappareil Android.2. GND pins (9 pins): prise de terre.3. VIN pins (3 pins): Utilisé pour lalimentation à la carte. Tension entre 5V-15V doit être fournie.4. 5V pins (3 pins): Normalement, utilisée comme sortie 5V lorsque la carte est alimentée à partir de VIN. Peut être utilisé comme entrée 5V en cas VIN nest pas connecté.5. 3.3V pins (3 pins): 3,3 V en sortie.6. I/O pins (48 pins, numérotées 1-48): Des broches E/S. Certains ont des fonctions spéciales, voir ci-dessous:  48 pins d’entrées/sorties (peuvent fonctionner comme des entrées et sorties numériques.)1 http://www.sparkfun.com/ 10 Etat de l’art
  • 22. Robot à base d’Android  16 entrées analogiques (10-bits)  Jusqu’à 9 sorties PWM  Jusqu’à 4 liaisons séries UART  Jusquà 3 canaux SPI.  Jusqu’à 3 liaisons TWI (I2C-compatible)7. LED dalimentation: Sallume lorsque la carte IOIO est sous tension.8. Stat LED: Sallume brièvement lors de la mise sous tension, puis devient sous le contrôle des applications.9. MCLR pin: Non normalement utilisé. Son but est de programmer le Firmware nouveau Bootloader sur la carte IOIO.10. Charge Current Trimmer (CHG): Permet de régler la quantité de courant de charge fourni sur la ligne VBUS de lUSB à lappareil Android. Tourner dans le sens (+) augmente de courant de charge.11. Régulateur de tension 5v - 1,5 A : Peut charger lappareil Android ainsi que la puissance dun couple de petits moteurs.12. Bootloader : intégré sur la carte, permettant la mise à niveau du Firmware en direct à partir d’une application sur l’appareil Android. Figure 10 - Classification des Pins3. Plateforme de développementDans cette section, nous allons jeter un œil à larchitecture de la carte IOIO du point devue dun développeur.La carte IOIO offre un ensemble de logiciels et Firmware disponible en téléchargement via lapage Github 1officielle du Développeur (8).1 GitHub est un service web dhébergement et de gestion de développement de logiciels, utilisant leprogramme Git 11 Etat de l’art
  • 23. Robot à base d’AndroidLe pack se compose de :  IOIOLib (V3.23) : API JAVA officielle pour le développement sous Android  Image IOIO Bootloader (v3.23) : pour mettre à jour le Bootloader de la carte  Firmware Image (v2) : pour mettre à jour le Firmware de la carte IOIO  L’application IOIO Manager (9) : elle permet de gérer les images des applications ainsi que les images de BootloaderIOIOLib – Principe de développement :IOIOLib est une bibliothèque Android, qui permet à votre application Android de contrôler lacarte IOIO. Elle expose un ensemble dinterfaces Java, couvrant les différentes fonctions dela carte électronique. Lorsque vous générez votre application, IOIOLib se fait emballé dansvotre fichier Apk, afin que votre application soit autonome et ne nécessite aucuneinstallation supplémentaire sur lappareil Android qui lexécute. Lensemble du code est purJava, dépendant uniquement de la norme Android 1.5 (ou version ultérieure).IOIOLib est tout documenté au format Javadoc standard, et cette documentation estdestinée à être complète et être utilisée comme référence pendant le codage. Dans ce quisuit, nous essayons de couvrir une utilisation de la bibliothèque à partir dune approchecommune de cas dutilisation plutôt que dêtre 100% formelle.La bibliothèque est organisée en plusieurs packages Java. Le package ioio.api contient toutesles APIs publiques pour contrôler la IOIO. Ceci est le package de notre application qui serautilisé. Dedans, le paquet ioio.api.exception contient certaines exceptions levées par lAPIIOIO. Le paquet ioio.impl contient la mise en œuvre de ces interfaces et nest pas destinée àêtre utilisée directement. Le paquet ioio.util contient des utilitaires utiles qui peuvent vousrendre la vie un peu plus facile lors de lécriture des applications ioio, mais ne fournissentpas les fonctionnalités de base. Ce paquet contient une classe, qui sert de classe de basepour notre application basée sur IOIO, qui gère automatiquement la bonne connexion /déconnexion à la carte IOIO en réponse à des événements dapplication.IOIOLib – Utilisation : (sous Eclipse)La dernière version de IOIOLib peut être téléchargée depuis la page Téléchargements (10).  Extraire IOIOLib à un endroit où vous voulez normalement garder vos projets Android.  Limporter dans Eclipse en utilisant Fichier> Importer ... > Général> Projets existants dans Workspace ..., puis choisissez le répertoire IOIOLib vous venez de créer et cliquez sur Terminer.  Il référence de votre projet dapplication, conformément à ces instructions  Assurez-vous que votre application déclare android.permission.INTERNET. Cela peut se fait en ouvrant le fichier AndroidManifest.xml qui se trouve à la racine de votre projet, allez à longlet Permissions> Ajouter ... > Permissions Utilisateur> 12 Etat de l’art
  • 24. Robot à base d’Android Sélectionnez android.permission.INTERNET sous "Nom".  Assurez-vous que vous avez activé le débogage USB sur votre appareil Android, en allant dans Paramètres> Applications> Développement> Activer le débogage USB.Voici à quoi ressemble un exemple de HelloIOIOpublic class MainActivity extends IOIOActivity { ... class Looper extends BaseIOIOLooper { private DigitalOutput led_; @Override protected void setup() throws ConnectionLostException { led_ = ioio_.openDigitalOutput(0, true); } public void loop() throws ConnectionLostException { led_.write(!button_.isChecked()); try { Thread.sleep(100); } catch (InterruptedException e) { } } } @Override protected IOIOLooper createIOIOLooper() { return new Looper(); }}Cette Application permettra d’allumer la LED numéro 0 de la carte IOIO via un Bouton Figure 13 Figure 12 - Interface de lapplication Démo Figure 11 - Montage de lexemple DémoConclusionDans ce chapitre, nous avons passé en revue les différentes notions nécessaires à lacompréhension de notre sujet et nous avons mené une étude comparative entre lesdifférentes approches et solutions disponibles pour réaliser un système embarqué basé surAndroid.Puisque ce projet est notre premier contact avec le milieu Android embarqué, il nécessitebeaucoup de recherche et dès le début nous savions que selon nos découvertes nous seronsamenés à changer les spécifications, avec ces contraintes. 13 Etat de l’art
  • 25. Robot à base d’Android3. SPECIFICATIONSET ANALYSE DESBESOINSIntroductionAprès avoir présenté le cadre général de notre projet, nous allons, dans ce chapitre, entamerla phase de spécification et d’analyse des besoins. En effet, tout au long de ce chapitre, nousallons identifier et préciser les besoins à satisfaire. Ces besoins représentent aussi lesfonctionnalités à réaliser dans notre application, ce chapitre sera présenté sous forme de« User cases » et « Sequence Diagrams »- scénarios. Nous commençons ce chapitre avec unedescription de la gestion de notre projetLe choix d’une méthode agile est évident et après une comparaison entre les principalesméthodes agiles, nous allons choisir la méthodologie la plus adéquate pour réaliser ceprojet. I. Gestion du projetTrop souvent, de bonnes idées de projet n’aboutissent pas, du fait d’une mauvaiseorganisation. Pour améliorer nos chances de réussite, nous devons choisir une méthode dedéveloppement de logiciels pour notre application.La discipline de gestion des projets comporte deux grandes branches de méthodologie, lesméthodes classiques (ou Séquentielle) et les méthodes agiles.Nous allons dans cette partie présenter ces deux approches, faire une brève description desdifférentes méthodologies, et présenter la méthodologie que nous allons l’adaptée enspécifiant les avantages et la compatibilité avec notre cas de figure. 14 Spécifications et analyse des besoins
  • 26. Robot à base d’Android 1. Approche Agile vs. SéquentiellePour bien choisir notre type de méthodologie de travaille nous avons dressé le tableau 2-6qui présente une comparaison entre les deux approches par thème. (11) Thème Approche Séquentielle Approche agileCycle de vie En cascade ou en V, sans Itératif et incrémental. rétroaction possible, phases séquentielles.Planification Prédictive, caractérisée par des Adaptative avec plusieurs niveaux de plans plus ou moins détaillés sur planification avec ajustements si la base d’un périmètre et nécessaires au fil de l’eau en fonction d’exigences définies au début du des changements survenus. projet.Documentation Produite en quantité importante Réduite au strict nécessaire au profit comme support de d’incréments fonctionnels communication, de validation et opérationnels pour obtenir le feedback de contractualisation. du client.Équipe Une équipe avec des ressources Une équipe responsabilisée où spécialisées, dirigées par un chef l’initiative et la communication sont de projet. privilégiées, soutenue par le chef de projet.Qualité Contrôle qualité à la fin du cycle Un contrôle qualité précoce et de développement. Le client permanent, au niveau du produit et du découvre le produit fini. processus. Le client visualise les résultats tôt et fréquemment.Changement Résistance voire opposition au Accueil favorable au changement changement. inéluctable, intégré dans le processus. Processus lourds de gestion des changements acceptés.Suivi de Mesure de la conformité aux Un seul indicateur d’avancement : lel’avancement plans initiaux. nombre de fonctionnalités implémentées et le travail restant Analyse des écarts. affaire.Gestion des risques Processus distinct, rigoureux, de Gestion des risques intégrée dans le gestion des risques. processus global, avec responsabilisation de chacun dans l’identification et la résolution des risques. Pilotage par les risques.Mesureur succès Respect des engagements initiaux Satisfaction client par la livraison de en termes de coûts, de budget et valeur ajoutée. de niveau de qualité. Tableau 2 - Comparatif entre approche agile et approche classique pour la gestion de projetMaintenant que nous connaissons mieux les différences majeures entre approchestraditionnelles et approches agiles à travers la comparaison faite ci-dessus nous avons opté 15 Spécifications et analyse des besoins
  • 27. Robot à base d’Androidpour une approche agile pour gérer notre projet. 2. Choix de méthodologiePuisque nous avons choisie d’adopter une approche agile pour gérer notre projet nous allonsmaintenant choisir quelle méthode agile à suivre tout au long de la réalisation de notreProjet.Pour choisir une méthode nous citons, tout d’abord, quelque unes parmi les principalesméthodes agiles, par ordre alphabétique, avec leurs caractéristiques principales. 1. Adaptative Software Development (ASD)Ses caractéristiques principales sont : Focaliser sur l’objectif. Se baser sur des composants. Itérer. Découper le temps et fixer des deadlines (timeboxing). Piloter le projet par les risques. Accepter le changement. 2. Dynamic Software Development Method (DSDM)DSDM se base sur neuf principes : Implication active des utilisateurs. Autonomie et pouvoir de décision des équipes. Livraisons fréquentes. Adéquation aux besoins des clients comme seul critère d’acceptation du produit. Développement itératif et incrémental. Modifications réversibles. Définition globale macroscopique des besoins. Intégration des tests dans tout le cycle de vie. Collaboration et coopération entre toutes les parties prenantes. 3. eXtreme Programming (XP)XP repose sur quatre valeurs : Communication : l’effort de communication entre les différents intervenants est indispensable pour atteindre l’objectif commun. Nous devons privilégie la communication directe, dans le recueil et la clarification des besoins, dans la planification des itérations, dans la répartition et l’exécution des travaux. Simplicité : la solution la plus simple est la meilleure pour atteindre les objectifs ; grâce à cette simplicité, l’application pourra évoluer facilement, si nécessaire. La simplicité est applicable au client dans la définition de ces besoins, dans le choix des outils et du processus. Feedback : le retour d’information est essentiel pour valider le fait que le projet est sur la bonne voie : tests unitaires pour valider le fonctionnement du code, intégration continue 16 Spécifications et analyse des besoins
  • 28. Robot à base d’Android pour détecter des anomalies, tests fonctionnels pour valider la conformité aux besoins, livraisons fréquentes…, autant de pratiques qui rendent plus aisées les adaptations éventuelles, sans attendre le terme du projet. Courage : le courage est nécessaire aussi bien chez le client que chez les développeurs. Pour mener à bien un projet XP, le client doit avoir le courage de donner un ordre de priorité à ses exigences, de reconnaitre que certains de ses besoins ne sont pas toujours très claires. Le développeur doit aussi avoir le courage de modifier l’architecture même si le développent est déjà bien avancée, de jeter du code existant et d’accepter qu’il est parois plus rapide et efficace de réécrire une portion de code à zéro plutôt que de bricoler du code existant. 4. Rapid Application Development (RAD)RAD n’est pas à proprement parler une méthode agile, mais c’est une approche(semi)itérative incrémentale préconisant un usage intensif des techniques decommunication facilitée. 5. ScrumLes valeurs mises en avant par Scrum sont les suivantes : Transparence : La transparence garantit que tous les indicateurs relatifs à l’état du développement sont visibles par tous ceux qui sont intéressés par le résultat du produit. Non seulement la transparence pousse à la visibilité mais ce qui est rendu visible doit être bien compris ; cela signifie que ce qui est vu est bien le reflet de la réalité. Par exemple, si un indicateur annonce que le produit est fini (ou une partie seulement du produit), cela doit être strictement équivalent à la signification de fini définie par l’équipe. Inspection : Les différentes facettes du développement doivent être inspectées suffisamment souvent pour que des variations excessives dans les indicateurs puissent être détectées à temps. Adaptation : Si l’inspection met en évidence que certains indicateurs sont en dehors des limites acceptables, il est probable que le produit résultant sera également inacceptable si on ne réagit pas ; le processus doit donc être ajusté rapidement pour minimiser les futures déviations.Une étude de ces différentes méthodologies révèle qu’elles ont un tronc commun, mais ellesse différencient par leur degré de formalisme, les revues, le rythme du projet, le nombre etla longueur des itérations et à la taille de projets.Après cette étude comparative notre choix s’est focaliser sur deux méthode Scrum et XP,mais nous avons choisi XP puisque la qualité principale de cette dernière est la simplicité deplus cette méthode privilégie une équipe autonome, malgré que nous n’avons pas respectéune caractéristique fondamentale de XP qui est le travail en binôme, ce qui n’est le cas avecnotre projet, puisqu’il est réalisé par un seul développeur. 3. Choix de la méthodologie : Mobile DTandis que beaucoup de méthodes agiles ont été présentées, aucune d’elles n’est 17 Spécifications et analyse des besoins
  • 29. Robot à base d’Androidspécifiquement visée pour le développement mobile et surtout pour notre cas.Mobile-D est une approche agile pour l’équipement mobile qui est basé sur XP (eXtrêmePrograming), la méthodologie Crystal (Scalability) et Rational Unified Proces (Assurance decycle de vie). Elle est conçue pour rencontrer les caractéristiques spécifiques dedéveloppement de l’application mobile et le standard de qualité de l’industrie.Le travail de développement est divisé en différentes phases qui sont l’exploration,initialisation, production, stabilisation, et test et correction du système.Il se dégage de ce qui précède que nous allons suivre la méthodologie XP (eXtremePrograming) qui est un processus de développement logiciel agile.XP propose un cycle de développement itératif incrémental, qui fusionne les trois phases deconception, de réalisation et de test pour chaque itération du logiciel à réaliser.En faisant la combinaison des avantages des trois méthodes, Mobile-D satisfait lescaractéristiques du développement requis, Cela est représenté dans le tableau 3 suivant : Caractéristiques de Rational Logiciel Mobile Mobile-DChangement élevée En raison du changement élevé des Incertitude élevée, environnementd’environnement exigences, on a besoin de dynamique: Centaines de nouveau de l’approche de développement téléphones portables sont fabriqués incrémental et itératif chaque annéePetite équipe de Les petites équipes peuvent réagir Majorité de logiciel mobile sontdéveloppement plus rapidement, partager développés par micro (<10) ou l’information, peu de moyennes (<250) entreprises, La taille documentation est nécessaire de l’équipe est souvent inférieure à 20 personnesClient identifiable Pour éviter le malentendu Nombre potentiellement illimité d’affaires d’utilisateur. Client d’affaires plus facile à identifier, par exemple distributeurEnvironnement de Flexible, extensive, etc… Utilise souvent Java et C++développementd’objet orientéNon sécurité Les échecs ne causent pas la perte Majorités de logiciel mobile existantcritique des vies sont pour le but de divertissement. Les équipement mobiles sont non fiablesLogiciel de niveau Les grands systèmes embarqués Tandis que les systèmes mobiles sontd’application exigent la communication étendue complexes et fortement dépendants, les et mécanismes de vérification. applications mobiles peuvent être applications autonomesPetit système Moins de conception d’Up front La taille des applications mobiles varie, requise mais généralement elles sont moins que 10.000 lignes de codeCycle de Pour les buts de la rétroaction Les cycles de développement varient. Endéveloppement rapide général, les applications mobilescourt peuvent être développés de 1 à 6 mois Tableau 3 - Caractéristiques du Mobile-D 18 Spécifications et analyse des besoins
  • 30. Robot à base d’AndroidII. Identification des acteurs L’acteur de notre Système Intelligent (Robot) s’intercale entre 3 types d’utilisateurs selon l’environnement d’exploitation, soit les entreprises (principalement industrielles) ou les personnes physiques pour des besoins personnelles, ou les établissements de Recherche (Universités, Laboratoires,…). Ces utilisateurs jouent presque le même rôle ce qui nous permet de dire que notre application n’a qu’un seul acteur qu’on l’appelle dorénavant UTILISATEUR.III. Spécification fonctionnelleNous commençons par présenter la vision et le use case général de notre projet puis nousdécoupons le projet sous forme de scénarios. 1. Vision du produitPendant les premières réunions avec le responsable à ESPRITEC (Equipe ESPRIT Mobile) nousavons discuté les différents côtés de notre projet ce qui nous a permis de définir l’énoncé duproblème, l’impact de la problématique, ce que permet le produit, et la position du produit àréaliser dans son environnement et par rapport à l’existant, comme montré dans les deuxtableaux suivants:Le problème d’intégration de solutions intelligentes dans le monde réel en utilisant l’intelligence logicielle disponible(Android).Affecte les milieux domotiques, industriels, …L’impact du problème est manipulation délicate et trop de temps perdu pour interagir avec le milieu quotidien d’une façon automatiséeUne solution réussite une manipulation plus raffiné des fonctionnalités à assurerpermettrait par le système intelligent, une interaction efficace avec le monde extérieur Tableau 4 - Définition du problèmePour ESPRITECType de produit ROBOT(Hardware) + 2 applications mobiles.Qui permet d’assurer différentes types de fonctionnalités comme l’exploration, la sécurité, la surveillance, la réaction intelligente.A la différence de les systèmes embarqués existants, Limité en fonctionnalités, Programmables généralement en langage bas niveau, et ne communique pas avec les moyens disponibles pour tout le monde (Smartphone, Tablet, Navigateur Web). Tableau 5 - Position du produit 19 Spécifications et analyse des besoins
  • 31. Robot à base d’Android 2. Besoin fonctionnels a. Explorer un lieuLe ROBOT doit être explorateur, il doit être doté de capacités de déplacement, dans lesdifférentes directions y inclut les rotations à gauche et à droite, l’utilisateur doit être capablede le faire déplacer à volonté et à distance. b. Récupérer le Streaming VidéoL’application de commande doit récupérer le streaming vidéo à partir de la caméra duROBOT, pour permettre à l’utilisateur de le visualiser directement. c. Détecter un obstacleLe ROBOT doit être capable de détecter un obstacle à une portée définie, et de l’éviter, endonnant en temps réel des indications sur la distance qui le sépare de cet obstacle. d. Détecter une fuite de gazLe ROBOT doit être capable de détecter le niveau de gaz (type à définir après) dans l’air, etde lancer une alarme lorsqu’il détecte une fuite et un niveau élevé. e. Lancer une Alerte en cas d’urgenceLe ROBOT doit être capable d’activer une alerte et d’envoyer des notifications par lesmoyens disponibles (Email/SMS) en cas d’urgence. f. Avoir l’état du RobotL’utilisateur sera capable de récupérer un ensemble d’information concernant l’état actueldu ROBOT, soit le niveau du signal wifi, le niveau de batterie, les 3 axes du ROBOT dansl’espace pour détecter les inclinaisons, la géolocalisation etc... 3. Besoin non fonctionnels a. ErgonomieL’application de commande doit respecter les standards de l’interfaçage Homme-Machine,en offrant à l’utilisateur une interface ergonomique et une bonne expérience d’utilisation.L’apparence de cette interface est principalement caractérisée par des composants, desformes, des couleurs et la disposition des éléments. b. Contraintes techniques et matériellesLa partie technique et matérielle du ROBOT doit être adaptée aux besoinsdu projet et doit être totalement contrôlable et gérable via la partielogicielle et d’une façon transparente à l’utilisateur. 20 Spécifications et analyse des besoins
  • 32. Robot à base d’Android c. Contraintes d’utilisationL’interface utilisateur doit être simple et facile à comprendre pour que l’utilisateur puissebénéficier des fonctionnalités du système. d. Contraintes de performanceLe temps de réponse de tout le système doit être acceptable pour une utilisation en tempsréel.Le système doit être stable et sûr. e. Automatisation partielleLe système doit être d’une façon partielle automatisé, dans lacommunication ROBOT-Utilisateur et inversement, et dans les différentesparties de détection. f. MaintenabilitéLes différents modules développés du système doivent être faciles à maintenir. Pour cela, lecode doit être lisible et bien structuré. Nous devons respecter les standards de codageconcernant par exemple les noms des attributs et des variables, les noms des méthodes ainsique la disposition des commentaires. 4. Cas d’utilisation générauxPour avoir une vue globale sur les grandes lignes de notre système, les spécificationsgénérales sont synthétisées sous la forme du diagramme UML des cas d’utilisation de lafigure 3-17 : ce schéma résume les actions que peut effectuer l’utilisateur du projet. Figure 14 - Cas d’utilisation généraux du projet 21 Spécifications et analyse des besoins
  • 33. Robot à base d’Android Cas d’utilisation 1: Explorer un lieuL’utilisateur sera capable de déplacer le ROBOT à distance, directement à travers uneinterface dédiée équipée avec les composants nécessaires, une certaine communicationavec le ROBOT sera établie au préalable, puis les commandes de déplacements serontenvoyés instantanément au ROBOT, qui se charge de la réception des commandes, dutraitement, et de l’exécution des ordres.La possibilité d’orienter la caméra du ROBOT pour visionner une certaine zone précise aussientre dans cette idée d’explorer des lieux. Cas d’utilisation 2 : Récupérer le Streaming VidéoLe ROBOT se charge d’enregistrer en temps réel une partie du flux vidéo depuis la caméra,l’envoyé à l’application de commande, et ainsi de suite. Cas d’utilisation 3 : Récupérer la distance à un obstacleL’utilisateur doit avoir la possibilité de récupérer à tout moment la distance à l’obstacle leplus proche directement sur l’interface de commande.Le ROBOT se charge d’activer, stabiliser le capteur et d’exécuter à tout moment cettefonctionnalité, une possibilité de prendre une décision si la distance calculée est moins d’unecertaine valeur. Cas d’utilisation 4 : Afficher le niveau de gazL’utilisateur doit avoir la possibilité de récupérer à tout moment le niveau de gazdirectement sur l’interface de commande.Le ROBOT se charge d’activer, stabiliser le capteur et d’exécuter à tout moment cettefonctionnalité, et d’être en mode écoute s’il y aura un changement dans le niveau de gaz. Cas d’utilisation 5 : Activer une Alerte Email/SMSEn cas d’urgence le ROBOT peut envoyer des alertes SMS/Email à un correspondant et lancerune alerte sonore Cas d’utilisation 6 : Récupérer l’état du ROBOTL’utilisateur peut recevoir un ensemble d’information depuis le ROBOT :Afficher l’orientation du ROBOT : cette information est obtenu directement depuisl’accéléromètre intégré dans le Smartphone du ROBOT, cette information nous donne uneindication sur l’inclinaison du ROBOT, l’activation de la géolocalisation sera aussi disponibleen OUTDOOR.Afficher l’état du signal WIFI : cette information est primordiale pour l’utilisateur pour garderla connectivité au ROBOT, une fois le signal est faible, une alerte sera affichée à l’écrandirectement et avant la coupure de connexion. 22 Spécifications et analyse des besoins
  • 34. Robot à base d’AndroidAfficher l’état de la batterie : elle permet à l’utilisateur de connaitre le pourcentage debatterie du ROBOT et de savoir une approximation du temps restant avant l’alimenter.IV. Cas d’utilisations DétaillésCette section sera consacrée à la présentation des cas d’utilisations principales. 1. Le 1er Cas- Explorer un lieu Figure 15 – Cas d’utilisation - Explorer un lieuCe diagramme représente les différents aspects de ce que nous appelons exploration deslieux, que nous présentons dans ce tableau : Cas d’utilisation n° 001 Nom Explorer un lieu Acteur Utilisateur Description Permettre de déplacer librement le Robot et explorer un lieu bien déterminé. Pré-Conditions  ROBOT alimenté et activé,  connexion avec la partie commande établie Post-Conditions N/A Scénario nominal 1. Commander le ROBOT à distance pour le faire déplacer en avant/arrière, le faire tourner à gauche/droite Scénario Alternatif N/A Exception Erreur de connexion :  Le système s’arrête Tableau 6 - Description du cas dutilisation Explorer un lieu 23 Spécifications et analyse des besoins
  • 35. Robot à base d’Android 2. Le 2ème Cas- Récupérer le Streaming Vidéo Figure 16 - cas dutilisation - Récupérer le Streaming VidéoCe diagramme représente la fonctionnalité responsable de la récupération du streamingvidéo, le ROBOT sera équipé d’une caméra pour l’enregistrement vidéo, l’utilisateur doitavoir la possibilité de récupérer le streaming directement sur l’interface de commande etsavoir exactement ce que le ROBOT filme en temps réel, ci-dessous la description : Cas d’utilisation n° 002 Nom Récupérer le streaming vidéo Acteur Utilisateur Description Permettre de recevoir le streaming vidéo en temps réel depuis le ROBOT. Pré-Conditions  ROBOT alimenté et activé,  connexion avec la partie commande établie Post-Conditions N/A Scénario nominal 1. Activer la caméra du ROBOT, et l’envoi du streaming 2. Activer la réception du streaming directement sur l’application de commande Scénario Alternatif N/A Exception Erreur de connexion :  Le système s’arrête Faible bande passante :  Temps de latence plus grand Tableau 7 - Description du cas dutilisation Récupérer le streaming vidéo 24 Spécifications et analyse des besoins
  • 36. Robot à base d’Android 3. Le 3ème Cas- Détecter un obstacle Figure 17 - Cas dutilisation – Détecter un obstacleCe diagramme représente la fonctionnalité de détecter un obstacle à proximité et calculer ladistance qui le sépare au ROBOT, on trouve une description de ce cas ci-dessous : Cas d’utilisation n° 003 Nom Récupérer la distance Acteur Utilisateur Description Permettre à l’utilisateur d’afficher la distance qui sépare le robot à un obstacle. Pré-Conditions  ROBOT alimenté et activé,  Capteur bien fonctionnel Post-Conditions N/A Scénario nominal 1. Détecter l’obstacle 2. Mesurer la distance 3. Eviter l’obstacle à une distance déterminée Scénario Alternatif N/A Exception Erreur de connexion :  Pas de récupération de valeur Tableau 8 - Description du cas dutilisation Récupérer la distance 25 Spécifications et analyse des besoins
  • 37. Robot à base d’Android 4. Le 4ème Cas- Détecter une fuite de gaz Figure 18 - Cas dutilisation - Détecter une fuite de gazCe diagramme représente la fonctionnalité de calculer le niveau de Gaz dans l’air autours duROBOT et détecter s’il y a une fuite ou non, ci-dessous une description détaillée : Cas d’utilisation n° 004 Nom Récupérer le niveau de gaz Acteur Utilisateur Description Permettre à l’utilisateur d’afficher le niveau de gaz autour détecté par le ROBOT. Pré-Conditions  ROBOT alimenté et activé,  Capteur bien fonctionnel Post-Conditions N/A Scénario nominal 1. Détecter le niveau de Gaz 2. Envoyer le niveau de gaz à l’application de commande 3. Lancer une Alerte en cas d’urgence Scénario Alternatif N/A Exception Erreur de connexion :  Pas de récupération de valeur Tableau 9 - Description du cas dutilisation récupérer le niveau de gaz 26 Spécifications et analyse des besoins
  • 38. Robot à base d’Android 5. Le 5ème Cas- Récupérer l’état du ROBOT Figure 19 - Cas dutilisation - Récupérer l’état du ROBOTCe diagramme présente la fonctionnalité de récupérer un ensemble d’informations etd’indicateurs qui nous donne plus de détail sur l’état du ROBOT lorsqu’il est actif, ci-dessousune description détaillé de ce cas: Cas d’utilisation n° 005 Nom Récupérer l’état du ROBOT Acteur Utilisateur Description Récupérer un ensemble d’information qui représente les caractéristiques actuelles du ROBOT comme le niveau du signal, le niveau de batterie etc. Pré-Conditions  ROBOT alimenté et activé,  Détection de gaz activée Post-Conditions N/A Scénario nominal 1. Récupérer automatiquement toutes les informations sur l’interface utilisateur. Scénario Alternatif N/A Exception Pas de service GPS/internet disponible:  Pas d’envoi d’information Tableau 10 - Description du cas dutilisation récupérer létat du ROBOT 27 Spécifications et analyse des besoins
  • 39. Robot à base d’AndroidV. Diagramme de séquence systèmePour avoir une vue séquentielle globale sur les principales fonctionnalités de notre système,on présente de diagramme de séquence système dans la figure 15 : Figure 20 - Diagramme de séquence systèmeCe diagramme montre l’interaction de façon séquentielle entre l’acteur et le système.Une première connexion doit être établie, une fois la connexion est effectuée, l’utilisateurpeut sélectionner une action à faire, lorsqu’il aura l’interface principale.La fonctionnalité explorer un lieu consiste à faire déplacer le ROBOT dans les directionsvoulues librement que ce soit en avant, arrière ou en tournant à gauche et droite, lescommandes seront envoyées à l’objet Daemon qui va exécuter ces taches directement sur leROBOT.La fonctionnalité de surveiller une zone se base essentiellement sur le fait que l’utilisateurpeut recevoir le streaming vidéo directement sur l’application de commande.Récupérer la distance à l’obstacle et le niveau de Gaz constituent aussi des fonctionnalitésprêtes à utilisés via des interfaces utilisateurs ou celui-ci peut recevoir la distance auobstacle ainsi que le niveau de gaz en air, une action sera effectuée si le niveau de gaz ou ladistance atteint un niveau prédéfini. 28 Spécifications et analyse des besoins
  • 40. Robot à base d’AndroidVI. Diagrammes de Séquence détaillésDans cette partie nous présentons une étude dynamique du projet en se basant sur lesdiagrammes de séquence détaillés 1. Diagramme de séquence 1– Déplacer le ROBOT Figure 21 - Diagramme de séquence – Déplacer le ROBOTCe diagramme de séquence représente les différentes étapes établies afin de mettre leROBOT en mouvement, le système sera divisé en modules actives comme suit :  Application 1 : elle représente l’application de commande qui représente l’interface utilisateur d’une part et le lien sans fil avec le ROBOT d’autre part.  Application 2 : elle représente l’application résidente qui contrôlera le ROBOT réellement elle fait le lien entre l’application de commande et la carte IOIO  Carte IOIO : elle représente l’interface entre l’application Android 2 et tous les composants électroniques, dans ce cas les moteurs DC et les circuits associés qui seront détaillés dans le chapitre réalisation  Moteurs DC : représentent les composants électroniques qui seront activés/désactivés via la carte IOIOL’utilisateur doit entrer l’adresse IP du ROBOT pour pouvoir se connecter, l’application 1tente d’établir la connexion avec l’application 2, une fois la connexion est établie, il y aural’activation de la carte IOIO, et l’interface de commande principale sera affichée àl’utilisateur. 29 Spécifications et analyse des besoins
  • 41. Robot à base d’AndroidL’utilisateur sera capable de commander le ROBOT à l’aide d’un Joystick, le faite de bouger leJoystick va générer un ensemble de commandes suivant le sens, qui seront envoyées àl’application 2 qui reçoit ces commandes, les traites, puis les transformer en commandescompréhensibles par la Carte IOIO, une fois les données sont envoyés à cette carte, elle secharge de générer des signaux de commandes vers les différents moteurs.Lorsque l’utilisateur relâche le Joystick, l’application 1 envoi une commande spéciale d’arrêtà l’application 2 qui envoi de même une commande à la carte IOIO pour arrêterimmédiatement les moteurs. 2. Diagramme de séquence 2– Surveiller un lieu Figure 22 - Diagramme de séquence – Surveiller un lieuCe diagramme de séquence représente les différentes étapes et possibilités pour assurer lafonctionnalité de surveiller un lieu, le système sera divisé en modules actives de la mêmefaçon comme dans le diagramme précédent.La partie connexion est nécessaire pour pouvoir établir la suite des actions.L’utilisateur sera capable d’activer la caméra du Smartphone situé dans le ROBOT, suite àcette action l’application 2 se charge de lancer la caméra et d’envoyé le streaming en retour 30 Spécifications et analyse des besoins
  • 42. Robot à base d’Androidà l’application 1 dans laquelle l’utilisateur peut visualiser ce flux directement dans l’interfacede commande.L’utilisateur peut aussi orienter la caméra suivant deux axes, Pan(gauche/droite) etTilt(haut/bas), ces deux fonctions seront bien accessible à tout moment via l’interface decommande à l’aide de deux composants sous forme de ‘SeekBar’ qui seront détaillés dans lechapitre réalisation, la manipulation de ses deux composants génèrent des commandes quiseront envoyés à l’application 2 qui à son tour traite ces commandes et l’état actuel de lacaméra et décide ou non et avec quel angle de changer l’orientation de la caméra.Le changement de l’orientation de la caméra peut s’effectué aussi bien dans le cas où leROBOT est en arrêt que lorsqu’il est en mouvement.Comme option l’utilisateur peut prendre des snapshots directement via la caméra duROBOT, et ces photos seront sauvegardées dans un emplacement spécifique dans leSmartphone 2. 3. Diagramme de séquence 3– Détecter un Obstacle Figure 23 - Diagramme de séquence – Détecter un ObstacleCe diagramme de séquence montre le déroulement de la détection d’obstacle assurée par leROBOT, le système sera divisé en modules actives de la même façon comme dans lediagramme précédent. 31 Spécifications et analyse des besoins
  • 43. Robot à base d’AndroidLa partie connexion est nécessaire pour pouvoir établir la suite des actions.L’utilisateur aura la possibilité d’afficher la distance qui sépare le ROBOT au premier obstaclesur son chemin, une commande sera envoyé à l’application 2 qui se chargera d’activer lecapteur de proximité utilisé via la carte IOIO, le capteur donc va être en fonction il vaenvoyer les informations sur la distance calculée à la carte IOIO qui va à son tour traiter etenvoyer ces informations à l’application 2.Au niveau de l’application 2, elle va envoyer ces informations à l’application 1 qui vavisualiser des valeurs compréhensibles pour l’utilisateur, selon les valeurs reçues parl’application 2 un certain traitement va s’effectuer pour décider si elle va réagir ou non, dansle cas où ces valeurs sont dans une certaine portée qui sera détaillée dans le chapitreréalisation, elle va ordonner à la carte IOIO pour exécuter une ou un ensemble d’action pouréviter un choc avec l’obstacle, les moteurs vont changer la direction vers la droite ou gauche.Le type de capteur de proximité et son fonctionnement vont être détaillés dans le chapitreréalisation. 4. Diag.de séquence 4 – Détecter une fuite de Gaz Figure 24 - Diagramme de séquence – Détecter une fuite de GazCe diagramme de séquence montre le déroulement de la détection d’une fuite de gazassurée par le ROBOT, le système sera divisé en modules actives de la même façon commedans le diagramme précédent. 32 Spécifications et analyse des besoins
  • 44. Robot à base d’Android La partie connexion est nécessaire pour pouvoir établir la suite des actions. L’utilisateur aura la possibilité d’afficher le niveau de gaz dans l’air dans la pièce où se situe le ROBOT, une commande sera envoyé à l’application 2 qui se chargera d’activer le détecteur de gaz via la carte IOIO, le détecteur donc va être en fonction il va envoyer les informations sur la concentration du gaz calculée dans l’air à la carte IOIO qui va à son tour traiter et envoyer ces informations à l’application 2. Au niveau de l’application 2, elle va envoyer ces informations à l’application 1 qui va visualiser des valeurs compréhensibles pour l’utilisateur, selon les valeurs reçues par l’application 2 un certain traitement va s’effectuer pour décider si elle va réagir ou non, dans le cas où ces valeurs sont au-delà de la valeur normale et présentent un danger, elle va ordonner à la carte IOIO pour exécuter une Alerte qui sera envoyé directement à l’utilisateur. Le type de gaz et le fonctionnement du détecteur vont être détaillés dans le chapitre réalisation.VII. Maquettes 1. Maquette du ROBOT Figure 25 - Maquette du ROBOT Suivant notre besoin essentiel et notre vision sur le produit à réaliser, nous dessinons grossièrement une maquette du futur ROBOT. Pour ce faire nous modélisons deux vues pour aboutir à la figure 16. Ces deux vues présentent la squelette générale du ROBOT, composée d’une tête qui va 33 Spécifications et analyse des besoins
  • 45. Robot à base d’Androidcontenir essentiellement un Smartphone Android équipé d’une caméra, une connectivitéWifi, un accéléromètre, un dispositif GPS, et qui constitue le cerveau du ROBOT et la partieintelligente contenant la deuxième application qui assure la réception des commandesissues de l’application de commande, et assure aussi l’interfaçage avec tous ce qui estélectronique pour exécuter ces commandes convenablement, l’application est responsablede la capture vidéo à partir de la caméra, la capture des différentes signaux à partir desdifférents composants du ROBOT, le traitement de ces informations et l’exécution desactions appropriés.La tête du ROBOT est liée au corps via un mécanisme mobile qui permettra un certain degréde rotation et d’inclinaison qu’on détaillera dans le chapitre Réalisation.Le corps du ROBOT est composé d’une plateforme de déplacement composéeessentiellement de 4 roues avec deux chaines, une partie électronique qui va contenir lacarte IOIO, les capteurs, l’alimentation et les autres circuits nécessaires. 2. Maquette de l’application de commande Figure 26 - Maquette de l’interface principale de l’application de commandeL’application de commande se présente sous la forme d’une interface principale, avec deswidgets, boutons et autres contrôles découpée en cinq zones organisées comme suit : En haut un menu qui contient 4 Tabs représentants un Tab pour le niveau de batterie, un Tab pour la distance au premier obstacle, un Tab qui affiche le niveau de gaz et un autre Tab pour afficher les coordonnées d’orientation du ROBOT dans l’espace. 34 Spécifications et analyse des besoins
  • 46. Robot à base d’Android À gauche deux bulles qui permettent à l’utilisateur de savoir le niveau du signal et le niveau de la luminosité si elle est disponible, un Pad/Joystick principal de commande qui va permettre de déplacer le ROBOT. Au milieu une grande interface qui représente un afficheur du streaming Vidéo reçu à partir du ROBOT. À droite, deux éléments qui affichent les alertes qui correspondent à la faiblesse du signal Wifi ou à une erreur de connexion avec le ROBOT, un Widget qui donne une indication sur la vitesse du ROBOT. En bas, un ensemble de commande pour activer/désactiver le Streaming vidéo, le déplacement de la caméra, le flux audioPour donner un aspect familier à notre application de commande nous avons choisid’adopter le « look and fée» d’une sorte d’interface de jeu ou d’un tableau de bord oupanneau de commande unique qui va contenir la quasi-totalité des fonctionnalités.ConclusionLa spécification des besoins nous a permis d’avoir une vision plus claire du sujet et unecompréhension plus profonde des tâches à réaliser. Elle mène également à prévoir lesproblèmes à rencontrer et chercher les solutions permettant de les contourner.Nous avons essayé tout au long de ce chapitre de bien présenter les besoins fonctionnels etnon fonctionnels du sujet et les différents scenarios d’utilisation de l’application. Cesscenarios vont être la base sur laquelle nous allons concevoir et réaliser notre projet, cesdeux phases seront détaillées dans les deux chapitres qui suivent. 35 Spécifications et analyse des besoins
  • 47. Robot à base d’Android4. CONCEPTIONIntroductionNous consacrons ce chapitre à la présentation de l’architecture et de la conception de notreprojet. Nous commençons par décrire l’architecture de notre application principale à traversles différentes vues dynamiques à travers le diagramme de séquence objets, ainsi qu’undiagramme d’activités global et un diagramme de de classe qui va jeter un coup d’œil sur lesdifférentes entités du projet. Ensuite, nous décrivons la conception de la structure techniquedu ROBOT, par plusieurs schémas explicatifs, représentant les différents composantsmatériels qui seront choisis et bien détaillés dans le chapitre suivant. I. Diagramme de séquence objetsPour avoir une vue séquentielle globale sur les principales fonctionnalités de notre système,on présente de diagramme de séquence système dans la figure 27 : Figure 27 - Diagramme de séquence objets 36 Conception
  • 48. Robot à base d’AndroidCe diagramme montre l’interaction de façon séquentielle entre les 6 Objets principaux duscénario et l’acteur, ces objets représentent les classes principales de l’application decommande et les classes principales de l’application Daemon coté ROBOT.Une première connexion doit être établie entre les deux applications, pour que l’utilisateurpuisse sélectionner une action à faire via l’interface qui sera affichée.II. Diagramme d’activitésDans cette partie nous présentons le diagramme d’activité lié à tout le système Figure 28 - Diagramme dactivitésSelon ce diagramme on remarque que notre système est multitâche, il offre un ensemble depossibilités qui sont tous accessible via une seule interface principale de commande, qui estle moyen de communication entre l’utilisateur et le ROBOT.L’interface de commande est toujours en action que ce soit lors de réception des donnéesou lors d’envoi des commandes ou même lorsque elle est en écoute car à tout moment elleassure la connectivité au ROBOT et reste prête à n’importe quel action ou notificationL’utilisateur sera capable de commander le ROBOT à l’aide d’un Joystick, le faite de bouger leJoystick va générer un ensemble de commandes suivant le sens, qui seront envoyées àl’application 2. 37 Conception
  • 49. Robot à base d’AndroidIII. Diagramme de ClasseOn présente ici le diagramme de classe du système développé : Figure 29 - Diagramme de ClasseLe diagramme de classes est un schéma statique. Il représente le point de vue statique duneapplication, il est non seulement utilisée pour visualiser, décrire et documenter les différentsaspects dun système, mais aussi pour la construction de code exécutable de lapplicationlogicielle. Il décrit les attributs et les opérations dune classe et aussi les contraintesimposées au système.Le diagramme de classe de notre projet montre deux grandes parties qui représententchacune une application séparée.La première application nommée application de commande est celle qui va être disponiblepour l’utilisateur pour commander et gérer le ROBOT, une de ses classes importantes est laclasse Client_Thread qui va se charger d’établir et de maintenir la connectivité avec sacorrespondante dans la deuxième application Server_Thread.La deuxième application nommée Application Daemon pour dire qu’elle est résidente dansle ROBOT et elle fonctionne sans intervention humaine directe, elle fonctionne en 38 Conception
  • 50. Robot à base d’Androidpermanence dès que le ROBOT est mis sous tension. Elle se compose d’un nombre plusgrand de classes parmi lesquelles on cite la classe IOIO_Thread_Connection qui se charge dela communication avec la carte IOIO en utilisant la bibliothèque IOIO Lib.ConclusionLa conception détaillée nous a permis d’avoir une vision plus précise sur le sujet et unecompréhension plus profonde des tâches à réaliser. Elle mène également à prévoir lesbesoins matérielles et logicielles nécessaires pour atteindre l’objectif.Nous avons essayé tout au long de ce chapitre de bien présenter les différents diagrammesconceptuels du projet. Ces diagrammes vont être la base sur laquelle nous allons réalisernotre projet, cette phase sera détaillée dans le chapitre suivant. 39 Conception
  • 51. Robot à base d’Android5. REALISATIONIntroductionCe chapitre constitue le dernier volet du rapport de notre projet de fin détudes. Il a pourobjectif dexposer le travail achevé. Pour ce faire, nous avons divisons la réalisation en deuxgrandes parties, la réalisation logicielle qui va contenir tous le travail effectué au niveau dedéveloppement des deux applications, la deuxième partie est la réalisation matérielle qui vadécrire les différentes phases de construction du ROBOT. Enfin, nous clôturons ce chapitrepar la présentation du chronogramme des taches réalisées et des défis relevés. I. Réalisation LogicielleDans cette partie nous allons présenter l’environnement du travail, les différentes phases dedéveloppement des applications, et le résultat obtenu.1. Environnement de travailChaque développeur doit choisir un environnement de développement constituégénéralement par un IDE, et quelques autres outils et logicielles. 1. EclipseEclipse est un environnement multi-langage de développement comprenant unenvironnement de développement intégré (IDE) et un plug-in extensible système. Il est écritprincipalement en Java et peut être utilisé pour développer des applications en Java et, parle biais de divers plug-ins, autres langages de programmation, y compris Ada, C, C + +,COBOL, Perl, PHP, Python, Ruby. 2. SDK AndroidAndroid SDK est indispensable pour développer sousAndroid, c’est un kit de développement crée pour êtreintégré dans un IDE, il offre un ensemble d’outils nécessairepour le développement et le test comme le ADT, lecompilateur, l’émulateur, le DDSM … Figure 30 - Logo Eclipse 1. IOIO LibIOIO Lib est une bibliothèque Android spéciale crée par le constructeur de la carte IOIO, quipermet à l’application Android de contrôler la carte IOIO. Elle expose un ensembledinterfaces Java, couvrant les différentes fonctions de la carte. Elle offre un ensemble de 40 Réalisation
  • 52. Robot à base d’Androidclasses et méthodes qui servent à communiquer avec les différents pins de la carte, d’autresméthodes servent à changer la fréquence ou la pulsation d’un tel pin. Lorsqu’on génèrel’application, IOIOLib s’intègre dans la cible .apk, afin que l’application soit autonome et nenécessite aucune installation supplémentaire sur le Smartphone Android qui lexécute. 2. Fritzing1Fritzing est un logiciel libre dédition de circuit électronique ou circuitimprimé. Il est possible de compléter sa bibliothèque de composants.Chaque composant est défini à laide de 3 éléments : limage du composant,qui peut être réalisée à partir dune image, le symbole du composant et lareprésentation du composant sur le circuit imprimé (nombre et position Figure 31 - Logo Fritzingdes pistes).Tout en étant un logiciel dapparence simpliste, il possède malgré tous des fonctionsdexportation vers Eagle et Gerber, ainsi que les typon au format PDF et SVG. On va l’utiliserpour schématiser les différents montages du projet, ainsi que le montage complet de tout leROBOT. 3. Photoshop CS5Photoshop est un logiciel de retouche, de traitement et de dessin assisté parordinateur édité par Adobe. Il est principalement utilisé pour le traitementde photographies numériques, mais sert également à la création d’images etde design. On l’utilise énormément dans notre application de Figure 32 - Logo Photoshopcommande, pour créer presque tous les éléments graphiques allant duJoystick, les Tab personnalisés, les éléments flottant jusqu’au design général de l’interface etdes bordures ainsi les autres besoins comme le SplashScreen et l’icône. 4. EGit (plugin) 2Git est un logiciel de gestion de versions décentralisé. Cest un logiciel libre créépar Linus Torvalds, et distribué selon les termes de la licence publique généraleGNU version 2. EGit est une interface écrite en Java, puis une extension git pourEclipse, elle permet toutes les opérations de SVN. 5. Dropbox 3 Figure 33 - Logo GITDropbox est un service, sécurisé, de stockage et de partagede fichiers dans le Cloud.2. Développement Figure 34 - Dropbox logoOn va diviser cette section en deux parties chacune corresponde à une application, on va1 http://fritzing.org/2 http://www.eclipse.org/egit/3 http://www.dropbox.com/ 41 Réalisation
  • 53. Robot à base d’Androiddétailler les phases de développement de chacune élément par élément étape par étape. 1. Application de commandeCette Application représente l’interface de commande principale pour l’utilisateur, à traverselle il peut contrôler et gérer le ROBOT.  Phase 1 – Interface de connexionCette interface représente le moyen avec lequell’utilisateur peut insérer l’IP du ROBOT ainsi qu’un mot depasse en cas ou le ROBOT est sécurisé, une fois lesparamètres sont insérer un clic sur le bouton OK va créerune socket réseaux de type TCP qui va tenter de trouvercette IP, une fois l’IP est trouvée et les trames sontenvoyées l’autre application va traiter le mot de passe s’il Figure 35 - Interface de connexionest validé elle va ouvrir un canal de communication sur leport 81, et elle va répondre par un message de confirmation, ce message va permettred’afficher l’interface de commande à l’utilisateur et le laisser contrôler le ROBOT. Dansl’autre cas la fenêtre de connexion s’affiche une autre fois pour signaler que les paramètressont incorrects.  Phase 2 – Système de déplacementCette fonctionnalité de base est assurée à l’aide d’un Joystickconçu spécialement pour cette tâche, il est composé d’un élémentmobile qui sera sensible à la touche, cet élément peut varié dansun rayon limité par rapport au centre fixe, le centre de cetélément est repéré par un point, chaque point est caractérisé parun x et un y, ils représentent deux coordonnées par rapport aucentre, selon leurs valeurs, une variable qui s’appelle commande Figure 36 - Joystick de déplacementinitialisé à STOP va contenir une certaine chaine de caractères decette liste : NORD, NORD-EST, EST, SUD-EST, SUD, SUD-OUEST, OUEST, NORD-OUEST etSTOP.Une fois la variable change de valeur elle sera immédiatement envoyée via un canal UDP àl’application au côté ROBOT.  Phase 3 – Streaming de la caméraDans l’interface principale au milieu on trouve unegrande zone dédiée pour l’affichage du flux vidéo issude la caméra du ROBOT, le principe est plutôtcompliqué, l’application situé au niveau du ROBOTlance la caméra en mode visualisation et pasenregistrement, une fois la caméra est en fonction,l’application fais une capture successive d’images et Figure 37 - Zone daffichage du streaming 42 Réalisation
  • 54. Robot à base d’Androidenregistre cet ensemble d’images dans un "buffer" comme le cas d’une vidéo classique, pourenvoyer tous ces images d’une manière fluide et pour ne pas encombré le canal déjà établieentre les deux partie, on a trouvé une solution qui se résume dans la création d’un petitserveur Web au niveau de l’application Daemon, ce serveur va fonctionner sur le port 80pour ne pas augmenter le débit sur l’autre port déjà ouvert, il assure la disponibilité d’unepage contenant une image pris chaque 0.2 sec à partir du buffer, et de l’autre partl’application de commande va récupérer cette image du serveur et rafraichir la zoned’affichage avec une fréquence supérieure à la fréquence d’envoi, avec cette méthode engagne en bande passante , aussi on gagne au niveau de la rapidité d’exécution descommandes sans avoir penser à la taille du flux reçu.  Phase 4 – Mécanisme d’orientation de la caméraCette fonctionnalité permet de tourner la caméra (Smartphone)à gauche ou à droite, l’incliner en haut ou en bas, l’applicationde commande comporte 2 SeekBars, une horizontale située enbas de la zone de streaming, et une verticale située à droite dela même zone, elles sont directement opérationnelles parl’utilisateur qui peut déplacer sont doit directement pourtourner la caméra dans la direction voulue, une fois la valeur de Figure 38 - SeekBarsl’un des SeekBars change, une commande sera directement envoyée au ROBOT en indiquantla valeur de changement selon cette valeur le résultat sera un mouvement angulaire de lacaméra.  Phase 5 – Niveau de GazPour avoir le niveau de gaz actuel, nous avons développé cetteinterface qui reçoit d’une façon continue les valeurs depuis lecapteur de gaz situé dans le ROBOT et à travers l’applicationDaemon et la carte IOIO, les valeurs sont comprises entre 0 et 700ppi, un indicateur du niveau dangereux indique si la valeur actuelle Figure 39 - Interface de détection de Gazest acceptable ou non.  Phase 6 – Distance à l’obstaclePour avoir la distance qui sépare le ROBOT au premier obstacle,nous avons développé cette interface qui reçoit d’une façoncontinue les valeurs depuis le détecteur de proximité situé dansle ROBOT et à travers l’application Daemon et la carte IOIO, ladistance est affichée en centimètre. Figure 40 - Interface de détection  Phase 7 – Pourcentage de la batterie de distanceCette fonctionnalité est réalisée à travers un circuit qui vacalculer le pourcentage de la batterie restant ainsi que la valeurde la batterie du Smartphone situé dans le ROBOT, et ces valeurssont reçues et affichées dans l’application de commande, ontrouve aussi une estimation sur la durée restante. Figure 41 - Interface daffichage détat de Batterie 43 Réalisation
  • 55. Robot à base d’Android  Phase 8 – Notifications de connexionUne fois on récupère l’état du signal wifi du ROBOT, on peut juger est ceque ce signal est bien acceptable pour maintenir la connexion ou non, dansle cas où ce signal devient faible une notification d’alerte s’affiche enindiquant un Warning, dans le cas où l’application détecte que la connexionwifi avec le ROBOT est coupée, une nouvelle alerte s’affiche indiquant uneerreur, ces fonctions sont réalisées à travers des Thread qui tourne enBackground d’une façon continue. Figure 42 - Notification de connexion  Phase 9 – OrientationL’orientation du ROBOT est effectuée en recevant les 3 indicateurs del’accéléromètre du Smartphone du ROBOT, un certain calcul se fait et on auraexactement ces valeurs, on peut juger sur la stabilité du ROBOT, oul’inclinaison du terrain à travers ces indicateurs. Figure 43 - Tab dorientation  Phase 10 – Caméra Move / ROBOT SpeakCaméra Move est une fonctionnalité optionnelle qui permet une deuxième méthode pourorienter la caméra du ROBOT directement à travers les indicateurs accéléromètre duSmartphone de commande, elle est encore en phase bêta mais elle peut servir pour les tests.ROBOT Speak est une fonctionnalité optionnelle, elle est une sorte de Talkie-Walkie entre leSmartphone de l’utilisateur et le ROBOT, une fois activée l’utilisateur peut parlerdirectement au Smartphone, ce dernier à l’aide du microphone va récupérer la parole etl’application va envoyer ce flux audio vers l’autre application, un Haut-parleur au niveau duROBOT servira pour diffuser le son.  Phase finale – Application ComplèteCi-dessous les interfaces finales de l’application de commande : Figure 44 - écran 1 - Interface de connexion 44 Réalisation
  • 56. Robot à base d’Android Figure 45 - écran 2 - Interface de commande 2. Application Daemon (démon)Cette Application représente la partie intelligente du ROBOT, elle offre tout un systèmeautonome de contrôle, basée généralement sur des activités héritées de Thread, et d’autreshérités de Runnable, ce qui l’application prête à n’importe que action que ce soit provenantde la partie commande via des trame TCP ou UDP ou de la part des composantsélectroniques via la carte IOIO, nous détaillons ci-dessous les différentes phases deréalisation de cette application.  Phase 1 –connexionC’est la deuxième partie de la même fonctionnalité de l’application 1, dès la mise soustension du ROBOT l’application affiche son adresse IP, et ouvre un canal réseau d’écoutepour attendre l’autre application. Une fois la requête de demande de connexion arrive,l’application vérifie le mot de passe, et répond par une requête de confirmation, et ouvre unnouveau canal de communication dédié à la réception des commandes sur le Port spécifique81, toutes les commandes reçues sont envoyées à une unité qui valide, traite et achemineles actions.  Phase 2 – Streaming vidéoNous avons déjà expliqué cette partie dans la première application, il reste à indiquer quecette application détecte les qualités disponible des images prises par la caméra, et affecteune qualité minimale mais pas inférieur à 320x480, pour que le traitement et le transfertsera un peu rapide et on aura un minimum de temps de latence sans avoir une différenceniveau qualité d’affichage.Pour le serveur Web attribué dans l’application, il ouvre un canal de communicationaccessible depuis n’importe quel adresse du réseau, donc si on possède l’adresse IP duROBOT, on peut suivre le streaming tout comme la personne qui commande le ROBOT. 45 Réalisation
  • 57. Robot à base d’AndroidLes images successives sauvegardées dans un Buffer auront une taille maximale de 1024 Kosoit à peu près 10 images compressées de type JPEG, une fois le Buffer est plein il y auraautomatiquement un écrasement de l’image la plus ancienne et ainsi de suite.  Phase 3 – Déplacement du ROBOTUne fois l’utilisateur déplace le joystick dans une direction, l’application daemon reçoit unecommande spécifique, cette commande est traitée pour distinguer est ce que il s’agit d’unmouvement vers l’avant (NORD) ou vers la droite (EST) ou autre … une fois la commande estidentifiée, une suite d’action seront attribuées à chacun des 4 moteurs, suivant ce tableau : Moteur 1 Moteur 2 Moteur 3 Moteur 4 (avant -droit) (avant -gauche) (arrière -droit) (arrière - gauche)NORD Sens direct Sens direct Sens direct Sens directNORD-EST STOP Sens direct STOP Sens directEST Sens Inverse Sens direct Sens Inverse Sens directSUD-EST STOP Sens Inverse STOP Sens InverseSUD Sens Inverse Sens Inverse Sens Inverse Sens InverseSUD-OUEST Sens Inverse STOP Sens Inverse STOPOUEST Sens Inverse Sens direct Sens Inverse Sens directNORD-OUEST Sens direct STOP Sens direct STOP Tableau 11 – Commande des MoteursPour ce faire l’application passe ces nouvelles commandes à une unité qui va les transformeren des ordres compréhensibles par la carte IOIO, du genre : activer tel Pin avec tel courantetc...RQ : suivant le tableau résultant et suivant des tests effectués, on peut utiliser juste deuxmoteurs pour déplacer le ROBOT, le M1 et le M2, on aura le même résultat mais une petitebaisse de vitesse, par contre on gagne dans la consommation d’énergie, ça reste un choixpour le client final d’utiliser tant de moteurs qu’il en a besoin.  Phase 4 –Orientation de la caméraCe mécanisme est assuré par deux Servos Moteurs avec un bras constitué de deux ‘Braquets’(supports métalliques), un pour assurer le PAN (panorama) et l’autre le TILT(inclinaison), unefois que l’application reçoit la commande elle traite la valeur, et la change en fréquencequ’elle l’envoi à la carte IOIO pour pouvoir commander le Servo Moteur voulu avec la valeuradéquate.Le premier Servo Moteur possède un angle d’action égale à 200° ce qui nous permetd’effectué une orientation de gauche à droite facilement, même on peut tourner avec unangle de 20° vers l’arrière.Le 2ème Servo Moteur possède un angle d’action plus limité de 120°, vu qu’il y aura descontraintes mécaniques dans son mouvement, il nous permet de s’orienter vers le Haut, versl’avant (position par défaut) et une petite inclinaison vers le bas de 20°.  Phase 5 – Détection de gazLa détection du Gaz s’effectue à l’aide d’un module qu’on a développé spécialement pour ça,il s’occupe de l’écoute active du Pin de la carte IOIO attaché au détecteur de Gaz, aussi il se 46 Réalisation
  • 58. Robot à base d’Androidcharge de gérer la stabilité du capteur lors du démarrage, une fois le capteur détecte unniveau de gaz supérieur à la normale, il génère un signal électrique analogique, qu’il se passepar la carte IOIO, et selon sa puissance l’application traite cette information et donnedirectement les bonnes valeurs à la partie d’envoi qui se charge d’envoyer ces valeurs àl’application de commande où il seront directement visible dans la zone dédiée pour ça.  Phase 6 – Détection d’obstaclesLa détection d’un obstacle s’effectue aussi à l’aide d’un module développé spécialementpour ça, il fait de l’écoute active du Pin de la carte IOIO attaché au capteur de proximité, lecapteur choisit est un capteur Ultra-son il envoi et reçoit un signal ultrasonique chaquepériode (de l’ordre de 20 ms), selon la rapidité de la réception il estime avec une précisionde 1 cm la distance qu’il le sépare à l’obstacle, il génère un signal électrique analogique, qu’ill’envoi à la carte IOIO, l’application traite cette information et donne directement desvaleurs compréhensibles à la partie d’envoi qui se charge d’envoyer ces valeurs àl’application de commande où il seront directement visible dans la zone dédiée pour ça.Une fois la distance détectée est inférieure à une valeur prédéfinie (10 cm), le ROBOTs’arrête et change de direction vers la droite/gauche, ce mécanisme intelligent permetd’éviter les obstacles proches. On peut bien entendu exécuter n’importe quel action de typelancer une alarme ou suivre un certain trajet etc…  Phase 7 – Récupération d’état de BatteriePour récupérer l’état de la batterie du ROBOT, on a recourt à un circuit spécial qui détecte lepourcentage restant vis-à-vis la capacité totale, cette valeur est envoyé à la carte IOIO estsera lu à partir de l’application Daemon chaque intervalle de temps (5 min) on ajoute à cettevaleur la valeur de la batterie du Smartphone, puis on envoie les deux à l’application decommande qui se charge de les afficher et d’estimer la durée restante.  Phase 8 – Orientation du ROBOTOn récupère les valeurs données par l’accéléromètre et la boussole (si elle est disponible)puis l’application traite ces informations avant de les envoyées à l’application de commande  Phase 9 – Envoi d’alertesDans le cas où on détecte un niveau de gaz élevé, l’application se charge de lancer unenouveau module, ce dernier il effectue une procédure pour lancer une alerte, il envoie unSMS spécial/Mail qui contient un message prédéfini alertant l’utilisateur qu’il y a une fuitede gaz, et il le propose d’appeler l’un des numéros d’urgence, une alerte SONORE sera aussidéclenchée.  Phase finale – Application ComplèteAprès assemblage de tous ces fonctions nous aurons une application complète prête àopérer, cette application ne nécessite pas une interface conviviale avec des beau design vuqu’elle interagit avec un ROBOT est une autre application à distance, mais au minimum elledoit être compréhensible. 47 Réalisation
  • 59. Robot à base d’Android Figure 46 - Interface de lapplication DaemonII. Réalisation MatérielleLa réalisation matérielle du ROBOT comporte plusieurs phases, on va commencer parprésenter un peu l’environnement, le matériel requis et les outils utilisés, puis on détailletous les phases de construction jusqu’au aboutir à un résultat final. 1. Environnement de travailPour construire un ROBOT on doit avoir un ensemble d’outils et on aura besoin d’un endroitadéquat pour le faire, pour ce faire on liste ci-dessous ces différents nécessités.  Atelier : nous avons utilisé pendant les premières phases le laboratoire d’électromécanique d’ESPRIT, où on a trouvé les équipements et les outils pour pouvoir commencer nos tests, après on a décidé de changer la stratégie et d’avoir nos propres outils et équipements et migrer vers le Labo ESPRIT-Mobile.  Outils & équipements : puisque notre ROBOT se compose d’une partie électronique donc on aura besoin des outils de base pour l’assemblage, soudure, la connexion filaire, les différentes tests électriques, voici une liste complète : Fer à souder, multimètre, Transformateur de courant, un cutter, des piles, des connecteurs (pin strip), des fils conducteurs, maquette de test, des diodes de test, des résistances, toile isolante, … 2. Composants matérielsNotre ROBOT a besoin d’un ensemble de composants pour pouvoir voir le jour, on liste icitous les composants principaux pour construire le ROBOT, leurs spécification technique: 48 Réalisation
  • 60. Robot à base d’Android  Un Smartphone Android (Huawei GAGA)La première chose indispensable à avoir pour construire ce ROBOT, est un Smartphone,sur lequel il y aura l’OS Android qui sera notre milieu d’exploitation et de développementde l’application qui va gérer tout le ROBOT, aussi on va exploiter tous les autrescomposants du Smartphone comme suit : o La carte WIFI jouera le rôle de connectivité sans fil du ROBOT o La connectique Bluetooth, sera un autre moyen exploitable pour se connecter au ROBOT o La carte d’acquisition GSM + puce : nous les exploitant en envoyant les SMS d’alerte à n’importe que numéro, on peut aussi avoir la possibilité d’appeler ou d’envoyer des commandes SMS pour commander le ROBOT o La carte 3G : on peut connecter le ROBOT à Internet directement, on doit ainsi penser au temps de latence, et la bande passante o L’écran : il servira d’interface pour afficher des notifications visuelles, ou autre informations o Microphone : Le ROBOT sera capable d’écouter son entourage, enregistrer est diffuser, on peut avoir un ROBOT détecteur de son, ou même un ROBOT qui réagit à des commandes vocales. o Haut-parleur : il servira comme une sortie sonore du ROBOT, un tas de possibilités existe o L’accéléromètre : nous l’utilisant dans la récupération de l’orientation du ROBOT dans l’espace o La Boussole : servira à indiquer l’orientation selon le Nord du ROBOT o GPS : est nécessaire pour avoir la localisation de notre ROBOT o La carte SD/le stockage interne : servira énormément pour la sauvegarde des données volumineuses comme les photos, vidéos, son et toute autre information générée ou traitée par le ROBOTNous avons choisi d’utiliser le Huawei GAGA, il tourne sous Android 2.2, il comportetoutes les spécifications requises pour le projet ainsi qu’il possède deux avantagesmajeures, le poids et les dimensions sont les plus faibles, aussi le prix il est le moins cherdu marché (environ 199 DT soit 130 $) – [voir annexe pour les spécifications techniquescomplètes] Figure 47 - Huawei Gaga 49 Réalisation
  • 61. Robot à base d’Android  Une carte IOIOLa carte IOIO est notre grand secret, elle est la relation entre l’OS Android (SOFT) etl’électronique (HARD) (voir Chapitre 2.II) Figure 48 - Carte IOIO  Moteurs + Roues (ROVER5)Pour pouvoir se déplacer le ROBOT a besoin de 4 Moteurs + 4 Roues, après une recherchedans les constructeurs robotique nous avons trouvé ce modèle qui s’appelle ROVER5 c’estun châssis équipé de 4 moteur DC avec deux chaines en plastiques qui couvre les 4 basesde Roues, il servira comme base du ROBOT Figure 49 - Plateforme de déplacementCARACTÉRISTIQUES Tension nominale moteur: 7,2 V Blocage du moteur actuel: 2.5A Couple de sortie daxe: 10Kg/cm Rapport Boîte de vitesse: 86.8:1 Type de codeur: Quadrature Résolution du codeur: 1000 changements détat par 3 tours de roue Vitesse: 1Km/h  Motor Driver (TB6612FNG)C’est un petit circuit imprimé qui est nécessaire pour pouvoir commander les 4 MoteursDC simultanément et via la même source d’alimentation Figure 50 - Motor Driver 50 Réalisation
  • 62. Robot à base d’AndroidCARACTERISTIQUES Tension dalimentation: VM = 15V max, VCC = 2.7-5.5V Courant de sortie: Iout = 1,2 (en moyenne) / 3.2A (crête) Le contrôle Standby pour économiser lénergie CW / CCW / court freinage / arrêt /modes de commande de moteur Built-in circuit de coupure thermique et le circuit de détection de basse tension Toutes les broches de la TB6612FNG espacées de 0,1 " Condensateurs de filtrage sur les lignes dapprovisionnement  Capteur Ultrason(SEN10737P)Comme capteur de proximité on a choisi d’utiliser le capteur ultrason SEN10737P, Cecapteur Grove-ultrasons est un module sans contact de mesure de distance qui estcompatible avec le système Grove. Il est conçu pour une utilisation facile dans les projetsmodulaire avec la performance industrielle. Figure 51 - Détecteur UltrasonCARACTERISTIQUES Plage de détection: 3cm-4m, meilleur résultat en angle de 30 degrés. Interface Grove Précision : ~ 1 cm Alimentation 5V DC  Capteur de Gaz(SEN90512P)Le capteur de gaz choisi est le SEN90512P c’est un capteur de gaz (MQ2) ce module estutile pour détecter les fuites de gaz (dans la maison et de lindustrie). Il peut détecter GPL,li-butane, le méthane, lalcool, lhydrogène, la fumée et ainsi de suite. Sappuyant sur sontemps de réponse rapide. Les mesures peuvent être prises dès que possible. Également lasensibilité peut être ajustée par le potentiomètre. Figure 52 - Capteur de gazCARACTÉRISTIQUES Haute sensibilité au GPL, le gaz naturel, gaz de ville Faible sensibilité à lalcool, la fumée. Réponse rapide Stable et durable Circuit de pilotage simple MQ-5: gaz de ville, lhydrogène, 100 ppm à 3,000 ppm 51 Réalisation
  • 63. Robot à base d’Android  Servos Moteur + accessoiresPour pouvoir orienter la caméra et la faire tourner à gauche/droite et en haut/bas, nousavons choisi d’utiliser un mécanisme qui se compose de deux Servos Moteurs et lesaccessoires en relations comme les ‘Brackets’. Figure 53 - Servo Moteur Figure 54 - Brackets Un montage est requis pour avoir le résultat ci-dessous : CARACTERISTIQUES Nom de marque: EMax Item: ES08A Tension de fonctionnement: 4.2-6V Vitesse de fonctionnement: 0.10sec/60degree (4.8v) Couple de blocage: 1.8kg/cm Plage de température: -55 ℃ 0 ℃ Dimension: 32 (notamment loreille cas servo) x11.5x24mm Poids: 9g Kit comprend: Servos Horns x3 & Vis x3 Liste des éléments du Paquet 9g Servo Bracket: Support x2 Yoke x1 Rivet plastique (3X5.5) x4 Rivet plastique (2X5.6) x8 Rondelle plastique x2 Figure 55 - Montage du bras de la caméra Visses x8  Batterie Pour assurer une alimentation à tous les composants du ROBOT, nous avons choisi d’utiliser une alimentation centralisée par le biais d’une seule batterie 12 V, 2.2 AH /20HR, avec un prix de 27 $. Figure 56 - Batterie 52 Réalisation
  • 64. Robot à base d’Android 3. Construction matérielleDans cette partie nous allons présenter tous les schémas et montages électroniqueseffectués afin d’avoir une vue détaillée et profonde sur chaque élément construit. 1. Smartphone et carte IOIO Figure 57 – Montage Carte IOIO - SmartphoneLe Smartphone doit être connecté à la carte IOIO via le port USB comme le montre la figureci-dessus, l’alimentation de la carte IOIO est séparée donc on doit connecter les pins Vin etGND à +VCC et GND de la batterie. Une fois connectée et alimentée la carte IOIO peutcommunique avec le Smartphone à travers notre application. Le mode débogage doit êtreactivé dans le Smartphone. 2. Plateforme de déplacement Figure 58 – Montage électronique de la plateforme de déplacement 53 Réalisation
  • 65. Robot à base d’AndroidLa figure montre le montage de deux Moteurs DC avec le Motor Driver cité avant, le MotorDriver doit être connecté à la carte IOIO du côté montré dans le schéma, les Pins attribuésdoivent être les mêmes utilisés dans l’application. Chaque Motor Driver peut fairefonctionner deux moteurs, donc on aura besoin de refaire ce montage en changeant bienévidement les pins de 4-11, le Motor Driver est alimenté avec 3.3 V via la carte IOIO, et ilalimente les moteurs par 9v via la batterie.Chaque Moteur possède deux pins pour le commander, faire circuler le courant dans un sensou un dans l’autre sens permet d’inverser le sens de rotation du Moteur. 3. Capteur de gaz Figure 59 – Montage Carte IOIO et capteur de gazLe capteur de gaz comporte 3 pins, on connecte le pin Signal à la carte IOIO (fil bleu), par uneentrée analogique, par exemple le PIN 34, ce même nombre va être utilisé dans l’applicationpour faire l’écoute du signal analogique généré lorsque il y aura une fuite de gaz. Les deuxautres fils sont pour l’alimentation et la masse, ce capteur ne nécessite pas plus de 5 V doncon peut l’alimenter directement par le PIN 5v de la carte IOIO. 4. Capteur Ultrason Figure 60 – Montage Carte IOIO et capteur ultrasonLe capteur Ultrasonique se connecte à la carte IOIO via une sortie analogique connecté ici auPIN 6(fil jaune) jouant le rôle du SIGNAL, elle génère un signal analogique au fur et à mesurequ’il détecte un obstacle, la deuxième sortie (fil orange) sert comme stabilisateur du 54 Réalisation
  • 66. Robot à base d’Androidcapteur, elle est toujours à 1, les deux autres fils sont pour l’alimentation el la masse, lecapteur ultrason a besoin de moins de 5 v donc il peut prendre sa tension de la carte IOIO. 5. Servos Moteurs Figure 61 – Montage de la carte IOIO avec les servos moteursLe mécanisme d’orientation de la caméra nécessite deux servos moteurs, ils sont branchéscomme suit, la sortie en jaune représente le SIGNAL analogique (PWM) d’entrée qui vacommander le servos moteur pour le faire tourner d’un tel angle. Ils sont liés ici aux pins 3 et6, les autres sorties sont pour l’alimentation (5v) et la masse. 4. Estimation du coûtOn présente ici une estimation du coût du ROBOT :Produit PrixSmartphone Huawei Gaga 130 $Carte IOIO 50 $Rover5 55 $Motor Driver 8.95 $ x 2Capteur Ultrason 15 $Capteur de Gaz 6.90 $Servos Moteurs 9.90 $ x 2Brackets 9.90 $ x2Batterie 27 $Autres 40 $TOTAL 381 $ Figure 62 - Estimation du coût du ROBOT 55 Réalisation
  • 67. Robot à base d’Android 5. Produit finalOn présente ici le produit final réalisé, pendant la partie de mettre tous les composantsensemble nous avons la possibilité de changer quelques PINS suivant les contraintestechniques rencontrés. a. Montage électronique Fritzing Figure 63 - Schéma électronique globalCe montage Global montre presque tous les composants électroniques du ROBOT, on auratoujours la possibilité d’ajouter d’autres composants et d’avoir de nouvelles fonctionnalitéstant qu’il reste des PINS vides dans la carte IOIO, nous parleront des nouvelles possibilitésdans la section perspectives. 56 Réalisation
  • 68. Robot à base d’Android b. Album PhotosOn présente ici un ensemble de photos du ROBOT depuis les premières phases jusqu’à laphase finale. Figure 64 - Le Robot dans sa première phase Figure 65 - Le Robot dans la phase intermédiaireCes Photos sont prises dans des dates différentes, elles montrent l’évolution du Robotpendant les 2 premiers mois, où le grand travail été sur le développement des applicationset comment gérer la connectivité entre eux. 57 Réalisation
  • 69. Robot à base d’Android Figure 66 - Le Robot en phase finaleCes Photos présente un produit final et bien fonctionnel, avec lequel nous avons participé àplusieurs évènements (voir annexes)III. Défis relevésAprès avoir achevé ce projet, nous pouvons citer les différents problèmes rencontrés quenous avons pu résoudre tout au long de son réalisation :  Problème de consommation en énergie, et l’effet auto-drain rencontré avec le Motor Driver.  Le temps énorme que nous avons pris pour nous documenter sur la carte IOIO et l’utilisation de matériel.  Le Problème du temps de latence du ROBOT.  Le problème de synchronisation entre deux applications Android distantes.  Le problème de la bande passante limité.  Les blocages techniques lors du montage de quelques circuits électroniques.  Le problème du non disponibilité de la quasi-totalité des composants électroniques en Tunisie.IV. Perspective & EvolutionD’après les paragraphes qui précèdent nous pouvons dire qu’il reste des points à optimiserdans notre projet tel que l’optimisation de la réception du streaming vidéo, la gestion descas d’urgence lors des incidents, l’amélioration de la partie traitement d’information, cemanque est dû à des contraintes techniques puisque ce projet est notre première 58 Réalisation
  • 70. Robot à base d’Androidexpérience avec le Matériel géré par Android.Comme perspective, nous pouvons rendre notre projet plus polyvalent en ajoutons descapteurs de température, d’humidité, de magnitude, de couleurs, de courant, de force, depression, infrarouges, téléphonique, "de chocs", d’autres types de gaz, dinclinaison, deniveau, Humidistances, Transducteurs à ultrasons etc…Ces composants nous ouvrent l’esprit à d’autres idées réalisables à travers un systèmeembarqué basé sur Android, nous citant ci-dessous quelques idées de projets:  Robot suiveur de ligne  Robot détecteur de mines (métaux)  Robot autonome de surveillance  Robot spécialisé dans la détection des différents types de gaz (milieux industriels, plateformes pétrolières)  Robot explorateur de zones inaccessibles pour humains (catastrophes naturelles)  Système d’éclairage basé sur Android  Système d’alarme basé sur Android  Appareil de détection de niveau d’alcohol (Breath Analyser)  Système de notification pour boite aux lettres  Système de verrouillage intelligent  Système d’aide à la décision pour voiture  Système intégré pour réfrigérateur basé sur Android  Quadricoptère volante basée sur AndroidV. Chronogramme Figure 67 - Chronogramme généralOn remarque que la réalisation de ce projet été bien distribué au niveau de plusieursenvironnements en parallèle et sur une période de 6 mois. 59 Réalisation
  • 71. Robot à base d’AndroidCONCLUSIONGENERALECe projet de fin d’études, qui s’est déroulé à ESPRITEC, avait pour but la conception et laréalisation d’un ROBOT intelligent à Base du système Android pour des buts divers comme lasécurité, la surveillance, l’exploration etc...« Android Based ROBOT » offre une multitude de fonctionnalités dont, les essentielles sont :  Visualisation du Streaming Vidéo directement sur le Smartphone de l’utilisateur.  Déplacement avancé et exploration d’endroits inaccessibles.  Détection d’obstacles et réaction automatisée.  Détection de fuite de Gaz,...  La gestion des Alertes suite à des évènements précises.Notre projet a couvert au bout du compte la majeure partie des fonctionnalités qui nous ontété demandées au début, mais opportunités d’améliorations de ce projet sont multiples.D’une part, nous pourrons améliorer l’application pour rendre l’interactivité plus souple etcomplète avec l’utilisateur, aussi on peut évoluer même le ROBOT en lui intégrants demultiples nouveaux capteurs et détecteurs, et circuits diverses pour le rendre encore pluscomplet et automatisée.D’autre part, nous pourrons penser à lui ajouter des modules pour qu’il puisse gérer nonseulement les situations déjà programmées mais aussi de nouvelles situations où il peutapprendre tout seul à l’aide d’algorithmes d’apprentissage et d’intelligence artificielle, qu’onpeut modéliser facilement au niveau de l’application Android.Dun point de vue personnel, tout au long de ce projet, nous avons eu l’occasion de mettreen pratique nos connaissances acquises au sein de l’école ESPRIT, aussi bien enprogrammation et développement qu’en électronique, embarquées et en matières Télécomet nous avons également eu l’opportunité de travailler avec de nouveaux outils, matériels, etméthodologies.Cette expérience a été très enrichissante et importante car elle a marqué la fin de ce cycled’ingénieur et nous a permis d’être confrontés aux responsabilités qui sont celles d’uningénieur : faire face aux délais, au stress et aux contraintes du travail dans un milieu derecherche et d’innovation. 60 Conclusion
  • 72. Robot à base d’AndroidBIBLIOGRAPHIE1. Mike Lockwood, Erik Gilling, Jeff Brown. Google I/O 2011: Android Open Accessory APIand Development Kit (ADK). Youtube.com. [Online] 05 11, 2011. [Cited: 01 01, 2012.]http://www.youtube.com/watch?v=s7szcpXf2rE.2. TSVI, Ytai Ben. Profil Google+. Plus.Google.com. [En ligne] [Citation : 15 04 2012.]https://plus.google.com/113760481226159480550/about.3. FELLER, SAM. An Interview with Ytai Ben-Tsvi, Inventor of the IOIO. Engineer Blogs.[Online] 03 21, 2012. [Cited: 03 24, 2012.] http://engineerblogs.org/2012/03/an-interview-with-ytai-ben-tsvi-inventor-of-the-ioio/.4. Site officiel ARDUINO. Arduino.cc. [En ligne] [Citation : 03 01 2012.] http://arduino.cc/.5. Google. Android Open Accessory Development Kit. Developer.android.com. [En ligne][Citation : 01 04 2012.]http://developer.android.com/guide/topics/connectivity/usb/adk.html.6. First Sketch. Arduino.cc. [En ligne] [Citation : 15 02 2012.]http://arduino.cc/en/Tutorial/Sketch.7. Two steps communication protocol. arduino.cc. [En ligne] [Citation : 19 02 2012.]http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1292733514.8. Tsvi, Ytai Ben. Github ytai / ioio. Github.com. [En ligne] https://github.com/ytai/ioio.9. —. The IOIO Manager ApplicationNew Page Edit Page Page History. Github.com. [En ligne]https://github.com/ytai/ioio/wiki/The-IOIO-Manager-Application.10. Android Software and IOIO Application Firmware Images. github.com. [En ligne]https://github.com/ytai/ioio/wiki/Downloads.11. Rota, Véronique Messager. Gestion de projet agile avec Scrum, Lean, eXtremeProgramming... 3e édition. s.l. : Eyrolles. 61 Bibliographie
  • 73. Robot à base d’AndroidANNEXEOpenAccessory et ADK OpenAccessoryOpenAccessory est une nouvelle fonctionnalité pour Android, qui permet de connecter despériphériques externes à un appareil Android via une connexion USB. Cette fonctionnalitéexpose une interface standardisée sur le bus USB, ainsi que dune API Java permettant uneapplication Android à communiquer avec laccessoire sur lautre extrémité. Cettefonctionnalité est supportée sur Android 2.3.4 et supérieur. Le protocole OpenAccessorypermet à lappareil Android à agir comme un hôte ou dun périphérique sur le bus USB (lemode hôte est pris en charge uniquement sur Android 3.x et supérieur, et seulement surcertains appareils).OpenAccessory est un protocole de bas niveau: il dispose dun seul canal de communicationfull-duplex entre lappareil Android et laccessoire, sur laquelle des octets arbitraires peuventêtre envoyés dans les deux sens - un peu comme une connexion UART. Il laisse auconcepteur daccessoires pour concevoir le protocole de niveau supérieur, cest à dire quelssont les messages à envoyer et à ce que leur sens est de lapplication Android et delaccessoire. ADKLe kit de développement de laccessoire (ADK) estune implémentation de référence des cartesOpenAccessory enabled, développé par Google eta annoncé conjointement avec OpenAccessory.Cette carte est essentiellement un Arduino Megaavec un Shield à bord dhôte USB. Il est livré avecune bibliothèque C ++ de côté Arduino quiimplémente le protocole. Suite à Google, Figure 68 USB Host and Accessory Modesplusieurs constructeurs ont publiés des cartescompatibles. 62 Annexe
  • 74. Robot à base d’AndroidSpécification Huawei Gaga U8180 General Information MemoryBrand Huawei Internal Yes, Internal Memory : 256MB RAM + Memory 512MB FlashModel Gaga U8180 External Yes, Up to 16GBWeight 100 G MemoryForm Factor Touch Bar Memory Slot Yes, Micro SD CardDimensions 104x56x13 MM Message GSM 850 / 900 / 1800 / 1900 / UMTS SMS YesOperating Freq 900 / 2100 MHz MMS YesTouch Screen Yes, Capacitive Touch Screen Email YesDisplay Color 2.8 inches QVGA, TFT Capacitive Touchscreen, 262K Colors Social Google Maps, Google Search, Gmail NetworkingDisplay Size Huawei Gaga U8180 has a display size Services of 240 x 30 px MusicSensors G-sensor for Auto-Rotate UI Ring Tone Vibration, Polyphonic, MP3Camera Yes, 3.2 Mega Pixels Camera with Focus FM N/ACamera Res. 2048 x 1536 Pixels Music Yes, Music Formats : MP3, AAC+, eAACZoom Yes, Digital Zoom with 3.5mm Audio JackVideo Yes, QVGA (240x320 Pixels) at 24fps Speaker YesVideo Player Yes, Video Formats : MP4, H.263, H.264, Headset Yes 15fps VGA / 30fps WQVGA DataSoftware GPRS YesGames Yes Bluetooth Yes, v2.1 with A2DPBrowser Yes, WAP 2.0/HTML Wirless Yes, Wi-Fi 802.11 b/g/nOperating System Android OS, v2.2 (Froyo) ProtocolCall Records Port Yes, Micro USB (High Speed USB)Phone Book Practically Unlimited Edge N/AReceived Calls Practically unlimited Infra Red NoDialed Calls Practically unlimited 3G YesBattery GPS Yes, with A-GPS supportStand-By Time N/A CPU Yes, Qualcomm MSM7225 528MHzTalk Time N/A ProcessorLi-ion 1200 mAH Salespack Handset, Battery, Charger, Earphone, USB Cable, User Manual, Warranty Card 63 Annexe
  • 75. Robot à base d’AndroidCapteur Ultrason – Dossier TechniqueSpécificationSupply voltage 5VGlobal Current Consumption 15 mAUltrasonic Frequency 40k HzMaximal Range 400 cmMinimal Range 3 cmResolution 1 cmTrigger Pulse Width 10 μsOutline Dimension 43x20x15 mmDimensions MécaniquesM 64 Annexe
  • 76. Robot à base d’AndroidUtilisationInstallation MatérielleUne brève impulsion ultrasonique est transmise à linstant 0, réfléchie par un objet. Le seigneur reçoit ce signalet le convertit en un signal électrique. Limpulsion suivante peut être transmis lors de lécho est disparu. Cettepériode est appelée période de cycle. La durée du cycle recommandent devrait pas être inférieur à 50ms. Siune impulsion largeur 10μs de déclenchement est envoyé à la broche de signal, le module à ultrasons seproduire huit signal de 40 kHz à ultrasons et à détecter lécho de retour. La distance mesurée estproportionnelle à la largeur dimpulsion décho et peut être calculée par la formule ci-dessus. Si aucun obstaclenest détecté, la broche de sortie donne un signal de niveau haut 38ms.Programmation/* Ping))) Sensor This sketch reads a PING))) ultrasonic rangefinder and returns the distance to the closest object in range. To do this, it sends a pulse to the sensor to initiate a reading, then listens for a pulse to return. The length of the returning pulse is proportional to the distance of the object from the sensor. The circuit: * +V connection of the PING))) attached to +5V * GND connection of the PING))) attached to ground * SIG connection of the PING))) attached to digital pin 7 created 3 Nov 2011 by David A. Mellis modified 30 Jan 2012 by Tom Igoe This example code is in the public domain. */ 65 Annexe
  • 77. Robot à base d’Android// this constant wont change. Its the pin number// of the sensors output:const int pingPin = 7;void setup() { // initialize serial communication: Serial.begin(9600);}void loop(){ // establish variables for duration of the ping, // and the distance result in inches and centimeters: long duration, inches, cm; // The PING))) is triggered by a HIGH pulse of 2 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); // The same pin is used to read the signal from the PING))): a HIGH // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH); // convert the time into a distance inches = microsecondsToInches(duration); cm = microsecondsToCentimeters(duration); Serial.print(inches); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(100);}long microsecondsToInches(long microseconds){ // According to Parallaxs datasheet for the PING))), there are // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per // second). This gives the distance travelled by the ping, outbound 66 Annexe
  • 78. Robot à base d’Android // and return, so we divide by 2 to get the distance of the obstacle. // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf return microseconds / 74 / 2;}long microsecondsToCentimeters(long microseconds){ // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return microseconds / 29 / 2;} 67 Annexe
  • 79. Robot à base d’AndroidMotor Driver TB6612FNGBlock DiagramFonctions des PINS 68 Annexe
  • 80. Robot à base d’AndroidOperation RangeFonction H-SW de contrôleDescription Opérationnelle H-SW 69 Annexe
  • 81. Robot à base d’AndroidCaractéristiques viséesCaractéristiques électriques 70 Annexe
  • 82. Robot à base d’AndroidDiagramme d’application Typique 71 Annexe
  • 83. Robot à base d’AndroidCapteur de Gaz (MQ5)Caractéristiques électroniques ParameterItems Min Type Max Unit nameSystem CharacteristicsVCC Working Voltage 4.9 5 5.1 V HeatingPH 0.5 - 800 mW consumptionRL Load resistance can adjustRH Heater resistance - 33 - Ω SensingRs 3 - 30 kΩ ResistanceInstallation MatérielleConnectez ce module à la broche analogique de Grove. Vous pouvezgagner la tension présente à travers la broche SIG. Plus laconcentration du gaz, plus la tension de sortie de la broche SIG. Lasensibilité peut être réglée en tournant le potentiomètre. Sil vous plaîtnoter le meilleur temps de préchauffage de la sonde est denviron 24heures.ProgrammationConnectez le module avec laide Grove Bouclier A0 comme sur laphoto ci-dessus. Utilisez le programme ci-dessous pour obtenir la tension. Vous pouvez voir la tensionira plus élevé si la concentration des incréments de gaz.void setup() { Serial.begin(9600);}void loop() { float vol; int sensorValue = analogRead(A0); vol=(float)sensorValue/1024*5.0; Serial.println(vol,1);} 72 Annexe
  • 84. Robot à base d’Android1er Article sur Tunandroid.comTUNANDROID.COMLa Communauté Android en Tunisie« Android Based ROBOT » – Un Robot Tunisien avec un cerveau Android1PAR HO USSEM EDD INE L ASSO UED , LE 6 FÉVRIE R 2012Avec ses premiers pas, le Robot à bien pris uneforme et peut être déclaré comme une VersionAlpha du projet de Réalisation d’un ROBOT Baséesur le OS Mobile ANDROID, dans le cadre d’unProjet de fin d’études à ESPRIT (Ecole SupérieurePrivée d’Ingénierie et de Technologie) en TUNISIE. L’idée de base de ce projet été commentTransformer un smartphone Android en un Robot!Connecter le monde Android(Soft) au mondeélectronique(Hard) est bien évidement possiblemaintenant, quelques solutions de fairecommuniquer ces deux mondes existent, citant lacarte IOIO(utilisé dans ce Robot),la carte Arduino,la Google ADK Board,… un choix est possible selonles besoins du projet et les caractéristiques dechaque plateforme, je vous propose quelquescomparaisons entre ces solutions:Google ADK vs Arduino ADK vs Sparkfun IOIOvs ADK ShieldIOIO over OpenAccessory (ADK)The IOIO and Android Based HardwareThe Buzz at the Google I/O 2011 Android est devenu de plus en plus intéressantpour le développement de matériel. Maintenant,vous devriez bientôt pouvoir brancher manettes dejeu, matériel personnalisé, des capteurs et autres dispositifs et de faire une plate-formeAndroid-Anywhere.Les nouvelles API de gestion de matériel permettra à tout le monde de développer desaccessoires matériels pour Android, à partir d’amateur individuels vers les grandesmarques mondiales. Vous n’avez pas à signer un NDA, et vous n’avez pas besoin d’unelicence de matériel spécial, les aspects qui concerne la politique d’Apple n’existera paschez Android. N’importe qui peut le faire. Revenant à ce Robot, comme c’est une première expérience à ESPRIT, il sera destinépour le Test, la sécurité et la recherche dans le domaine Android Embarqué, la domotiqueavec Android, la notion de Maison Intelligente etc…1 Lien : http://www.tunandroid.com/content/2012/02/06/android-based-robot-un-robot-tunisien-avec-un-cerveau-android/ 73 Annexe
  • 85. Robot à base d’AndroidIl sera doté d’un ensemble de capacités et il assurera pas mal de fonctionnalités, je vousliste ici quelques-unes:-Déplacement dans les 4 directions (inclut les rotations) avec 2 niveaux de vitesses.-Commandé à distance via un Smartphone Android(wifi)/ via un Navigateur Web-Capture vidéo et envoi du Streaming en direct vers l’application de commande-Un système de détection d’obstacles/de distances-Un module de géolocalisation GPS (OUTDOOR)-Détection de mouvement (motion Detection)/d’obscurité-Détection de fuite de Gaz/Mesure de Température-Fonctionnalité d’Alarme en cas d’urgence-Notification Automatique par SMS / E-mail-Signalisation en cas de problèmes (Alimentation faible, déséquilibre, wifi hors portée)-Récupération des mesures sur l’alimentation du Robot et la qualité de signal-Module de Commandes Vocales-… (de nouvelles idées tous les jours)Le projet est encore dans sa première phase, en attendant l’avancement au fur et àmesure, nos encouragement pour toute l’équipe qui travaille dessus, on espère qu’on voitd’autres projets innovants en Tunisie, il faut juste avoir confiance en soi.“Trust yourself. You know more than you think you do.”Quelques Photos:FÉVRIER 6TH, 2012 | TAGS : AND RO ID , AND RO ID BASED RO BO T , DO MO TIQ UE , ESPRIT , ESPRITMO BILE , IO IO , IO IO AND RO ID , MO BILE PHO NE , RO BO T , RO BO TAND RO ID , RO BO TIQ UE , TUNISIA ,TUNIS IE | CATÉGO RIE: D ÉVELO PPEMENT , NO UVEAUTÉS , SMARTPHO NES 74 Annexe
  • 86. Robot à base d’AndroidParticipation à TUNIROBOTS2012 et premier prixTUNANDROID.COMLa Communauté Android en TunisieUn ROBOT Android élu comme Meilleur Exposition à TUNIROBOTS-20121PAR HO USSEM EDD INE L ASSO UED , LE 22 AVRIL 2012L’Institut National des Sciences Appliquées et de la Technologie (INSAT) a organisé le dimanche22 avril 2012 à partir de 9 h la journée nationale de la robotique, baptisée Tunirobots’12.Une action menée en grande partie par les étudiants bénévoles de l’institut qui ont composés deséquipes bien organisées afin d’assurer la réussite de cette journée.Les expositions des différents robots construits par les étudiants leur a permis de démontrerencore une fois l’ingéniosité des jeunes tunisiens en matière de robotique et de technologie, etseront le trait d’union entre eux et les différentes entreprises qui assisteront à cet évènement quipromet de belles réalisations.Android été bien évidement présent lors de cette journée, et oui... nos jeunes tunisiens ont bienpensé cette année d’entrer à Tunirobots avec des robots plus intelligents et moins classique, desrobots avec un cerveau ANDROID !C’est à ce propos que nous parlons de la participation d’un jeune élève ingénieur de l’écoleESPRIT, Mr. Houssem Eddine Lassoued qui a participé avec son Projet de fin d’étude en cours deréalisation, un Robot à base d’Android, nous avons bel et bienparlé de ce projet avant, ici.Pour résumer la journée, « l’Android Based Robot » a eubeaucoup de succès auprès de l’audience présente tout aulong de la journée, des étudiants de différentes institutionsdes amateurs, des professionnels, et des médias ont profitéde l’occasion pour faire quelques interviews avec l’exposantdu Robot, il y avait aussi un nombre de jurysindépendants appartenant à des différentes universités et« labos », leurs rôle était de visiter chaque exposant et jugerson Robot sur différentes critères, dont les plus importantessont l’originalité, les fonctionnalités, la réalisation et lesperspectives du projet qui doivent être bien expliquées parl’exposant.1 Lien : 75 Annexe
  • 87. Robot à base d’AndroidLe résultat est annoncé vers la fin de la journée, et une victoire pour le Robot à Base Android quia remporté le prix de la meilleure exposition ) un grand Bravo pour Houssem Eddine,Félicitation pour toute l’équipe Mobile d’ESPRIT, et c’est une victoire aussi pour la CommunautéTunandroid;)le prix attribué au vainqueur est une Tablette ARCHOS 70 IT, une certification de participation,et une jolie médaille pour garder le souvenir.AVRIL 22ND , 2012 | T AGS : 12, AND RO ID , ESPRIT , EXPO SANT , HO USSEM ED INE LASSO U ED , INSAT ,IO IOAND RO ID , MO BILE , PRIX, RO BOT , TUNIRO BOTS , TUNISIE | CATÉGO RIE: ARCHO S, EMBARQ UÉ ,EVENTS , NATIO NAL , NO UVEAUTÉS 76 Annexe
  • 88. Robot à base d’AndroidArticle Tekiano.com 1: Un peu plus loin, nous retrouvons cette fois le stand du Club Esprit. Houssem Eddine Lassoued, étudiant en 5ème année télécommunication nous présente un robot commandé à base du système dexploitation Google Android. «Ce robot est constitué de quatre moteurs, dune carte électronique IOIO, dune webcam, dun capteur à ultra-son et dun détecteur de gaz. Il est capable sintroduire dans divers endroits restreints et effectuer des tâches variées comme la surveillance dun domicile, ou dun entrepôt » Souligne le concepteur qui au passage, précise que lavantage de ce système embarqué est le fait de pouvoir contrôler ce robot directement depuis son Smartphone, grâce à une application qui renseignera lutilisateur sur les distances dun tel objet ou obstacle ou encore du taux de gaz présent dans une pièce...Participation à ComNet’2012 Supcom à Hammmet 2On a participé avec le robot à la la troisième Conférence Internationale sur lesCommunications et Réseaux (ComNet2012), qui se tiendra le 1er avril 2012, àHammamet.Cette conférence internationale réunit des chercheurs des TIC des pays duNord et du Sud dans le but de se rencontrer, déchanger leurs idées et leurexpertise, dinitier et de renforcer leur coopération sur des sujets liés auxcommunications réseaux. Il se positionne comme une plate-forme pour leschercheurs et les praticiens à la fois du milieu universitaire et de lindustriepour se rencontrer et partager la recherche de pointe et le développementdans ces domaines.ComNet2012 fournira une excellente tribune internationale pour le partagedes connaissances et des résultats de recherche dans les théories, lesméthodologies et les applications dans différents sujets liés à la communicationet au réseau (filaires et sans fil).1 http://www.tekiano.com/tek/science/5177-tunirobots-2012-bataille-de-robots-et-premiere-fusee-tunisienne-.html2 http://www.supcom.mincom.tn/ComNet2012/ 77 Annexe
  • 89. Robot à base d’AndroidParticipation à Droidcon Tunis 2012 (cité des sciences)1La Cité des sciences de Tunis a accueilli pour lapremière fois en Tunisie, le 12 et 13 Mai 2012, «leDroidcon Tunis 2012 », un événement majeurtournant autour du système d’exploitation mobileAndroid. Ces deux jours sont constitués deconférences, de débats, d’ateliers d’initiation, d’unespace d’expositions gratuit, de démonstrations, d’un Barcamp et même d’un Hackathon,sorte de marathon pour développeurs. .Durant deux jours de Droidcon Tunis, plus de 350 participants ont pris part à uneaventure à la fois originale et exceptionnellement enrichissante.Durant le premier jour, un barcamp a été organisé en parallèle à une succession deformations d’initiations donné par les membres de Tunandroid et une conférence donnépar Tunisiana.Dans le grand auditorium, un challenge d’application a eu lieu, ou chaque participant, quisouhaite participer au challenge, a 3 minutes pour présenter son application. Le gagnantpar vote à main levée, a eu un smartphone Alcatel One Touch.Parmi la participation d’ESPRIT, été notre projet le Robot à Base d’Android1 droidcon.tn 78 Annexe
  • 90. Robot à base d’Android 79 Annexe
  • 91. Robot à base d’Android 80 Annexe
  • 92. Robot à base d’Android 81 Annexe
  • 93. Robot à base d’Android 82 Annexe
  • 94. Robot à base d’Android 83 Annexe
  • 95. Robot à base d’AndroidNOTES 84 Annexe