Line follower

Introducere

Proiectul consta intr-un robot de tip line-follower. Robotelul va urmari o linie neagra pe fundal alb, formand astfel diverse circuite pe care acesta va trebui sa le parcurga. Am ales acest proiect deoarece l-am considerat cel mai spectaculos si interesant.

Descriere generala

Componente:

  1. placa de baza ATMEGA16(realizata in prima etapa a proiectului)
  2. driver de motoare cu circuit integrat l298
  3. kit robot : doua motoare de curent continuu 120:1 tip Pololu, 2 roti special realizate pentru aceste motoare, o roata de sprijin metalica si tot setul de conectori, suruburi si piulite necesare
  4. bara senzori de reflectanta (8 senzori analogici)
  5. 2 baterii de 9V (pt alimentare placuta si motoare)
  6. girofar :)

Placuta de baza ATMEGA16 (realizata in prima etapa a proiectului):

Driver motoare L298 (cumparat de la robofun: http://www.robofun.ro/L298N):

Kit robot(cumparat de la robofun: http://www.robofun.ro/kit-roboti/platforma-magician-robot-kit):

Bara senzori QTRA 8A(cumparata de la robofun: http://www.robofun.ro/bara_senzori_linie_qtr_8a):

Hardware design

Schema logica

Schema completa

Schema L298

Schema driver motoare

Software design

Soft-ul robotului a fost dezvoltat in AVR Studio 4 pe Windows 7 64 bit. Din cauza unor probleme de recunoastere a placutei pe Windows am incarcat fisierul .hex pe Atmega16 prin avrusbboot pe Linux.

Detalii de implementare:

Am determinat cel mai din dreapta si cel mai din stanga senzor ce detecteaza linia de culoare neagra si am urmarit urmatorul algoritm:

  • daca toti senzorii detecteaza alb robotul merge inainte pentru a gasi linia neagra
  • daca senzorii din mijloc detecteaza linia neagra robotul merge inainte pentru a o urma
  • daca senzorii din stanga robotului detecteaza linia neagra, acesta vireaza dreapta
  • daca senzorii din dreapta robotului detecteaza linia neagra, acesta vireaza stanga

Linia de senzori este pozitionata in felul urmator:

Stanga || SENZOR1 | SENZOR2 | SENZOR3 | SENZOR4 | SENZOR5 | SENZOR6 | SENZOR7 || Dreapta

Pentru ca robotul sa vireze am actionat un motor intr-un sens, iar celalalt motor in celalalt sens.

  • La virarea spre stanga valorile celor 4 input-uri corespunzatoare portului C sunt 0110.
  • La virarea spre dreapta valorile celor 4 input-uri corespunzatoare portului C sunt 1001.
  • Pentru deplasarea inainte valorile celor 4 input-uri corespunzatoare portului C sunt 1010.
  • Pentru deplasarea inapoi valorile celor 4 input-uri corespunzatoare portului C sunt 0101.

In fiecare pas de timp am determinat valorile detectate de fiecare senzor inspectand valorile intoarse de acestia pe PORTUL A al placutei ATMEGA 16. Am aflat astfel senzorii din ambele extreme (stanga - dreapta) care detectau linia neagra, considerand apoi 4 cazuri. Daca niciun senzor nu detecta linia neagra robotul se va deplasa inainte prin actionarea ambelor motoare in acceasi directie. Daca cel mai din stanga senzor care detecteaza linia neagra este unul din senzorii 5,6,7 robotul va vira spre stanga pentru ca senzorii 4 si 5 sa fie pozitionati in dreptul liniei. Daca cel mai din dreapta senzor care detecteaza linia este unul din senzorii 0,1,2 robotul va vira spre stanga pentru ca senzorii 4 si 5 sa fie pozitionati in dreptul liniei. Daca senzorii care detecteaza linia sunt senzorii 4 si 5 (cel putin 2 senzori detecteaza linia datorita latimii acesteia si distantei dintre senzori) atunci robotul se va deplasa inainte.

Rezultate obtinute

Driver motoare L298 + circuitul de protectie al acestuia

Robot semiasamblat

Robot complet asamblat (lipsa girofar) - vedere din fata

Robot complet asamblat - vedere din spate

Testarea line-followerului pe circuitul oficial

The Adobe Flash Plugin is needed to display this content.

Concluzii

Asamblarea line-follower-ului a fost partea cea mai interesanta, dificultati mai mari intalnind in realizarea unui algoritm care sa urmeze corect circuitul. Realizarea proiectului a durat in jur de o saptamana.

Download

Codul sursa este disponibil in arhiva: linefollower.zip

Bibliografie

pm/prj2012/pbara/6.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