Turinys:

„Arduino“valdomas robotas dvipusis: 13 žingsnių (su nuotraukomis)
„Arduino“valdomas robotas dvipusis: 13 žingsnių (su nuotraukomis)

Video: „Arduino“valdomas robotas dvipusis: 13 žingsnių (su nuotraukomis)

Video: „Arduino“valdomas robotas dvipusis: 13 žingsnių (su nuotraukomis)
Video: Perimetro sekimo testas Versija 1.5 2024, Lapkritis
Anonim
Image
Image
„Arduino“valdomas robotas dvikojis
„Arduino“valdomas robotas dvikojis
„Arduino“valdomas robotas dvikojis
„Arduino“valdomas robotas dvikojis

„Fusion 360“projektai »

Mane visada domino robotai, ypač tokie, kurie bando imituoti žmogaus veiksmus. Šis pomėgis paskatino mane sukurti ir sukurti dvikojį robotą, galintį imituoti žmogaus ėjimą ir bėgimą. Šioje instrukcijoje parodysiu roboto dvikoję konstrukciją ir surinkimą.

Pagrindinis tikslas kuriant šį projektą buvo padaryti sistemą kuo patvaresnę, kad eksperimentuodama su įvairiais vaikščiojimo ir bėgimo judesiais man nereikėtų nuolat jaudintis dėl aparatūros gedimo. Tai leido man perkelti aparatūrą iki ribos. Antrinis tikslas buvo padaryti biped santykinai nebrangią, naudojant lengvai prieinamas pomėgių dalis ir 3D spausdinimą, paliekant vietos tolesniam atnaujinimui ir išplėtimui. Šie du tikslai kartu sukuria tvirtą pagrindą įvairiems eksperimentams atlikti, leidžiant vienam išsivystyti į dvikampį pagal konkretesnius reikalavimus.

Toliau kurkite savo „Arduino“valdomą „Robotic Biped“ir atsisakykite balsavimo „Arduino“konkurse, jei jums patiko projektas.

1 žingsnis: projektavimo procesas

Projektavimo procesas
Projektavimo procesas
Projektavimo procesas
Projektavimo procesas
Projektavimo procesas
Projektavimo procesas

Humanoidinės kojos buvo sukurtos naudojant nemokamą „Autodesk“modelio programinę įrangą „Fusion 360“. Pradėjau importuoti servo variklius į dizainą ir pastatiau aplink juos kojas. Aš suprojektavau servo variklio laikiklius, kurie suteikia antrą pasukimo tašką, visiškai priešingą servo variklio velenui. Dvigubas velenas abiejuose variklio galuose suteikia konstrukcijai stabilumo ir pašalina bet kokį įstrižumą, kuris gali atsirasti, kai kojos yra priverstos atlaikyti apkrovą. Nuorodos buvo suprojektuotos laikyti guolį, o skliausteliuose velenui buvo naudojamas varžtas. Kai jungtys buvo pritvirtintos prie velenų naudojant veržlę, guolis užtikrintų lygų ir tvirtą sukimosi tašką priešingoje servo variklio veleno pusėje.

Kitas tikslas kuriant dvigalvį buvo išlaikyti modelį kuo kompaktiškesnį ir maksimaliai išnaudoti servo variklių sukimo momentą. Nuorodų matmenys buvo sukurti taip, kad būtų pasiektas didelis judesių diapazonas, kartu sumažinant bendrą ilgį. Padarius juos per trumpus, laikikliai susidurs, sumažės judesio amplitudė, o per ilgas - pavaroms sukels nereikalingą sukimo momentą. Galiausiai suprojektavau roboto korpusą, ant kurio bus sumontuoti „Arduino“ir kiti elektroniniai komponentai.

Pastaba: dalys yra įtrauktos į vieną iš šių veiksmų.

2 žingsnis: „Arduino“vaidmuo

Arduino vaidmuo
Arduino vaidmuo

Šiame projekte buvo naudojamas „Arduino Uno“. „Arduino“buvo atsakingas už įvairių išbandytų eisenų judėjimo takų apskaičiavimą ir nurodė pavaroms tiksliai judėti tiksliais kampais, kad būtų sukurtas sklandus ėjimo judesys. „Arduino“yra puikus pasirinkimas kuriant projektus dėl savo universalumo. Jame yra daugybė IO kaiščių, taip pat sąsajos, tokios kaip serijinis, I2C ir SPI, kad galėtų bendrauti su kitais mikrovaldikliais ir jutikliais. „Arduino“taip pat suteikia puikią platformą greitam prototipų kūrimui ir bandymui, taip pat suteikia kūrėjams galimybę tobulėti ir išplėsti. Į šį projektą kitos versijos apims inercinį matavimo įrenginį, skirtą judesiams apdoroti, pvz., Kritimo aptikimą ir dinamišką judėjimą nelygiame reljefe, ir atstumo matavimo jutiklį, kad būtų išvengta kliūčių.

Šiam projektui buvo naudojamas „Arduino IDE“. („Arduino“taip pat teikia žiniatinklio IDE)

Pastaba: roboto programas galima atsisiųsti vienu iš šių veiksmų.

3 žingsnis: reikalingos medžiagos

Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos

Čia yra visų sudedamųjų dalių ir dalių, reikalingų jūsų „Arduino“varomam dvikamieniam robotui pagaminti, sąrašas. Visos dalys turėtų būti lengvai prieinamos ir lengvai prieinamos.

ELEKTRONIKA:

„Arduino Uno“x 1

„Towerpro MG995“servo variklis x 6

„Perfboard“(panašaus dydžio kaip „Arduino“)

Vyriški ir moteriški antgaliai (maždaug po 20)

Trumpieji laidai (10 vienetų)

MPU6050 IMU (neprivaloma)

Ultragarsinis jutiklis (neprivaloma)

Aparatūra:

Riedlentės guolis (8x19x7mm)

M4 veržlės ir varžtai

3D spausdintuvo siūlas (jei neturite 3D spausdintuvo, 3D spausdintuvas turėtų būti vietinėje darbo vietoje arba atspaudus galima padaryti internetu pigiai)

Išskyrus „Arduino“ir 3D spausdintuvą, bendra šio projekto kaina yra 20 USD.

4 žingsnis: 3D spausdintos dalys

3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys

Šiam projektui reikalingos dalys turėjo būti suprojektuotos pagal užsakymą, todėl jas spausdinant buvo naudojamas 3D spausdintuvas. Atspaudai buvo padaryti naudojant 40% užpildymą, 2 perimetrus, 0,4 mm antgalį ir 0,1 mm sluoksnio aukštį su pasirinkta spalva PLA. Žemiau rasite visą dalių sąrašą ir STL, kad išspausdintumėte savo versiją.

Pastaba: nuo šiol dalys bus nurodytos naudojant sąraše esančius pavadinimus.

  • pėdų servo laikiklis x 1
  • kojų servo laikiklio veidrodėlis x 1
  • kelio servo laikiklis x 1
  • kelio servo laikiklio veidrodis x 1
  • pėdų servo laikiklis x 1
  • kojų servo laikiklio veidrodėlis x 1
  • guolio jungtis x 2
  • servo rago jungtis x 2
  • pėdos jungtis x 2
  • tiltas x 1
  • elektronikos laikiklis x 1
  • elektroninė tarpinė x 8 (neprivaloma)
  • servo rago vieta x 12 (neprivaloma)

Iš viso, be tarpiklių, yra 14 dalių. Bendras spausdinimo laikas yra apie 20 valandų.

5 žingsnis: Servo laikiklių paruošimas

Servo laikiklių paruošimas
Servo laikiklių paruošimas
Servo laikiklių paruošimas
Servo laikiklių paruošimas
Servo laikiklių paruošimas
Servo laikiklių paruošimas

Atspausdinę visas dalis, galite pradėti nuo servo ir servo laikiklių nustatymo. Pirmiausia įstumkite guolį į kelio servo laikiklį. Prigludimas turėtų būti tvirtas, tačiau rekomenduočiau šiek tiek nušlifuoti vidinį skylės paviršių, o ne priversti guolį, o tai gali sugadinti dalį. Tada perkiškite M4 varžtą per skylę ir priveržkite veržle. Tada paimkite kojelę ir pritvirtinkite prie jos apvalų servo ragą, naudodami pridedamus varžtus. Pritvirtinkite kojų jungtį prie kelio servo laikiklio varžtais, kuriuos taip pat naudosite servo varikliui pritvirtinti. Būtinai sulygiuokite variklį taip, kad velenas būtų toje pačioje varžto pusėje, kurią anksčiau pritvirtinote. Galiausiai užfiksuokite servo sistemą su likusiais veržlėmis ir varžtais.

