LineFollower

Studenti:

  • Emma Mirica
  • Valentin Gosu

Introducere

Proiectul consta intr-un line follower:

  • Robotul urmareste o linie neagra aflata pe un fundal alb
  • Am vrut sa construim un robot cat mai simplu si compact
  • Am incercat sa construim robotul de la zero deoarece nu am vrut sa modificam o masinuta, aceasta neobtinand intotdeauna rezultatele cele mai bune

Descriere generală

Schema bloc a proiectului:

Robotul foloseste 2 seturi de baterii. Un set pentru microcontroller si senzori, alt set pentru motoare. Cele doua seturi de baterii au masa comuna.

Motoarele sunt conectate la microcontroller pe pinii PD4 si PD5, folositi la PWM.

Senzorii sunt conectati la ADC pe pinii PA0 si PA1.

Hardware Design

Piese folosite:

  • 2 x servo-motoare modificate pentru rotatie continua
  • 2 x roti luate de la o masinuta de jucarie
  • 2 x set de 4 baterii + suport pentru baterii
  • 1 x placuta de test - baza robotului
  • 1 x placuta cu ATMEGA16 realizata la etapa 1
  • 1 x bila Tamiya 70144 Ball Caster
  • Suruburi si piese de metal dintr-un kit de constructie
  • Fire, pini, mufe

Senzorii:

  • un led infrarosu
  • un fototranzistor sensibil la infrarosu
  • o rezistenta de 100 Ohm
  • o rezistenta de 10 kOhm

Initial am dorit sa construim noi insine senzorii, insa am realizat ca nu sunt foarte precisi. Schema era foarte asemanatoare celei de la senzorii folositi. Un exemplu este: Link

Alimentarea:

  • cele doua motoare sunt alimentate de la 4 x 1.5 V
  • alimentarea placutei se face separat de la 4 x 1.5 V

Initial am dorit ca alimentarea placutei sa fie facuta de la setul de baterii prin mufa de alimentare. Insa, am realizat ca aceasta se incalzea foarte tare si am renuntat la idee (aceasta solutie a fost incercata pe placutele amandurora).

Software Design

Pentru dezvoltarea software-ului a fost folosit AVR Studio 4. Nu au fost necesare librarii si surse 3rd-party deoarece functionalitatile sunt asigurate de hardware-ul atmega16. De asemenea, servo-motoarele nu necesita un driver separat, ceea ce a usurat munca. Proiectul foloseste urmatoarele:

  • ADC - pentru receptionarea culorii identificate de cei doi senzori.
  • PWM - pentru controlul celor doua motoare. A fost folosit Timer1 deoarece este singurul timer pe 16 biti si motoarele trebuie sa functioneze la 50Hz.
  • USART - a fost folosit pentru a stabili thresholdurile pentru valorile obtinute de la senzori. In conditiile de fata aceasta functionalitate nu mai este folosita.

Algoritmul de functionare al robotului este unul simplu:

  • se initializeaza modulele adc si pwm.
  • intr-o bucla infinita se verifica valorile obtinute de la cei doi senzori si in functie de acestea se stabilesc directiile motoarelor. De exemplu: pentru o curba la stanga motorul din stanga va merge inapoi, iar cel din dreapta inainte.
  • robotul se va opri la apasarea butonului de reset sau cand nu mai este alimentat.

Initial robotul va trebui asezat pe traseu, altfel nu va sti cum sa se deplaseze. Deoarece robotul este micut, am considerat ca doar doi senzori sunt suficienti. Astfel, ambii senzori trebuie sa detecteze culoarea alb pentru a sti ca se afla pe traseu, iar in momentul in care unul dintre ei detecteaza negru, robotul se va redresa in conformitate cu valorile obtinute.

Rezultate Obţinute

Robotelul este functional.

Concluzii

Proiectul a fost unul interesant. Nu a fost foarte dificil din punct de vedere al hardware-ului, insa a fost destul de migalos.

Mari probleme am avut cu senzorii, caci ne-am chinuit destul de mult sa ii realizam noi, insa am realizat ca nu aveam leduri sau fototranzistori buni si tot asa. Am renuntat in final la a face noi senzorii, deoarece nu erau nici foarte precisi, si am cumparat unii pentru care am obtinut rezultate destul de bune.

Partea software a fost cea mai simpla, in mare pentru ca am avut laboratoarele rezolvate.

De asemenea, am gandit si foarte simplu robotelul si de aceea a si fost ceva mai usor de realizat.

Am vrut sa folosim si un buton de stop/start pentru robotel, insa am cam uitat de el. Ramane ca un feature pentru mai incolo.

Download

Jurnal

Principalele etape in realizarea proiectului au fost:

  • obtinere servo motoare
  • modificare motoare pentru rotatie continua si testare
  • cumparare cele necesare realizarii senzorilor, suport baterii
  • incercare realizare senzori
  • testare senzori fara rezultate bune
  • cumparare mufe, pini argintati
  • cumparare senzori, testare si rezultate bune
  • testare componente separat, verificand in acest fel si o parte din cod
  • implementare cod

Bibliografie/Resurse

pm/prj2011/dtudose/linefollower.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