Cuprins:

Braț robotizat bazat pe microcontroler PIC: 6 pași (cu imagini)
Braț robotizat bazat pe microcontroler PIC: 6 pași (cu imagini)

Video: Braț robotizat bazat pe microcontroler PIC: 6 pași (cu imagini)

Video: Braț robotizat bazat pe microcontroler PIC: 6 pași (cu imagini)
Video: Prezentarea Facultății de Electronica, Telecomunicatii și Tehnologia Informatiei din Iasi 2024, Noiembrie
Anonim
Braț robotizat bazat pe microcontroler PIC
Braț robotizat bazat pe microcontroler PIC

De la linia de asamblare a industriilor producătoare de automobile până la roboții de telesurgie din spațiu, Robotic Arms se găsesc peste tot. Mecanismele acestor roboți sunt similare cu un om care poate fi programat pentru funcții similare și capacități sporite. Ele pot fi folosite pentru a efectua acțiuni repetate mai rapide și mai precise decât oamenii sau pot fi utilizate în medii dure fără a risca viața umană. Am construit deja un braț robotizat de înregistrare și redare folosind Arduino, care ar putea fi instruit pentru a face o anumită sarcină și făcut să se repete pentru totdeauna.

În acest tutorial, vom folosi standardul industrial PIC16F877A Microcontroler pe 8 biți pentru a controla același braț robotizat cu potențiometre. Provocarea acestui proiect este că PIC16F877A are doar doi pini capabili PWN, dar trebuie să controlăm aproximativ 5 servomotoare pentru robotul nostru care necesită 5 pini PWM individuali. Deci, trebuie să folosim pinii GPIO și să generăm semnale PWM pe pinii GPIO PIC folosind întreruperile temporizatorului. Acum, bineînțeles, am putea face upgrade la un microcontroler mai bun sau putem utiliza un IC de multiplexor pentru a face lucrurile mult mai ușoare aici. Dar totuși, merită să încercați acest proiect pentru experiența de învățare.

Structura mecanică a brațului robotizat pe care o folosesc în acest proiect a fost complet imprimată 3D pentru proiectul meu anterior; aici puteți găsi fișierele complete de proiectare și procedura de asamblare. Alternativ, dacă nu aveți o imprimantă 3D, puteți construi, de asemenea, un braț robotizat simplu folosind cartoane, așa cum se arată în link. Presupunând că cumva ai pus mâna pe brațul tău robotizat, poți continua proiectul.

Pasul 1: Diagrama circuitului

Diagrama circuitului
Diagrama circuitului

Diagrama completă a circuitului pentru acest braț robotizat bazat pe microcontroler PIC este prezentată mai jos. Schemele au fost desenate folosind EasyEDA.

Diagrama circuitului este destul de simplă; proiectul complet este alimentat de adaptorul de 12V. Acest 12V este apoi convertit la + 5V folosind două regulatoare de tensiune 7805. Unul este etichetat ca + 5V, iar celălalt este etichetat ca + 5V (2). Motivul pentru care există două regulatoare este că atunci când servo-ul se rotește, trage mult curent, ceea ce creează o cădere de tensiune. Această cădere de tensiune forțează PIC să se repornească singur, prin urmare nu putem opera atât PIC, cât și servomotorele pe aceeași șină + 5V. Deci, cel etichetat ca + 5V este utilizat pentru a alimenta microcontrolerul PIC, LCD și potențiometre și o ieșire separată a regulatorului care este etichetată ca + 5V (2) este utilizată pentru alimentarea servomotorelor.

Cei cinci pini de ieșire ai potențiometrelor care furnizează o tensiune variabilă de la 0V la 5V sunt conectați la pinii analogici An0 la AN4 ai PIC. Deoarece planificăm să folosim temporizatoare pentru a genera PWM, servomotorele pot fi conectate la orice pin GPIO. Am selectat pinii de la RD2 la RD6 pentru servomotori, dar poate fi orice GPIO la alegere.

Deoarece programul implică o mulțime de depanare, un ecran LCD de 16x2 este, de asemenea, interfațat cu portul B al PIC. Aceasta va afișa ciclul de funcționare al servomotorelor care sunt controlate. În afară de aceasta, am extins, de asemenea, conexiunile pentru toate pin-urile GPIO și analogice, doar în cazul în care ar trebui interfațați senzori în viitor. În cele din urmă, am conectat și pinul programatorului H1 pentru a programa direct PIC cu pickit3 folosind opțiunea de programare ICSP.

Pasul 2: Generarea semnalelor PWM pe pinul GPIO pentru controlul servomotorului

"încărcare =" leneș ">

Recomandat: