Am incercat sa fac un robotel cu 4 servomotoare analogice.
Descrierea codului aplicaţiei (firmware):
Vom folosii functia _delay_ms() pentru a trimite impulsurile corecte catre servomotoare:
Exemplu pentru a misca un servomotor 90 grade.
- shiftam bitul de pe PD7
PORTD |= (1 « PD7);
- facem un delay de 1.5 milisecunde
_delay_ms( 1.5);
- shiftam inapoi bitul de pe PD7
PORTD &= ~(1 « PD7);
- facem un delay pentru a incheia ciclul (1.5 + 7.5 = 20 ms)
_delay_ms(17.5);
Prima versiune a robotului. Avea 2 picioare, 2 servomotoare fiecare.
Aceasta este a doua versiune. Patru picoare, un servomotor fiecare.
Pentru ca in timp ce servomotoarele sunt alimentate, microprocesorul sa nu moara, am facut un circuit separat de alimentare pentru cele 4 servomotoare.
Microprocesorul va di alimentat de la o baterie de 9V. Servomotoarele vor fi alimentate de la un set de 4 baterii de 1.5 V.
Din pacate nu am reusit sa sincronizam servomotoarele astfel incat robotul sa mearga. El da din picioare dar nu cum trebuie.
Am mai facut o modificare la structura robotului astfel incat picioarele sa nu se loveasca intre ele atunci cand se intersecteaza.
In arhiva exista un proiect AVR studio 4 cu implemntarea miscarii celor patru servomotoarelor si o simulare a circuitului in ISIS 6.