Turinys:

Bioinspired Robot Snake: 16 žingsnių (su nuotraukomis)
Bioinspired Robot Snake: 16 žingsnių (su nuotraukomis)

Video: Bioinspired Robot Snake: 16 žingsnių (su nuotraukomis)

Video: Bioinspired Robot Snake: 16 žingsnių (su nuotraukomis)
Video: Locomotion of a modular snake robot using bio-inspired controllers 2024, Liepa
Anonim
Image
Image

Pradėti šį projektą mane įkvėpė pamačius mokslinių vaizdo įrašų, kuriuose buvo užfiksuotos alpinistinės medžio gyvatės ir robotų unguriai. Tai pirmas mano bandymas ir robotų kūrimas naudojant serpantininį judėjimą, tačiau tai nebus paskutinis! Prenumeruokite „YouTube“, jei norite pamatyti būsimus įvykius.

Žemiau aš apibūdinu 2 skirtingų gyvačių konstrukciją kartu su 3D spausdinimo failais ir diskusiją apie kodą ir algoritmus, kad būtų pasiektas gyvatė. Jei norite toliau mokytis daugiau, perskaitę šią instrukciją, siūlau perskaityti nuorodas puslapio apačioje esančioje nuorodų skiltyje.

Šis nurodymas techniškai yra „du viename“, nes paaiškinu, kaip padaryti 2 skirtingas robotų gyvatės versijas. Jei jus domina tik vienos gyvatės statymas, nepaisykite kitos gyvatės nurodymų. Nuo šiol šios dvi skirtingos gyvatės bus vartojamos pakaitomis naudojant šias frazes:

  1. Vienos ašies gyvatė, 1D gyvatė arba geltona ir juoda gyvatė
  2. Dviejų ašių gyvatė, 2D gyvatė arba balta gyvatė

Žinoma, gyvates galite atspausdinti bet kokios spalvos siūlais. Vienintelis skirtumas tarp dviejų gyvačių yra tas, kad 2D gyvatėje kiekvienas variklis yra pasuktas 90 laipsnių, palyginti su ankstesniu, o 1D gyvatėje visi varikliai yra sulygiuoti vienoje ašyje.

Paskutinis įžanginis žodis yra tas, kad nors kiekviena mano gyvatė turi tik 10 servo, gyvates galima padaryti daugiau ar mažiau servo. Vienas dalykas, kurį reikia apsvarstyti, yra tai, kad su mažiau servo judėsite mažiau sėkmingai, o su daugiau servo greičiausiai sėkmingiau atliksite serpantininį judesį, tačiau turėsite atsižvelgti į kainą, dabartinį traukimą (žr. Vėlesnes pastabas) ir kaiščių skaičių galima rasti „Arduino“. Nesivaržykite keisti gyvatės ilgio, tačiau atminkite, kad taip pat turėsite pakeisti kodą, kad būtų atsižvelgta į šį pakeitimą.

1 žingsnis: komponentai

Tai yra vienos gyvatės dalių sąrašas, jei norite pagaminti abi gyvates, turėsite padvigubinti komponentų tūrį.

  • 10 MG996R servo*
  • 1,75 mm 3D spausdinimo siūlas
  • 10 rutulinių guolių, dalies numeris 608 (aš išgelbėjau manąjį iš išorinio „Jitterspin“sukimosi suktuko krašto)
  • 20 mažų rutulinių guolių, kurių dalies numeris r188, ratams ** (aš išgelbėjau mano vidinę „Jitterspin“sukimosi suktuko dalį)
  • 40 „6-32 x 1/2“(arba panašių) „Philips“galvutės varžtų
  • 8 ilgesni varžtai (neturiu dalies numerio, bet jie yra tokio paties skersmens kaip aukščiau esantys varžtai)
  • Bent 20 vienetų 4 colių užtrauktukų (priklauso nuo to, kiek norite naudoti)
  • Po 5 m raudonos ir juodos 20 gabaritų vielos arba storesnės ***
  • Standartinis 22 skersmens laidas
  • 30 išorinių kaiščių (suskirstyti į 10 partijų po 3)
  • Arduino Nano
  • 3D spausdintos dalys (žr. Kitą skyrių)
  • Tam tikra maitinimo forma (daugiau informacijos rasite skyriuje „Maitinimas gyvatei“), aš asmeniškai naudojau modifikuotą ATX maitinimo šaltinį
  • 1000uF 25V elektrolitinis kondensatorius
  • Įvairių dydžių termiškai susitraukiantis vamzdis, lydmetalis, klijai ir kiti įvairūs įrankiai

*Galite naudoti kitus tipus, tačiau turėsite iš naujo suprojektuoti 3D failus, kad jie atitiktų jūsų servus. Be to, jei bandysite naudoti mažesnius servo įrenginius, tokius kaip „sg90“, galite pastebėti, kad jie nėra pakankamai stiprūs (aš to neišbandžiau ir jūs turėsite eksperimentuoti).

** jums nereikia naudoti mažų rutulinių guolių ratams, aš tiesiog daug gulėjau. Arba galite naudoti LEGO ratus ar kitus žaislinius ratus.

*** Ši viela gali tekėti iki 10 amperų, per plona ir srovė ją ištirps. Daugiau informacijos rasite šiame puslapyje.

2 žingsnis: 3D spausdinimo komponentai

Gyvačių surinkimas
Gyvačių surinkimas

Jei gaminate 1D gyvatę, atspausdinkite šiuos gabalus.

Jei gaminate 2D gyvatę, atspausdinkite šiuos gabalus.

Svarbi pastaba: svarstyklės gali būti neteisingos! Sukūriau savo komponentus „Fusion 360“(mm vienetais), eksportavau dizainą kaip.stl failą į „MakerBot“programinę įrangą ir atspausdinau jį „Qidi Tech“spausdintuve („MakerBot Replicator 2X“kloninėje versijoje). Kažkur šioje darbo eigoje yra klaida ir visi mano spaudiniai yra per maži. Nepavyko nustatyti klaidos vietos, tačiau laikinai išsprendžiu kiekvieno spausdinimo mastelio padidinimą iki 106% MakerBot programinėje įrangoje, tai išsprendžia problemą.

Atsižvelgdami į tai, įspėkite, kad jei išspausdinsite aukščiau esančius failus, jie gali būti neteisingai pakeisti. Siūlau atspausdinti tik vieną gabalą ir prieš spausdinant patikrinti, ar jis tinka jūsų MG996R servo.

Jei atspausdinsite bet kurį failą, praneškite man, koks rezultatas: jei spaudinys per mažas, tinkamas, per didelis ir kiek procentų. Dirbdami kartu kaip bendruomenė, galime pašalinti klaidos vietą naudodami skirtingus 3D spausdintuvus ir.stl pjaustytuvus. Kai problema bus išspręsta, atnaujinsiu šį skyrių ir aukščiau esančias nuorodas.

3 žingsnis: Gyvačių surinkimas

Gyvačių surinkimas
Gyvačių surinkimas
Gyvačių surinkimas
Gyvačių surinkimas
Gyvačių surinkimas
Gyvačių surinkimas

Surinkimo procesas dažniausiai yra tas pats abiejose gyvatės versijose. Vienintelis skirtumas yra tas, kad 2D gyvatėje kiekvienas variklis yra pasuktas 90 laipsnių, palyginti su ankstesniu, o 1D gyvatėje visi varikliai yra sulygiuoti vienoje ašyje.

Pradėkite atsukdami servo sistemą, išsaugokite varžtus ir nuimkite viršutines bei apatines juodo plastikinio rėmo dalis ir būkite atsargūs, kad neprarastumėte pavarų! Įstumkite servo į 3D spausdintą rėmelį, orientuotą kaip aukščiau esančiose nuotraukose. Pakeiskite servo korpuso viršų ir prisukite jį keturiais 6-32 1/2 colio varžtais. Išsaugokite servo rėmo apačią (jei norite jį vėl naudoti vėlesniuose projektuose) ir pakeiskite 3D atspausdintas dėklas, vienintelis skirtumas yra papildoma rankenėlė, skirta rutuliniam guoliui nuslysti. Susukite servovariklį atgal, pakartokite 10 kartų.

SVARBU: Prieš tęsdami turite įkelti kodą į „Arduino“ir kiekvieną servo perkelti į 90 laipsnių. Jei to nepadarysite, galite sugadinti vieną ar daugiau servo ir (arba) 3D spausdintų kadrų. Jei nesate tikri, kaip servovariklį perkelti į 90 laipsnių, peržiūrėkite šį puslapį. Iš esmės raudoną servo laidą prijunkite prie 5 V „Arduino“, rudą laidą - prie GND, o geltoną - prie 9 skaitmeninio kaiščio, tada įkelkite kodą į nuorodą.

Dabar, kai kiekvienas servo yra 90 laipsnių kampu, tęskite:

Prijunkite 10 segmentų, įkišdami 3D spausdinimo rankenėlę iš vieno servo korpuso į antrojo segmento skylę, tada šiek tiek jėgos įstumkite servo ašį į skylę (aiškumo dėlei žiūrėkite aukščiau esančias nuotraukas ir vaizdo įrašą). Jei darote 1D gyvatę, visi segmentai turėtų būti sulygiuoti, o jei darote 2D gyvatę, kiekvienas segmentas turi būti pasuktas 90 laipsnių kampu į ankstesnį segmentą. Atminkite, kad uodega ir galvos rėmas yra tik pusė kitų segmentų ilgio, prijunkite juos, bet nekomentuokite piramidės formos gabalų, kol nebaigsime laidų.

Pritvirtinkite x formos servo rankeną ir prisukite ją į vietą. Užmaukite rutulinį guolį virš 3D spausdinimo rankenėlės, todėl reikės švelniai suspausti 2 pusapvalius stulpelius. Priklausomai nuo to, kokio tipo siūlus naudojate, ir užpildymo tankio, stulpai gali būti per trapūs ir užspaudžiami, nemanau, kad taip bus, tačiau vis dėlto nenaudokite per didelės jėgos. Aš asmeniškai naudojau PLA giją su 10% užpildu. Įjungus rutulinį guolį, jis turi likti užfiksuotas rankenėlės iškyšomis.

4 žingsnis: grandinė

Grandinė
Grandinė
Grandinė
Grandinė
Grandinė
Grandinė

Grandinė yra vienoda abiem robotizuotoms gyvatėms. Sujungimo metu įsitikinkite, kad kiekvienam segmentui yra pakankamai vietos laidams visiškai suktis, ypač 2D gyvatėje.

Viršuje yra tik 2 servo laidų schema. Bandžiau piešti grandinę su 10 servo, bet ji buvo perpildyta. Vienintelis skirtumas tarp šio vaizdo ir realaus gyvenimo yra tas, kad lygiagrečiai reikia prijungti dar 8 servo ir prijungti PWM signalo laidus prie „Arduino Nano“kaiščių.

Laidodamas elektros linijas, aš naudoju vieną 18 gabaritų vielos gabalą (pakankamai storą, kad atlaikytų 10 amperų) kaip pagrindinę 5 V liniją, einančią per gyvatę. Naudodama laidų nuėmiklius, 10 reguliarių intervalų nuėmiau nedidelę izoliatoriaus dalį ir iš kiekvieno iš šių intervalų lituodavau trumpą vielos gabalėlį iš 3 išorinių kaiščių. Pakartokite tai antrą kartą juodai 18 gabaritų GND vielai ir antram antgalio kaiščiui. Galiausiai prilituokite ilgesnį laidą prie trečiojo antgalio kaiščio, šis kaištis perduos PWM signalą į servo iš „Arduino Nano“gyvatės galvoje (viela turi būti pakankamai ilga, kad pasiektų, net kai segmentai sulenkiami). Prireikus pritvirtinkite termiškai susitraukiantį vamzdelį. Prijunkite 3 išorinius antgalių kaiščius prie 3 servo laidų antgalių. Pakartokite 10 kartų kiekvienam iš 10 servo. Galiausiai tai pasiekiama lygiagrečiai prijungti servo sistemas ir prijungti PWM signalo laidus prie „Nano“. Vyriškos/moteriškos antraštės kaiščių priežastis buvo ta, kad jūs galite lengvai išardyti segmentus ir pakeisti servo servisus, jei jie sulūžtų, neatskleisdami visko.

Lituokite GND ir 5 V laidus prie 3x7 skylių perforavimo plokštės uodegoje su kondensatoriumi ir varžtais. Kondensatoriaus tikslas yra pašalinti bet kokius srovės pritraukimo šuolius, atsiradusius paleidžiant servus, kurie gali iš naujo nustatyti „Arduino Nano“(jei neturite kondensatoriaus, greičiausiai galite išsiversti be jo, bet geriau būti saugiam). Atminkite, kad ilgą elektrolitinių kondensatorių kištuką reikia prijungti prie 5 V linijos, o trumpesnį - prie GND linijos. Lituokite GND laidą prie „Nano“GND kaiščio ir 5 V laidą prie 5 V kaiščio. Atkreipkite dėmesį, jei naudojate kitokią įtampą (žr. Kitą skyrių), tarkime, „Lipo“akumuliatorius su 7,4 V įtampa, tada prijunkite raudoną laidą prie „Vin“kaiščio, o ne prie 5 V kištuko.

Lituokite 10 PWM signalo laidų prie „Arduino Nano“kaiščių. Aš prijungiau savo laidą tokia tvarka, galite pasirinkti prijungti savo laidą kitaip, bet tiesiog atminkite, kad tada turėsite pakeisti servo.attach () kodo eilutes. Jei nesate tikri, apie ką aš kalbu, tiesiog prijunkite tą patį, kaip ir aš, ir jūs neturėsite problemų. Kad nuo servo prie gyvatės uodegos iki gyvatės galvos, aš sujungiau abi savo gyvates tokia tvarka. Signalo kaiščių prijungimas prie: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Norėdami išvalyti laidus, naudokite užtrauktukus. Prieš tęsdami patikrinkite, ar visi segmentai gali judėti, palikdami pakankamai vietos, kad laidai galėtų judėti neatsitraukę. Dabar, kai laidai baigti, galime užsukti galvos ir uodegos piramidės formos dangtelius. Atkreipkite dėmesį, kad uodegoje yra skylė, skirta išrišti diržą, o galvutėje - skylė „Arduino“programavimo kabeliui.

5 žingsnis: įjunkite gyvatę

Maitina gyvatę
Maitina gyvatę
Maitina gyvatę
Maitina gyvatę
Maitina gyvatę
Maitina gyvatę

Kadangi servo laidai yra prijungti lygiagrečiai, jie visi gauna tą pačią įtampą, tačiau srovė turi būti pridėta. Žvelgdami į MG996r servo duomenų lapą, jie gali bėgimo metu suvartoti iki 900 mA (darant prielaidą, kad neužstringa). Taigi bendras srovės trūkumas, jei visi 10 servo juda vienu metu, yra 0,9A*10 = 9A. Įprastas 5V, 2A sieninio lizdo adapteris neveiks. Aš nusprendžiau modifikuoti ATX maitinimo šaltinį, galintį 5 V esant 20A. Aš neketinu paaiškinti, kaip tai padaryti, nes tai jau buvo daug aptarta „Instructables“ir „YouTube“. Greita paieška internete parodys, kaip pakeisti vieną iš šių maitinimo šaltinių.

Darant prielaidą, kad pakeitėte maitinimo šaltinį, tiesiog reikia prijungti ilgą raištį tarp maitinimo šaltinio ir gyvatės varžtų gnybtų.

Kitas variantas yra naudoti įmontuotą lipo bateriją. Aš to nebandžiau, todėl jūs turėsite suprojektuoti akumuliatorių laikiklį ir prijungti juos. Turėkite omenyje darbinę įtampą, servo ir „Arduino“srovę (nelituokite nieko, išskyrus 5 V „Arduino“5 V kaištį, eikite į „Vin“kaištį, jei turite aukštesnę įtampą).

6 veiksmas: patikrinkite, ar viskas veikia

Prieš tęsdami, tiesiog patikrinkite, ar viskas veikia. Įkelti šį kodą. Jūsų gyvatė turėtų kiekvieną servą perkelti atskirai nuo 0 iki 180 ir tada užbaigti tiesdama tiesią liniją. Jei taip nėra, greičiausiai kažkas negerai, greičiausiai laidai yra neteisingi arba iš pradžių servos nebuvo centre 90 laipsnių kampu, kaip minėta skyriuje „Gyvačių surinkimas“.

7 žingsnis: kodas

Šiuo metu nėra gyvatės nuotolinio valdymo pulto, visas judesys yra užprogramuotas ir jūs galite pasirinkti, ko norite. Aš sukursiu 2 versijos nuotolinio valdymo pultą, bet jei norite jį valdyti nuotoliniu būdu, siūlau pažvelgti į kitas „Instructables“pamokas ir pritaikyti gyvatę suderinamai su „Bluetooth“.

Jei kuriate 1D gyvatę, įkelkite šį kodą.

Jei kuriate 2D gyvatę, įkelkite šį kodą.

Aš raginu jus žaisti su kodu, atlikti savo pakeitimus ir kurti naujus algoritmus. Perskaitykite kelis sekančius skyrius, kad gautumėte išsamų kiekvieno judėjimo tipo paaiškinimą ir jo veikimo kodą.

8 žingsnis: Svarstyklės prieš ratus

Svarstyklės prieš ratus
Svarstyklės prieš ratus
Svarstyklės prieš ratus
Svarstyklės prieš ratus
Svarstyklės prieš ratus
Svarstyklės prieš ratus
Svarstyklės prieš ratus
Svarstyklės prieš ratus

Vienas iš pagrindinių būdų, kaip gyvatės gali judėti į priekį, yra jų svarstyklių forma. Svarstyklės leidžia lengviau judėti pirmyn. Norėdami gauti daugiau paaiškinimų, žiūrėkite šį vaizdo įrašą nuo 3:04 ir sužinokite, kaip svarstyklės padeda gyvatei judėti į priekį. Žiūrint į 3:14 tame pačiame vaizdo įraše parodomas efektas, kai gyvatės yra rankovėje, pašalinant svarstyklių trintį. Kaip parodyta mano „YouTube“vaizdo įraše, kai robotizuota 1D gyvatė bando slysti ant žolės be svarstyklių, ji nejuda nei pirmyn, nei atgal, nes jėgos yra lygios nuliui. Todėl prie roboto pilvo turime pridėti keletą dirbtinių svarstyklių.

Tyrimai, kaip atkurti judėjimą per svarstykles, buvo atlikti Harvardo universitete ir parodyti šiame vaizdo įraše. Aš negalėjau sugalvoti panašaus metodo, kaip perkelti savo roboto svarstykles aukštyn ir žemyn, ir nusprendžiau pritvirtinti pasyvias 3D spausdintas svarstykles prie pilvo.

Deja, tai pasirodė neveiksminga (žr. Mano „YouTube“vaizdo įrašą, esantį 3:38 val.), Nes svarstyklės vis tiek nusileido ant kilimo paviršiaus, o ne sugriebė pluoštus ir padidino trintį.

Jei norite eksperimentuoti su mano sukurtomis svarstyklėmis, galite 3D spausdinti failus iš mano „GitHub“. Jei sėkmingai pagaminsite savo, praneškite man toliau pateiktose pastabose!

Taikydamas kitokį metodą, kaip „padangas“bandžiau naudoti ratus iš r188 rutulinių guolių su termiškai susitraukiančiais vamzdžiais. Galite spausdinti 3D ratų ašis iš „GitHub“.stl failų. Nors ratai nėra biologiškai tikslūs, jie yra analogiški svarstyklėms, nes sukimasis į priekį yra lengvas, tačiau judėjimas iš vienos pusės į kitą yra žymiai sunkesnis. Sėkmingą ratų rezultatą galite pamatyti mano „YouTube“vaizdo įraše.

9 žingsnis: slenkantis judesys (vienos ašies gyvatė)

Pirmasis prizas „Make it Move“konkurse

Rekomenduojamas: