INHOUDSOPGAWE:

Bioinspired Robotic Snake: 16 stappe (met foto's)
Bioinspired Robotic Snake: 16 stappe (met foto's)

Video: Bioinspired Robotic Snake: 16 stappe (met foto's)

Video: Bioinspired Robotic Snake: 16 stappe (met foto's)
Video: Carnegie Mellon Modular Snake Demo | Engadget Expand 2013 2024, Julie
Anonim
Image
Image

Ek is geïnspireer om met hierdie projek te begin nadat ek navorsingsvideo's van boomklim -robotslange en robot -palings gesien het. Dit is my eerste poging om robotte te bou met behulp van serpentynbeweging, maar dit sal nie my laaste wees nie! Teken in op YouTube as u toekomstige ontwikkelings wil sien.

Hieronder gee ek 'n uiteensetting van die konstruksie van 2 verskillende slange, saam met die lêers vir 3D-druk en 'n bespreking oor die kode en algoritmes om slangagtige bewegings te bewerkstellig. As u wil voortgaan om meer te leer, stel ek voor dat u na die lees van hierdie instruksies die skakels in die verwysingsafdeling onderaan die bladsy lees.

Hierdie instruksie is tegnies 'n 2-in-1, deurdat ek verduidelik hoe ek 2 verskillende weergawes van 'n robotslang kan maak. As u slegs een van die slange wil bou, ignoreer die instruksies vir die ander slang. Van hierdie twee verskillende slange word voortaan verwys na die volgende frases omruilbaar:

  1. Enkele as slang, 1D slang, of geel en swart slang
  2. Slang met dubbele as, 2D -slang of wit slang

U kan natuurlik die slange druk in enige kleurfilament wat u wil hê. Die enigste verskil tussen die twee slange is dat elke motor in die 2D -slang 90 grade gedraai word relatief tot die vorige, terwyl al die motors in die 1D -slang in 'n enkele as in lyn is.

'N Laaste voorwoord is dat alhoewel my slange slegs 10 servo's het, dit moontlik is om die slange met min of meer servo's te maak. Een ding wat u moet oorweeg, is dat u met minder servo's minder suksesvolle bewegings sal behaal, en met meer servo's waarskynlik meer sukses met die serpentine -beweging, maar u moet die koste, huidige trekking (sien latere opmerkings) en die aantal penne in ag neem. beskikbaar op die Arduino. Verander gerus die lengte van die slang, maar hou in gedagte dat u ook die kode moet verander om hierdie verandering in ag te neem.

Stap 1: Komponente

Dit is 'n onderdele -lys vir 'n enkele slang; as u albei slange wil maak, moet u die volume komponente verdubbel.

  • 10 MG996R servo's*
  • 1.75 mm 3D -drukfilament
  • 10 kogellagers, onderdeel nommer 608 (ek het myne gered van die buitenste rand van Jitterspin fidget spinners)
  • 20 klein kogellagers, onderdeel nommer r188, vir die wiele ** (ek het myne uit die binneste deel van Jitterspin fidget spinners gered)
  • 40 Philips-kopskroewe 6-32 x 1/2 "(of soortgelyk)
  • 8 langer skroewe (ek het nie 'n onderdeelnommer nie, maar hulle het dieselfde deursnee as die boute hierbo)
  • Ten minste 20 stukke van 4 duim rits (dit is aan u hoeveel u wil gebruik)
  • 5 m elk van rooi en swart 20 gauge draad of dikker ***
  • Standaard 22 gauge draad
  • 30 manlike koppenne (verdeel in 10 lotte van 3)
  • Arduino Nano
  • 3D -gedrukte onderdele (sien volgende afdeling)
  • Een of ander vorm van krag (sien die afdeling: 'Die slang dryf' vir meer inligting), ek het persoonlik 'n aangepaste ATX -kragtoevoer gebruik
  • 1000uF 25V elektrolitiese kondensator
  • Krimpbuis van verskillende groottes, soldeersel, gom en ander diverse gereedskap

*u kan ander soorte gebruik, maar u moet die 3D -lêers herontwerp om by u servo's te pas. As u ook probeer om kleiner servo's soos die sg90 te gebruik, vind u miskien dat hulle nie sterk genoeg is nie (ek het dit nie getoets nie, maar u sal self moet eksperimenteer).

** jy hoef nie klein kogellagers vir die wiele te gebruik nie; ek het net baie rondgelê. Alternatiewelik kan u LEGO -wiele of ander speelgoedwiele gebruik.

*** Hierdie draad kan tot 10 ampère daardeur gaan, te dun en die stroom sal dit smelt. Sien hierdie bladsy vir meer inligting.

Stap 2: 3D -drukkomponente

Vergadering van die slange
Vergadering van die slange

Druk hierdie stukke as u die 1D -slang maak.

Druk hierdie stukke as u 'n 2D -slang maak.

Belangrike opmerking: die skaal kan verkeerd wees! Ek ontwerp my komponente in Fusion 360 (in mm -eenhede), voer die ontwerp as 'n.stl -lêer uit na MakerBot -sagteware en druk dit dan op 'n Qidi Tech -drukker ('n kloonweergawe van die MakerBot Replicator 2X). Iewers in hierdie werkstroom is daar 'n fout en al my afdrukke kom te klein uit. Ek kon nie die ligging van die fout identifiseer nie, maar het 'n tydelike oplossing om elke afdruk in die MakerBot -sagteware tot 106% te skaal; dit los die probleem op.

In die lig hiervan, moet u gewaarsku word dat as u die lêers hierbo afdruk, dit verkeerd kan wees. Ek stel voor dat u net een stuk afdruk en kyk of dit by u MG996R servo pas voordat u dit almal druk.

As u een van die lêers afdruk, laat weet my dan wat die uitkoms is: as die afdruk te klein, net reg, te groot en met hoeveel persent is. Deur as 'n gemeenskap saam te werk, kan ons die ligging van die fout oplos met behulp van verskillende 3D -drukkers en.stl snyers. Sodra die probleem opgelos is, sal ek hierdie afdeling en die bogenoemde skakels opdateer.

Stap 3: Montering van die slange

Vergadering van die slange
Vergadering van die slange
Vergadering van die slange
Vergadering van die slange
Vergadering van die slange
Vergadering van die slange

Die monteerproses is meestal dieselfde vir beide weergawes van die slang. Die enigste verskil is dat in die 2D -slang elke motor 90 grade gedraai word relatief tot die vorige, terwyl alle motors in die 1D -slang in 'n enkele as in lyn is.

Begin deur die servo los te skroef, stoor die skroewe en verwyder die boonste en onderste stukke van die swart plastiekraam, en wees versigtig om nie die ratte te verloor nie! Skuif die servo in die 3D -gedrukte raam, georiënteerd soos op die foto's hierbo. Vervang die bokant van die servokas en skroef dit vas met vier 6-32 1/2 skroewe. Stoor die onderkant van die servoraam (as u dit weer in latere projekte wil gebruik) en vervang dit met die 3D gedrukte omhulsel, die enigste verskil is die ekstra knop vir 'n kogellager om oor te gly. Skroef die servo weer aanmekaar, herhaal 10 keer.

BELANGRIK: Voordat u verder gaan, moet u kode na die Arduino oplaai en elke servo na 90 grade skuif. As u dit nie doen nie, kan u een of meer servo- en/of die 3D -gedrukte rame breek. As u nie seker is hoe u 'n servo na 90 grade moet skuif nie, sien hierdie bladsy. Koppel die rooi draad van die servo basies aan 5V op die Arduino, die bruin draad aan GND en die geel draad aan die digitale pen 9, en laai dan die kode op in die skakel.

Noudat elke servo 90 grade is, gaan voort:

Verbind die 10 segmente deur die 3D -gedrukte knop van een servokas in die gat van 'n tweede segmentstuk te steek, en druk dan die as van die servo met 'n bietjie krag in sy gat (sien foto's hierbo en video vir duidelikheid). As u die 1D -slang maak, moet al die segmente in lyn gebring word; as u die 2D -slang maak, moet elke segment 90 grade na die vorige segment gedraai word. Let daarop dat die stert- en kopraamwerk slegs die helfte van die lengte van die ander segmente is; verbind dit, maar lewer geen kommentaar op die piramidevormige stukke voordat ons die bedrading voltooi het nie.

Bevestig die x-vormige servo-arm en skroef dit vas. Plaas die kogellager oor die 3D-gedrukte knop, dit is nodig om die twee halfsirkelpale saggies saam te druk. Afhangende van die tipe filament wat u gebruik en die vullingsdigtheid, kan die paaltjies te bros en vinnig wees; ek dink nie dit sal die geval wees nie, maar gebruik tog nie buitensporige geweld nie. Ek het persoonlik PLA -filament gebruik met 10% vulsel. Sodra die kogellager aangeskakel is, moet dit vasgesluit bly deur die oorhang van die knop.

Stap 4: Skakel

Kring
Kring
Kring
Kring
Kring
Kring

Die kring is dieselfde vir beide robotslange. Tydens die bedradingsproses, maak seker dat daar genoeg bedradingsruimte is vir elke segment om heeltemal te draai, veral in die 2D -slang.

Hierbo is 'n kringdiagram vir die bedrading met slegs 2 servo's. Ek het probeer om 'n kringtekening met 10 servo's te maak, maar dit raak te oorvol. Die enigste verskil tussen hierdie prentjie en die werklike lewe is dat u nog 8 servo's parallel moet aansluit en die PWM -seindrade aan die penne op die Arduino Nano moet koppel.

By die aansluiting van die kragdrade gebruik ek 'n enkele stuk van 18 meter (dik genoeg om 10 ampère te weerstaan) as die hoof 5V -lyn wat oor die lengte van die slang loop. Met behulp van draadstroppers verwyder ek 'n klein stuk isolator met 10 gereelde tussenposes en soldeer 'n kort stuk draad uit elk van hierdie tussenposes 'n groep van 3 manlike kopstukke. Herhaal dit 'n tweede keer vir die swart 18 gauge GND draad en 'n tweede manlike koppen. Uiteindelik, soldeer 'n langer draad aan die derde manlike koppen, sal hierdie pen die PWM -sein na die servo bring vanaf die Arduino Nano in die kop van die slang (die draad moet lank genoeg wees om te bereik, selfs as die segmente buig). Heg krimpbuis aan soos benodig. Koppel die 3 manlike kopstukpenne aan die die 3 vroulike koppenne van die servodrade. Herhaal 10 keer vir elk van die 10 servo's. Uiteindelik bereik dit die bedrading van die servo's parallel en die uitvoering van PWM -seindrade na die Nano. Die rede vir die manlike/vroulike koppenne was dat u segmente maklik uitmekaar kan haal en servo's kan vervang as hulle breek sonder om alles te los.

Soldeer die GND- en 5V -drade aan 'n 3 x 7 -gat -bord met 'n kondensator en skroefaansluitings. Die doel van die kondensator is om enige stroompieke te verwyder wat veroorsaak word by die opstart van die servo's, wat die Arduino Nano kan herstel (as u nie 'n kapasitor het nie, kan u waarskynlik daarsonder wegkom, maar dit is beter om veilig te wees). Onthou dat die lang punt van elektrolitiese kondensators aan die 5V -lyn gekoppel moet word en die korter punt aan die GND -lyn. Soldeer die GND -draad aan die GND -pen van die Nano en die 5V -draad aan die 5V -pen. Let op dat as u 'n ander spanning gebruik (sien die volgende afdeling), 'n Lipo -battery met 'n 7,4V -aansluiting, en dan die rooi draad na die Vin -pen, NIE die 5V -pen nie, dit vernietig die pen.

Soldeer die 10 PWM seindrade aan penne op die Arduino Nano. Ek het myne in die volgende volgorde bedraad; u kan kies om die uwe anders te bedraad, maar onthou dat u dan die servo.att () -reëls in die kode moet verander. As u nie seker is waaroor ek praat nie, bedraad dit net soos ek, en u sal nie probleme ondervind nie. Van die servo by die stert van die slang tot by die kop van die slang, het ek albei my slange in die volgende volgorde bedraad. Verbind die seinpenne met: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Gebruik rits om die bedrading skoon te maak. Voordat u verder gaan, moet u seker maak dat al die segmente kan beweeg met voldoende ruimte sodat die drade kan beweeg sonder om uitmekaar getrek te word. Noudat die bedrading klaar is, kan ons die kop- en stert piramidevormige doppe vasskroef. Let daarop dat die stert 'n gat het waaruit die tou uitkom en dat die kop 'n gat vir die Arduino -programmeerkabel het.

Stap 5: Skakel die slang aan

Die krag van die slang
Die krag van die slang
Die krag van die slang
Die krag van die slang
Die krag van die slang
Die krag van die slang

Omdat die servo's parallel bedraad is, kry hulle almal dieselfde spanning, maar die stroom moet bygetel word. As ons na die datablad vir MG996r -servo's kyk, kan hulle elk tot 900mA trek terwyl hulle hardloop (as daar geen stop is nie). Dus is die totale stroomopname as al 10 servo's tegelyk beweeg 0,9A*10 = 9A. As sodanig werk 'n normale 5V, 2A -aansluiting nie. Ek het besluit om 'n ATX -kragtoevoer aan te pas, wat 5V by 20A kan bereik. Ek gaan nie verduidelik hoe om dit te doen nie, aangesien dit al baie op Instructables en YouTube bespreek is. 'N Vinnige soektog aanlyn sal u wys hoe u een van hierdie kragtoevoer kan verander.

Gestel jy het die kragtoevoer verander, is dit bloot 'n geval om 'n lang tou tussen die kragtoevoer en die skroefaansluitings op die slang te verbind.

'N Ander opsie is om 'n lipo -battery aan boord te gebruik. Ek het dit nie probeer nie, so dit is aan jou om 'n houer vir die batterye te ontwerp en dit in te dra. Hou die werkspannings, die huidige trekking van die servo's en die Arduino in gedagte (moenie enigiets anders as 5V soldeer nie die 5v -pen op die Arduino, gaan na die Vin -pen as u 'n hoër spanning het).

Stap 6: Toets of alles werk

Voordat u verder gaan, toets net dat alles werk. Laai hierdie kode op. Jou slang moet elke servo afsonderlik tussen 0-180 beweeg en dan eindig deur in 'n reguit lyn te lê. As dit nie die geval is nie, is daar iets verkeerd, is die bedrading waarskynlik verkeerd of is die servo's aanvanklik nie op 90 grade gesentreer nie, soos genoem in die afdeling "Samestelling van die slange".

Stap 7: Kode

Daar is tans geen afstandsbediening vir die slang nie, al die bewegings is vooraf geprogrammeer en u kan kies wat u wil. Ek sal 'n afstandbeheer in weergawe 2 ontwikkel, maar as u dit op afstand wil beheer, stel ek voor dat u ander tutoriale oor instruksies ondersoek en die slang aanpas om Bluetooth -versoenbaar te wees.

Laai hierdie kode op as u die 1D -slang maak.

Laai hierdie kode op as u die 2D -slang maak.

Ek moedig u aan om met die kode te speel, u eie veranderings aan te bring en nuwe algoritmes te skep. Lees die volgende afdelings vir 'n gedetailleerde verduideliking van elke tipe beweging en hoe die kode daarvoor werk.

Stap 8: weegskaal teen wiele

Weegskaal vs wiele
Weegskaal vs wiele
Weegskaal vs wiele
Weegskaal vs wiele
Weegskaal vs wiele
Weegskaal vs wiele
Weegskaal vs wiele
Weegskaal vs wiele

Een van die belangrikste maniere waarop slange vorentoe kan beweeg, is deur die vorm van hul skubbe. Die weegskaal maak dit makliker om vorentoe te beweeg. Vir 'n verdere verduideliking, kyk na hierdie video van 3:04 af om te sien hoe skubbe die slang help om vorentoe te beweeg. As ons na 3:14 in dieselfde video kyk, word die effek gesien wanneer die slange in 'n mou is, wat die wrywing van die skubbe verwyder. Soos in my YouTube -video gewys word, wanneer die robotagtige 1D -slang probeer om op die gras te gly sonder om skubbe te beweeg, beweeg dit nie vorentoe of agteruit nie, aangesien die kragte 'n netto nul is. As sodanig moet ons 'n paar kunsmatige skale by die onderbuik van die robot voeg.

Navorsing oor die herskep van beweging deur middel van weegskale is aan die Harvard Universiteit gedoen en in hierdie video getoon. Ek kon nie 'n soortgelyke metode bedink om die weegskaal op en af op my robot te beweeg nie, en het eerder besluit om passiewe 3D -gedrukte weegskaal aan die onderbuik te heg.

Ongelukkig was dit ondoeltreffend (sien in my YouTube -video om 3:38), aangesien die weegskaal steeds oor die oppervlak van die mat skuim in plaas daarvan om die vesels vas te vang en die wrywing te verhoog.

As u wil eksperimenteer met die skale wat ek gemaak het, kan u die lêers in 3D druk van my GitHub. As u u eie suksesvol maak, laat weet my dan in die kommentaar hieronder!

Met 'n ander benadering het ek probeer om wiele van r188 kogellagers met 'n hitte krimpbuis aan die buitekant as 'bande' te gebruik. U kan die plastiese aswiele in 3D druk uit die.stl -lêers op my GitHub. Alhoewel wiele nie biologies akkuraat is nie, is dit analoog aan weegskaal omdat die voorwaartse rotasie maklik is, maar die beweging van kant tot kant is aansienlik moeiliker. U kan die suksesvolle resultaat van die wiele in my YouTube -video sien.

Stap 9: Glybeweging (enkele as -slang)

Eerste prys in die Make it Move -wedstryd

Aanbeveel: