Marea majoritate din robotii industriali din momentul actual sunt considerati cei industriali iar marea majoritatea din acestia cad sub umbrela de brate robotice. Acesti roboti sunt folositi pentru sudura, asamblare si manevrarea obiectelor grele. Scopul lor este de a inlocui munca umana cu precizie, forta si viteza. Aceste atribute vin datorita rezistentei materialelor din care au fost construiti dar si din calitatea codului ce a fost incarcat in ei.
Luand acest lucruri in considerare m-am gandit ca ar fi interesant de observat problemele care apar in dezvoltarea unui brat robotic, desi la o scara mult mai mica.
Bratul robot va avea 2 moduri de functionare: prin operator si autonom. Se va putea schimba modul de functionare prin actionarea unui buton. Cat timp este in modul de operator bratul va putea fi controlat prin butoane. In modul autonom se va folosi de senzorul de miscare pentru a detecta pozitia unei bile de tenis de masa. In functie de timpul pe care il petrece bila in zona de detectie a senzorului microprocesorul va calcula traiectoria acesteia si va misca bratul pentru a o lovi.
Cele 3 motoare are fiecare asociata o axa de rotatie pentru miscarea bratului in toate cele 3 dimensiuni.
Lista de componente este:
Pentru a putea utiliza servomotoarele trebuie sa pot modifica factorul de umplere al semnalului trimis catre pinul de PWM al servomotoarelor. Pentru a face acest lucru am setat timer-ul 1 sa emita o intrerupere odata la 1ms. In functie de modul de operare al robotului, acesta poate opera dupa butoanele apasate sau dupa semnalul primit de la senzorul de distanta. Acest mod poate fi alternat prin apasarea unui buton.
Operarea servomotoarelor se face verificand valorile a doua variabile: motor1 si motor2. Odata la fiecare milisecunda se verifica a cata este din cadrul ciclului de lucru si se vor pune pinii pe HIGH si LOW daca acestea sunt diferite de 0. 1 inseamna rotire spre stanga, -1 spre dreapta.
Pentru a evita bounce-ul mecanic al butoanelor se face o asteptare de cateva milisecunde dupa fiecare apasare. Verificarea valorii primite de la senzor se face prin polling in bucla while a programului daca robotul se afla in modul de operare corespunzator.
A fost un proiect interesant de facut. Ar fi fost mai usor de facut daca foloseam un LCD pentru a imi afisa valorile variabilelor in loc sa folosesc LED-uri pentru debugging. Analiza capacitatilor unui microcontroller si ale modulelor perifericelor prin cheatsheet-uri reprezinta o problema inginereasca instructiva.
19/5, duminica: testarea servomotoarelor si a senzorului
20/5, luni: asamblarea robotului
21/5, marti: adaugarea butoanelor
22/5, miercuri: implementarea modului de utilizare
23/5, joi: ultimele retusuri, terminarea cutiutei