Introducere
Echipa
Chisa Razvan 334CB
Tranca Cristian 334CB
Scop
Este un clasic urmaritor de linie neagra(Line folower).
Ce stie sa faca
Robotul stie ca atunci cand este pus pe un ring alb cu o linie neagra sa o urmareasca, sau macar sa incerce sa o urmareasca
Descriere generală
Robotelul este compus din placuta de la laborator, comparatoare de tensiune pentru senzori, 2 motoare, 1 driver L298.
Am folosit IN1, IN2 pentru stabilirea sensului motoarului 1, IN3 IN 4 in acelasi mod, si enableurile pentru pwm
Senzorii sunt monitorizati de comparatoare si trimit mai departe catre uC datele in format digital
Hardware design
Lista piese
Lista de piese folosite la placuta de PM
L298
diode 1N4007
bara de senzori polulu
motoare polulu cu reductor 50:1
sursa in comutatie
baterie LIPO 11.1V
Conductori de legatura
Intrerupator general
Intrerupator pentru sursa de comutatie care alimenteaza senzorii,comparatoarele si motoarele
LED mare pe post de suport care si lumineaza cu efect de trolling
Silicon termic, mult
Software design
Programul actioneaza motorul folosind 2 PWM-uri ale caror valori se configureaza periodic intr-o functie de intrerupere care se activeaza la TIMER1_COMPA. Exista o serie de definuri globale care definesc gradul de umplere pentru PWM pentru diferite situatii de functionare.
Functii:
-main
-init
-ISR(TIMER1_COMPA_vect)
Functia main apeleaza init si apoi intra in bucla infinata cu while(1).
Functia init:
-seteaza portul A ca input ⇒ exista 8 senzori care sunt cititi folosind PA0-7
-activeaza sensul motoarelor in fata folosind portul C ca output ⇒ PC4,5 pentru motor1 si PC6,7 pentru motor2
-activeaza PWM pe OCR0 si OCR2 pentru motor1, respectiv motor2
-configureaza timer CTC pe OCR1A
-activeaza intreruperea pentru TIMER1_COMP1
Functia ISR(TIMER1_COMPA_vect)
-calculeaza senzorul care are proportionalitatea cea mai mare
-in functie de valoarea medie stabilita se stabileste o valoare pentru PWM1 si PWM2 intre lowPWM si highPWM.
Ideea algoritmului este ca atunci cand media este in partea stanga, de exemplu, motorul stang se incetineste. In cazul in care nici un senzor nu este activ, se testeaza daca la etapa anterioara de test a fost activat unul din senzorii din margine, iar, in acest caz, se considera ca media este pe senzorul din acea medie.
Rezultate obtinute
In acest momen robotelul reuseste sa urmareasca linia
A trebuit sa schimbam rotile din cauza ca alunecau
Am pus sursa de comutatie in scurt, a inceput sa cante(sa tiuie, dar ne-am dat seama ca are protectie)
Am avut o lipitura cu 8 fire pe care a trebuit sa facem debugging
Concluzii
A trebuit sa mutam bateria din fata in spate, deoarece frecarea era prea mare in anumite situatii pentru ca robotelul sa poata inainta
Am adaugat un bargraph pentru a putea configura potentionetrul pentru a putea obtine semnal digital corespunzator
Nu prea e bine sa lucrezi cu fire peste tot, este doar genial
Este cel mai de gunoi robotel pe care l-am vazut
Daca te chinuiesti destul poti face un robotel sa arate foarte urat dar sa mearga foarte bine
Download
Jurnal
Miercuri, 16/05/2012, am facut partea de comanda la robotel, fara baterie
Sambata, 19/05/2012, am programat cu succes microcontrolerul folosind timere, intreruperi, PWM si ADC
Duminica, 20/05/2012, am terminat restul de hardware
Este ora 4:00AM, pe data de 21/05/2012
Multumim urmatorilor
Laboratorul InGeAR pentru motoare, sursa in comutatie, placuta, LED, comparator, bargraf, respack si bara de senzori si spatiu de lucru
Domnului Tudor Petre pentru integrate pentru stabilizare tensiune
“dutema”