Cuprins:

Robot biped controlat Arduino: 13 pași (cu imagini)
Robot biped controlat Arduino: 13 pași (cu imagini)

Video: Robot biped controlat Arduino: 13 pași (cu imagini)

Video: Robot biped controlat Arduino: 13 pași (cu imagini)
Video: #robot #humanoid #Arduino My humanoid robot inmoov working on voice commands 2024, Noiembrie
Anonim
Image
Image
Robot controlat biped Arduino
Robot controlat biped Arduino
Robot controlat biped Arduino
Robot controlat biped Arduino

Proiecte Fusion 360 »

Am fost întotdeauna intrigat de roboți, în special de genul care încearcă să imite acțiunile umane. Acest interes m-a determinat să încerc să proiectez și să dezvolt un robot biped care să poată imita mersul și alergatul uman. În acest Instructable, vă voi arăta designul și asamblarea robotului biped.

Obiectivul principal în timpul construirii acestui proiect a fost de a face sistemul cât mai robust posibil, astfel încât, în timp ce experimentam diverse mersuri de mers pe jos și alergare, nu ar trebui să mă îngrijorez în mod constant de defectarea hardware-ului. Acest lucru mi-a permis să împing hardware-ul la limita sa. Un obiectiv secundar a fost acela de a face bipedul relativ scăzut folosind piese hobby ușor disponibile și imprimarea 3D, lăsând loc pentru îmbunătățiri și extinderi ulterioare. Aceste două obiective combinate oferă o bază solidă pentru efectuarea diferitelor experimente, permițându-i să dezvolte bipedul la cerințe mai specifice.

Continuă pentru a-ți crea propriul robot biped controlat de Arduino și votează în „Concursul Arduino” dacă ți-a plăcut proiectul.

Pasul 1: Procesul de proiectare

Proces de design
Proces de design
Proces de design
Proces de design
Proces de design
Proces de design

Picioarele umanoide au fost proiectate în software-ul de modelare 3D Fusion 360 pentru Autodesk. Am început prin importarea servomotorelor în design și am construit picioarele în jurul lor. Am proiectat consolele pentru servomotor care oferă un al doilea punct de pivot diametral opus arborelui servomotorului. Având arbori duali la fiecare capăt al motorului conferă stabilitate structurală proiectării și elimină orice înclinare care poate apărea atunci când picioarele sunt puse să suporte o anumită sarcină. Legăturile au fost proiectate pentru a ține un lagăr, în timp ce suporturile au folosit un șurub pentru arbore. Odată ce legăturile au fost montate pe arbori folosind o piuliță, rulmentul ar oferi un punct de pivotare neted și robust pe partea opusă a arborelui servomotorului.

Un alt obiectiv în timpul proiectării bipedului a fost să păstreze modelul cât mai compact posibil pentru a utiliza la maximum cuplul oferit de servo-motoare. Dimensiunile legăturilor au fost realizate pentru a obține o gamă largă de mișcare, reducând în același timp lungimea totală. Făcându-le prea scurte, consolele se vor ciocni, reducând gama de mișcare și făcând-o prea lungă, ar exercita un cuplu inutil asupra dispozitivelor de acționare. În cele din urmă, am proiectat corpul robotului pe care s-ar monta Arduino și alte componente electronice.

Notă: piesele sunt incluse într-unul din pașii următori.

Pasul 2: Rolul Arduino

Rolul Arduino
Rolul Arduino

Un Arduino Uno a fost utilizat în acest proiect. Arduino a fost responsabil să calculeze căile de mișcare ale diferitelor mersuri care au fost testate și a instruit dispozitivele de acționare să se deplaseze la unghiuri precise la viteze precise pentru a crea o mișcare lină de mers. Un Arduino este o alegere excelentă pentru dezvoltarea de proiecte datorită versatilității sale. Oferă o grămadă de pini IO și oferă, de asemenea, interfețe precum serial, I2C și SPI pentru a comunica cu alte microcontrolere și senzori. Arduino oferă, de asemenea, o platformă excelentă pentru prototipare și testare rapidă și oferă, de asemenea, dezvoltatorilor spațiu pentru îmbunătățiri și extindere. În acest proiect, alte versiuni vor include o unitate de măsurare inerțială pentru procesarea mișcării, cum ar fi detectarea căderii și locomoția dinamică pe teren neuniform și un senzor de măsurare a distanței pentru a evita obstacolele.

