Vous êtes sur la page 1sur 18

Chapitre2 

: Etude de la partie matérielle et logicielle du projet

Dans ce deuxième chapitre, on va aborder les différents composants utilisés dans notre projet
ensuite on va présenter les plateformes informatiques utilisées dans le développement du système.

I. Etude de la partie matérielle

Dans cette partie nous allons présenter les différents composants qui répondent à nos besoins
dans notre projet.

1. Carte ARDUINO
ARDUINO est un circuit imprimé en matériel libre( dont les plans de la cartes elle-même sont
publié en licence libre mais dont certains composants sur la carte, comme les microcontrôleurs par
exemple ne sont pas en licence libre) sur lequel se trouve un microcontrôleur qui peut être programmé
pour analyser et produire des signaux électrique , de manière à effectuer des taches très diverses comme
la domotique ( le control des appareils domestiques, éclairage, chauffage…) le pilotage d’un robot etc

C’est une plateforme de prototypage d’objet inter actif à usage créatif constituer d’une carte
électronique et d’un environnement de programmation. Cet environnement matériel et logiciel permet à
utilisateur de formuler ses projets par l’expérimentation directe avec l’aide de nombreuse ressource
disponible en ligne.

La carte ARDUINO repose sur un circuit intégrer (un mini-ordinateur appelé également
microcontrôleur) associer à des entrées et sorties qui permettent à l’utilisateur de brancher différent
type d’élément externe :

-Les entrées : des capteurs qui connectes les informations sur leurs environnements comme la variation
de température via une sonde thermique, le mouvement via un détecteur de présence ou un
accéléromètre, le contact via un bouton poussoir …

-Les sorties : des actionneurs qui agissent sur le monde physique tel une petite lampe qui produit de la
lumière, un moteur qui actionne un bras articulé …

La plateforme ARDUINO ce présente sur plusieurs séries à savoir : ARDUINO UNO, ARDUINO NANO,
ARDUINO LILYPAD, ARDUINO DUE et ARDUINO MEGA 2560 qui sera le cœur de notre système. Dans
cette partie on va présenter, sous forme d’un tableau comparatif les principaux carte ARDUINO, les
propriétés caractérisant chacun des autres et va terminer avec le type convenable pour notre situation.

Arduino UNO Arduino Mega 2560 Arduino Micro


Microcontrôleur ATmega328P ATmega2560 ATmega32U4
Tension de 5v 5v 5v
fonctionnement
Tension d’entrée 7-12v 7-12v 7-12v
(recommandé)
Tension d’entrée 6-20v 6-20v 6-20v
(limite)
Digital I/O Pins 14(dont 6 fournissent 54 ( dont 15 20 ( dont 7 fournissent
la sortie PWM*) fournissent sortie sortie PWM)
PWM)
Broches d’entrées 6 16 12
analogiques
DC courant par I/O Pin 20mA 40 Ma 40 mA
Courant DC pour 3.3 50mA 50 mA 50 mA
Pin
Mémoire Flash 32 Kb ( ATmega328P) 256 ko (ATmega2560) 32 ko ( ATmega2560)
dont 0.5 KB utilisé par dont 8 kb utilisé par dont 8 Kb utilisé par
Boot Loader Boot Loader Boot Loader
SRAM 2 Kb (ATmega2560) 8 kb (ATmega2560) 2.5 Kb(ATmega2560)
EEPROM 1 Kb (ATmega2560 4 Kb (ATmega2560) 1 Kb (ATmega2560)
Fréquence d’horloge 16 MHz 16 MHz 16 MHz

Dans notre projet, on a choisi la carte Arduino Méga 2560 pour les raisons suivantes :

- La carte Arduino Méga 2560 dispose d’un grand nombre d’entrées/sorties analogiques et
numériques ce qui est compatible avec notre projet qui dispose de plusieurs capteurs et
actionneurs.
- La carte Uno et la Micro possèdent toutes les deux une mémoire Flash de 32 Ko, tandis que la
Méga 2560 en propose 256 Ko, soit 8 fois plus d’espace mémoire ! ce qui est important dans
notre projet qui peut avoir un long code et pour que la carte ne se plante pas.
Pour ces raisons on a mis notre choix sur l’Arduino Méga 2560.
2. Module afficheur LCD
Les afficheurs LCD alpha numérique présentent une solution facile d’emploi et bon marché
doter notre projet d’une interface indépendante de notre ordinateur personnel.

Vu de l’extérieur les écrans LCD ALPHA numérique sont essentiellement caractériser par leurs
tailles. Deux modèles se rencontres très fréquemment et sont les meilleurs marchés, celui et ayant deux
ligne et 16 colonnes d’affichage et celui ayant 4 lignes et 20 colonnes d’affichages.

Afficheurs LCD (16*2) et (20*4)

 Le connecteur de l’afficheur LCD

Ces deux écrans ont exactement la même connectique c’est-à-dire un connecteur 16 broches. Ce
connecteur véhicule plusieurs signaux dont une partie forme un bus de communication parallèle 4
ou 8 bits selon la configuration choisie ainsi que les signaux permettant de contrôler la
communication entre l’ARDUINO et l’écran.

La figure ci-dessous donne la nomenclature des broches de ce connecteur :

Connecteur de l’afficheur LCD

Ces broches ont le rôle suivant :

Numéro de broche Désignation Description


1 GND Masse 0V

2 VCC Alimentation +5V

3 VE Tension de réglage du contraste


4 RS Sélection du registre donnée ou
commande
5 RW Lecture ou écriture
6 EN Activation pour un
transfert(enable)
7 DB0 Bit 0 de la donnée/commande
8 DB1 Bit 1 de la donnée/commande
9 DB2 Bit 2 de la donnée/commande
10 DB3 Bit 3 de la donnée/commande
11 DB4 Bit 4 de la donnée/commande
12 DB5 Bit 5 de la donnée/commande
13 DB6 Bit 6 de la donnée/commande
14 DB7 Bit 7 de la donnée/commande
15 LED+ Anode (+) du rétro-éclairage
16 LED- Anode (-) du rétro-éclairage

 La communication avec le LCD


L’afficheur LCD peut fonctionner en mode 4 bits ou en mode 8 bits. En mode 8 bits, les octets sont
transférés sur les lignes DB0 à DB7. En mode 4 bits les octets sont transfères en deux fois sur les lignes
DB4 à DB7.

Le LCD dispose de 3 registres internes, le registre de données permettant entre autres l’envoi des
codes des caractères à afficher, le registre de commande permettant d’envoyer des commandes
d’effacement de l’écran, de positionnement du curseur, etc., et le registre d’état qui permet de consulter
notamment la disponibilité du LCD pour recevoir des commandes ou des données.

La sélection de l’un ou l’autre de ces registres est effectuée via les états, LOW ou HIGH, des lignes RS
et RW. Une fois l’état de ces deux lignes établies, EN est placé à HIGH, la donnée ou la commande est
placée sur les lignes DBx puis EN est placé à LOW.

Piloter directement un LCD est donc un processus relativement compliqué. Evidemment, comme
c’est très souvent le cas avec l’Arduino comme dans notre situation, il existe des bibliothèques pour ça,
ce qui permet de les utiliser aisément sans avoir à plonger dans la datasheet.

 La connexion avec la carte Arduino Méga 2560

Dans la grande majorité des cas, on préfèrera une communication sur 4 bits car une communication
sur 8 bits consomme 10 ou 11 broches, ce qui, hormis sur un Mega ou un Due, laisse peu de broches
libres. Avec une communication 4 bits, 6 à 7 broches sont nécessaires. Le choix des broches est libre.

En mode 4 bits, les broches à connecter à l’Arduino sont donc RS, EN, DB4, DB5, DB6 et DB7ainsi que,
de façon optionnelle, RW.

 Afficheur LCD 16x2

Dans notre projet, nous avons choisi cet afficheur LCD pour afficher un message lisible à l’utilisateur
de la poubelle selon l’état de cette dernière.

Cet afficheur dispose des caractéristiques techniques suivantes :

 Affichage : 16 colonnes, 2 lignes

 Tension : 5V uniquement nécessaires

 Courant : 135 mA typ. avec rétro-éclairage allumé

 Modes : I2C ou 9 600 baud de communication série

 Caractères personnalisés : Jusqu'à 8 caractères personnalisés faciles à définir.

 Branchement avec carte ARDUINO


Branchement de l'afficheur LCD avec ARDUINO

3. Servomoteur
Pour ouvrir et fermer notre poubelle, on a pensé à utiliser un servomoteur à rotation angulaire
vu leur souplesse, simplicité de commande et de leur couple acceptable. Le servomoteur à rotation
angulaire est un micro servomoteur largement utilisé dans le monde du modélisme. Il s'agit d'ailleurs du
modèle disponible dans l'assortiment moteur + Shield moteur. Très léger avec ses 9 grammes et son
amplitude de 180°, il sera idéal pour animer les projets robotiques à partir d'un microcontrôleur tel
qu'Arduino comme dans notre situation. Sa prise standard Graupner à 3 fils et sa tension d'alimentation
de 5V rendent le micro servo directement utilisable sur un Arduino. Le servomoteur a l’avantage,
contrairement à un moteur à courant continu, d’être asservi en position angulaire, cela signifie que l’axe
de sortie du servomoteur respectera la consigne d’instruction que vous lui avez envoyée en son entrée.
Pour le moteur pas à pas, c’est un moteur qui bouge d'un pas à chaque fois qu'il reçoit une impulsion
alors qu'un servomoteur est un moteur pouvant tourner dans les deux sens et équipé d'un équipement
de traitement d'information qui reçoit des ordres d'ouverture et de fermeture en pourcentage, ce qui
‘est compatible avec notre projet.

Donc et pour répondre à notre besoin, on a choisi d’utiliser le servomoteur à rotation angulaire
(micro-servo) car notre application nécessite seulement une rotation de 90° afin d’assurer l’ouverture et
la fermeture de la poubelle.
 Caractéristiques :

Servomoteur à rotation angulaire (Micro-Servo)

Caractéristiques :
 Alimentation : 4.8 à 6v
 Angle de rotation : 180°
 Couple : 1.3 kg.cm
 Vitesse : 0.12 sec/60)
 Dimensions : 23.2*12.5*22mm
 Poids : 9g

 Branchement avec carte Arduino


4. Capteur de gaz/fumée (MQ-135)
 Capteur de gaz/fumée (MQ-135)

Le senseur MQ135 est capable de mesurer la qualité de l’air et des polluants et de détecter le Dioxyde de
carbone (CO2) et de nombreux autres composés comme l’alcool, benzène, Oxyde d'azote (NOx),
Amoniac (NH3), fumée dans l'air. La concentration dans l'air impacte la tension de sortie analogique qui
peut être lu avec un microcontrôleur. Ce senseur consomme un courant d'environ 40 mA à 5 V.

Figure 8: Capteur de gaz/fumée MQ-135

 Caractéristiques :

Gaz détectables : CO2, ammoniac, benzène, alcool, fumee.

Plage de détection : 10-300 ppm NH3, 10-1000 ppm Benzène, 10-600ppm d’alcool.

Temps de réponse : ≤ 10s (réponse de 70%)

Temps de récupération : ≤ 30s (70% de réponse)

Température ambiante d’opération : -20 à + 55 C

Humidité : ≤ 95% HR

Teneur environnementale en oxygène : 21%

Température de stockage :-20 – +70

Humidité : ≤70% RH

 Branchement avec carte Arduino


Figure 9: Branchement du MQ-135 avec Arduino

5. Système RFID :
RFID « radio-frequency identification » est une technologie pour laquelle les données
numériques sont codées dans des étiquettes RFID ou « tags ». Elles sont capturées par un lecteur via des
ondes radio. La RFID est similaire aux codes-barres dans la mesure ou les données d’une étiquette sont
capturées par un appareil qui stocke les données dans une base de données. La RFID présente toutefois
plusieurs avantages par rapport aux systèmes utilisant un logiciel de suivi des actifs de codes-barres. En
effet, le code barre nécessite un scanner optique.

À un niveau simple, les systèmes RFID se composent de trois composants : une étiquette RFID «
RFID tag », un lecteur RFID et une antenne. Les étiquettes RFID contiennent un circuit intégré et une
antenne, qui permettent de transmettre des données au lecteur RFID. Le lecteur convertit ensuite les
ondes radio en une forme de données plus utilisable. Les informations collectées à partir des étiquettes
sont ensuite transfères via une interface de communication vers un système informatique hote pour les
traitements ultérieurs. La technologie RFID basée sur des transferts d’énergie par liaison radio en
utilisant des antennes électromagnétiques. Pour la mettre en application, il est nécessaire de disposer de
marqueurs (étiquettes, tags ou puces RFID) et d’un lecteur RFID.

 Module lecteur RFID RC522 :


Figure 10 : Module lecteur RFID RC522
Le module est un lecteur de la puce RFID basé sur le circuit MFRC522 à faible coût est facile à utiliser.
Il peut être utilisé dans une large gamme d’application. Le MFRC522 est un circuit intégré de lecture /
écriture hautement intégré pour la communication sans contact à 13,56MHz. Ci-dessous les
caractéristiques du module :

 Basé sur le circuit MFRC522

 Fréquence de fonctionnement : 13,56 MHz

 Tension d’alimentation : 3.3V

 Courant : 13-26mA

 Portée de lecture : Environ 3 cm avec la carte et le porte-clés fournis

 Interface de communication : SPI

 Taux de transfert de données maximum : 10 Mbit / s

 Dimensions : 60mm × 39mm

 L’étiquette RFID
Figure 11 : étiquette RFID

L’étiquette radiofréquence (transpondeur, étiquette RFID), est composée d’une puce (en anglais « chip »)
reliée à une antenne, encapsulées dans un support (RFID Tag ou RFID Label). Elle est lue par un lecteur
qui capte et transmet l’information.

Figure 12 : description interne de la carte RFID

L'étiquette RFID est le support RFID le plus utilisé, il consiste à abriter un numéro de série ou une série de
données sur une puce reliée à une antenne. L’étiquette est activée par un signal radio émis par le lecteur
RFID lui-même équipé d'une carte RFID et d'une antenne, les étiquettes transmettent les données
qu'elles contiennent en retour.

 Branchement du module RFID avec Arduino :


Figure 13 : Branchement du module RFID avec ARDUINO

6. Capteur ultrason HC-SR04 :

Figure 14 : Capteur ultrason HC-SR04

Le détecteur HC-SR04 utilise les ultrasons pour déterminer la distance à laquelle se trouve un objet. Peu
importe l'intensité de la lumière, la temperature ou le type de matière, le capteur pourra facilement
détecter s’il y a un obstacle devant lui. Toutefois, il peut être contraint sur certains types de couleurs tel
que le noir (contraste), ou encore sur la matière comme le textile. Son champ de vision est de 90°environ
selon l'environnement. Si une impulsion de plus de 10µS et détecter, alors le capteur envoie une série de
8 impulsions à ultrason de 40kHZ et attends le réfléchissement du signal. Ensuite, en ayant en tête la
vitesse du son, il effectue un rapide calcul pour déterminer la distance.

 Principe de fonctionnement
Le principe de fonctionnement du capteur est entièrement basé sur la vitesse du son. Voilà comment se
déroule une prise de mesure :

1. On envoie une impulsion HIGH de 10µs sur la broche TRIGGER du capteur.

2. Le capteur envoie alors une série de 8 impulsions ultrasoniques à 40KHz (inaudible pour l'être
humain, c'est quand plus agréable qu'un biiiiiiiip).

3. Les ultrasons se propagent dans l'air jusqu'à toucher un obstacle et retourne dans l'autre sens vers le
capteur.

4. Le capteur détecte l'écho et clôture la prise de mesure. Le signal sur la broche ECHO du capteur reste
à HIGH durant les étapes 3 et 4, ce qui permet de mesurer la durée de l'aller-retour des ultrasons et donc
de déterminer la distance.

N.B. Il y a toujours un silence de durée fixe après l'émission des ultrasons pour éviter de recevoir
prématurément un écho en provenance directement du capteur.

 Caractéristiques :

Tableau 4 : Caractéristiques du capteur ultrason HC-SR04

Tension d’alimentation 5V DC
Courant d’alimentation 15mA
Fréquence de travail 40Hz
Distance maximale de détection 4m
Distance maximale de détection 2cm
Angle de détection 15 degrés
Signal d’entrée de l’émetteur Impulsion à l’état haut de 10µs
Signal de sortie du récepteur Signal numérique à l’état haut et la distance
proportionnellement
Dimension 45*20*15mm
 Remarque :
Dans notre système le capteur ultrason joue le rôle d’un capteur de présence qui détecte la présence de
la personne.

Figure 15 : Branchement du capteur ultrason HC-SR04 avec ARDUINO

8. LED rouge et verte :


Une diode électroluminescente (abrégé en LED, de l'anglais : light-emitting diode, ou DEL
en français) est un dispositif optoélectronique capable d’émettre de la lumière lorsqu’il est
parcouru par un courant électrique. Une diode électroluminescente ne laisse passer le courant
électrique que dans un seul sens et produit un rayonnement monochromatique ou
polychromatique non cohérent par conversion d’énergie électrique lorsqu'un courant la
traverse.

Dans notre projet, on a utilisé une LED rouge qui indique la poubelle est indisponible et
une LED verte qui indique que la poubelle est disponible

Figure 16 : Branchement de LED avec ARDUINO

9. Capteur de niveau infrarouge PIR :


Le capteur PIR utilisé ici est un HC-SR501 il permet de capter les rayonnement infrarouge mobile
et donc de détecter le mouvement. Il est souvent utilisé dans des systèmes d’allumages automatiques ou
d’autres systèmes d’alarmes. Il est simple d’utilisation, efficace, précis et fiable. Sa portée est d’environ
7m.

Sur le module nous avons deux potentiomètres, l’un servant à régler la durée de son état et
l’autre servant à régler la distance de détection.

Figure 17 : Capteur HC-SRS01

 Caractéristiques du capteur PIR

 Large plage de tension d'entrée variant de 4V à 12V (+ 5V recommandé)

 La tension de sortie est haute / basse (3,3 V TTL)

 Peut faire la distinction entre le mouvement d'objet et le mouvement humain

 Possède des modes de fonctionnement répétable (H) et non répétable (H)

 Distance de couverture d'environ 120 ° et 7 mètres

 Faible consommation d'énergie de 65mA

 Température de fonctionnement de -20 ° à + 80 ° Celsius

 Remarque :

Dans notre système le capteur PIR joue le rôle d’un capteur de niveau qui détecte le niveau de déchets
dans la poubelle.
Figure 18 : Branchement de capteur HC-SRS01 avec ARDUINO

10. Schéma de câblage global du projet

Figure 19 : Schéma de câblage globale du projet


10.Schéma de global du projet :

Figure 20:Schéma global de projet

II. Étude de la parties logicielle


Cette partie est dédiée à la présentation des plateformes informatiques utilisées dans le
développement du système.

1. Plateforme de programmation Arduino :


 Présentation

L’interface de l’IDE Arduino est plutôt simple, elle offre une interface minimale et épurée pour
développer un programme sur les cartes Arduino. Elle est dotée d’un éditeur de code avec coloration
syntaxique et d’une barre d’outils rapide. Ce sont les deux éléments les plus importants de l’interface,
c’est ceux que l’on utilise le plus souvent. On retrouve aussi une barre de menus, plus classique qui est
utilisé pour accéder aux fonctions avancées de l’IDE. Enfin, une console affichant les résultats de la
compilation du code source, des opérations sur la carte, etc.

Le langage Arduino est inspiré de plusieurs langages. On retrouve notamment des similarités avec le C,
le C++, le Java et le Processing. Le langage impose une structure particulière typique de l’informatique
embarquée.
 La fonction «setup» contiendra toutes les opérations nécessaires à la configuration de la carte
(directions des entrees sorties, débits série, etc.).

 La fonction «loop» elle, est exécutée en boucle après l’exécution de la fonction setup. Elle
continuera de boucler tant que la carte n’est pas mise hors tension, redémarrée (par le bouton
reset). Cette boucle est absolument nécessaire sur les microcontrôleurs étant donné qu’ils n’ont
pas de système d’exploitation. effet, si l’on omettait cette boucle, à la fin du code produit, il
serait impossible de reprendre la main sur la carte Arduino qui exécuterait alors du code
aléatoire.

Figur
e 21: Interface de la plateforme Arduino

Figure 22: Barre de boutons Arduino

Le logiciel comprend aussi un moniteur série (équivalent à HyperTerminal) qui permet d'afficher
des messages textes émis par la carte Arduino et d'envoyer des caractères vers la carte Arduino (en
phase de fonctionnement) :
Figure 23:HyperTerminal de l’Arduino (Moniteur Série)

2.Proteus ISIS

Les premiers tests de simulation du système sont faits sur Proteus ISIS, les fameux logiciels de
simulations des montages électroniques. En plus de sa capacité de simuler des montages à base de
microcontrôleur, il permet davantage de donner une idée sur la réalisation matérielle et la conception
des circuits imprimés.

Figure 24 : Logiciel de simulation ISIS

Vous aimerez peut-être aussi