Innholdsfortegnelse:

Bioinspirert robotslange: 16 trinn (med bilder)
Bioinspirert robotslange: 16 trinn (med bilder)

Video: Bioinspirert robotslange: 16 trinn (med bilder)

Video: Bioinspirert robotslange: 16 trinn (med bilder)
Video: Joscha Bach Λ Karl Friston: Ai, Death, Self, God, Consciousness 2024, September
Anonim
Image
Image

Jeg ble inspirert til å starte dette prosjektet etter å ha sett forskningsvideoer av både treklatring robotslanger og robotål. Dette er mitt første forsøk og å bygge roboter ved hjelp av serpentin -bevegelse, men det blir ikke min siste! Abonner på YouTube hvis du vil se fremtidig utvikling.

Nedenfor skisserer jeg konstruksjonen av 2 forskjellige slanger sammen med filene for 3D-utskrift og en diskusjon om koden og algoritmer for å oppnå slangelignende bevegelse. Hvis du ønsker å fortsette å lære mer, etter å ha lest denne instruksjonsfulle, vil jeg foreslå å lese koblingene i referansedelen nederst på siden.

Denne instruerbare er teknisk sett en 2-i-1, ved at jeg forklarer hvordan du lager 2 forskjellige versjoner av en robotslange. Hvis du bare er interessert i å bygge en av slangene, ignorer instruksjonene for den andre slangen. Disse to forskjellige slangene vil heretter bli referert til ved å bruke følgende setninger om hverandre:

  1. Enakslange, 1D -slange eller gul og svart slange
  2. Dobbel akse slange, 2D slange eller hvit slange

Selvfølgelig kan du skrive ut slangene i hvilken som helst fargetråd. Den eneste forskjellen mellom de to slangene er at i 2D -slangen roteres hver motor 90 grader i forhold til den forrige, mens i 1D -slangen er alle motorene justert i en enkelt akse.

Et siste forord er at mens hver av mine slanger bare har 10 servoer, er det mulig å lage slangene med mer eller mindre servoer. En ting å vurdere er at med mindre servoer vil du oppnå mindre vellykket bevegelse, og med flere servoer vil du sannsynligvis bli mer vellykket med serpentinbevegelsen, men du må vurdere kostnad, nåværende trekning (se senere kommentarer) og antall pinner tilgjengelig på Arduino. Du er velkommen til å endre lengden på slangen, men husk at du også må endre koden for å ta hensyn til denne endringen.

Trinn 1: Komponenter

Dette er en deleliste for en enkelt slange. Hvis du vil lage begge slangene, må du doble volumet av komponenter.

  • 10 MG996R -servoer*
  • 1,75 mm 3D -filament
  • 10 kulelager, delenummer 608 (jeg berget mitt fra ytterkanten av Jitterspin fidget spinners)
  • 20 små kulelager, delenummer r188, for hjulene ** (jeg berget mitt fra den indre delen av Jitterspin fidget spinners)
  • 40 Philips hodeskruer 6-32 x 1/2 "(eller lignende)
  • 8 lengre skruer (jeg har ikke et delenummer, men de har samme diameter som skruene ovenfor)
  • Minst 20 stykker 4 -tommers ziptier (det er opp til deg hvor mange du vil bruke)
  • 5m hver av rød og svart 20 gauge ledning eller tykkere ***
  • Standard 22 gauge ledning
  • 30 mannlige toppstifter (delt i 10 partier av 3)
  • Arduino Nano
  • 3D -trykte deler (se neste avsnitt)
  • En eller annen form for strøm (se avsnittet: "Drift av slangen" for mer info), jeg brukte personlig en modifisert ATX -strømforsyning
  • 1000uF 25V elektrolytisk kondensator
  • Varmekrympeslange i forskjellige størrelser, loddetinn, lim og andre diverse verktøy

*du kan bruke andre typer, men du må redesigne 3D -filene slik at de passer med servoene dine. Også hvis du prøver å bruke mindre servoer som sg90, kan det hende du finner ut at de ikke er sterke nok (jeg har ikke testet dette, og det er opp til deg å eksperimentere).

** du trenger ikke bruke små kulelager til hjulene, jeg hadde bare mye å ligge rundt. Alternativt kan du bruke LEGO -hjul eller andre lekehjul.

*** Denne ledningen kan ha opptil 10 ampere som går gjennom den, for tynn og strømmen vil smelte den. Se denne siden for mer informasjon.

Trinn 2: Komponenter i 3D -utskrift

Montering av slangene
Montering av slangene

Hvis du lager 1D -slangen, skriver du ut disse bitene.

Hvis du lager 2D -slangen, skriver du ut disse bitene.

Viktig merknad: skalaen kan være feil! Jeg designer komponentene mine i Fusion 360 (i mm -enheter), eksporterte designet som en.stl -fil til MakerBot -programvaren og skrev det deretter ut på en Qidi Tech -skriver (en klonversjon av MakerBot Replicator 2X). Et eller annet sted i denne arbeidsflyten er det en feil, og alle utskriftene mine blir for små. Jeg har ikke klart å identifisere plasseringen av feilen, men har en midlertidig løsning for å skalere hver utskrift til 106% størrelse i MakerBot -programvaren, dette løser problemet.

Gitt dette, vær advart om at hvis du skriver ut filene ovenfor, kan de være feilskalerte. Jeg foreslår at du skriver ut bare ett stykke og sjekker om det passer med din MG996R -servo før du skriver dem ut.

Hvis du skriver ut noen av filene, vennligst gi meg beskjed om resultatet: hvis utskriften er for liten, akkurat, for stor og med hvor mange prosent. Ved å jobbe sammen som et fellesskap kan vi feilsøke plasseringen av feilen ved hjelp av forskjellige 3D -skrivere og.stl skiver. Når problemet er løst, oppdaterer jeg denne delen og koblingene ovenfor.

Trinn 3: Montering av slangene

Montering av slangene
Montering av slangene
Montering av slangene
Montering av slangene
Montering av slangene
Montering av slangene

Monteringsprosessen er stort sett den samme for begge versjonene av slangen. Den eneste forskjellen er at i 2D -slangen hver motor roteres 90 grader i forhold til den forrige, mens i 1D -slangen er alle motorene justert i en enkelt akse.

Begynn med å skru ut servoen, lagre skruene og fjern de øverste og nedre delene av den svarte plastrammen, og vær forsiktig så du ikke mister noen av tannhjulene! Skyv servoen inn i den 3D -trykte rammen, orientert som på bildene ovenfor. Sett på toppen av servokassen, og skru den på plass med fire 6-32 1/2 skruer. Lagre bunnen av servorammen (i tilfelle du vil bruke den igjen i senere prosjekter) og erstatt den med 3D trykt etui, den eneste forskjellen er den ekstra knappen for at et kulelager skal gli over. Skru servoen sammen igjen, gjenta 10 ganger.

VIKTIG: Før du fortsetter må du laste opp kode til Arduino og flytte hver servo til 90 grader. Hvis du ikke gjør dette, kan det føre til at du bryter en eller flere servo- og/eller 3D -trykte rammer. Hvis du er usikker på hvordan du flytter en servo til 90 grader, kan du se denne siden. I utgangspunktet koble den røde ledningen til servoen til 5V på Arduino, den brune ledningen til GND og den gule ledningen til digital pin 9, og last deretter opp koden i lenken.

Nå som hver servo er på 90 grader, fortsetter du:

Koble de 10 segmentene ved å sette den 3D -trykte knotten fra en servokasse inn i hullet på et annet segmentstykke, og trykk deretter litt aksel på servoen inn i hullet (se bilder ovenfor og video for klarhet). Hvis du lager 1D -slangen, bør alle segmentene justeres. Hvis du lager 2D -slangen, bør hvert segment roteres 90 grader til forrige segment. Vær oppmerksom på at halen og hoderammen bare er halvparten av lengden på de andre segmentene, koble dem til, men ikke kommenter de pyramideformede brikkene før vi har fullført ledningene.

Fest den x-formede servoarmen og skru den på plass. Skyv kulelageret over den 3D-trykte knotten, dette vil kreve at de to halvcirkelstolpene forsiktig presses sammen. Avhengig av hvilket filament du bruker og fylltettheten, kan stolpene være for sprø og snappe, jeg tror ikke dette vil være tilfelle, men ikke bruk overdreven kraft. Jeg brukte personlig PLA -filament med 10% fylling. Når kulelageret er på, skal det forbli låst av overhengene på knotten.

Trinn 4: Krets

Krets
Krets
Krets
Krets
Krets
Krets

Kretsen er den samme for begge robotslanger. Under ledningsprosessen må du kontrollere at det er nok ledningsplass for hvert segment for å rotere helt, spesielt i 2D -slangen.

Over er et kretsdiagram for ledningene med bare 2 servoer. Jeg prøvde å lage en kretstegning med 10 servoer, men det ble altfor overfylt. Den eneste forskjellen mellom dette bildet og det virkelige livet er at du må koble 8 flere servoer parallelt og koble PWM -signalkablene til pinner på Arduino Nano.

Når jeg koblet til strømledningene brukte jeg et enkelt stykke 18 gauge ledning (tykk nok til å tåle 10 ampere) som hoved 5V -ledning som løper langs slangens lengde. Ved hjelp av wire strippere fjernet jeg en liten del av isolatoren med 10 regelmessige intervaller, og loddet et kort stykke wire fra hver av disse intervallene en gruppe på 3 mannlige header pins. Gjenta dette en gang til for den svarte 18 gauge GND -ledningen og en andre mannlig toppnål. Til slutt loddes en lengre ledning til den tredje mannlige toppnålen, denne pinnen vil bære PWM -signalet til servoen fra Arduino Nano i slangens hode (ledningen må være lang nok til å nå, selv når segmentene bøyes). Fest varmekrympeslangen etter behov. Koble de tre mannlige toppnålene til de tre kvinnelige toppnålene til servoledningene. Gjenta 10 ganger for hver av de 10 servoene. Til syvende og sist dette oppnår er å koble servoene parallelt og kjøre PWM -signalkabler til Nano. Årsaken til toppnålene for mann/kvinne var at du enkelt kan ta segmenter fra hverandre og erstatte servoer hvis de går i stykker uten å lodde alt.

Lodd GND- og 5V -ledningene til et 3x7 hulls perf -bord i halen med en kondensator og skrueterminaler. Formålet med kondensatoren er å fjerne eventuelle gjeldende trekkspiker som oppstår ved oppstart av servoene, som kan tilbakestille Arduino Nano (hvis du ikke har en kondensator kan du sannsynligvis slippe unna uten den, men det er bedre å være trygg). Husk at den lange pinnen av elektrolytiske kondensatorer må kobles til 5V -ledningen og den kortere pinnen til GND -linjen. Lodd GND -ledningen til GND -pinnen på Nano og 5V -ledningen til 5V -pinnen. Legg merke til at hvis du bruker en annen spenning, (se neste avsnitt), si et Lipo -batteri med 7,4V, og koble deretter den røde ledningen til Vin -pinnen, IKKE 5V -pinnen, da ødelegger du pinnen.

Lodd de 10 PWM -signaltrådene til pinner på Arduino Nano. Jeg koblet min i følgende rekkefølge. Du kan velge å koble din annerledes, men husk at du da må endre servo.attach () -linjene i koden. Hvis du er usikker på hva jeg snakker om, bare koble det på samme måte som jeg gjorde, og du vil ikke ha problemer. I orden fra servoen i halen på slangen til slangens hode, koblet jeg begge mine slanger i følgende rekkefølge. Koble signalpinnene til: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Bruk glidelåser for å rydde opp i ledningene. Før du fortsetter, må du kontrollere at alle segmentene kan bevege seg med tilstrekkelig plass til at ledningene kan bevege seg uten å bli trukket fra hverandre. Nå som ledningen er ferdig kan vi skru på hodet og halen pyramideformede hetter. Vær oppmerksom på at halen har et hull for tauet å komme ut av og hodet har et hull for Arduino -programmeringskabelen.

Trinn 5: Driv slangen

Driv slangen
Driv slangen
Driv slangen
Driv slangen
Driv slangen
Driv slangen

Fordi servoene er koblet parallelt, får de alle samme spenning, men strømmen må legges sammen. Når du ser på databladet for MG996r -servoer, kan de trekke opptil 900mA hver mens de kjører (forutsatt at den ikke stopper). Dermed er den totale strømtrekking hvis alle 10 servoer beveger seg samtidig 0,9A*10 = 9A. Som en slik normal 5v, 2A veggkontaktadapter vil ikke fungere. Jeg bestemte meg for å endre en ATX -strømforsyning, som kan 5v ved 20A. Jeg skal ikke forklare hvordan jeg gjør dette, siden det har blitt diskutert mye på Instructables og YouTube allerede. Et raskt søk på nettet viser deg hvordan du endrer en av disse strømforsyningene.

Forutsatt at du har endret strømforsyningen, er det ganske enkelt et tilfelle av å koble en lang tether mellom strømforsyningen og skrueterminalene på slangen.

Et annet alternativ er å bruke en innebygd lipo -batteripakke. Jeg har ikke prøvd dette, så det er opp til deg å designe en holder for batteriene og koble dem til. Husk driftsspenningene, strømtrekkene til servoene og Arduino (ikke lodd annet enn 5v til 5v -pinnen på Arduino, gå til Vin -pinnen hvis du har en høyere spenning).

Trinn 6: Test alt fungerer

Før du fortsetter, bare test alt fungerer. Last opp denne koden. Slangen din skal flytte hver servo individuelt mellom 0-180 og deretter avslutte med å legge den i en rett linje. Hvis det ikke gjør det, er det noe som er galt, sannsynligvis er ledningene feil eller servoene var ikke først sentrert på 90 grader som nevnt i delen "Montering av slanger".

Trinn 7: Kode

Det er for øyeblikket ingen fjernkontroll for slangen, all bevegelse er forhåndsprogrammert og du kan velge hva du vil. Jeg vil utvikle en fjernkontroll i versjon 2, men hvis du vil kontrollere den eksternt, vil jeg foreslå å se på andre opplæringsprogrammer om Instructables og tilpasse slangen til å være Bluetooth -kompatibel.

Last opp denne koden hvis du lager 1D -slangen.

Last opp denne koden hvis du lager 2D -slangen.

Jeg oppfordrer deg til å leke med koden, gjøre dine egne endringer og lage nye algoritmer. Les de neste seksjonene for en detaljert forklaring av hver type bevegelse og hvordan koden for den fungerer.

Trinn 8: Vekter mot hjul

Vekter mot hjul
Vekter mot hjul
Vekter mot hjul
Vekter mot hjul
Vekter mot hjul
Vekter mot hjul
Vekter mot hjul
Vekter mot hjul

En av hovedmåtene slanger er i stand til å bevege seg fremover er gjennom formen på skalaene. Vektene gir lettere bevegelse fremover. For en ytterligere forklaring, se denne videoen fra 3:04 og utover for å se hvordan vekter hjelper slangen å gå fremover. Å se på 3:14 i den samme videoen viser effekten når slangene er i en erme, og fjerner friksjonen til vekten. Som vist i YouTube -videoen min når den robotiske 1D -slangen prøver å gli på gresset uten vekter, beveger den seg hverken fremover eller bakover siden kreftene summerer til et netto null. Som sådan må vi legge til noen kunstige vekter i robotens underliv.

Forskning på å gjenskape bevegelse via vekter ble gjort ved Harvard University og demonstrert i denne videoen. Jeg klarte ikke å tenke ut en lignende metode for å flytte vekten opp og ned på roboten min, og i stedet nøyde jeg meg med å feste passive 3D -trykte vekter til underlivet.

Dessverre viste dette seg å være ineffektivt (se i min YouTube -video kl. 3:38) ettersom vekten fortsatt skummet over overflaten på teppet i stedet for å fange opp fibrene og øke friksjonen.

Hvis du ønsker å eksperimentere med skalaene jeg laget, kan du skrive ut filene i 3D fra GitHub. Hvis du lager din egen vellykkede, gi meg beskjed i kommentarene nedenfor!

Ved å bruke en annen tilnærming prøvde jeg å bruke hjul laget av r188 kulelagre med varmekrympeslange på utsiden som et "dekk". Du kan 3D -skrive ut hjulene i plast fra.stl -filene på min GitHub. Selv om hjulene ikke er biologisk nøyaktige, er de analoge med vekter ved at rotasjonen fremover er enkel, men side til side bevegelse er betydelig vanskeligere. Du kan se det vellykkede resultatet av hjulene i YouTube -videoen min.

Trinn 9: Slithering Motion (single Axis Snake)

Førstepremie i Make it Move -konkurransen

Anbefalt: