Académique Documents
Professionnel Documents
Culture Documents
commande vocale
: Président
: Rapporteur
M. SATAR : Encadrant
: Examinateur
: Examinateur
La théorie, c’est quand on sait tout et que rien ne fonctionne.
Albert Einstein
Nous remercions aussi notre encadrant M. SATAR Mouloud pour son soutien et son
aide dans la recherche de la documentation nécessaire pour la réussite du projet. Nous lui
sommes reconnaissants d’avoir été à nos côtés tout le long du projet. Et surtout, nous le
remercions pour ses conseils et son savoir-faire qu’il a partagé avec nous.
Que les membres du jury trouvent ici nos remerciements pour nous avoir honorés en
acceptant de siéger dans ce jury afin d’évaluer notre travail.
A toutes les personnes morales ou physiques, à nos parents, un sincère merci pour le
soutien, les conseils, la motivation et les encouragements dont vous nous avez fait preuve.
Nous ne saurons terminer notre travail sans exprimer notre gratitude et reconnaissance
aux autorités militaires de nos pays respectifs pour la confiance qu’elles ont placée en nous en
nous désignant parmi bon nombre de candidats afin de bénéficier de cette formation aussi
riche soit-elle.
Ce travail
s’inscrivant dans le cadre du Projet de Fin d’Etudes, porte sur l’étude et conception d’une
voiture à commande vocale et à commande radio. Effectué au sein du laboratoire micro-
informatique de l’Ecole Royale de l’Air, son objectif est de réaliser une voiture qui sera
capable de se déplacer sous l’effet de la voix grâce à une application réalisée sur androïde et
connectée à une carte arduino.
Ce projet s’articule autour de deux axes principaux :
Réalisation de l’application vocale sur appinventor.
Réalisation de la voiture et programmation de ses différents composants électroniques.
Afin d’y parvenir, nous avons utilisé l’environnement de programmation arduino pour
la programmation de la carte arduino ainsi que de l’émetteur-récepteur radio fréquence
nRF24L01 qui permettra en outre de la commande vocale une autre commande qui est par
radio fréquence à travers une manette.
La microrobotique représente une activité pluridisciplinaire à même de converger les
études réalisées dans différents domaines tels que : l’électronique, l’électricité, la mécanique
et l’informatique. De ce fait, ce projet nous a permis de concilier nos connaissances
théoriques et pratiques que nous avons acquises tout au long de notre formation afin de
réaliser le travail qui nous a été demandé.
This work, which is part of the End-of-Study Project, concerns the study and design of
a voice-activated car. Performed in the microcomputer laboratory of the Royal Air School, its
objective is to realize a car that will be able to move under the effect of the voice thanks to an
application realized on android and connected to a card arduino.
In order to achieve this, we have used the arduino programming environment for
programming the arduino board as well as the radio frequency transceiver nRF24L01 which
will furthermore enable voice control another command that is by radio frequency to Through
a handle.
Introduction
Les systèmes embarqués font dorénavant partie de notre vie et sont intégrés à la
plupart des objets que nous utilisons au quotidien. De nos jours nous pouvons en compter
quelques centaines de milliards sur notre planète.
Ces composants logiciels et matériels sont depuis toujours utilisés dans de nombreux
types d’applications comme le transport (aéronautique, spatial, automobile, ferroviaire…), les
appareils électriques et électroniques (appareils photo, jouets, systèmes audio…), la
distribution d’énergie ou encore la productique.
Pour pouvoir mener à bien ce projet nous avons subdivisé notre travail en trois grandes
parties :
La première qui portera sur le but et l’objectif de ce projet suivi de l’étude et le choix
des composants qui permettront la réalisation du robot.
Notre travail consistera dans un premier lieu au choix des composants permettant la
réalisation de notre projet, par la suite nous allons procéder à la réalisation du robot qui pourra
se déplacer par commande vocale à travers une application conçue par nous-mêmes et
installée sur un téléphone portable. La commande de ce robot sera aussi assurée à partir du
module NRF24L01 (capable de se comporter à la fois en émetteur soit en récepteur en
fonction de l’usage dont on veut en faire) à travers une manette.
Chapitre 1 :
Pour ce qui est de la partie commande de notre robot, elle sera subdivisée en deux
grandes parties :
Le cœur de notre travail basé sur la carte arduino de type UNO nous permettra à
travers les différents programmes d’assurer le contrôle du pont H et par lui les moteurs.
Le matériel
Il s'agit d'une carte électronique basée autour d'un microcontrôleur Atmega du fabricant
Atmel, dont le prix est relativement bas pour l'étendue possible des applications.
1. Le microcontrôleur
Il va recevoir le programme et le stocker dans sa mémoire puis l’exécuter.
2, 3 : Alimentation
Pour fonctionner, la carte a besoin d'une alimentation. Le microcontrôleur fonctionnant sous
5V, la carte peut entre alimentée en 5V par le port USB (en 2) ou bien par une alimentation
externe (en 3) qui est comprise entre 7V et 12V. Cette tension doit être continue et peut par
exemple être fournie par une pile 9V. Un régulateur se charge ensuite de réduire la tension a
5V pour le bon fonctionnement de la carte.
4. Visualisation
Les trois "points blancs" entoures en rouge sont des LED dont la taille est de l'ordre du
millimètre.
Ces LED servent a deux choses :
• Celle tout en haut du cadre : elle est connectée a une broche du microcontrôleur et va servir
pour tester le matériel.
Nota : Quand on branche la carte au PC, elle clignote quelques secondes.
• Les deux LED du bas du cadre : servent a visualiser l'activité sur la voie série (une pour
l'émission et l'autre pour la réception). Le téléchargement du programme dans le
microcontrôleur se faisant par cette voie, on peut les voir clignoter lors du chargement.
possibilités de 0 à 1023.
Le logiciel
Le logiciel permet de programmer la carte Arduino. Il offre une multitude de fonctionnalités.
Au jour d'aujourd'hui, l'électronique est de plus en plus remplacée par de l'électronique
programmée. On parle aussi d'électronique embarquée ou d'informatique embarquée.
L’interface du logiciel arduino se présente comme suit :
Le NRF24L01 est un émetteur-récepteur à une seule puce de 2,4 GHz avec un moteur
de protocole de bande de base intégré, conçu pour les applications sans fil à très faible
puissance. Le NRF24L01 est conçu pour fonctionner dans la bande de fréquence ISM à
l'échelle mondiale à 2.400 - 2.4835GHz. Un MCU (microcontrôleur) et très peu de
composants passifs externes sont nécessaires pour concevoir un système radio avec le
NRF24L01.
Transmission
La vitesse de fonctionnement maximale est de 2 Mbps, avec une faible consommation
électrique.
La distance de transmission est relativement élevée et permet le pilotage de robots.
Le module avec antenne incorporée (visible en zigzag sur le circuit) peut transmettre à
environ 100 mètres (transmission 1 mW), en terrain dégagé et avec une transmission sur 250
KHz. Augmenter la vitesse réduit la portée de transmission.
Pour de la plus longue portée (1 km) il existe des module analogues mais amplifiés et avec
une plus grande antenne supplémentaire à brancher dessus.
Et les deux autres roues situées à son arrière sur lesquelles est également fixé
un moteur grâce à des engrenages et dont la mise en fonctionnement assurera le
déplacement avant et arrière de notre robot. Il se présente également comme suit :
Il existe une inductance L dans le circuit que l’on peut négliger ici si le courant
est en régime continu comme dans notre cas d’étude. Les équations caractéristiques du
moteur sont les suivantes :
La première est celle de la tension, elle découle directement du schéma
équivalent d’un moteur à courant continu. Elle se présente comme suit :
U =E+ RI
De cette première équation découlent celles de E (fem) et I (courant consommé
par le moteur).
E=K e . ω
I =K c .C
U Tension (V)
E Force électromotrice (V)
R Résistance interne du bobinage (Ω)
I Courant consommé par le moteur (A)
Ke Constante
Kc Constante
C Couple moteur (N.m)
ω Fréquence de rotation (rad/s)
Remarque :
Pour faire varier la fréquence de rotation, il faut faire varier E et donc la tension
d’alimentation U.
Pour inverser le sens de rotation, il faut inverser E et donc la tension d’alimentation à
ses bornes.
Le courant I varie avec le couple, on peut aussi limiter le courant pour limiter le
couple.
Si l’on actionne S1 et S4 seuls, le moteur tourne dans un sens. Par contre si c’est S2 et
S3 qui sont actionnés, le moteur tourne dans l’autre sens.
Léger, petit
Des capacités hors-pair pour contrôle moteur
Diodes de protections
Un dissipateur (pour dissiper la chaleur en cas de forte charge)
Un sélecteur pour sélectionner la source d'alimentation
4 Sélecteurs pour les résistances pull up
Sortie pour 2 moteurs continu/ 1 moteur pas-à-pas (4 bobines, deux phases)
Indicateur LED pour sens de rotation moteur
Indicateur LED pour alimentation 5V
4 trous de fixation standard
1.2.8.2 Spécifications du pont H
Ce chapitre nous a permis d’une part de présenter le bien fondé de notre projet de fin
d’études et d’autre part faire une présentation et description des différents composants
nécessaires à la réalisation du robot.
Chapitre 2 :
Moteur B
Pont H
Carte arduino
Moteur A
Afin de réaliser l’interface, il suffira de prendre les différents éléments et les faire glisser sur
l’écran du téléphone. Ces éléments peuvent être :
Une « TextBox »qui permet de saisir du texte.
Un bouton.
Des labels qui permettront d’afficher du texte.
Il suffira ensuite de définir les propriétés de chaque élément :
Sur la gauche, nous avons un système d’onglets. Nous y retrouvons les différents composants
que nous placerons sur l’écran ainsi que des blocks utilitaires « Built in » Dans l’onglet «
Screen1 », nous retrouvons les éléments de l’interface : Ainsi nous allons pouvoir décrire le
comportement de chacun d’entre eux, par la réalisation des algorithmes à l’aide des différents
blocs.
Ainsi pour la réalisation de notre application pour la commande vocale de notre robot
nous avons suivi ces différentes étapes comme cela a été décrit précédemment :
Une pour la création de l’interface homme machine : ce sera l’allure de notre
application ;
Une pour la programmation par elle-même : elle permettra, par l’assemblage de blocs
de créer le comportement de l’application ;
une pour l’émulateur qui permettra de tester l’application. L’émulateur permet de
remplacer un terminal réel pour vérifier le bon fonctionnement du programme.
La connexion d’un terminal réel sous Androïde permettra ensuite d’y télécharger le
programme pour un test réel. Ce terminal pourra aussi bien être un téléphone qu’une tablette,
le comportement du programme sera identique.
Gestion des
fonctionnalités
Cette fenêtre sera la programmation des différents buttons crée au niveau de l’interface.
Déconnexion au
périphérique sélectionné
Connexion au
périphérique Activation de la
sélectionné commande vocale.
Figure 2.13 Programme activation Bluetooth
Cette première partie de notre programme va nous permettre de choisir parmi la liste
des périphériques affichées, dans notre cas ce sera le module Bluetooth (HC-05), et dès que la
connexion sera établie entre le téléphone et le module bluetooth, un bandeau de notification
affichera « connecté » ou de se déconnecter de ce périphérique et lorsque « BP_vocal » est
cliqué, sera lancée la procédure de reconnaissance vocale.
Il suffira de cliquer sur l’icône stop sur le téléphone pour arrêter la voiture.
L’objectif visé par ce chapitre est de remplacer le module Bluetooth sur le robot
réalisé au deuxième chapitre par deux modules NRF24L01 (l’un sera l’émetteur et l’autre
récepteur) et enfin d’assurer le déplacement du robot dans tous les sens à travers de nouveaux
programmes et la commande par une manette. L’intérêt ici est que l’on n’a plus besoin de la
connexion internet avant de commander le robot, ce qui n’était pas possible dans le cas de la
commande vocale.
3.1 Composants utilisés
Pour cette dernière partie de notre projet nous avons utilisé en dehors des composants
de la partie précédente :
Chacun des deux potentiomètres est utilisé en diviseur de tension entre les pins GND
et 5 V de l'Arduino. Le potentiomètre Y (qui permet d'avancer ou de reculer) achemine son
signal à la pin analogique 0, et le potentiomètre X (qui permet de tourner à gauche ou à droite)
achemine son signal à la pin analogique 1.
Il existe plusieurs type de joystick celui que nous avons utilisé est celui du
PlayStation 2 qui se compose comme suite :
La connexion entre les deux joysticks et la carte se fait selon la figure suivant :
Et dans la fonction setup () on appelle les fonctions suivantes pour initialiser le module radio.
Le second bloc permet de choisir le canal de fréquence et la taille des messages qui
vont être transmis. Cette taille est fixe et doit être fournie à l'initialisation du module radio.