Cum să faci un braț robotizat DIY Arduino și Bluetooth controlat?

În secolul recent, robotica este cel mai emergent domeniu de cercetare. Roboții au preluat controlul a aproape tot ceea ce făceau oamenii. Putem vedea roboți autonomi care îndeplinesc diverse sarcini în societatea noastră. Există și niște roboți cu telecomandă care ne ajută să efectuăm diferite operațiuni. De la realizarea circuitelor Nano în domeniul ingineriei până la efectuarea operațiilor chirurgicale complexe din domeniul medical, roboții sunt mai fiabili decât ființele umane.



Braț robotizat

În acest proiect, vom face un braț robot care va fi controlat de un microcontroler Arduino. Acesta va fi controlat prin Bluetooth cu ajutorul unei aplicații de control de la distanță pentru Android.



Cum să controlați un braț robotizat folosind Arduino?

Acum, așa cum știm abstractul proiectului nostru. Permiteți-ne să adunăm mai multe informații despre circuit și să începem să construim un braț robot controlat prin Bluetooth și să îl controlăm prin Bluetooth.



Pasul 1: Colectarea componentelor

Cea mai bună abordare pentru a începe orice proiect este de a face o listă completă de componente. Acesta nu este doar un mod inteligent de a începe un proiect, ci ne scutește de multe inconveniente în mijlocul proiectului. O listă a componentelor acestui proiect este prezentată mai jos:



  • Transmițător serial Bluetooth fără fir HC-05
  • Adaptor 6V
  • Sârme jumper
  • Breadboard

Pasul 2: Studierea componentelor

Deoarece avem o listă completă a tuturor componentelor pe care le vom folosi, să trecem cu un pas înainte și să parcurgem un scurt studiu al tuturor componentelor.

Arduino Nano este o placă de microcontroler care efectuează diverse operațiuni în diferite circuite. Necesită o Codul C care spune tabloului ce sarcini să îndeplinească și cum. Are 13 pini I / O digitale, ceea ce înseamnă că putem opera 13 dispozitive diferite. Arduino Nano are exact aceeași funcționalitate ca Arduino Uno, dar într-o dimensiune destul de mică. Microcontrolerul de pe placa Arduino Nano este ATmega328p. Dacă doriți să controlați mai mult de 13 dispozitive, utilizați Arduino Mega.

Arduino Nano



Transmițător serial Bluetooth fără fir HC-05 : Avem nevoie de comunicații fără fir în acest proiect, așa că vom folosi tehnologia Bluetooth și pentru acel modul care va fi utilizat este HC-05. Acest modul are mai multe rate de transfer programabile, dar rata de transmisie implicită este de 9600 bps. Poate fi configurat ca master sau slave, în timp ce un alt modul HC-06 poate funcționa numai în modul slave. Acest modul are patru pini. Una pentru VCC (5V) și restul de trei pentru GND, TX și RX. Parola implicită a acestui modul este 1234 sau 0000 . Dacă vrem să comunicăm între două microcontrolere sau să comunicăm cu orice dispozitiv cu funcționalitate Bluetooth, cum ar fi un telefon sau un laptop HC-05, ne ajută să facem acest lucru. Mai multe aplicații Android sunt deja disponibile, ceea ce face acest proces mult mai ușor.

Modul Bluetooth HC-05

Un tipic Braț robotizat este alcătuit din mai multe segmente și are de obicei 6 articulații în el. Conține cel puțin 4 motoare pas cu pas care sunt controlate de computer. Motoarele pas cu pas sunt diferite de alte motoare de curent continuu. Se mișcă exact în trepte exacte. Aceste brațe robotizate sunt folosite pentru a efectua diverse operațiuni. Le putem opera manual printr-o telecomandă sau le putem programa să funcționeze autonom.

Braț robotizat.

Pasul 3: Asamblarea componentelor

Acum, după cum știm despre funcționarea tuturor componentelor principale utilizate. Să începem să le asamblăm și să realizăm un circuit pentru a construi un braț robot controlat de la distanță.

  1. .Atașați placa Arduino Nano pe panou. Arduino va fi alimentat prin firul pozitiv și negativ al adaptorului.
  2. Așezați și modulul Bluetooth pe panoul de verificare. Porniți modulul Bluetooth prin Arduino. Conectați pinul Tx al modulului Bluetooth la pinul Rx al plăcii Arduino Nan și conectați pinul Rx al modulului Bluetooth la pinul Tx al plăcii Arduino Nano.
  3. După cum știm că există 4 motoare pas cu pas. Fiecare are un nume tehnic. Ei sunt numiti, cunoscuti Cot , Umăr , Baza, și Gripper . Vcc-ul și masa tuturor motoarelor vor fi comune și conectate la pozitivul și negativul adaptorului de 6V. Pinul de semnal al tuturor celor patru motoare va fi conectat la pinul 5, pin6, pin9 și pin11 al Arduino Nano.
  4. Asigurați-vă că conexiunile pe care le-ați făcut sunt în conformitate cu următoarea schemă de circuit.

    Diagrama circuitului

Pasul 4: Noțiuni introductive despre Arduino

Dacă nu sunteți deja familiarizați cu Arduino IDE, nu vă faceți griji, deoarece o procedură pas cu pas pentru a configura și utiliza Arduino IDE cu o placă de microcontroler este explicată mai jos.

  1. Descărcați cea mai recentă versiune a Arduino IDE de la Arduino.
  2. Conectați placa Arduino Nano la laptop și deschideți panoul de control. Apoi, faceți clic pe Hardware și sunet . Acum, faceți clic pe Dispozitive și imprimante. Aici, găsiți portul la care este conectată placa de microcontroler. În cazul meu este COM14 dar este diferit pe diferite computere.

    Găsirea portului

  3. Faceți clic pe meniul Instrument și setați placa la Arduino Nano din meniul derulant.

    Placă de setare

  4. În același meniu Tool, setați portul la numărul de port pe care l-ați observat anterior în Dispozitive și imprimante .

    Setarea portului

  5. În același meniu Instrument, setați procesorul la ATmega328P (Old Bootloader).

    Procesor

  6. Pentru a scrie cod pentru a acționa servomotorele, avem nevoie de o bibliotecă specială care să ne ajute să scriem mai multe funcții pentru servomotorii. Această bibliotecă este atașată împreună cu codul, în linkul de mai jos. Pentru a include biblioteca, faceți clic pe Sketch> Include Library> Add ZIP. Bibliotecă.

    Includeți biblioteca

  7. Descărcați codul atașat mai jos și lipiți-l în ID-ul dvs. Arduino. Faceți clic pe încărcați butonul pentru a arde codul de pe placa de microcontroler.

    Încărcare

Pentru a descărca codul, Click aici.

Pasul 5: Descărcarea aplicației

Deoarece acum am asamblat întregul circuit și am încărcat codul pe placa microcontrolerului. permite descărcarea unei aplicații mobile care va funcționa ca o telecomandă pentru brațul robotizat. O aplicație gratuită este disponibilă pe magazinul Google Play. Numele aplicației este Controlul robotului cu braț mic . Pentru a face o conexiune Bluetooth, activați Bluetooth de pe mobil. Accesați setările și asociați telefonul mobil cu modulul HC-05. După ce faceți acest lucru, apăsați butonul Bluetooth din aplicație. Dacă devine verde, înseamnă că aplicația este acum conectată și gata să acționeze brațul robotizat. Există glisante pentru a seta să acționeze brațul robot după cum doriți.

Aplicație

Pasul 6: Înțelegerea codului

Codul este bine comentat și ușor de înțeles. Cu toate acestea, este explicat pe scurt mai jos.

1. La început, este inclusă o bibliotecă pentru a scrie un cod de operare a servomotorelor. O altă bibliotecă matematică este inclus pentru a efectua diferite operații matematice în cod. Patru obiecte sunt, de asemenea, inițializate pentru a fi utilizate pentru cele patru servo-motoare.

#include // arduino library #include // standard c library #define PI 3.141 Servo baseServo; Servo umărServo; Cot ServoServo; Servo gripperServo; comanda int;

2. Apoi se declară o structură care ia valori pentru servomotorele de bază, umăr și cot.

struct jointAngle {// declairing a structure int base; int umăr; int cot; };

3. După aceasta, unele variabile sunt inițializate pentru a stoca aderența dorită, întârzierea și poziția servomotorului. viteza este setată să fie 15 și un obiect este făcut să ia valoarea unghiului din structură.

int doritGrip; int gripperPos; int doritDelay; int servoSpeed ​​= 15; int gata = 0; struct jointAngle unghiul dorit; // unghiurile dorite ale servo-urilor

Patru. configurare nulă () este o funcție care este utilizată pentru a seta pinii Arduino ca INPUT sau OUTPUT. Aici, în această funcție, am declarat că pinul motoarelor va fi conectat la pinii Arduino. De asemenea, se asigură că Arduino nu citește prea mult timp intrarea în serie. Poziția inițială și rata de transmisie sunt, de asemenea, setate în această funcție. Baud Rate este viteza cu care placa microcontrolerului va comunica cu servo-urile și modulul Bluetooth atașat.

void setup () {Serial.begin (9600); baseServo.attach (9); // atașează servo-ul de bază pe pinul 9 la obiectul servo shoulderServo.attach (10); // atașează servo umăr pe pinul 9 la obiectul servo cotulServo.attach (11); // atașează servo cot la pinul 9 la dispozitivul de prindere a obiectului servoServo.attach (6); // atașează servo gripper pe pinul 9 la obiectul servo Serial.setTimeout (50); // asigură că arduino nu citește serialul prea mult timp Serial.println („pornit”); baseServo.write (90); // pozițiile inițiale ale servoselor shoulderServo.write (150); elbowServo.write (110); gata = 0; }

5. servoParallelControl () este o funcție care este utilizată pentru a detecta poziția curentă a brațului robot și a o muta conform comenzii date prin intermediul aplicației mobile. Dacă poziția actuală este mai mică decât cea reală, brațul se va deplasa în sus și invers. Această funcție va returna valoarea poziției curente și viteza servo.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // citiți poziția curentă int newPos = startPos; // int theSpeed ​​= viteza; // definiți unde este poziția în ceea ce privește comanda // dacă poziția curentă este mai mică decât cea reală în sus dacă (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); întârziere (theSpeed); retur 0; } else {return 1; }}

6. bucla nulă () este o funcție care rulează în mod repetat într-o buclă. Această funcție citește datele care vin în serie și stochează unghiul fiecărui servo în structură. Inițial, starea tuturor servo-urilor este setată la zero. Aici o funcție servoParallelControl () este apelat și parametrii sunt trecuți în el. această funcție va returna valoarea și va fi stocată într-o variabilă de stare.

bucla void () {if (Serial.available ()) {ready = 1; wantedAngle.base = Serial.parseInt (); wantedAngle.shoulder = Serial.parseInt (); wantedAngle.elbow = Serial.parseInt (); desiratGrip = Serial.parseInt (); doritDelay = Serial.parseInt (); if (Serial.read () == ' n') {// dacă ultimul octet este 'd', atunci opriți citirea și executați comanda 'd' înseamnă 'done' Serial.flush (); // ștergeți toate celelalte comenzi acumulate în buffer // trimiteți finalizarea comenzii Serial.print ('d'); }} int status1 = 0; int status2 = 0; int status3 = 0; int status4 = 0; int făcut = 0; while (gata == 0 && gata == 1) {// mutați servo-ul în starea de poziție dorită1 = servoParallelControl (desitjatAngle.base, baseServo, doritDelay); status2 = servoParallelControl (unghiul dorit. umăr, umărServo, întârzierea dorită); status3 = servoParallelControl (doritAngle.elbow, elbowServo, doritDelay); status4 = servoParallelControl (desituratGrip, gripperServo, doritDelay); if (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {done = 1}} // sfârșitul timpului}

Acum, aceasta a fost întreaga procedură de realizare a unui braț robotizat. După ce ați ars codul și ați descărcat aplicația, robotul ar trebui să funcționeze perfect atunci când glisierele din aplicație sunt mutate. De asemenea, puteți programa brațul pentru a lucra autonom pentru a efectua sarcina dorită.