Arduino IDE a fost utilizat pentru acest proiect. (Arduino oferă, de asemenea, un IDE bazat pe web)

Notă: Programele pentru robot pot fi descărcate de la unul dintre pașii următori.

Pasul 3: Materiale necesare

Materiale necesare
Materiale necesare
Materiale necesare
Materiale necesare
Materiale necesare
Materiale necesare
Materiale necesare
Materiale necesare

Iată lista tuturor componentelor și pieselor necesare pentru a vă crea propriul robot bipedal Arduino. Toate piesele ar trebui să fie disponibile în mod obișnuit și ușor de găsit.

ELECTRONICĂ:

Arduino Uno x 1

Servomotor Towerpro MG995 x 6

Perfboard (dimensiune similară cu Arduino)

Pini antet masculin și feminin (aproximativ 20 din fiecare)

Sârme jumper (10 bucăți)

MPU6050 IMU (opțional)

Senzor cu ultrasunete (opțional)

HARDWARE:

Rulment pentru skateboard (8x19x7mm)

Piulițe și șuruburi M4

Filament pentru imprimantă 3D (în cazul în care nu dețineți o imprimantă 3D, ar trebui să existe o imprimantă 3D într-un spațiu de lucru local sau tipăririle pot fi făcute online la prețuri destul de ieftine)

Cu excepția imprimantei Arduino și 3D, costul total al acestui proiect este de 20 USD.

Pasul 4: Părți imprimate 3D

Piese imprimate 3D
Piese imprimate 3D
Piese imprimate 3D
Piese imprimate 3D
Piese imprimate 3D
Piese imprimate 3D
Piese imprimate 3D
Piese imprimate 3D

Părțile necesare pentru acest proiect trebuiau să fie proiectate la comandă, de aceea o imprimantă 3D a fost utilizată pentru a le imprima. Imprimările au fost realizate la 40% umplutură, 2 perimetre, duză de 0,4 mm și o înălțime a stratului de 0,1 mm cu PLA, culoarea la alegere. Mai jos puteți găsi lista completă a pieselor și STL-urile pentru a imprima propria versiune.

Notă: De aici înainte, părțile vor fi menționate folosind numele din listă.

  • suport pentru picior x 1
  • oglindă servomotor picior x 1
  • suport pentru genunchi x 1
  • oglindă servomotor genunchi x 1
  • suport pentru picior x 1
  • oglindă servomotor picior x 1
  • biela x 2
  • legătură servo claxon x 2
  • picior de legătură x 2
  • pod x 1
  • suport electronic x 1
  • distanțier electronic x 8 (opțional)
  • spațiu pentru servocornă x 12 (opțional)

În total, cu excepția distanțierilor, există 14 părți. Timpul total de imprimare este de aproximativ 20 de ore.

Pasul 5: Pregătirea parantezelor servo

Pregătirea parantezelor servo
Pregătirea parantezelor servo
Pregătirea parantezelor servo
Pregătirea parantezelor servo
Pregătirea parantezelor servo
Pregătirea parantezelor servo

Odată ce toate piesele sunt tipărite, puteți începe prin configurarea servomotorelor și a consolelor servo. Mai întâi împingeți un rulment în suportul pentru servodirecție. Potrivirea ar trebui să fie strânsă, dar aș recomanda să șlefuiți puțin suprafața interioară a găurii în loc să forțați rulmentul, ceea ce poate risca să rupă piesa. Apoi treceți un șurub M4 prin gaură și strângeți-l cu o piuliță. Apoi, apucați piciorușul și atașați un claxon servo circular cu ajutorul șuruburilor furnizate. Atașați legătura piciorului la suportul pentru servodirecția genunchiului folosind șuruburile pe care le veți folosi pentru a atașa și servomotorul. Asigurați-vă că ați aliniat motorul astfel încât arborele să fie pe aceeași parte a șurubului pe care l-ați atașat mai devreme. În cele din urmă, fixați servo-ul cu restul de piulițe și șuruburi.

Faceți același lucru cu suportul servo pentru șold și suportul servo pentru picior. Cu aceasta, ar trebui să aveți trei servomotor și consolele corespunzătoare.

Notă: ofer instrucțiuni pentru construirea unui picior, celălalt este pur și simplu oglindit.

Pasul 6: Realizarea pieselor de legătură

Realizarea pieselor de legătură
Realizarea pieselor de legătură
Realizarea pieselor de legătură
Realizarea pieselor de legătură
Realizarea pieselor de legătură
Realizarea pieselor de legătură

Odată ce parantezele sunt asamblate, începeți să creați legăturile. Pentru a face legătura lagărului, șlefuiți din nou ușor suprafața interioară a găurilor pentru lagăr, apoi împingeți lagărul în gaura de pe ambele părți. Asigurați-vă că împingeți rulmentul până când o parte este la același nivel. Pentru a construi legătura claxonului servo, apucați două claxoane servo circulare și șuruburile furnizate. Așezați coarnele pe imprimarea 3D și aliniați găurile, apoi înșurubați cornul pe imprimarea 3D atașând șurubul de pe partea de imprimare 3D. Vă recomandăm să folosiți un distanțier servo-corn imprimat 3D pentru aceste șuruburi. Odată ce legăturile sunt construite, puteți începe asamblarea piciorului.

Pasul 7: Asamblarea picioarelor

Asamblarea picioarelor
Asamblarea picioarelor
Asamblarea picioarelor
Asamblarea picioarelor
Asamblarea picioarelor
Asamblarea picioarelor
Asamblarea picioarelor
Asamblarea picioarelor

Odată ce legăturile și parantezele sunt asamblate, le puteți combina pentru a construi piciorul robotului. În primul rând, utilizați legătura servo claxon pentru a atașa consola servo pentru șold și suportul pentru servodirecție. Notă: Nu înșurubați claxonul la servo, deoarece există o etapă de configurare în etapa următoare și va fi un inconvenient dacă claxonul ar fi înșurubat pe servomotor.

Pe partea opusă montați legătura lagărului pe șuruburile proeminente cu piulițe. În cele din urmă, atașați suportul pentru servo picior introducând șurubul proeminent prin lagărul de pe suportul pentru servodirecție. Și fixați arborele servo la claxonul servo conectat la suportul pentru servodirecția genunchiului de pe cealaltă parte. Aceasta poate fi o sarcină dificilă și aș recomanda o a doua pereche de mâini pentru asta.

Repetați pașii pentru celălalt picior. Utilizați imaginile atașate la fiecare pas ca referință.

Pasul 8: PCB și cablare personalizate

PCB și cablare personalizate
PCB și cablare personalizate
PCB și cablare personalizate
PCB și cablare personalizate
PCB și cablare personalizate
PCB și cablare personalizate

Acesta este un pas opțional. Pentru a face cablarea mai bună, am decis să fac un PCB personalizat folosind placa de perfecție și pinii de antet. PCB conține porturi pentru conectarea directă a firelor servomotorului. În plus, am lăsat și porturi suplimentare în cazul în care doream să mă extind și să adaug și alți senzori, cum ar fi unitățile de măsurare inerțială sau senzorii de distanță cu ultrasunete. De asemenea, conține un port pentru sursa externă de alimentare necesară pentru alimentarea servomotorelor. O conexiune jumper este utilizată pentru a comuta între USB și alimentare externă pentru Arduino. Montați Arduino și PCB pe ambele părți ale suportului electronic folosind șuruburi și distanțiere imprimate 3D.

Notă: Asigurați-vă că deconectați jumperul înainte de a conecta Arduino la computer prin USB. Dacă nu faceți acest lucru, se poate deteriora Arduino.

Dacă decideți să nu utilizați PCB și, în schimb, să utilizați o placă de programe, iată conexiunile servo:

  • Șoldul stâng >> pinul 9
  • Șoldul drept >> pinul 8
  • Genunchiul stâng >> pinul 7
  • Genunchiul drept >> pinul 6
  • Piciorul stâng >> pinul 5
  • Piciorul drept >> pinul 4

Dacă decideți să faceți PCB să urmați aceeași ordine ca mai sus, utilizând porturile de pe PCB de la dreapta la stânga cu portul IMU orientat în sus. Și utilizați fire jumper de la masculin la feminin pentru a conecta PCB-ul la Arduino folosind numerele de pin de mai sus. Asigurați-vă că conectați și pinul de masă și creați același potențial de sol și pinul Vin pentru când decideți să îl rulați fără alimentare USB.

Pasul 9: Asamblarea corpului

Asamblarea Corpului
Asamblarea Corpului
Asamblarea Corpului
Asamblarea Corpului
Asamblarea Corpului
Asamblarea Corpului

Odată ce cele două picioare și electronica sunt asamblate, combinați-le împreună pentru a construi corpul robotului. Utilizați piesa de punte pentru a lega cele două picioare între ele. Utilizați aceleași orificii de montare pe suportul servo pentru șold și piulițe și șuruburi care țin servomotorul. În cele din urmă, conectați suportul electronic la pod. Aliniați orificiile de pe punte și suportul electronic și utilizați piulițe și șuruburi M4 pentru a realiza îmbinarea.

Consultați imaginile atașate pentru ajutor. Cu aceasta, ați finalizat construirea hardware a robotului. Apoi, să sărim în software și să aducem robotul la viață.

Pasul 10: Configurare inițială

Configurare inițială
Configurare inițială
Configurare inițială
Configurare inițială
Configurare inițială
Configurare inițială

Ceea ce am observat în timpul construirii acestui proiect este că servomotorele și claxoanele nu trebuie să se alinieze perfect pentru a rămâne relativ paralele. Acesta este motivul pentru care „poziția centrală” a fiecărui servomotor trebuie reglată manual pentru a se alinia cu picioarele. Pentru a realiza acest lucru, scoateți claxoanele servo din fiecare servo și rulați schița initial_setup.ino. Odată ce motoarele s-au așezat în poziția centrală, reatașați coarnele astfel încât picioarele să fie perfect drepte și piciorul să fie perfect paralel cu solul. Dacă acesta este cazul, aveți noroc. Dacă nu deschideți fișierul constants.h găsit în fila alăturată și modificați valorile servo offset (liniile 1-6) până când picioarele sunt perfect aliniate și piciorul este plat. Joacă-te cu valorile și vei avea o idee despre ceea ce este necesar în cazul tău.

Odată ce constantele au fost setate, observați aceste valori, deoarece vor fi necesare mai târziu.

Consultați imaginile pentru ajutor.

Pasul 11: Un pic despre cinematică

Un pic despre cinematică
Un pic despre cinematică
Un pic despre cinematică
Un pic despre cinematică
Un pic despre cinematică
Un pic despre cinematică

Pentru a face bipedul să efectueze acțiuni utile, cum ar fi alergarea și mersul, diferitele mersuri trebuie să fie programate sub formă de căi de mișcare. Căile de mișcare sunt căi de-a lungul cărora efectorul final (picioarele, în acest caz) circulă de-a lungul. Există două modalități de a realiza acest lucru:

  1. O abordare ar fi alimentarea unghiurilor articulare ale diferitelor motoare într-o manieră cu forță brută. Această abordare poate fi consumatoare de timp, plictisitoare și, de asemenea, plină de erori, deoarece judecata este pur vizuală. În schimb, există un mod mai inteligent de a obține rezultatele dorite.
  2. A doua abordare se învârte în jurul alimentării coordonatelor efectorului final în locul tuturor unghiurilor articulare. Aceasta este ceea ce se numește cinematică inversă. Utilizatorul introduce coordonatele și unghiurile articulațiilor se ajustează pentru a poziționa efectorul final la coordonatele specificate. Această metodă poate fi considerată ca o cutie neagră care ia ca intrări o coordonată și scoate unghiurile articulare. Pentru cei care sunt interesați de modul în care au fost dezvoltate ecuațiile trigonometrice ale acestei cutii negre, se poate uita la diagrama de mai sus. Pentru cei care nu sunt interesați, ecuațiile sunt deja programate și pot fi utilizate utilizând funcția pos care ia ca intrare x, z și ieșire trei unghiuri corespunzătoare motoarelor.

Programul care conține aceste funcții poate fi găsit la pasul următor.

Pasul 12: Programarea Arduino

Programarea Arduino
Programarea Arduino
Programarea Arduino
Programarea Arduino

Înainte de a programa Arduino, trebuie făcute ușoare modificări ale fișierului. Îți amintești constantele pe care ți le-am cerut să scrii o notă? Modificați aceleași constante la valorile setate în fișierul constants.h.

Notă: Dacă ați utilizat desenele furnizate în acest manual, nu aveți nimic de schimbat. În cazul în care sunt unii dintre voi care și-au făcut propriile modele, va trebui să schimbați câteva valori împreună cu compensările. Constanta l1 măsoară distanța dintre pivotul șoldului și pivotul genunchiului. Constanta l2 măsoară distanța dintre pivotul genunchiului și pivotul gleznei. Deci, dacă v-ați proiectat propriul model, măsurați aceste lungimi și modificați constantele. Ultimele două constante sunt utilizate pentru mers. Constanta stepClearance măsoară cât de înaltă se va ridica piciorul în timp ce vine înainte după un pas, iar stepHeight constant măsoară înălțimea de la sol la șold în timp ce face pași.

Odată ce toate constantele sunt modificate în funcție de nevoile dvs., puteți încărca programul principal. Programul principal inițializează robotul într-o poziție de mers și începe să facă pași înainte. Funcțiile pot fi modificate în funcție de nevoia dvs. de a explora diferitele mersuri, viteze și lungimi ale pasului pentru a vedea ce funcționează cel mai bine.

Pasul 13: Rezultate finale: Timp pentru experimentare

Rezultate finale: Timp de experimentare
Rezultate finale: Timp de experimentare
Rezultate finale: Timp de experimentare
Rezultate finale: Timp de experimentare
Rezultate finale: Timp de experimentare
Rezultate finale: Timp de experimentare

Bipedul poate face pași care variază de la 10 la 2 cm, fără a se răsturna. Viteza poate fi variată, menținând în același timp mersul echilibrat. Acest biped, combinat cu puterea Arduino, oferă o platformă robustă pentru a experimenta diverse alte mersuri și alte obiective, cum ar fi săriturile sau echilibrarea în timp ce lovesc o minge. V-aș recomanda să încercați să schimbați traseele de mișcare ale picioarelor pentru a vă crea propriile mersuri și pentru a descoperi modul în care diverse mersuri afectează performanța robotului. Senzori precum un IMU și senzor de distanță pot fi adăugați la sistem pentru a-și crește funcționalitățile, în timp ce senzorii de forță pot fi adăugați la picioare pentru a experimenta locomoția dinamică pe suprafețe inegale.

Sper că ți-a plăcut acest Instructable și este o inspirație suficientă pentru a-ți construi propria. Dacă ți-a plăcut proiectul, susține-l votând în „Concursul Arduino”.

Happy Making!

Concurs Arduino 2020
Concurs Arduino 2020
Concurs Arduino 2020
Concurs Arduino 2020

Premiul I la Concursul Arduino 2020

Recomandat: