Table des matières:

Suiveur de ligne PID Atmega328P : 4 étapes
Suiveur de ligne PID Atmega328P : 4 étapes

Vidéo: Suiveur de ligne PID Atmega328P : 4 étapes

Vidéo: Suiveur de ligne PID Atmega328P : 4 étapes
Vidéo: Arduino Uno | Arduino Line Follower Robot with 8 Line Sensors using Multiplexer and PID Controller 2024, Juillet
Anonim
Image
Image

INTRODUCTION

Cette instructable consiste à créer un suiveur de ligne efficace et fiable avec contrôle PID (proportionnel-intégral-dérivé) (mathématique) s'exécutant à l'intérieur de son cerveau (Atmega328P).

Le suiveur de ligne est un robot autonome qui suit soit une ligne noire dans une zone blanche, soit une ligne blanche dans une zone noire. Le robot doit être capable de détecter une ligne particulière et de continuer à la suivre.

Il y aura donc peu de pièces/étapes pour faire un SUIVI DE LIGNE, je les discuterai toutes étape par étape.

  1. Capteur (Eil pour voir la ligne)
  2. Microcontrôleur (cerveau pour faire quelques calculs)
  3. Moteurs (puissance musculaire)
  4. Pilote de moteur
  5. Châssis
  6. Batterie (source d'énergie)
  7. Roue
  8. Divers

Voici la VIDEO DU SUIVI DE LIGNE

DANS LES PROCHAINES ÉTAPES, JE DISCUTERAI EN DÉTAILS DE CHAQUE COMPOSANTE

Étape 1: Capteur (œil) QTR 8RC

Capteur (œil) QTR 8RC
Capteur (œil) QTR 8RC
Capteur (œil) QTR 8RC
Capteur (œil) QTR 8RC
Capteur (œil) QTR 8RC
Capteur (œil) QTR 8RC

Merci à Pololu pour la fabrication de ce capteur génial.

Le module est un support pratique pour huit paires d'émetteurs et de récepteurs IR (phototransistor) régulièrement espacées à des intervalles de 0,375 (9,525 mm). Pour utiliser un capteur, vous devez d'abord charger le nœud de sortie (Charge du condensateur) en appliquant une tension à sa broche OUT. Vous pouvez ensuite lire la réflectance en retirant la tension fournie de l'extérieur et en chronométrant le temps qu'il faut à la tension de sortie pour décroître en raison du phototransistor intégré. Un temps de décroissance plus court est une indication d'une plus grande réflexion. Cette approche de mesure présente plusieurs avantages, surtout lorsqu'il est couplé avec la capacité du module QTR-8RC à éteindre l'alimentation LED:

  • Aucun convertisseur analogique-numérique (ADC) n'est requis.
  • Sensibilité améliorée par rapport à la sortie analogique du diviseur de tension.
  • La lecture parallèle de plusieurs capteurs est possible avec la plupart des microcontrôleurs.
  • La lecture parallèle permet une utilisation optimisée de l'option d'activation de l'alimentation LED

Caractéristiques

  • Dimensions: 2,95" x 0,5" x 0,125" (sans broches d'en-tête installées)
  • Tension de fonctionnement: 3,3-5,0 V
  • Courant d'alimentation: 100 mA
  • Format de sortie: 8 signaux numériques compatibles E/S pouvant être lus comme une impulsion haute temporisée
  • Distance de détection optimale: 0,125" (3 mm)Distance de détection maximale recommandée: 0,375" (9,5 mm)
  • Poids sans broches d'en-tête: 0,11 oz (3,09 g)

Interfaçage des sorties QTR-8RC aux lignes d'E/S numériques

Le module QTR-8RC dispose de huit sorties de capteur identiques qui, comme le Parallax QTI, nécessitent une ligne d'E/S numérique capable de conduire la ligne de sortie vers le haut, puis de mesurer le temps nécessaire à la chute de la tension de sortie. La séquence typique de lecture d'un capteur est:

  1. Allumez les LED IR (facultatif).
  2. Réglez la ligne d'E/S sur une sortie et mettez-la au niveau haut.
  3. Attendre au moins 10 s pour que la sortie du capteur augmente.
  4. Faites de la ligne d'E/S une entrée (haute impédance).
  5. Mesurez le temps de chute de la tension en attendant que la ligne d'E/S baisse.
  6. Éteignez les LED IR (facultatif).

Ces étapes peuvent généralement être exécutées en parallèle sur plusieurs lignes d'E/S.

Avec une forte réflectance, le temps de décroissance peut être aussi faible que plusieurs dizaines de microsecondes; sans réflectance, le temps de décroissance peut aller jusqu'à quelques millisecondes. Le temps exact de la décroissance dépend des caractéristiques de la ligne d'E/S de votre microcontrôleur. Des résultats significatifs peuvent être disponibles en 1 ms dans des cas typiques (c'est-à-dire lorsque vous n'essayez pas de mesurer des différences subtiles dans des scénarios à faible réflectance), permettant un échantillonnage jusqu'à 1 kHz des 8 capteurs. Si l'échantillonnage à basse fréquence est suffisant, des économies d'énergie substantielles peuvent être réalisées en éteignant les LED. Par exemple, si un taux d'échantillonnage de 100 Hz est acceptable, les LED peuvent être éteintes 90 % du temps, ce qui réduit la consommation moyenne de courant de 100 mA à 10 mA.

Étape 2: Microcontrôleur (Cerveau) Atmega328P

Microcontrôleur (Cerveau) Atmega328P
Microcontrôleur (Cerveau) Atmega328P
Microcontrôleur (Cerveau) Atmega328P
Microcontrôleur (Cerveau) Atmega328P

Merci à Atmel CorporationPour la fabrication de cet impressionnant microcontrôleur AKA Atmega328.

Paramètres clés pour ATmega328P

Valeur du paramètre

  • Flash (Ko): 32 Ko
  • Nombre de broches: 32
  • Max. Fréq. de fonctionnement (MHz): 20MHz
  • Processeur: AVR 8 bits
  • Nombre maximal de broches d'E/S: 23
  • Interruptions de poste: 24
  • IPS: 2
  • TWI (I2C): 1
  • UART: 1
  • Canaux ADC: 8
  • Résolution ADC (bits): 10
  • SRAM (Ko): 2
  • EEPROM (octets): 1024
  • Classe d'alimentation E/S: 1,8 à 5,5
  • Tension de fonctionnement (Vcc): 1,8 à 5,5
  • Minuteurs: 3

Pour des informations détaillées, consultez la fiche technique de l'Atmega328P.

Dans ce projet, j'utilise Atmega328P pour quelques raisons

  1. Pas cher
  2. A assez de RAM pour le calcul
  3. Broches d'E/S suffisantes pour ce projet
  4. Atmega328P est utilisé dans Arduino…. Vous remarquerez peut-être dans l'image et la vidéo un Arduino Uno, mais la nuit, j'utilise Arduino IDE ou n'importe quel Arduino. J'ai utilisé uniquement le matériel comme carte d'interfaçage. J'ai effacé le bootloader et utilisé USB ASP pour programmer la puce.

Pour programmer la puce, j'ai utilisé Atmel Studio 6

Tout LE CODE SOURCE EST DANS GitHub Téléchargez-le et vérifiez le fichier test.c.

Pour compiler ce package, vous devez télécharger et installer The POLOLU AVR LIBRARY SETUP Vérifiez les pièces jointes…

Je TÉLÉCHARGE également un schéma et un fichier de carte de développement Atmega328P… Vous pouvez le fabriquer vous-même…

Étape 3: Moteur et pilote de moteur

Moteur et pilote de moteur
Moteur et pilote de moteur
Moteur et pilote de moteur
Moteur et pilote de moteur
Moteur et pilote de moteur
Moteur et pilote de moteur

J'ai utilisé un moteur à courant continu à engrenages de type BO 350 tr/min 12 V comme actionneur. Pour en savoir plus… MOTOR LINK

En tant que pilote de moteur, j'ai utilisé L293D H-bridge IC.

Je joins le schéma et le fichier de bord pour le même.

Étape 4: châssis et divers

Châssis et Divers
Châssis et Divers
Châssis et Divers
Châssis et Divers
Châssis et Divers
Châssis et Divers

Le Bot est composé de contreplaqué de 6 mm d'épaisseur.

Conseillé: