Turinys:

3D spausdintas „Arduino“varomas keturkojis robotas: 13 žingsnių (su nuotraukomis)
3D spausdintas „Arduino“varomas keturkojis robotas: 13 žingsnių (su nuotraukomis)

Video: 3D spausdintas „Arduino“varomas keturkojis robotas: 13 žingsnių (su nuotraukomis)

Video: 3D spausdintas „Arduino“varomas keturkojis robotas: 13 žingsnių (su nuotraukomis)
Video: 3D Printed Arduino Skittles Sorter 2024, Lapkritis
Anonim
3D spausdintas „Arduino“varomas keturkojis robotas
3D spausdintas „Arduino“varomas keturkojis robotas
3D spausdintas „Arduino“varomas keturkojis robotas
3D spausdintas „Arduino“varomas keturkojis robotas
3D spausdintas „Arduino“varomas keturkojis robotas
3D spausdintas „Arduino“varomas keturkojis robotas

„Fusion 360“projektai »

Iš ankstesnių instrukcijų tikriausiai matote, kad mane labai domina robotiniai projektai. Po ankstesnio „Instructable“, kuriame sukūriau dvikojį robotą, nusprendžiau pabandyti sukurti keturkojį robotą, galintį imituoti tokius gyvūnus kaip šunys ir katės. Šioje instrukcijoje aš jums parodysiu keturkojo roboto dizainą ir surinkimą.

Pagrindinis tikslas kuriant šį projektą buvo padaryti sistemą kuo patvaresnę, kad eksperimentuodamas su įvairiais vaikščiojimo ir bėgimo judesiais man nereikėtų nuolat jaudintis dėl aparatūros gedimo. Tai leido man nustumti aparatūrą iki galo ir eksperimentuoti su sudėtingais žingsniais ir judesiais. Antrinis tikslas buvo padaryti, kad keturkojis būtų palyginti nebrangus, naudojant lengvai prieinamas pomėgių dalis ir 3D spausdinimą, kuris leido greitai sukurti prototipus. Šie du tikslai kartu suteikia tvirtą pagrindą įvairiems eksperimentams atlikti ir leidžia keturkojui sukurti konkretesnius reikalavimus, tokius kaip navigacija, kliūčių vengimas ir dinamiškas judėjimas.

Peržiūrėkite aukščiau pateiktą vaizdo įrašą, kad pamatytumėte greitą projekto demonstraciją. Toliau sukurkite savo „Arduino“varomą keturkojį robotą ir, jei jums patiko projektas, balsuokite „Make it Move Contest“.

1 žingsnis: apžvalga ir projektavimo procesas

Apžvalga ir projektavimo procesas
Apžvalga ir projektavimo procesas
Apžvalga ir projektavimo procesas
Apžvalga ir projektavimo procesas
Apžvalga ir projektavimo procesas
Apžvalga ir projektavimo procesas

Keturkojis buvo sukurtas naudojant nemokamą „Autodesk“modelio programinę įrangą „Fusion 360“. Aš pradėjau importuoti servo variklius į dizainą ir pastatiau aplink juos kojas ir kūną. 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 projektuojant keturkojį buvo išlaikyti modelį kuo kompaktiškesnį, kad būtų maksimaliai išnaudotas servo variklių sukimo momentas. 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. Aš taip pat palikau papildomų tvirtinimo taškų viršutiniame skydelyje, kad projektas būtų pritaikytas tolesniems patobulinimams. Kartą buvo galima pridėti jutiklius, tokius kaip atstumo jutikliai, fotoaparatai ar kiti įjungiami mechanizmai, tokie kaip robotų griebtuvai.

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

2 žingsnis: reikalingos medžiagos

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

Čia yra visų komponentų ir dalių, reikalingų jūsų „Arduino“varomam keturkojui robotui, sąrašas. Visos dalys turėtų būti paprastai prieinamos ir lengvai randamos vietinėse techninės įrangos parduotuvėse arba internete.

ELEKTRONIKA:

„Arduino Uno“x 1

„Towerpro MG995“servo variklis x 12

„Arduino“jutiklio skydas (rekomenduoju V5 versiją, bet turėjau V4 versiją)

Trumpieji laidai (10 vienetų)

MPU6050 IMU (neprivaloma)

Ultragarsinis jutiklis (neprivaloma)

Aparatūra:

Rutuliniai guoliai (8x19x7mm, 12 vnt.)

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)

Akrilo lakštai (4 mm)

ĮRANKIAI

3D spausdintuvas

Lazerinis pjoviklis

Didžiausia šio projekto kaina yra 12 servo variklių. Aš rekomenduoju pasirinkti vidutinės klasės ir aukštesnės klasės versiją, o ne naudoti pigius plastikinius, nes jie linkę lengvai sulūžti. Išskyrus įrankius, bendra šio projekto kaina yra maždaug 60 USD.

3 žingsnis: Skaitmeniniu būdu pagamintos dalys

Skaitmeniniu būdu pagamintos dalys
Skaitmeniniu būdu pagamintos dalys
Skaitmeniniu būdu pagamintos dalys
Skaitmeniniu būdu pagamintos dalys
Skaitmeniniu būdu pagamintos dalys
Skaitmeniniu būdu pagamintos dalys

Šiam projektui reikalingos dalys turėjo būti suprojektuotos pagal užsakymą, todėl joms kurti panaudojome skaitmeniniu būdu pagamintų dalių ir CAD galią. Dauguma dalių yra atspausdintos 3D, išskyrus keletą, kurios yra iškirptos lazeriu iš 4 mm akrilo. Atspaudai buvo pagaminti naudojant 40% užpildymą, 2 perimetrus, 0,4 mm antgalį ir 0,1 mm sluoksnio aukštį naudojant PLA. Kai kurioms dalims reikia atramų, nes jos yra sudėtingos formos su iškyšomis, tačiau atramos yra lengvai pasiekiamos ir jas galima pašalinti naudojant kai kuriuos pjaustytuvus. Galite pasirinkti savo siūlų spalvą. Žemiau galite rasti išsamų dalių sąrašą ir STL, kad išspausdintumėte savo versiją ir lazeriu pjaustytų dalių 2D dizainą.

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

3D spausdintos dalys:

  • klubo servo laikiklis x 2
  • klubo servo laikiklio veidrodis x 2
  • kelio servo laikiklis x 2
  • kelio servo laikiklio veidrodis x 2
  • guolio laikiklis x 2
  • guolio laikiklio veidrodis x 2
  • koja x 4
  • servo rago jungtis x 4
  • guolio jungtis x 4
  • arduino laikiklis x 1
  • atstumo jutiklio laikiklis x 1
  • L atrama x 4
  • guolio įvorė x 4
  • servo rago tarpiklis x 24

Lazeriu supjaustytos dalys:

  • servo laikiklio skydelis x 2
  • viršutinis skydelis x 1

Iš viso yra 30 dalių, kurias reikia atspausdinti 3D, neįskaitant įvairių tarpiklių, ir iš viso 33 skaitmeniniu būdu pagamintos dalys. Bendras spausdinimo laikas yra apie 30 valandų.

4 žingsnis: nuorodų paruošimas

Nuorodų paruošimas
Nuorodų paruošimas
Nuorodų paruošimas
Nuorodų paruošimas
Nuorodų paruošimas
Nuorodų paruošimas

Galite pradėti surinkimą, pradžioje nustatydami kai kurias dalis, todėl galutinis surinkimo procesas bus lengviau valdomas. Galite pradėti nuo nuorodos. Norėdami sukurti guolio jungtį, švelniai nušlifuokite vidinį guolio skylių paviršių, tada įstumkite guolį į skylę abiejuose galuose. Būtinai stumkite guolį, kol viena pusė bus lygi. Norėdami sukurti servo rago jungtį, patraukite du apskritus servo ragus ir kartu su jais esančius varžtus. Uždėkite ragus ant 3D spausdinimo ir sulygiuokite dvi skyles, o po to prisukite ragą prie 3D spaudinio, pritvirtindami varžtą iš 3D spausdinimo pusės. Turėjau naudoti kai kuriuos 3D spausdintus servo ragų tarpiklius, nes tiekiami varžtai buvo šiek tiek ilgi ir sukdami susikirs su servo variklio korpusu. Sukūrę nuorodas, galite pradėti montuoti įvairius laikiklius ir skliaustus.

Pakartokite tai visoms 4 abiejų tipų nuorodoms.

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

Norėdami nustatyti kelio servo laikiklį, tiesiog perkiškite 4 mm varžtą per skylę ir pritvirtinkite veržle. Tai veiks kaip antrinė variklio ašis. Iš klubo servo laikiklio du varžtus perkiškite per dvi skyles ir pritvirtinkite dar dviem veržlėmis. Tada paimkite kitą apskritą servo ragą ir pritvirtinkite jį prie šiek tiek pakeltos laikiklio dalies dviem varžtais, gautais kartu su ragais. Dar kartą rekomenduočiau naudoti servo rago tarpiklį, kad varžtai neišsikištų į servo tarpą. Galiausiai suimkite guolio laikiklio dalį ir įstumkite guolį į skylę. Kad gerai priglustų, vidinį paviršių gali tekti šiek tiek nušlifuoti. Tada stumkite guolio stūmoklį į guolį link to, kad guolio laikiklio dalis sulenktų.

Kurdami laikiklius, žiūrėkite aukščiau pridėtas nuotraukas. Pakartokite šį procesą likusiems skliausteliams. Veidrodžiai yra panašūs, tik viskas atspindėta.

6 žingsnis: kojų surinkimas

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

Surinkę visas nuorodas ir laikiklius, galite pradėti statyti keturias roboto kojas. Pradėkite pritvirtindami servoservus prie laikiklių naudodami 4 x M4 varžtus ir veržles. Būtinai sulygiuokite servo ašį su kitoje pusėje išsikišusiu varžtu.

Tada susiekite klubo servą su kelio servo, naudodami servo rago jungtį. Kol kas nenaudokite varžto ragui pritvirtinti prie servo variklio ašies, nes vėliau gali tekti pakoreguoti padėtį. Priešingoje pusėje veržlėmis pritvirtinkite guolių jungtį su dviem guoliais ant išsikišusių varžtų.

Pakartokite šį procesą likusiems trims kojoms, o keturkojų keturios kojos yra paruoštos!

7 žingsnis: Kūno surinkimas

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

Toliau galime sutelkti dėmesį į roboto kūno kūrimą. Kėbulas turi keturis servo variklius, kurie suteikia kojoms trečiąjį laisvės laipsnį. Pradėkite naudoti 4 x M4 varžtus ir kaiščius, kad pritvirtintumėte servo prie lazeriu supjaustyto servo laikiklio skydelio.

Pastaba: Įsitikinkite, kad servo sistema pritvirtinta taip, kad ašis būtų išorinėje detalės pusėje, kaip parodyta aukščiau esančiose nuotraukose. Pakartokite šį procesą likusiems trims servo varikliams, nepamiršdami orientacijos.

Tada pritvirtinkite L atramas abiejose skydo pusėse, naudodami dvi M4 veržles ir varžtus. Šis gabalas leidžia tvirtai pritvirtinti servo laikiklio skydą prie viršutinio skydo. Pakartokite šį procesą dar su dviem L atramomis ir antruoju servo laikiklio skydeliu, laikančiu antrą servo variklių rinkinį.

Kai L atramos yra vietoje, naudokite daugiau M4 veržlių ir varžtų, kad pritvirtintumėte servo laikiklio skydą prie viršutinio skydo. Pradėkite nuo išorinio veržlių ir varžtų rinkinio (priekyje ir gale). Centrinės veržlės ir varžtai taip pat laiko arduino laikiklio detalę. Keturiais veržlėmis ir varžtais pritvirtinkite arduino laikiklį iš viršaus ant viršutinio skydo ir sulygiuokite varžtus taip, kad jie taip pat eitų per L atramines angas. Norėdami paaiškinti, žiūrėkite aukščiau esančius paveikslėlius. Galiausiai įkiškite keturias veržles į servo laikiklio plokščių angas ir varžtais pritvirtinkite servo laikiklio plokštes prie viršutinio skydo.

8 žingsnis: sudėkite viską kartu

Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti

Surinkę kojas ir kūną, galite pradėti užbaigti surinkimo procesą. Pritvirtinkite keturias kojas prie keturių servo, naudodami servo ragus, kurie buvo pritvirtinti prie klubo servo laikiklio. Galiausiai naudokite guolių laikiklio dalis, kad paremtumėte priešingą klubo laikiklio ašį. Perduokite ašį per guolį ir varžtu pritvirtinkite ją savo vietoje. Pritvirtinkite guolių laikiklius prie viršutinio skydo dviem M4 veržlėmis ir varžtais.

Šiuo būdu keturių keturių aparatinės įrangos mazgas yra paruoštas.

9 žingsnis: laidai ir grandinė

Laidai ir grandinė
Laidai ir grandinė
Laidai ir grandinė
Laidai ir grandinė
Laidai ir grandinė
Laidai ir grandinė
Laidai ir grandinė
Laidai ir grandinė

Aš nusprendžiau naudoti jutiklio ekraną, kuris suteikė jungtis servo varikliams. Aš rekomenduočiau naudoti jutiklio skydą v5, nes jame yra išorinis maitinimo šaltinis. Tačiau tas, kurį naudojau, neturėjo šios galimybės. Atidžiau pažvelgęs į jutiklio ekraną, pastebėjau, kad jutiklio skydas energiją gauna iš „Arduino“įmontuoto 5 V kaiščio (tai yra siaubinga idėja, kai kalbama apie didelės galios servo variklius, nes rizikuojate sugadinti „Arduino“). Šios problemos sprendimas buvo sulenkti 5V kaištį ant jutiklio skydo, kad jis nebūtų prijungtas prie 5 V „Arduino“kaiščio. Tokiu būdu dabar galime tiekti išorinę energiją per 5 V kaištį, nepažeidžiant „Arduino“.

12 servo variklių signalinių kaiščių jungtys nurodytos žemiau esančioje lentelėje.

Pastaba: „Hip1Servo“reiškia servo, pritvirtintą prie kūno. „Hip2Servo“reiškia servo, pritvirtintą prie kojos.

1 koja (į priekį kairėn):

  • „Hip1Servo“>> 2
  • „Hip2Servo“>> 3
  • KneeServo >> 4

2 koja (į priekį dešinėn):

  • „Hip1Servo“>> 5
  • „Hip2Servo“>> 6
  • „KneeServo“>> 7

3 koja (kairė nugara):

  • „Hip1Servo“>> 8
  • „Hip2Servo“>> 9
  • 10. KneeServo >> 10

4 koja (nugara dešinėje):

  • „Hip1Servo“>> 11
  • „Hip2Servo“>> 12
  • KneeServo >> 13

10 veiksmas: pradinė sąranka

Pradiniai nustatymai
Pradiniai nustatymai
Pradiniai nustatymai
Pradiniai nustatymai

Prieš pradėdami programuoti sudėtingus žingsnius ir kitus judesius, turime nustatyti kiekvieno servo nulinį tašką. Tai suteikia robotui atskaitos tašką, kurį jis naudoja įvairiems judesiams atlikti.

Kad nepažeistumėte roboto, galite nuimti servo signalo raiščius. Tada įkelkite žemiau esantį kodą. Šis kodas nustato kiekvieną servo 90 laipsnių kampu. Kai servos pasiekia 90 laipsnių padėtį, galite iš naujo pritvirtinti jungtis taip, kad kojos būtų visiškai tiesios, o prie kūno pritvirtinta servo statmena keturkojo viršutiniam skydeliui.

Šiuo metu dėl servo ragų konstrukcijos kai kurios jungtys vis dar gali būti ne visiškai tiesios. Sprendimas yra sureguliuoti „zeroPositions“masyvą, esantį ketvirtoje kodo eilutėje. Kiekvienas skaičius žymi nulinę atitinkamo servo padėtį (tvarka yra tokia pati kaip tvarka, kuria prijungėte servo prie „Arduino“). Šiek tiek pakoreguokite šias vertes, kol kojos bus visiškai tiesios.

Pastaba: čia yra mano naudojamos vertės, nors šios vertės jums gali neveikti:

int zeroPozicijos [12] = {93, 102, 85, 83, 90, 85, 92, 82, 85, 90, 85, 90};

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 keturkojis atliktų naudingus veiksmus, tokius kaip bėgimas, ėjimas ir kiti judesiai, servos 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 įvedama kaip x, y, z, kuri yra galinio efektoriaus dešinioji vieta ir išleidžia tris variklius atitinkančius kampus.

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

12 žingsnis: keturkojo programavimas

Keturkojo programavimas
Keturkojo programavimas

Baigę prijungti ir inicijuoti, galite užprogramuoti robotą ir sukurti vėsius judesio kelius, kad robotas atliktų įdomias užduotis. Prieš tęsdami, pakeiskite 4 pridėto kodo eilutę į reikšmes, kurias nustatėte inicializavimo veiksme. Įkėlęs programą, robotas turėtų pradėti vaikščioti. Jei pastebite, kad kai kurios jungtys yra atvirkštinės, galite tiesiog pakeisti atitinkamą krypties reikšmę krypties masyve 5 eilutėje (jei ji yra 1, padarykite ją -1, o jei yra -1, padarykite ją 1).

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

Keturkojis robotas gali imtis nuo 5 iki 2 cm ilgio žingsnių. Greitis taip pat gali būti keičiamas išlaikant subalansuotą eiseną. Šis keturkojis suteikia tvirtą platformą eksperimentuoti su įvairiais kitais žingsniais ir kitais tikslais, pavyzdžiui, šokinėti ar atlikti užduotis. Rekomenduočiau pabandyti pakeisti kojų judesių kelius, kad sukurtumėte savo eiseną ir sužinotumėte, kaip įvairios eisenos veikia roboto našumą. Aš taip pat palikau kelis tvirtinimo taškus roboto viršuje papildomiems jutikliams, pvz., Atstumo matavimo jutikliams, skirtiems išvengti kliūčių, arba IMU, skirtiems dinamiškam žingsniui nelygiame reljefe. Taip pat būtų galima eksperimentuoti su papildoma rankena, pritvirtinta prie roboto viršaus, nes robotas yra labai stabilus ir tvirtas ir lengvai neapvirs.

Tikimės, kad jums patiko šis „Instructable“ir jis įkvėpė jus kurti savo.

Jei jums patiko projektas, palaikykite jį, atsisakydami balsavimo konkurse „Padaryk judėti“.

Laimingas kūrimas!

Konkursas „Padaryk tai judėti 2020“
Konkursas „Padaryk tai judėti 2020“
Konkursas „Padaryk tai judėti 2020“
Konkursas „Padaryk tai judėti 2020“

Antrasis prizas konkurse „Padaryk judėti 2020“

Rekomenduojamas: