Vous êtes sur la page 1sur 11

Sujet : Rabot nettoyeur (cleaning robot)

0. Cahier des charges


Un robot nettoyeur, comme son nom l’indique, aide à nettoyer
l’environnement dans lequel il est placé. Il est doté d’un mécanisme de
mobilité et d’aspiration de tous les déchets et/ou poussières qu’il croise sur
son passage. Sa structure physique est une coque métallique ou en plastique
selon -les préférences du propriétaire – capable de s’auto-mouvoir dans
l’environnement à assainir suivant un algorithme d’exploration.

Techniquement, le système va consister en l’assemblage d’une structure qui


s’appuie sur des roues électromagnétiques (des moteurs) pour son
déplacement. Au centre de la structure doit être placé un aspirateur appelé à
tourner tout au long de la marche du robot. Pour en assurer l’autonomie, le
robot doit être muni d’une pile chargeable capable d’alimenter tous les
dispositifs électroniques composant le robot, dont l’aspirateur. Le robot doit
être apte à éviter les obstacles, défaut de quoi il risquera de mourir le jour
même de sa mise en œuvre.

Eléments techniques :

• Prévoir 4 (ou 2) moteurs à engrenages ;


• Prévoir 4 (ou 2) pneus s’accommodant aux moteurs ;
• Prévoir un moteur à 6Vm ;
• Prévoir un servomoteur ;
• Prévoir un shield motor ;
• Prévoir un capteur Ultrasonic pour la détection des obstacles ;
• Une alimentation CA à CC de 12V ;
• Une batterie Lithium-ion ;
• Un microcontrôleur UNO ;
• Des boutons poussoirs pour actionner manuellement le démarrage du
robot ;
• Des fils électriques ;
• Etc.
1. Grafcet du projet
1.1 Introduction au langage Grafcet

La création d'une machine automatisée nécessite un dialogue entre le client


qui définit le cahier des charges (qui contient les besoins et les conditions de
fonctionnement de la machine) et le constructeur qui propose des solutions.

Ce dialogue n'est pas toujours facile : le client ne possède peut-être pas la


technique lui permettant de définir correctement son problème.
D'autre part, le langage courant ne permet pas de lever toutes les ambiguïtés
dues au fonctionnement de la machine (surtout si des actions doivent se
dérouler simultanément).

C'est pourquoi l'ADEPA (Agence pour le Développement de la Productique


Appliquée à l'industrie) a créé le GRAFCET

Le langage de spécification Grafcet permet d’élaborer un grafcet qui exprime


le comportement attendu de la partie séquentielle d’un système déterminé.

Il se caractérise par ses éléments graphiques qui sont tel qu’associés à une
expression alphanumérique des variables offre une représentation
synthétique du comportement reposant sur une description indirecte de la
situation du système.

Grafcet : (graphe fonctionnel de commande des étapes et transitions)


Est l’outil de représentation graphique d’un cahier des charges.
Le grafcet est une représentation alternée d’étapes et de transitions. Une
seule transition doit séparer deux étapes.

La description sous forme d’état et la suivante :

Les états : « monomarqués » correspondent aux situations du grafcet, ce qui


implique l’unicité de la situation à un instant donné
Les états sont reliés des uns aux autres par des arcs à sortie d’une condition
d’évolution.

Ce qui permet de décrire le passage d’une situation à une autre


Dans le grafcet plusieurs étapes peuvent être actives simultanément, la
situation étant alors caractériser par l’ensemble des étapes actives à l’instant
considéré.
Les conditions d’évolution d’un ensemble d’états vers un autre, sont alors
portées par une ou plusieurs transitions caractérisées chacune par :
• Ses étapes amont,
• Ses étapes aval,
• Sa réceptivité associée

Présentation sommaire : la représentation graphique du grafcet ; distingue :

• La structure : qui permet de décrire les évolutions possibles entre les


situations
• L’interprétation : qui fait la relation entre les variables d’entre, la
structure et les variables de sorties.

Construction de la structure :
• Etape : (inactive ou active) l’ensemble des étapes actives d’un grafcet
représente la situation de ce grafcet a cet instant.
• Transition : entre 2 ou plusieurs étapes indique en possibilité
l’évolution d’activités.
• Liaison orientée : relier les étapes à une transition et vice-versa

Cette représentation indique que l’étape est initialement activée (à la mise


sous tension de la partie commande)
La situation initiale, choisie par le concepteur, est la situation à l’instant initial.
1.2. Présentation du grafcet de notre projet :

1 3
d

c b e

2 4

Etape 0 : initialisation
• Le robot démarre et effectue des tests de diagnostic pour s’assurer que
tous les systèmes sont opérationnels.
• Si les tests sont réussis, le robot passe à l’étape 1. Sinon, il affiche un
message d’erreur et s’arrête.
Etape 1 : déplacement
• Le robot se déplace dans la pièce en suivant un algorithme de déplacement
préprogrammé
• Le robot utilise des capteurs pour détecter les obstacles sur son chemin et
éviter les collisions.
• Si un obstacle est détecté, le robot passe à l’étape 2
Etape 2 : évitement d’obstacles
• Le robot arrête son déplacement et évalue la situation pour déterminer la
meilleure façon d’éviter l’obstacle.
• Si l’obstacle est un mur, le robot tourne à gauche ou à droite pour
contourner le mur, si c’est un objet, le robot recule légèrement puis tourne
pour éviter l’objet.
• Une fois l’obstacle évité, le robot retourne à l’étape 1
Etape 3 : aspiration des déchets
• Le robot utilise son aspirateur pour aspirer les déchets et les poussières
sur le sol.
• Si le niveau de batterie est faible, le robot passe à l’étape 4. Si non, il
retourne à l’étape 1
Etape 4 : recharge
• Le robot se déplace vers sa base de recharge pour recharger sa batterie.
• Une fois la batterie chargée, le robot retourne à l’étape 1

Les transitions :
• a : lorsque les tests de diagnostic sont réussis.
• b : lorsque le robot détecte un obstacle
• c : lorsque l’obstacle est évité
• d : lorsque le robot rencontre une zone de nettoyage
• e : lorsque le niveau de batterie est faible
• f : lorsque la batterie est chargée
Nota : ce grafcet est une représentation simplifiée et peut être adapté en fonction
des spécifications exactes du système de robot nettoyeur, tout comme à la
réalisation du projet on peut ajouter et/ou retrancher quelques fonctionnalités.
2. Le schéma électronique du projet
2.1 Bloc circuit d’alimentation (recharge de la batterie)

Est le circuit électronique de recharge de la batterie est nécessaire pour


charger la batterie du robot nettoyeur.
Cette batterie rechargeable est nécessaire pour alimenter tous les
dispositifs électroniques du robot nettoyeur, y compris les moteurs pour
les roues et l’aspirateur.

2.2 Bloc circuit de commande de moteur

Est le circuit électronique de commande des moteurs est nécessaire pour


permettre la rotation des moteurs dans le sens souhaité.
Ainsi le moteur électrique pour les roues est utile pour permettre le
déplacement du robot nettoyeur.
2.3 Bloc circuit de microcontrôleur

Est le circuit utile pour contrôler les différents composants électroniques


du robot nettoyeur et exécuter l’algorithme de déplacement
préprogrammé.

Nota : le schéma électronique détaillé pour le système de robot nettoyeur


dépendrait des spécifications exactes des composants électroniques
choisis et de leur interconnexion.
Ainsi à la réalisation de ce projet plusieurs circuits sont déjà incorporés
dans les différentes pièces électroniques.
3. Simulation du projet depuis proteus

Nota : la simulation avec Proteus permet de vérifier la conception et les


performances du projet de robot nettoyeur et de détecter d’éventuels
problèmes ou erreurs de conception.
Les résultats de la simulation peuvent aider à améliorer la conception du
robot et à s’assurer qu’il est capable de nettoyer efficacement l’environnement
sans rencontrer de problèmes.
4. Simulation de la communication avec le serveur (en générant quelques
chiffres d’essai)

Pour y arriver il faut lancer la simulation de notre circuit et observez les


données générées par le microcontrôleur qui sont envoyées au serveur
distant via le module de communication.

Ainsi on peut utiliser un outil de capture de paquets réseau pour vérifier


que les données sont correctement envoyées au serveur.
5. Codes Arduino

#include <LiquidCrystal.h>
const int motorPin1=4;
const int motorPin2=5;
const int motorPin3=6;
const int motorPin4=7;
#define trigPin 8
#define echoPin 9

// BS E D4 D5 D6 D7
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

int pos = 0; // variable to store the servo position

void setup() {
pinMode(motorPin1,OUTPUT);
pinMode(motorPin2,OUTPUT);
pinMode(motorPin3,OUTPUT);
pinMode(motorPin4,OUTPUT);
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

lcd.begin(20, 4);

lcd.setCursor(0, 1);
delay(400);
lcd.clear();
delay(1000);
}

void loop() {
digitalWrite(motorPin1,HIGH);
digitalWrite(motorPin2,HIGH);
digitalWrite(motorPin3,HIGH);
digitalWrite(motorPin4,HIGH);
long duration, distance;
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance ==558) { // This is where the LED On/Off happens

digitalWrite(motorPin1,LOW);
digitalWrite(motorPin2,LOW);
digitalWrite(motorPin3,HIGH);
digitalWrite(motorPin4,HIGH);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("OBSTACLE");
Serial.println(" OBSTACLE");

delay(400);
lcd.clear();

delay(200);
}

lcd.setCursor(1, 0);
lcd.print("Distance= ");

lcd.print(distance);
lcd.print("cm");

Serial.print(distance);
Serial.println(" cm");

delay(500);
}

Vous aimerez peut-être aussi