Tą patį padarykite su klubo servo laikikliu ir kojų servo laikikliu. Tokiu atveju turėtumėte turėti tris servo variklius ir atitinkamus laikiklius.

Pastaba: Aš pateikiu instrukcijas, kaip pastatyti vieną koją, kita yra tiesiog veidrodinė.

6 žingsnis: nuorodų kūrimas

Nuorodų kūrimas
Nuorodų kūrimas
Nuorodų kūrimas
Nuorodų kūrimas
Nuorodų kūrimas
Nuorodų kūrimas

Surinkę laikiklius, pradėkite kurti nuorodas. Norėdami sukurti guolio jungtį, dar kartą lengvai nušlifuokite vidinį guolio skylių paviršių, tada įstumkite guolį į angą iš abiejų pusių. Būtinai stumkite guolį, kol viena pusė bus lygi. Norėdami sukurti servo rago jungtį, patraukite du apskritus servo ragus ir pridedamus varžtus. Uždėkite ragus ant 3D spausdinimo ir sulygiuokite skyles, po to prisukite ragą prie 3D spaudinio, pritvirtindami varžtą iš 3D spausdinimo pusės. Šiems varžtams rekomenduoju naudoti 3D spausdintą servo rago tarpiklį. Sukūrę nuorodas, galite pradėti surinkti koją.

7 žingsnis: kojų surinkimas

Kojų surinkimas
Kojų surinkimas
Kojų surinkimas
Kojų surinkimas
Kojų surinkimas
Kojų surinkimas
Kojų surinkimas
Kojų surinkimas

Surinkę nuorodas ir laikiklius, galite juos sujungti, kad sukurtumėte roboto koją. Pirmiausia naudokite servo rago saitą, kad sujungtumėte klubo servo laikiklį ir kelio servo laikiklį. Pastaba: dar neprisukite rago prie servo, nes kitame etape yra sąrankos etapas ir bus nepatogu, jei ragas bus prisuktas prie servo variklio.

Priešingoje pusėje pritvirtinkite guolių jungtį ant išsikišusių varžtų, naudodami veržles. Galiausiai pritvirtinkite pėdos servo laikiklį, įkišdami išsikišusį varžtą per kelio servo laikiklio guolį. Ir pritvirtinkite servo veleną prie servo rago, prijungto prie kelio servo laikiklio kitoje pusėje. Tai gali būti sudėtinga užduotis, todėl aš rekomenduočiau antrą rankų porą.

Pakartokite veiksmus kitai kojai. Kaip nuorodą naudokite prie kiekvieno žingsnio pridėtas nuotraukas.

8 veiksmas: pasirinktinis PCB ir laidai

Individualizuotos PCB ir laidai
Individualizuotos PCB ir laidai
Individualizuotos PCB ir laidai
Individualizuotos PCB ir laidai
Individualizuotos PCB ir laidai
Individualizuotos PCB ir laidai

Tai yra neprivalomas žingsnis. Norėdami, kad laidai būtų tvarkingesni, nusprendžiau pagaminti pasirinktinę PCB, naudodami perf plokštę ir antraštės kaiščius. PCB yra prievadai, skirti tiesiogiai prijungti servo variklio laidus. Be to, palikau papildomų prievadų, jei norėčiau išplėsti ir pridėti kitus jutiklius, tokius kaip inerciniai matavimo vienetai arba ultragarsiniai atstumo jutikliai. Jame taip pat yra išorinio maitinimo šaltinio prievadas, reikalingas servo varikliams maitinti. „Arduino“jungiklis perjungiamas iš USB į išorinį maitinimą ir jungiklis. Sumontuokite „Arduino“ir PCB prie abiejų elektronikos laikiklio pusių, naudodami varžtus ir 3D spausdinimo tarpiklius.

Pastaba: prieš prijungdami „Arduino“prie kompiuterio per USB, būtinai atjunkite trumpiklį. Jei to nepadarysite, galite sugadinti „Arduino“.

Jei nuspręsite nenaudoti PCB ir vietoj to naudoti duonos lentą, čia yra servo jungtys:

  • Kairysis klubas >> kaištis 9
  • Dešinysis klubas >> kaištis 8
  • Kairysis kelias >> kaištis 7
  • Dešinysis kelio >> kaištis 6
  • Kairė koja >> kaištis 5
  • Dešinė koja >> kaištis 4

Jei nuspręsite padaryti PCB laikydamiesi tos pačios tvarkos, kaip nurodyta aukščiau, naudodami PCB prievadus iš dešinės į kairę, IMU prievadą į viršų. Norėdami prijungti PCB prie „Arduino“naudodami įprastus kaiščių skaičius, naudokite įprastus trumpiklius nuo vyrų iki moterų. Taip pat būtinai prijunkite įžeminimo kaištį ir sukurkite tą patį įžeminimo potencialą ir „Vin“kaištį, kai nuspręsite jį paleisti be USB maitinimo.

9 žingsnis: Kūno surinkimas

Kūno surinkimas
Kūno surinkimas
Kūno surinkimas
Kūno surinkimas
Kūno surinkimas
Kūno surinkimas

Surinkę abi kojas ir elektroniką, sujunkite jas kartu, kad sukurtumėte roboto korpusą. Naudokite tiltelį, kad sujungtumėte abi kojas. Naudokite tas pačias tvirtinimo angas ant klubo servo laikiklio ir veržles bei varžtus, laikančius servo variklį. Galiausiai prijunkite elektronikos laikiklį prie tilto. Išdėstykite skylutes ant tilto ir elektronikos laikiklio ir sujungimui naudokite M4 veržles ir varžtus.

Pagalbos ieškokite pridėtose nuotraukose. Tai atlikę, baigėte techninę roboto konstrukciją. Toliau pereikime prie programinės įrangos ir prikelkime robotą gyvybei.

10 veiksmas: pradinė sąranka

Pradinė sąranka
Pradinė sąranka
Pradinė sąranka
Pradinė sąranka
Pradinė sąranka
Pradinė sąranka

Tai, ką pastebėjau kurdamas šį projektą, yra tai, kad servo varikliai ir ragai neturi būti tolygiai suderinti, kad liktų santykinai lygiagretūs. Štai kodėl kiekvieno servo variklio „centrinę padėtį“reikia rankiniu būdu sureguliuoti, kad ji atitiktų kojas. Norėdami tai padaryti, nuimkite servo ragus iš kiekvieno servo ir paleiskite eskizą initial_setup.ino. Varikliams nusistovėjus centrinėje padėtyje, vėl pritvirtinkite ragus taip, kad kojos būtų visiškai tiesios, o pėda - visiškai lygiagreti žemei. Jei taip yra, jums pasisekė. Jei ne, atidarykite failą constants.h, esantį gretimame skirtuke, ir pakeiskite servo poslinkio reikšmes (1-6 eilutės), kol kojos bus visiškai išlygintos ir pėda bus plokščia. Žaiskite su vertybėmis ir suprasite, kas yra būtina jūsų atveju.

Nustačius konstantas, atkreipkite dėmesį į šias vertes, nes jų prireiks vėliau.

Pagalbos ieškokite paveikslėliuose.

11 žingsnis: šiek tiek apie kinematiką

Šiek tiek apie kinematiką
Šiek tiek apie kinematiką
Šiek tiek apie kinematiką
Šiek tiek apie kinematiką
Šiek tiek apie kinematiką
Šiek tiek apie kinematiką

Kad dvigalvis galėtų atlikti naudingus veiksmus, tokius kaip bėgimas ir ėjimas, įvairios eisenos turi būti užprogramuotos judesio takais. Judėjimo keliai - tai keliai, kuriais eina galinis efektorius (šiuo atveju pėdos). Yra du būdai tai pasiekti:

  1. Vienas iš būdų būtų tiekti įvairių variklių sujungimo kampus brutalia jėga. Šis požiūris gali užtrukti daug laiko, varginantis ir pilnas klaidų, nes sprendimas yra tik vizualus. Vietoj to yra protingesnis būdas pasiekti norimų rezultatų.
  2. Antrasis metodas susijęs su galinio efektoriaus koordinačių padavimu, o ne visais jungties kampais. Tai vadinama atvirkštine kinematika. Vartotojas įveda koordinates, o jungties kampai sureguliuojami taip, kad galinis efektorius būtų išdėstytas nurodytomis koordinatėmis. Šis metodas gali būti laikomas juodąja dėžute, kuri kaip įvestį ima koordinatę ir parodo jungties kampus. Tiems, kurie domisi, kaip buvo sukurtos šios juodosios dėžės trigonometrinės lygtys, galite pažvelgti į aukščiau pateiktą diagramą. Tiems, kuriems tai neįdomu, lygtys jau yra užprogramuotos ir gali būti naudojamos naudojant poz funkciją, kuri kaip įvestis x, z ir išvedžioja tris variklius atitinkančius kampus.

Programą, kurioje yra šios funkcijos, rasite kitame žingsnyje.

12 žingsnis: „Arduino“programavimas

„Arduino“programavimas
„Arduino“programavimas
„Arduino“programavimas
„Arduino“programavimas

Prieš programuojant „Arduino“, reikia šiek tiek pakeisti failą. Pamenate konstantas, kurių prašiau nusirašyti? Pakeiskite tas pačias konstantas į reikšmes, kurias nustatėte faile constants.h.

Pastaba: jei naudojote šioje instrukcijoje pateiktus dizainus, nieko keisti neturite. Jei kai kurie iš jūsų sukūrė savo dizainą, turėsite pakeisti dar kelias vertes kartu su kompensavimais. Konstanta l1 matuoja atstumą tarp klubo ir kelio sukimosi. Konstanta l2 matuoja atstumą tarp kelio ir kulkšnies šarnyro. Taigi, jei sukūrėte savo modelį, išmatuokite šiuos ilgius ir pakeiskite konstantas. Eisenai naudojamos paskutinės dvi konstantos. „StepClearance“konstanta matuoja, kaip aukštai pėda pakils į priekį po žingsnio, o „stepHeight“konstanta matuoja aukštį nuo žemės iki klubo, atliekant žingsnius.

Pakeitus visas konstantas pagal jūsų poreikius, galite įkelti pagrindinę programą. Pagrindinė programa tiesiog inicijuoja robotą į vaikščiojimo poziciją ir pradeda žengti žingsnius į priekį. Funkcijas galima keisti pagal poreikį ištirti įvairius žingsnius, greitį ir žingsnių ilgį, kad pamatytumėte, kas veikia geriausiai.

13 žingsnis: Galutiniai rezultatai: laikas eksperimentuoti

Galutiniai rezultatai: laikas eksperimentuoti
Galutiniai rezultatai: laikas eksperimentuoti
Galutiniai rezultatai: laikas eksperimentuoti
Galutiniai rezultatai: laikas eksperimentuoti
Galutiniai rezultatai: laikas eksperimentuoti
Galutiniai rezultatai: laikas eksperimentuoti

Dvigalvis gali imtis veiksmų, kurių ilgis svyruoja nuo 10 iki 2 cm, neapvirstant. Greitis taip pat gali būti keičiamas išlaikant subalansuotą eiseną. Šis dvigalvis kartu su „Arduino“jėga suteikia tvirtą platformą eksperimentuoti su įvairiais kitais žingsniais ir kitais tikslais, tokiais kaip šokinėjimas ar balansavimas spardant kamuolį. Rekomenduočiau pabandyti pakeisti kojų judesių kelius, kad sukurtumėte savo eiseną ir sužinotumėte, kaip įvairios eisenos veikia roboto našumą. Prie sistemos galima pridėti jutiklių, tokių kaip IMU ir atstumo jutiklis, kad padidėtų jos funkcionalumas, o prie kojų galima pridėti jėgos jutiklių, kad būtų galima eksperimentuoti su dinamišku judėjimu ant nelygaus paviršiaus.

Tikimės, kad jums patiko šis „Instructable“ir pakanka įkvėpimo kurti savo. Jei jums patiko projektas, palaikykite jį, atmesdami balsavimą „Arduino“konkurse.

Laimingas kūrimas!

„Arduino“konkursas 2020 m
„Arduino“konkursas 2020 m
„Arduino“konkursas 2020 m
„Arduino“konkursas 2020 m

Pirmasis prizas „Arduino“konkurse 2020 m

Rekomenduojamas: