This is an old revision of the document!


Line Follower Robot

Line Follower Robot

Introducere

Prezentarea pe scurt a proiectului vostru:

  • Proiectul este un line follower robot care va folosi 2 senzori infrarosu pentru a detecta culoarea unei linii si a vira in directia acesteia.
  • Scopul acestui proiect este de a testa implementarea unui self-driving device care va putea fi implementat si in alte modalitati de transport.
  • Ideea initiala pentru acest proiect a fost un detector de banda auto care va avertiza audio un sofer cand acesta este pe linie alba continua.
  • Acest proiect consider ca va ajuta colegi in implementarea unui robot complex care va putea sa conduca pe strazi.

Descriere generală

Robotul este compus dintr-un device Arduino Uno care va fi activat de o baterie de 9V. Microcontroller-ul va primi output-ul de la 2 fotodiode IR/Detectoare de culoare pentru a mentine o linie de culoare neagra(albul reflecta toata lumina si negrul absoarbe). Vom folosi 2 senzori IR ale caror unde nu vor fi reflectare de culoarea negru si astfel vor trimite logic LOW catre placa arduino. In functie de inputul primit de cei 2 senzori vom trimite output signal prin PWM catre un driver de 12 volti pentru 2 motoare DC. Pentru a intoarce dreapta vom trimite HIGH la motorul din dreapta si LOW la celalalt, iar pentru stanga vom inversa semnalul. Putem controla si viteaza de rotatie a motoarelor prin PWM, astfel incat cu cat crestem duratia pulsurilor cu atat motorul se va invarti mai repede.

The Motor Block

The IR BLock

The IR LED Circuit Diagram

Hardware Design

Aici puneţi tot ce ţine de hardware design:

  • Piesele vor fi:
    • Bară de Senzori Infraroșu Reflectivi QTR-3A;
    • Fir pentru Baterie de 9V cu Mufa DC;
    • Modul cu Driver de Motoare Dual L298N Rosu;
    • Motor cu Reductor 1035Y 12V57;
    • Placa de Dezvoltare Compatibila cu Arduino UNO R3 (ATmega328p + ATmega16u2) + Cablu 50 cm;
    • Kit Breadboard HQ830 cu Fire și Sursă;
  • Scheme electrice:
The IR LED Circuit Diagram

Driver Circuit Diagram

Arduino Diagram

  • diagrame de semnal
Driver Signal Diagram

IR LED Detector Signal Diagram

  • rezultatele simulării
  Din construirea proiectului + rularea codului se poate observa ca dioda masoara in principal reflectivitarea luminii, rezultand in valori mai mici la negru, la suprafate mate si la umbra(de exemplu la lumina reflectata de "flashlight"-ul unui telefon se masoara ~650-700). In general pentru o reflectivitate decenta am ales valoarea de 35 pentru comparatie pentru a muta robotul spre stanga si dreapta. Motoarele vor functiona foarte incet din cauza curentului mic de la arduino si nu este nevoie de o baterie 9V, cei 5V generati de placa Arduino sunt suficienti.

Software Design

Descrierea codului aplicaţiei (firmware):

* mediu de dezvoltare

  Arduino IDE + AVR
  

* librării şi surse 3rd-party

  Default Arduino Libraries and modules: Digital PWM, USART, GPIO, ADC
  

* algoritmi şi structuri pe care plănuiţi să le implementaţi

  Nu este nevoie de structuri de date sau algoritmi specializati.
  Implementarea software contine in mare o serie de verificari logice pentru valoarea citita de diodele IR: Centru pentru mers, Dreapta si Stanga pentru Directie. 
  

* (etapa 3) surse şi funcţii implementate

  Functii standard arduino: pinMode, analogWrite, digitalWrite, analogRead

Rezultate Obţinute

Codul functioneaza corect, si robotul reuseste sa invarta motoarele. A fost necesara testarea polaritatii motoarelor cu inputurile aparatului de driver pentru a avea directia si rularea corecta.

O imagine a proiectului finit:

Un demo al motoarelor ruland, folosind de asemenea consola pentru debug: https://youtu.be/nwMmXv6_WuA

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Resurse Hardware

Resurse Software

TODO

Export to PDF

pm/prj2022/apredescu/linefollowerdanielescusotiutemil.1653312956.txt.gz · Last modified: 2022/05/23 16:35 by emil.danielescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0