Documentation Électronique

Système de Convoyeur Intelligent

Introduction

Ce document présente l'implémentation électronique du système de convoyeur intelligent pour le tri des déchets. Le système utilise une architecture modulaire avec des blocs fonctionnels distincts pour l'alimentation, la détection, le traitement et l'actionnement.

Composants Principaux

  • Arduino Nano (ATmega328P) - Cœur du système
  • ESP8266MOD-12 - Communication WiFi
  • Régulateurs 7805 et 7812 - Gestion de l'alimentation
  • Photorésistance + KY-008 - Détection des objets
  • Moteur pas à pas 12V + L298N - Mouvement du convoyeur
  • Servomoteur - Mécanisme de tri
Vue d'ensemble du système électronique montrant les différents composants interconnectés

Fig. 1 - Vue d'ensemble du système électronique

Architecture du Système

Diagramme Fonctionnel
Alimentation Détection Traitement Actionneurs Communication Interface Web

Description Fonctionnelle

Alimentation

Conversion de la tension batterie en 12V pour les moteurs et 5V pour les circuits logiques avec régulation précise

Détection d'Objets

Barrière laser KY-008 avec photorésistance pour une détection précise à ±1mm

Traitement Temps Réel

Arduino Nano avec algorithme optimisé pour une latence < 5ms

Flux de Données

sequenceDiagram autonumber participant Capteur participant Arduino participant Actionneurs participant WiFi participant Dashboard Capteur->>Arduino: Signal analogique (0-5V) Arduino->>Arduino: Conversion ADC → Traitement alt Détection positive Arduino->>Actionneurs: Commande PWM Arduino->>WiFi: JSON {type, timestamp} else Pas de détection Arduino->>Actionneurs: Position neutre end WiFi->>Dashboard: Mise à jour en temps réel Dashboard-->>WiFi: Commandes utilisateur
Latence moyenne : 8ms (capteur→actionneur)
Fréquence d'échantillonnage
200Hz
Précision détection
±1mm
Latence traitement
<5ms
Débit WiFi
54Mbps

Composants Électroniques

Arduino Nano Arduino Nano

Fonction : Cœur du système - Contrôle tous les autres composants

Description détaillée :

L'Arduino Nano est une carte microcontrôleur compacte basée sur l'ATmega328P. Elle agit comme le cerveau du système, exécutant le programme principal qui coordonne toutes les fonctions :

  • Programmation : Se programme via l'IDE Arduino avec un câble USB mini-B
  • Connectivité : 22 broches d'E/S dont 14 numériques (dont 6 PWM) et 8 analogiques
  • Mémoire : 32Ko de flash (programme), 2Ko de SRAM (données), 1Ko EEPROM
  • Communication : UART, I2C et SPI pour dialoguer avec d'autres composants
  • Alimentation : 7-12V via la broche VIN ou 5V via USB

Conseils pratiques : Pour une utilisation optimale, téléchargez les drivers CH340 si nécessaire et vérifiez bien le port COM dans l'IDE Arduino avant le téléversement.

ESP8266 Module ESP8266 (ESP-12F)

Fonction : Communication WiFi avec l'interface web

Description détaillée :

Ce module WiFi économique intègre un microcontrôleur Tensilica 32-bit avec pile TCP/IP complète :

  • Protocoles : 802.11 b/g/n WiFi à 2.4GHz avec support WPA/WPA2
  • Portée : Jusqu'à 100m en champ libre (dépend de l'antenne et des obstacles)
  • Consommation : 80mA en transmission, <1mA en veille
  • Interface : UART à 115200 bauds par défaut (réglable jusqu'à 4Mbps)
  • Programmation : Compatible AT-command ou programmable via Arduino IDE

Conseils pratiques : Utilisez un diviseur de tension 3.3V/5V pour la communication avec l'Arduino. Pensez à reset le module si la connexion WiFi est instable.

Régulateur 7812 Régulateur LM7812

Fonction : Régulation tension 12V pour moteurs

Description détaillée :

Régulateur linéaire de tension fixe 12V dans un boîtier TO-220 :

  • Entrée : Accepte 14-35V DC (minimum 14.5V pour bon fonctionnement)
  • Sortie : 12V ±0.2V avec courant max 1A (1.5A avec dissipateur thermique)
  • Protections : Limitation de courant et coupure thermique intégrées
  • Ripple : 70dB de réjection des perturbations d'entrée
  • Dissipation : Nécessite un dissipateur thermique pour courants >500mA

Conseils pratiques : Placer un condensateur 0.33µF en entrée et 0.1µF en sortie pour la stabilité. La différence Vin-Vout doit être d'au moins 2.5V.

Régulateur 7805 Régulateur LM7805

Fonction : Régulation tension 5V pour logique

Description détaillée :

Régulateur linéaire classique pour alimentation des circuits logiques :

  • Entrée : 7-25V DC (minimum 7.5V recommandé)
  • Sortie : 5V ±0.25V avec courant max 1A
  • Stabilité : Variation de ±1% pour charges de 5mA à 1A
  • Température : Fonctionne de 0°C à 125°C
  • Efficacité : Environ 40% (60% de l'énergie dissipée en chaleur)

Conseils pratiques : Pour réduire la dissipation thermique, préférer une tension d'entrée entre 7.5V et 12V. Un condensateur 10µF en sortie améliore la réponse transitoire.

Photorésistance Photorésistance GL5528

Fonction : Détection de la lumière laser

Description détaillée :

Composant dont la résistance varie avec l'intensité lumineuse :

  • Plage spectrale : Maximum sensibilité à 540nm (vert)
  • Résistance : 10-20kΩ sous lumière ambiante (500 lux), 1-2MΩ dans l'obscurité
  • Temps réponse : 20ms pour monter, 30ms pour descendre
  • Température : Coefficient de température de ±0.5%/°C
  • Puissance max : 100mW à 25°C

Montage pratique : Utiliser en pont diviseur de tension avec une résistance fixe de 10kΩ. Placer un condensateur en parallèle pour filtrer les variations rapides.

Module Laser KY-008 Module Laser KY-008

Fonction : Émetteur laser pour détection d'objets

Description détaillée :

Module laser rouge avec diode de classe 2 :

  • Longueur d'onde : 650nm (rouge visible)
  • Puissance : <5mW (sans danger pour les yeux)
  • Portée : Jusqu'à 50cm en utilisation standard
  • Alimentation : 5V DC, consomme ~30mA
  • Angle : Faisceau de 1-2° de divergence

Sécurité : Ne jamais diriger vers les yeux. Pour une meilleure détection, utiliser une lentille pour focaliser le faisceau sur la photorésistance.

 Moteur pas à pas Moteur Pas à Pas 28BYJ-48

Fonction : Mouvement précis du convoyeur

Description détaillée :

Moteur unipolaire 5V avec réducteur intégré :

  • Angle pas : 5.62° par pas (64 pas/tour moteur, 2048 pas/tour arbre)
  • Couple : 34.3mN.m (3.5kg.cm) à vitesse nominale
  • Résistance : 50Ω par bobine, courant 100mA par phase
  • Réducteur : Rapport 1:64 (64 tours moteur = 1 tour arbre)
  • Précision : ±5% non cumulatif

Contrôle : Nécessite un driver ULN2003 ou similaire. Pour un mouvement fluide, utiliser un délai de 2-5ms entre pas en mode wave drive ou half-step.

Driver L298N Driver Moteur L298N

Fonction : Contrôle des moteurs pas à pas et DC

Description détaillée :

Double pont en H pour contrôle bidirectionnel de moteurs :

  • Tension : Alimentation moteur 5-35V, logique 5V
  • Courant : 2A par pont (max 3A peak)
  • Puissance : Jusqu'à 25W par canal
  • Contrôle : Signaux TTL/CMOS compatibles
  • Protections : Diodes de roue libre intégrées

Branchement : Activer les jumpers d'alimentation 5V si utilisation de la régulation intégrée. Pour les moteurs pas à pas, utiliser les sorties OUT1-OUT4 avec les broches IN1-IN4 et EN A.

Servomoteur Servomoteur SG90

Fonction : Mécanisme de tri des objets

Description détaillée :

Servomoteur standard à rotation limitée :

  • Plage : 180° de rotation (90° à gauche et droite)
  • Couple : 1.8kg.cm à 4.8V, 2.2kg.cm à 6V
  • Vitesse : 0.1s/60° à 4.8V, 0.08s/60° à 6V
  • Signal : PWM 50Hz (20ms), pulse 1-2ms pour 0-180°
  • Consommation : 100mA en mouvement, 10mA au repos

Contrôle : Utiliser la bibliothèque Servo.h avec une résolution théorique de ~1°. Éviter de bloquer mécaniquement le servo sous tension pour ne pas endommager le moteur.

Batterie Li-ion Batterie Li-ion 4S

Fonction : Alimentation mobile du système

Description détaillée :

Pack batterie lithium-ion 14.8V :

  • Configuration : 4 cellules 18650 en série (4S)
  • Capacité : 2000mAh (29.6Wh)
  • Tension : 16.8V pleine charge, 12V décharge complète
  • Courant : Décharge continue 2C (4A), max 5A
  • Protection : PCB intégré contre surcharge/décharge profonde

Sécurité : Utiliser uniquement un chargeur 4S Li-ion équilibré. Ne jamais décharger en dessous de 3V/cellule. Stocker à 50% de charge pour une longue durée de vie.

Condensateur Condensateur 475µF 25V

Fonction : Filtrage de l'alimentation

Description détaillée :

Condensateur électrolytique aluminium radial :

  • Capacité : 475µF ±20%
  • Tension : 25V DC (max 30V surge)
  • ESR : ~0.5Ω à 20°C, 100kHz
  • Température : -40°C à +105°C
  • Durée vie : 2000h à 105°C

Montage : Respecter la polarité (bande "-" sur le boîtier). Pour les hautes fréquences, placer un condensateur céramique 100nF en parallèle.

Résistances Résistances 1kΩ/10kΩ

Fonction : Limitation de courant et ponts diviseurs

Description détaillée :

Résistances carbone/métal film 1/4W :

  • Tolérance : ±5% (doré dans le code couleur)
  • Température : Coefficient ±250ppm/°C
  • Puissance : 0.25W (max 0.4W en pic)
  • Tension max : 250V (limité par la puissance)
  • Applications : Pull-up/down, limitation LED, diviseurs tension

Calcul : Pour une LED standard (20mA, 2V) avec alimentation 5V : R = (5V-2V)/0.02A = 150Ω. Toujours vérifier la dissipation : P = V²/R.

Connecteurs Connecteurs et Câblage

Fonction : Interconnexion entre les différents modules du système

Description détaillée :

Ensemble de connecteurs standardisés pour assurer des liaisons fiables :

1. Connecteurs Dupont 2.54mm

  • Type : Mâle/femelle, droit/angulaire
  • Pas : 2.54mm (standard breadboard)
  • Section fil : 20-24 AWG (0.2-0.5mm²)
  • Courant max : 3A par contact (1A continu recommandé)
  • Applications : Liaisons entre cartes, connexion capteurs

2. Borniers à vis

  • Type : Bornier 2-12 positions, pas 5mm
  • Section fil : Jusqu'à 2.5mm² (14 AWG)
  • Courant max : 10A par borne
  • Couplage : Pince à vis auto-serrante
  • Applications : Alimentation moteurs, connexions puissance

3. Connecteurs JST

  • Série : PH (2.0mm), XH (2.5mm), SM (3.0mm)
  • Verrouillage : Clip de sécurité intégré
  • Courant : 2-3A selon modèle
  • Applications : Connexions semi-permanentes, batteries

Bonnes Pratiques de Câblage

  • Code couleur : Rouge (+VCC), Noir (GND), autres couleurs pour signaux
  • Longueur : Garder les câbles les plus courts possibles pour réduire les interférences
  • Nappes : Grouper les câbles similaires (alim, signaux, données)
  • Sertissage : Utiliser des pinces à sertir pour des connexions professionnelles
  • Marquage : Étiqueter les câbles aux deux extrémités

Sécurité Électrique

  • Vérifier l'isolation des câbles haute tension (>12V)
  • Ne pas surcharger les connecteurs (respecter les courants max)
  • Protéger les connexions exposées avec gaine thermo ou silicone
  • Pour les hautes tensions, utiliser des connecteurs avec verrouillage

Liste Complète des Composants

Composant Référence Quantité Fonction Principale Caractéristiques Clés
Arduino Nano ATmega328P 1 Contrôleur principal 16MHz, 32KB Flash, 14 E/S, 8 analogiques
Module WiFi ESP8266MOD-12 1 Communication sans fil 802.11 b/g/n, UART, 80mA TX
Régulateur 12V LM7812 1 Alimentation moteurs 1A max, TO-220, 14-35V in
Régulateur 5V LM7805 1 Alimentation logique 1A max, TO-220, 7-25V in
Photorésistance GL5528 1 Détection lumière 10kΩ (light), 1MΩ (dark)
Module Laser KY-008 1 Détection objet 650nm, 5mW, 50cm portée
Moteur pas à pas 28BYJ-48 1 Mouvement convoyeur 12V, 2048 pas/tour, 3.5kg.cm
Driver Moteur L298N 1 Contrôle moteur 2A/phase, 46V max, double pont H
Servomoteur SG90 1 Mécanisme de tri 180°, 4.8-6V, 0.1s/60°
Batterie Li-ion 4S 1 Alimentation mobile 14.8V, 2000mAh, 4A max
Condensateur 475µF 25V 2 Filtrage alim Électrolytique, 105°C, 2000h
Résistances 1kΩ, 10kΩ 5 Circuits divers 1/4W, 5%, carbone/métal
Connecteurs Dupont 2.54mm 10 Interconnexions Mâle/femelle, 20-24AWG

Alimentation

Circuit d'Alimentation Principal

Circuit d'alimentation

Fig. 3 - Schéma du circuit d'alimentation

Ce circuit fournit les tensions nécessaires à tous les composants :

  • Batterieau Lithium 4S 14,8V : Source d'énergie principale
  • Régulateur 7812 : Stabilise la tension à 12V pour le moteur pas à pas et pour l'alimentation de la carte Arduino NANO par la broche VIN.
  • Régulateur 7805 : Fournit du 5V pour les capteurs et les servomoteurs.
  • Protections :
    • Diode anti-retour
    • Condensateurs de stabilisation (475µF + 100nF)

Conseils d'Implémentation

  • Utiliser des dissipateurs thermiques pour les régulateurs
  • Placer les condensateurs au plus près des régulateurs
  • Prévoir des pistes larges pour les lignes 12V

Bloc d'Entrée

Schéma Fonctionnel Complet

Schéma bloc d'entrée

Fig. 4 - Architecture complète du bloc d'entrée

Fonctionnalités

  • Détection optique par barrière laser
  • Conditionnement du signal analogique
  • Seuillage numérique pour déclenchement

Spécifications

  • Portée : 15-50 cm
  • Temps de réponse : < 10ms
  • Consommation : 25mA

Bloc de Traitement

Architecture Centrale

Schéma bloc de traitement

Fig. 5 - Schéma fonctionnel du traitement

Flux de Données

  1. Acquisition des capteurs
  2. Traitement des signaux
  3. Décision de tri
  4. Génération des commandes

Configuration

  • Horloge : 16MHz
  • Mémoire : 32KB Flash
  • Entrées/Sorties : 22 numériques

Bloc de Sortie

Schéma des Actionneurs

Schéma bloc de sortie

Fig. 6 - Architecture des systèmes d'actionnement

Signalisation visuelle

  • LED Rouge pour les cubes de couleur rouge
  • LED Vert pour les cubes de couleur verte
  • LED Jaune pour les cubes de couleur jaune
  • LED Bleue pour les cubes de couleur bleue
  • LED Blanche pour l'état du système
  • Buzzer pour signaler un mauvais tri ou les couleurs inconnues

Contrôle Moteur

  • Driver L298N
  • Alimentation 12V isolée
  • Protections contre les surtensions

Mécanisme de Tri

  • Servomoteur 180°
  • Contrôle PWM
  • Positions prédéfinies

Schéma Électronique Complet

Circuit Principal

Schéma électronique complet

Fig. 7 - Schéma complet du système (cliquer pour agrandir)

PCB Final

Typon du PCB

Fig. 8 - Typon du PCB

Vue dessus du PCB

Fig. 9 - Vue de la couche supérieure

Vue dessous du PCB

Fig. 10 - Vue de la couche inférieure

Caractéristiques du PCB

  • Dimensions : 138mm x 85mm
  • Couches : 1 couche cuivrée (B.Cu)
  • Spécifications :
    • Pistes puissance : 0.8mm
    • Pistes signal : 0.6mm
  • Note : Prototype réalisé sur veroboard en attendant fabrication PCB

Prototype Physique

Vue d'ensemble du prototype

Fig. 11 - Vue d'ensemble du prototype

Soudure

Fig. 11 - Soudure sur veroboard

Détail des connexions

Fig. 12 - Détail des interconnexions

Téléchargements

Fichiers Complets

Téléchargez l'ensemble des fichiers sources pour modification ou fabrication :

Instructions

  • KiCad : Version 6.0 ou supérieure requise pour ouvrir les fichiers
  • Gerber : Compatible avec la plupart des fabricants de PCB

Implémentation Logicielle

Configuration, Setup et Loop

// === Définition des broches ===
#define START_PHOTO_PIN A1
#define STOP_PHOTO_PIN A2
#define BUTTON_PIN 12
#define LED_PIN 7
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11

#include <Wire.h>
#include <Adafruit_TCS34725.h>

Adafruit_TCS34725 tcs = Adafruit_TCS34725();
const int bleu = 3;
const int rouge = 4;
const int jaune = 5;
const int vert = 6;

const int threshold = 450;
const int stepDelay = 5;
const unsigned long longPressTime = 2000;

bool systemActive = false;
unsigned long buttonPressTime = 0;

void setup() {
  pinMode(IN1, OUTPUT); 
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); 
  pinMode(IN4, OUTPUT);
  pinMode(BUTTON_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);

  stopMotor();
  digitalWrite(LED_PIN, LOW);

  Serial.begin(9600);
  Serial.println("Système prêt. En attente...");

  if (tcs.begin()) {
    Serial.println("Capteur TCS34725 détecté !");
    tcs.setInterrupt(false);
  } else {
    Serial.println("Erreur capteur TCS34725");
    while (1);
  }

  pinMode(bleu, OUTPUT);
  pinMode(rouge, OUTPUT);
  pinMode(jaune, OUTPUT);
  pinMode(vert, OUTPUT);

  digitalWrite(rouge, LOW);
  digitalWrite(bleu, LOW);
  digitalWrite(jaune, LOW);
  digitalWrite(vert, LOW);
}

void loop() {
  Serial.print("Start capteur: ");
  Serial.print(analogRead(START_PHOTO_PIN));
  Serial.print(" | Stop capteur: ");
  Serial.println(analogRead(STOP_PHOTO_PIN));

  handleButton();

  if (!systemActive && detectStartSensor()) {
    activateSystem("Détection START → Activation");
  }

  if (systemActive && detectStopSensor()) {
    deactivateSystem("Détection STOP → Arrêt");
  }

  if (systemActive) {
    stepMotor();
    delay(stepDelay);

    String couleur = detectColorTCS34725();
    Serial.print("Couleur détectée : ");
    Serial.println(couleur);
  }
}

Fig. 1 - Configuration et logique principale du système TRC 2025

Broches et composants

  • Capteurs analogiques : A1 (début), A2 (fin)
  • Moteur pas à pas : IN1 à IN4
  • LEDs de tri : broches 3 à 6
  • Bouton multifonction : broche 12 (pull-down)
  • Capteur TCS34725 pour détection couleur

Communication Série avec ESP8266 pour Interface Web

L'Arduino Nano transmet les données de tri à l'ESP8266 NodeMCU via une liaison série. Ces données sont ensuite affichées sur le dashboard web, incluant les compteurs de couleurs, la position de tri, et l'heure du dernier déchet traité.

Connexion matérielle

  • TX Arduino Nano → RX ESP8266 (via diviseur de tension)
  • RX Arduino Nano ← TX ESP8266
  • Baudrate : 9600

Fonction Arduino pour l'envoi des données

// Compteurs globaux
int compteurRouge = 0, compteurVert = 0, compteurJaune = 0, compteurBleu = 0;

void envoyerDonneesWeb(String couleur, int position) {
  if (couleur == "Rouge") compteurRouge++;
  else if (couleur == "Vert") compteurVert++;
  else if (couleur == "Jaune") compteurJaune++;
  else if (couleur == "Bleu") compteurBleu++;

  Serial.print("{\"couleur\":\"");
  Serial.print(couleur);
  Serial.print("\",\"position\":");
  Serial.print(position);
  Serial.print(",\"compteurs\":{\"Rouge\":");
  Serial.print(compteurRouge);
  Serial.print(",\"Vert\":");
  Serial.print(compteurVert);
  Serial.print(",\"Jaune\":");
  Serial.print(compteurJaune);
  Serial.print(",\"Bleu\":");
  Serial.print(compteurBleu);
  Serial.println("}}");
}

Traitement côté ESP8266

L'ESP8266 lit les données via Serial.readStringUntil('\\n'), les parse et met à jour dynamiquement le dashboard web. Chaque couleur est comptabilisée et affichée en temps réel.

Voir les fonctions détaillées

Les fonctions comme detectColorTCS34725() sont documentées dans la section informatique

Télécharger le croquis complet (.rar)

Compatibilité : Arduino IDE 2.x ou supérieur

Tests et Validation

Plan de Test

  1. Test Alimentation : Mesurer les tensions 12V, 5V et 3.3V sous charge
  2. Test Détection : Vérifier la détection d'objets à différentes distances
  3. Test Couleur : Valider l'identification des 4 couleurs
  4. Test Moteur : Vérifier le mouvement précis du convoyeur
  5. Test Tri : Valider le mécanisme de tri pour chaque couleur
  6. Test WiFi : Vérifier l'envoi des données à l'interface web

Démonstration

Vidéo : Fonctionnement du système complet

Note importante

Lors de la simulation, la pile s'est déchargée, ce qui explique pourquoi vous voyez une main actionner manuellement le convoyeur.

  • LED blanche : Indique la mise en marche du convoyeur (démarrage du moteur).
  • Autres LED : Indiquent la couleur des cubes détectés.

Conclusion

Bilan Technique

La solution électronique répond aux exigences du projet :

  • Détection fiable des objets et des couleurs
  • Contrôle précis des actionneurs
  • Communication stable avec l'interface web
  • Autonomie suffisante (>3 heures)

Points Forts

  • Architecture modulaire bien séparée
  • Protections électriques complètes
  • Documentation détaillée
  • Code optimisé et commenté

Perspectives

Améliorations Possibles

  • Ajout d'une batterie de secours
  • Intégration de capteurs supplémentaires
  • Optimisation de la consommation
  • Version sans fil complète

Évolutions Futures

  • Intégration IoT avancée
  • Analyse en temps réel
  • Interface utilisateur améliorée