Indholdsfortegnelse:

Bioinspireret robotslange: 16 trin (med billeder)
Bioinspireret robotslange: 16 trin (med billeder)

Video: Bioinspireret robotslange: 16 trin (med billeder)

Video: Bioinspireret robotslange: 16 trin (med billeder)
Video: The All New Émonda 2024, Juli
Anonim
Image
Image

Jeg blev inspireret til at starte dette projekt efter at have set forskningsvideoer af både træklatring robotslanger og robotål. Dette er mit første forsøg og at bygge robotter ved hjælp af serpentin bevægelse, men det bliver ikke mit sidste! Abonner på YouTube, hvis du gerne vil se den fremtidige udvikling.

Nedenfor skitserer jeg konstruktionen af 2 forskellige slanger sammen med filerne til 3D-udskrivning og en diskussion om koden og algoritmer for at opnå slangelignende bevægelse. Hvis du ønsker at fortsætte med at lære mere, vil jeg efter at have læst denne instruktive foreslå at læse linkene i referenceafsnittet nederst på siden.

Denne instruerbare er teknisk set en 2-i-1, idet jeg forklarer, hvordan man laver 2 forskellige versioner af en robotslange. Hvis du kun er interesseret i at bygge en af slangerne, skal du ignorere instruktionerne for den anden slange. Disse 2 forskellige slanger vil herfra blive henvist til at bruge følgende sætninger i flæng:

  1. Enkeltakset slange, 1D slange eller gul og sort slange
  2. Dobbeltakset slange, 2D slange eller hvid slange

Selvfølgelig kan du printe slangerne i enhver farvefilament, du ønsker. Den eneste forskel mellem de to slanger er, at i 2D -slangen roteres hver motor 90 grader i forhold til den foregående, hvorimod i 1D -slangen er alle motorerne justeret i en enkelt akse.

Et sidste forord er, at mens hver af mine slanger kun har 10 servoer, er det muligt at lave slangerne med mere eller mindre servoer. En ting at overveje er, at med færre servoer vil du opnå mindre vellykket bevægelse, og med flere servoer vil du sandsynligvis have større succes med serpentine -bevægelsen, men du skal overveje omkostninger, nuværende træk (se senere bemærkninger) og antallet af ben tilgængelig på Arduino. Du er velkommen til at ændre slangens længde, men husk, at du også skal ændre koden for at tage højde for denne ændring.

Trin 1: Komponenter

Dette er en deleliste for en enkelt slange, hvis du vil lave begge slanger, skal du fordoble mængden af komponenter.

  • 10 MG996R servoer*
  • 1,75 mm 3D -printfilament
  • 10 kuglelejer, varenummer 608 (jeg bjærgede min fra den ydre kant af Jitterspin fidget spinners)
  • 20 små kuglelejer, varenummer r188, til hjulene ** (jeg bjærgede min fra den inderste del af Jitterspin fidget spinners)
  • 40 Philips hovedskruer 6-32 x 1/2 "(eller lignende)
  • 8 længere skruer (jeg har ikke et varenummer, men de har samme diameter som skruerne ovenfor)
  • Mindst 20 stykker 4 tommer lynlåse (det er op til dig, hvor mange du vil bruge)
  • 5m hver af rød og sort 20 gauge ledning eller tykkere ***
  • Standard 22 gauge ledning
  • 30 mandlige header pins (opdelt i 10 partier af 3)
  • Arduino Nano
  • 3D -printede dele (se næste afsnit)
  • En eller anden form for strøm (se afsnittet: "Drift af slangen" for mere info), jeg brugte personligt en modificeret ATX -strømforsyning
  • 1000uF 25V elektrolytkondensator
  • Varmekrympeslange i forskellige størrelser, lodde, lim og andre diverse værktøjer

*du kan bruge andre typer, men du bliver nødt til at redesigne 3D -filerne, så de passer til dine servoer. Også hvis du prøver at bruge mindre servoer som sg90, kan du opleve, at de ikke er stærke nok (jeg har ikke testet dette, og det vil være op til dig at eksperimentere).

** du behøver ikke at bruge små kuglelejer til hjulene, jeg havde bare meget at ligge. Alternativt kan du bruge LEGO hjul eller andre legetøjsfælge.

*** Denne ledning kan have op til 10 ampere gennem den, for tynd, og strømmen vil smelte den. Se denne side for mere info.

Trin 2: 3D -udskrivningskomponenter

Samling af slangerne
Samling af slangerne

Hvis du laver 1D -slangen, skal du printe disse stykker.

Hvis du laver 2D -slangen, skal du printe disse stykker.

Vigtig note: Skalaen kan være forkert! Jeg designede mine komponenter i Fusion 360 (i mm -enheder), eksporterede designet som en.stl -fil til MakerBot -softwaren og printede det derefter på en Qidi Tech -printer (en klonversion af MakerBot Replicator 2X). Et eller andet sted i denne arbejdsgang er der en fejl, og alle mine udskrifter kommer for små ud. Jeg har ikke været i stand til at identificere placeringen af fejlen, men har en midlertidig løsning på at skalere hvert print til 106% størrelse i MakerBot -softwaren, dette løser problemet.

I betragtning af dette skal du advares om, at hvis du udskriver ovenstående filer, kan de være forkert skaleret. Jeg foreslår, at du kun udskriver et stykke og kontrollerer, om det passer til din MG996R -servo, før du udskriver dem alle.

Hvis du udskriver nogen af filerne, så lad mig vide, hvad resultatet er: Hvis udskriften er for lille, lige tilpas, for stor og med hvor mange procent. Ved at arbejde sammen som et fællesskab kan vi fejlfinde placeringen af fejlen ved hjælp af forskellige 3D -printere og.stl skiver. Når problemet er løst, opdaterer jeg dette afsnit og linkene ovenfor.

Trin 3: Samling af slangerne

Samling af slangerne
Samling af slangerne
Samling af slangerne
Samling af slangerne
Samling af slanger
Samling af slanger

Samlingsprocessen er stort set den samme for begge versioner af slangen. Den eneste forskel er, at i 2D -slangen roteres hver motor 90 grader i forhold til den foregående, hvorimod i 1D -slangen er alle motorerne justeret i en enkelt akse.

Begynd med at skrue servoen af, gem skruerne og fjern de øverste og nederste stykker af den sorte plastramme, og pas på ikke at miste noget af gearene! Skub servoen ind i den 3D -trykte ramme, orienteret som på billederne ovenfor. Udskift toppen af servokassen, og skru den på plads med fire 6-32 1/2 skruer. Gem bunden af servorammen (hvis du vil bruge den igen i senere projekter) og udskift den med 3D trykt kasse, den eneste forskel er den ekstra knap til et kugleleje kan glide over. Skru servoen sammen igen, gentag 10 gange.

VIGTIGT: Inden du fortsætter, skal du uploade kode til Arduino og flytte hver servo til 90 grader. Hvis du ikke gør dette, kan det resultere i, at du bryder en eller flere servo- og/eller de 3D -printede rammer. Hvis du er i tvivl om, hvordan du flytter en servo til 90 grader, kan du se denne side. Grundlæggende forbindes den røde ledning af servoen til 5V på Arduino, den brune ledning til GND og den gule ledning til digital pin 9, og uploader derefter koden i linket.

Nu hvor hver servo er på 90 grader, skal du fortsætte:

Forbind de 10 segmenter ved at indsætte den 3D -trykte knap fra en servokasse i hullet på et andet segmentstykke, og tryk derefter med en lille smule kraft aksens servo ind i dens hul (se billederne ovenfor og video for klarhed). Hvis du laver 1D -slangen, skal alle segmenterne justeres. Hvis du laver 2D -slangen, skal hvert segment drejes 90 grader til det forrige segment. Bemærk, at halen og hovedrammen kun er halvdelen af længden af de andre segmenter, tilslut dem, men kommenter ikke de pyramideformede stykker, før vi er færdige med ledningerne.

Fastgør den x-formede servoarm, og skru den på plads. Sæt kuglelejet over den 3D-trykte knap, dette vil kræve forsigtigt at klemme de 2 halvcirkelpæle sammen. Afhængigt af hvilket filamentmærke du bruger og udfyldningstætheden, kan stolperne være for sprøde og snappe, jeg tror ikke, at dette vil være tilfældet, men ikke desto mindre må du ikke bruge overdreven kraft. Jeg personligt brugte PLA filament med 10% fyldning. Når kuglelejet er tændt, skal det forblive låst fast ved udhængene på knappen.

Trin 4: Kredsløb

Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb

Kredsløbet er det samme for begge robotslanger. Under ledningsprocessen skal du sørge for, at der er nok ledningsplads til, at hvert segment kan rotere helt, især i 2D -slangen.

Ovenfor er et kredsløbsdiagram for ledningerne med kun 2 servoer. Jeg prøvede at lave en kredsløbstegning med 10 servoer, men det blev alt for overfyldt. Den eneste forskel mellem dette billede og det virkelige liv er, at du skal koble 8 flere servoer parallelt og forbinde PWM -signaltråde til stifter på Arduino Nano.

Ved tilslutning af elledninger brugte jeg et enkelt stykke 18 gauge ledning (tyk nok til at modstå 10 ampere) som hoved 5V -ledningen, der løber langs slangens længde. Ved hjælp af wire strippere fjernede jeg en lille sektion af isolatoren med 10 regelmæssige intervaller og lodde et kort stykke tråd fra hver af disse intervaller en gruppe på 3 hanstik. Gentag dette en anden gang for den sorte 18 gauge GND -ledning og en anden hanstik. Endelig loddes en længere ledning til den 3. mandlige header pin, denne pin vil bære PWM -signalet til servoen fra Arduino Nano i slangens hoved (tråden skal være lang nok til at nå, selv når segmenterne bøjer). Monter varmekrympeslange efter behov. Tilslut de 3 hanstikstifter og de 3 hunstikstifter på servoledningerne. Gentag 10 gange for hver af de 10 servoer. I sidste ende, hvad dette opnår, er at koble servoerne parallelt og køre PWM -signaltråde til Nano. Grunden til han/hun -headerstifterne var, så du nemt kan skille segmenter fra hinanden og udskifte servoer, hvis de går i stykker uden at lodde alt.

Lod GND- og 5V -ledningerne til et 3x7 hullers perf -bord i halen med en kondensator og skrueterminaler. Formålet med kondensatoren er at fjerne eventuelle aktuelle trækstigninger forårsaget ved opstart af servoerne, der kan nulstille Arduino Nano (hvis du ikke har en kondensator, kan du sandsynligvis slippe uden den, men det er bedre at være sikker). Husk, at det lange stik af elektrolytkondensatorer skal tilsluttes 5V -ledningen og det kortere stik til GND -ledningen. Lod lod GND -ledningen til GND -stiften på Nano og 5V -ledningen til 5V -stiften. Bemærk, hvis du bruger en anden spænding, (se næste afsnit), siger et Lipo -batteri med 7,4V, og led derefter den røde ledning til Vin -stiften, IKKE 5V -stiften, da det ødelægger stiften.

Lod de 10 PWM signaltråde til stifter på Arduino Nano. Jeg har tilsluttet min i følgende rækkefølge, du kan vælge at koble din på en anden måde, men husk bare, at du derefter skal ændre servo.attach () -linjerne i koden. Hvis du er i tvivl om, hvad jeg taler om, skal du bare koble det på samme måde som jeg gjorde, og du vil ikke have problemer. I orden fra servoen ved slangens hale til slangens hoved, trådte jeg begge mine slanger i følgende rækkefølge. Tilslutning af signalstifterne til: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Brug lynlåse til at rydde op i ledningerne. Inden du fortsætter, skal du kontrollere, at alle segmenterne kan bevæge sig med tilstrækkelig plads til, at ledningerne kan bevæge sig uden at blive trukket fra hinanden. Nu hvor ledningerne er udført, kan vi skrue hovedet og halen pyramideformede hætter på. Bemærk, at halen har et hul, hvor tøjret kan komme ud, og hovedet har et hul til Arduino -programmeringskablet.

Trin 5: Tænd for slangen

Tænder slangen
Tænder slangen
Tænder slangen
Tænder slangen
Tænder slangen
Tænder slangen

Fordi servoerne er forbundet parallelt, får de alle den samme spænding, men strømmen skal lægges sammen. Når man ser på databladet til MG996r -servoer, kan de trække op til 900mA hver mens de kører (forudsat at der ikke går noget i stå). Således er den samlede strømtrækning, hvis alle 10 servoer bevæger sig på samme tid, 0,9A*10 = 9A. Som sådan fungerer en normal 5v, 2A adapter til vægstik ikke. Jeg besluttede at ændre en ATX -strømforsyning, der er i stand til 5v ved 20A. Jeg vil ikke forklare, hvordan man gør dette, da det allerede er blevet diskuteret meget på Instructables og YouTube. En hurtig søgning online viser dig, hvordan du ændrer en af disse strømforsyninger.

Forudsat at du har ændret strømforsyningen, er det simpelthen et tilfælde af at forbinde en lang tøjring mellem strømforsyningen og skrueterminalerne på slangen.

En anden mulighed er at bruge et indbygget lipo -batteri. Jeg har ikke prøvet dette, så det vil være op til dig at designe en holder til batterierne og tilslutte dem. Husk driftsspændinger, strømtræk på servoer og Arduino (må ikke loddes andet end 5v til 5v pin på Arduino, gå til Vin pin, hvis du har en højere spænding).

Trin 6: Test alt fungerer

Inden vi fortsætter, lad os bare teste alt fungerer. Upload denne kode. Din slange skal flytte hver servo individuelt mellem 0-180 og derefter afslutte med at ligge i en lige linje. Hvis det ikke er tilfældet, er der noget galt, sandsynligvis er ledningerne forkerte, eller servoerne var oprindeligt ikke centreret ved 90 grader som nævnt i afsnittet "Samling af slanger".

Trin 7: Kode

Der er i øjeblikket ingen fjernbetjening til slangen, al bevægelse er forprogrammeret, og du kan vælge, hvad du vil. Jeg vil udvikle en fjernbetjening i version 2, men hvis du vil styre den eksternt, vil jeg foreslå at kigge på andre tutorials på Instructables og tilpasse slangen til at være bluetooth -kompatibel.

Hvis du laver 1D -slangen, skal du uploade denne kode.

Hvis du laver 2D -slangen, skal du uploade denne kode.

Jeg opfordrer dig til at lege med koden, foretage dine egne ændringer og oprette nye algoritmer. Læs de næste flere afsnit for en detaljeret forklaring af hver type bevægelse, og hvordan koden til den fungerer.

Trin 8: Skalaer mod hjul

Vægte mod hjul
Vægte mod hjul
Vægte mod hjul
Vægte mod hjul
Vægte mod hjul
Vægte mod hjul
Vægte mod hjul
Vægte mod hjul

En af de vigtigste måder slanger er i stand til at bevæge sig fremad er gennem formen på deres skalaer. Vægten muliggør lettere bevægelse fremad. For en yderligere forklaring se denne video fra 3:04 og fremefter for at se, hvordan skalaer hjælper slangen med at komme videre. Ser man på 3:14 i den samme video, viser man effekten, når slangerne er i et ærme, hvilket fjerner friktionen af vægten. Som vist i min YouTube -video, når den robotiske 1D -slange forsøger at glide på græs uden skalaer, bevæger den sig hverken frem eller tilbage, siden kræfterne summerer til et netto -nul. Som sådan er vi nødt til at tilføje nogle af kunstige skalaer til robotens underliv.

Forskning i genskabelse af bevægelse via skalaer blev udført på Harvard University og demonstreret i denne video. Jeg var ikke i stand til at udtænke en lignende metode til at flytte skalaerne op og ned på min robot og i stedet nøjedes med at fastgøre passive 3D -trykte vægte til underlivet.

Desværre viste dette sig ineffektivt (se i min YouTube -video kl. 3:38), da vægten stadig skummede over gulvtæppet i stedet for at fange fibrene og øge friktionen.

Hvis du vil eksperimentere med de skalaer, jeg lavede, kan du 3D -udskrive filerne fra min GitHub. Hvis du laver din egen succes, lad mig vide det i kommentarerne herunder!

Ved hjælp af en anden tilgang forsøgte jeg at bruge hjul fremstillet af r188 kuglelejer med varmekrympeslange udvendigt som et 'dæk'. Du kan 3D -udskrive plasthjulakslerne fra.stl -filerne på min GitHub. Selvom hjulene ikke er biologisk nøjagtige, er de analoge med skalaer, idet rotation fremad er let, men bevægelse fra side til side er betydeligt sværere. Du kan se det vellykkede resultat af hjulene i min YouTube -video.

Trin 9: Slithering Motion (single Axis Snake)

Første præmie i konkurrencen Få det til at flytte

Anbefalede: