Proiectul presupune realizare unui robot ce urmareste o linie neagra pe un fond alb. Ideea de la care am pornit este ca intreg procesul de realizare a robotul va fi unul creativ in care voi invata deprinderi noi , cum ar fi lucrul cu un microcontroller sau a lipi componte folosind un letcon . Asa cum proiectele celorlalti colegi din anii trecuti m-au ajutat , asa sper si eu sa ajut ,la randul meu, pe altii cu acesta.
O schema simpla de conectare este aceasta:
Ideea este ca noi conectam senzorii si puntea h la placa de baza, iar motorul va veni conectat la puntea h. Microcontrollerul va citi valori de la senzori si apoi , in functie de aceste valori va trimite comanda pentru motoare.
Lista componente:
Mai intai am asamblat sasiul . Daca vi-l cumparati de la Robofun rugati-i pe cei de acolo sa va dea si un suport ceva sau o bara de prindere pentru senzori ( QTR - 8A ) ,altfel va trebui sa fiti inventivi. Solutia mea :
Apoi am realizat placuta ce va contine puntea H folosind schema :
Recomandarea mea este sa va trasati separat pe o hartie output-urile catre motoare si diode, precum si intrarile pentru a determina exact care , intra unde . De asemenea, trebuie citit datasheet la L298N pentru a vedea acolo ordinea pinilor . Cand o sa intoarceti placuta si o sa va apucati de lipti aveti grija la ordinea pinilor (apare efectul de oglinda stanga devine dreapta si invers ). Motivul pentru care folosim diode este pentru a preveni descararea tensiunii electromotoare dupa oprirea motoarelor direct pe L298. In plus, este bine sa aveti un condesator electrolitic intre GND (pinul de GND din mijloc) si tensiunea stabilizata pe care o luati de pe placa de baza (cei 5V). Ideea este ca L298 are nevoie de 2 tensiuni de alimentare :
In crcuitul de mai sus acel stabilizator de tensiune de 5V nu este necesar sa il construiti deoarece voi va luati cei 5V de pe placa de baza.
Dupa ce am terminat de lipit si asamblat toate componnentele urmeaza sa legam firele la porturile microcontrollerului conform schemei:
Cu modificarea ca eu nu folosesc toti cei 8 senzori (nu este neaparat necesar sa-i folosesc pe toti) . Folosec doar 1 senzor la extremitati (stanga , respectiv drepta) si 2 pe centru.
La partea de software codul este destul de simplu. Mai intai initializam pinii pe care se leaga intrarile L298-ului (in cazul de fata PortC). Apoi initializam pinii senzorilor . Rezistanta aceea de pull-up se conecteaza la GND conform datasheet-ului senzorilor. Dupa ce am terminat initializarile , trecem la partea de setat PWM pe bitii de enable ai uC-ului . Acestia sunt necesari deoarece ei transmit viteza la motoare . De exemplu ,daca vrem sa viram dreapta roata din stanga se va invarti mai repede decat cealalta roata .
Pentru a determina cand sa vireze stanga sau dreapta vom scrie o functie care va citi date de la senzori si va compara datele primite de la senzoii din dreapta cu cele primite de la senzorii din stanga . Nu este necesar sa-i folosim pe toti 8.
Compilatorul folosit este avr-gcc . Am downloadat avrusrboot (cel pentru Linux) si folosind makefile-ul din primul laborator am incarcat prin USB pe placuta programul.
Din pacate robotul nu a mers . Este posibil sa fie vreo lipitura facuta gresit . Un asemenea proiect hardware este greu de depanat , mai ales daca esti incepator. De recomandat ar fi ca acesta sa fie facut din timp si in echipa cu cineva . In concluzie , mie personal mi s-a parut ca am avut de multe invatat lucruri noi cu adevarat utile (drept exemplu robotul in sine este de povestit la o bere cu prietenii ). Sper ca pe vacanta sa reusesc sa-l fac sa functioneze pana la urma.