Line Follower

Studenti

Dinu Bianca 331CA
Manea Stefan 331CA

Introducere

Ne-am propus sa implementam un Line Follower. Acest robot merge pe o suprafata alba si urmareste un traseu marcat printr-o dunga neagra. Ne-am ales acest proiect deoarece ni s-a parut cel mai interesant din anii trecuti.

Descriere generala

Elementele din care a fost construit robotul sunt:

  • placa de baza cu uC ATmega16 (cel de la etapa I)
  • cutie de viteze cu 2 motoare alimentate intre 4-6 V

  • driver de motor L298N

  • 3 senzori analogici
  • stabilizator 5V

  • 8 diode Schottky de protectie
  • 2 condensatoare de 100nF
  • 2 baterii de 9 V
  • roti
  • ball caster
  • sasiul a fost improvizat din 2 placi

  • cablu UTP (1 metru)

Schema bloc ce prezinta imbinarea modulelor noastre:

Hardware Design

Pentru tractiune am folosit 2 motoare comandate printr-o punte H (circuitul L298N).
Atat senzorii, cat si circuitul L298N sunt legati la placuta de laborator.
Pentru a proteja motoarele se folosesc 8 diode de protectie.

Schema electrica a robotului nostru:

Software Design

Am folosit Ubuntu pentru implementare, iar pentru a incarca programul ”.hex” am folosit avrusbboot, din arhiva de pe
prj2012.

Algoritmul implementat:
La început, se fac initializarile, iar apoi într-o bucla infinita se interpreteaza valorile obtinute de la senzori.
Avand trei senzori, putem avea maxim 8 stari in care se afla masina la un moment dat (teoretic).
In practica, cazul in care senzorii 1 si 3 se afla pe negru, iar 2 pe alb, nu exista.

  • Pentru starea in care toti senzorii sunt pe alb, am considerat o variabila suplimentara care retine ultima stare citita de senzorii masinii. Aceasta stare ne intereseaza pentru a lua o decizie atunci cand masina trebuie sa se intoarca pe traseu.
  • In cazul în care se detectează linia neagra la senzorul din dreapta, masina va merge spre dreapta (motorul din stanga este activat si se salveaza starea).
  • In cazul în care se detectează linia neagra la senzorul din stanga, masina va merge spre stanga (motorul din dreapta este activat si se salveaza starea).
  • In caz contrar, aceasta va merge drept inainte.

Probleme intampinate

  1. Cutia de viteze are doua motoare, dar rotile nu se rotesc independent. Solutia a fost sa taiem un ax care unea cele doua osii si apoi sa pilim cele doua bucati pentru a se putea roti independent.
  2. Am folosit foarte multe fire si un sasiu improvizat, ceea ce ne-a dat mari batai de cap in ceea ce priveste contactele imperfecte si stabilitatea masinii.
  3. Am pus o rezistenta foarte mare pentru sense-uri la circuitul L298N, ceea ce limita foarte mult curentul catre motoare. Noi am crezut ca problema era de la input-ul circuitului si am pierdut mult timp incercand sa o rezolvam. Cei care au realizat ca problema este acea rezistenta au fost asistentii de PM. In implementarea finala am legat pinii 1 si 15 la masa.

Rezultate obtinute

In prezent, proiectul este functional. Poate daca am fi avut mai mult timp la dispozitie, am fi elaborat un algoritm mai bun de urmarire a traseului si i-am fi dat masinutei noastre un aspect mai placut :-).
Masina in forma finala:

Traseu de test:

Concluzii

Dezvoltarea acestui proiect a fost o experienta interesanta pe care am repeta-o pentru ca am invatat foarte multe lucruri utile.

Download

Bibliografie

pm/prj2012/avoinescu/12.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