Alexandru-Mihai STROIE (78514) - Line follower

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Robotel care urmareste linia neagra de pe un fundal alb si are ca scop principal sa parcurga traseul determinat acea linie intr-un timp cat mai scurt.
Am ales acest proiect pentru ca am asistat la concursuri de roboti care aveau si sectiunea de line follower; so… why not?
Utilitate practica nu cred ca are in forma in care o sa il construiesc insa il consider o platforma de baza pentru roboti ce folosesc senzori mai avansati si au o functioalitate extinsa. Este in acelasi timp si o provocare pentru ca nu am mai construit, pana acum, nimic unde sa realizez si partea hardware si software.

Descriere generală

Schema Bloc:

Senzorii de linie vor citi in continuu si vor transmite datele catre ATMEGA324, dupa prelucrarea acestora, microcontrolerul va pune date de directie de pe pinii PB1, PB2, PB5, PB6 si va face PWM pe pinii PB3 si PB4; toate aceste date vor fi transmise catre modulul de driver care va controla motoarele conform setarilor celor 6 pini mentionati mai sus (rotire stanga, rotire dreapta, mers inainte).

Hardware Design

Lista piese:
Microcontroler ATMEGA324 PM
Kit sasiu + motoare: https://www.optimusdigital.ro/ro/robotica-kit-uri-de-roboti/140-kit-robot-2-motoare.html
Driver dual motoare L298N: https://www.optimusdigital.ro/ro/drivere-de-motoare-cu-perii/145-driver-de-motoare-dual-l298n.html
Bara senzori linie analogic QTR-8A: https://www.robofun.ro/bara_senzori_linie_qtr_8a
Jumperi mama-mama, tata-tata, tata-mama
Diode, rezistente, condensatori

Schema electrica:
 900

Software Design

Pentru implementarea software-ului am folosit Linux editorul Sublime si compilatorul avr-gcc. Pentru debug am folosit “Advanced Serial Port Terminal” si un cablu de conversie USB ↔ Usart. Nu am folosit librarii 3rd-party.

Citirea senzorilor o fac prin ADC, folosind toti pinii intre PA0 si PA7. Datele citite sunt prelucrate in felul urmator: fiecarui pin de ADC i se atribuie o pondere -1 sau 1; daca senzorula citit linia neagra, ponderea sa se adauga la suma ponderilor. Dupa ce sunt cititi toti pinii si se obtine o suma a ponderilor se ajusteaza prin PWM puterea care merge la motoare astfel incat robotul sa se centreze pe linie.

Rezultate Obţinute

Robotul reuseste sa urmareasca linia neagra totusi are ceva imperfeciuni(la vireajele stranse) datorita dimensiunilor sasiului(e putin cam mare-lat) insa pe un traseu unde curbele au raza de curbura suficient de mare pentru acest sasiu, se descurca destul de bine.

Robotelul:

Filmulet demo: https://youtu.be/w2_lCceIkPM

Concluzii

A fost o experienta interesanta. Am invatat cum pot controla motoarele folosind PWM si cum sa folosesc senzorul QTR-8A. Rezultatul este putin sub asteptarile mele deoarece sasiul s-a dovedit a fi mai mare decat ma asteptam (am comandat kit sasiu+motoare+roti) si acest lucru face ca robotul sa fie putin greoi in viraje ⇒ am fost nevoit sa reduc viteza la care ruleaza motoarele pentru ca inertia sa nu impinga robotul de pe linie. Per total am ramas placut surprins de proiect si mai ales de faptul ca am reusit sa creez un robot practic de la 0; pe viitor ma gandesc sa fac si varianta sa imbunatatita (care se misca mai repede).

Download

Jurnal

21-Apr-2018: Completat etapa 1.
26-Apr-2018: Completat etapa 2.
27-Apr-2018 - 04-Mai-2018: Comanda pieselor pentru linefollower, asamblarea sasiului, testarea placutei si completarea etapei 3.
05-Mai-2018 - 23-Mai-2018: Asamblarea finala a robotului, scrierea sofware-ului si testarea acestuia

Bibliografie/Resurse

pm/prj2018/cpetrisor/line_follower.txt · Last modified: 2021/04/14 17:07 (external edit)
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