Robert Panduru - Brat mecanic industrial

Introducere

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.

Descriere generală

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.

Hardware Design

Lista de componente este:

  • 1 breadboard
  • Fire MM si MF
  • Rezistente de limitare acolo unde e cazul
  • 3 motoare SG 90
  • Un senzor de distanta GP2Y
  • 5 butoane SPDT
  • 6 LED-uri

Software Design

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.

Rezultate Obţinute

Concluzii

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.

Download

Jurnal

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

Bibliografie/Resurse

pm/prj2019/apredescu/mjordan1.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