- Componente necesare
- Construcția brațului robotizat
- Diagrama circuitului și explicația de lucru:
- Cum se operează brațul robotizat:
În acest tutorial, vom proiecta un braț robotizat bazat pe Arduino Uno din niște cartoane și servomotoare. Întregul proces de construcție a fost explicat în detaliu mai jos. Aici, în acest proiect, Arduino Uno este programat să controleze servomotorii care servesc ca articulații ale brațului robotizat. Această configurație arată, de asemenea, ca o macara robotică sau o putem converti într-o macara făcând câteva modificări ușoare. Acest proiect va fi util pentru începătorii care doresc să învețe să dezvolte un robot simplu la un cost redus sau care doresc doar să învețe să lucreze cu motoarele Arduino și servo.
Acest braț robot Arduino poate fi controlat de patru potențiometri atașați la acesta, fiecare potențiometru este utilizat pentru a controla fiecare servo. Puteți muta aceste servouri rotind ghivecele pentru a alege un obiect, cu o anumită practică puteți alege și muta cu ușurință obiectul dintr-un loc în altul. Am folosit servomotoare cu cuplu redus aici, dar puteți folosi servomotoare mai puternice pentru a alege obiecte grele. Întregul proces a fost bine demonstrat în videoclip la final. Verificați și alte proiecte de robotică aici.
Componente necesare
- Arduino Uno
- Condensator 1000uF (4 bucăți)
- Condensator 100nF (4 bucăți)
- Servomotor (SG 90- patru bucăți)
- Pot 10K- Rezistor variabil (4 bucăți)
- Sursa de alimentare (5v - de preferință două)
Servo motor
Mai întâi vorbim puțin despre Servo Motors. Servomotorele sunt utilizate în principal atunci când este nevoie de mișcare sau poziție precisă a arborelui. Acestea nu sunt propuse pentru aplicații de mare viteză. Servomotorele sunt propuse pentru o viteză redusă, un cuplu mediu și o aplicare precisă a poziției. Deci, aceste motoare sunt cele mai bune pentru proiectarea brațului robotizat.
Servomotorele sunt disponibile la diferite forme și dimensiuni. Vom folosi servo-motoare mici, aici folosim patru servo SG90. Un servomotor va avea în principal fire, unul este pentru tensiune pozitivă, altul este pentru masă și ultimul este pentru setarea poziției. Firul roșu este conectat la alimentare, firul negru este conectat la masă și firul GALBEN este conectat la semnal. Parcurgeți acest tutorial de control al servomotorului utilizând Arduino pentru a afla mai multe despre acesta. În Arduino avem biblioteci predefinite pentru a controla Servo, deci este foarte ușor de controlat servo, pe care îl veți învăța împreună cu acest tutorial.
Construcția brațului robotizat
Luați o suprafață plană și stabilă, cum ar fi o masă sau o placă de carton tare. Apoi puneți un servomotor în mijloc și lipiți-l în poziție. Asigurați-vă că gradul de rotație este în zona prezentată în figură. Acest servo acționează ca bază a brațului.
Așezați o bucată mică de carton deasupra primului servo și apoi așezați al doilea servo pe această bucată de placă și lipiți-o în loc. Rotația servo trebuie să se potrivească cu diagrama.
Luați niște cartoane și tăiați-le în bucăți de 3cm x 11cm. Asigurați-vă că piesa nu este înmuiată. Tăiați o gaură dreptunghiulară la un capăt (lăsați 0,8 cm de jos) suficient pentru a se potrivi unui alt servo și la un alt capăt montați servo-angrenajul strâns cu șuruburi sau cu lipici. Apoi introduceți al treilea servo în prima gaură.
Acum tăiați o altă bucată de carton cu lungimile prezentate în figura de mai jos și lipiți o altă unealtă în partea de jos a acestei piese.
Acum lipiți al patrulea și ultimul servo la marginea celei de-a doua piese, așa cum se arată în figură.
Cu aceasta, două piese împreună arată.
Când atașăm această configurație la bază, ar trebui să arate,
Este aproape gata. Trebuie doar să facem cârligul pentru a apuca și alege obiectul ca o mână robotică. Pentru cârlig, tăiați încă două bucăți de carton cu lungimi de 1cmx7cm și 4cmx5cm. Lipiți-le împreună așa cum se arată în figură și lipiți treapta finală chiar la margine.
Montați această piesă deasupra și cu aceasta am terminat construirea brațului nostru robotizat.
Cu aceasta, designul nostru de bază al brațului robotizat a fost finalizat și așa ne-am construit brațul nostru robotizat cu cost redus. Acum, conectați circuitul în panou conform schemei de circuite.
Diagrama circuitului și explicația de lucru:
Conexiunea circuitului pentru Arduino Uno Robotic Arm este prezentată mai jos.
Tensiunea la rezistențele variabile nu este complet liniară; va fi unul zgomotos. Deci, pentru a filtra acest zgomot, condensatorii sunt așezați pe fiecare rezistor așa cum se arată în figură.
Acum vom alimenta tensiunea furnizată de aceste rezistențe variabile (tensiunea care reprezintă controlul poziției) în canalele ADC ale Arduino. Pentru aceasta vom folosi patru canale ADC ale UNO de la A0 la A3. După inițializarea ADC, vom avea valoarea digitală a poturilor care reprezintă poziția necesară utilizatorului. Vom lua această valoare și o vom asorta cu poziția servo.
Arduino are șase canale ADC. Am folosit patru pentru brațul nostru robotizat. UNO ADC are o rezoluție de 10 biți, deci valorile întregi variază de la 0-1023 (2 ^ 10 = 1024 valori). Aceasta înseamnă că va mapa tensiunile de intrare între 0 și 5 volți în valori între 0 și 1023. Deci, pentru fiecare (5/1024 = 4,9mV) pe unitate. Aflați mai multe despre maparea nivelurilor de tensiune folosind canalele ADC din Arduino aici.
Acum, pentru ca UNO să convertească semnalul analogic în semnal digital, trebuie să folosim canalul ADC al Arduino Uno, cu ajutorul funcțiilor de mai jos:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (biți);
Canalele Arduino ADC au o valoare de referință implicită de 5V. Aceasta înseamnă că putem oferi o tensiune maximă de intrare de 5V pentru conversia ADC la orice canal de intrare. Deoarece unii senzori furnizează tensiuni de la 0-2,5V, deci cu o referință de 5V, obținem o precizie mai mică, deci avem o instrucțiune care ne permite să schimbăm această valoare de referință. Deci, pentru schimbarea valorii de referință, avem „analogReference ();”
În mod implicit, obținem rezoluția maximă ADC a plăcii, care este de 10 biți, această rezoluție poate fi modificată folosind instrucțiuni („analogReadResolution (biți);”).
În circuitul nostru manual Robotic, am lăsat această tensiune de referință la valoarea implicită, astfel încât să putem citi valoarea de pe canalul ADC apelând direct funcția „analogRead (pin);”, aici „pin” reprezintă pinul în care am conectat semnalul analogic, să spunem vrem să citim „A0”. Valoarea de la ADC poate fi stocată într-un număr întreg ca int SENSORVALUE0 = analogRead (A0); .
Acum să vorbim despre SERVO, Arduino Uno are o caracteristică care ne permite să controlăm poziția servo oferind doar valoarea gradului. Spuneți dacă vrem ca servo să fie la 30, putem reprezenta direct valoarea din program. Fișierul antet SERVO ( Servo.h ) se ocupă de toate calculele raportului de taxă intern.
#include
Aici prima declarație reprezintă fișierul antet pentru controlul SERVO MOTOR. A doua afirmație este denumirea servo; îl lăsăm la fel de servo0 pe măsură ce vom folosi patru. A treia afirmație afirmă unde este conectat pinul de semnal servo; acesta trebuie să fie un pin PWM. Aici folosim PIN3 pentru primul servo. A patra afirmație oferă comenzi pentru poziționarea servomotorului în grade. Dacă i se dă 30, servomotorul se rotește cu 30 de grade.
Acum, avem poziția servo SG90 de la 0 la 180, iar valorile ADC sunt de la 0-1023. Vom folosi o funcție specială care se potrivește automat cu ambele valori.
sensorvalue0 = hartă (sensorvalue0, 0, 1023, 0, 180);
Această declarație mapează ambele valori automat și stochează rezultatul în întregul „servovalue0” .
Așa am controlat Servo-urile în proiectul nostru Robotic Arm folosind Arduino. Verificați codul complet de mai jos.
Cum se operează brațul robotizat:
Există patru oale furnizate utilizatorului. Și prin rotirea acestor patru poturi, oferim tensiune variabilă la canalele ADC ale UNO. Deci valorile digitale ale Arduino sunt sub controlul utilizatorului. Aceste valori digitale sunt mapate pentru a regla poziția servomotorului, prin urmare poziția servo este controlată de utilizator și prin rotirea acestor vase utilizatorul poate deplasa articulațiile brațului robotizat și poate alege sau apuca orice obiect.