Indholdsfortegnelse:
- Trin 1: Designproces
- Trin 2: Arduinoens rolle
- Trin 3: Nødvendige materialer
- Trin 4: 3D -printede dele
- Trin 5: Forberedelse af servobeslagene
- Trin 6: Lav linkstykker
- Trin 7: Montering af benene
- Trin 8: Brugerdefineret printkort og ledninger
- Trin 9: Montering af kroppen
- Trin 10: Indledende opsætning
- Trin 11: Lidt om kinematikken
- Trin 12: Programmering af Arduino
- Trin 13: Endelige resultater: Tid til at eksperimentere
Video: Arduino kontrolleret robotbiped: 13 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Fusion 360 -projekter »
Jeg har altid været fascineret af robotter, især den slags, der forsøger at efterligne menneskelige handlinger. Denne interesse fik mig til at prøve at designe og udvikle en robot tobenet, der kunne efterligne menneskelig gang og løb. I denne Instructable vil jeg vise dig designet og samlingen af den robotbipede.
Det primære mål under opbygningen af dette projekt var at gøre systemet så robust som muligt, så mens jeg eksperimenterede med forskellige gang- og løbegange, ville jeg ikke konstant skulle bekymre mig om hardwarefejl. Dette tillod mig at skubbe hardwaren til sin grænse. Et sekundært mål var at gøre de tobenede relativt billige ved hjælp af let tilgængelige hobbydele og 3D-udskrivning, så der blev plads til yderligere opgraderinger og udvidelser. Disse to mål tilsammen giver et robust fundament til at udføre forskellige eksperimenter, så man kan udvikle de tobenede til mere specifikke krav.
Følg med for at oprette din egen Arduino kontrollerede Robotic Biped og afgiv en stemme i "Arduino Contest", hvis du kunne lide projektet.
Trin 1: Designproces
De humanoide ben blev designet i Autodesks gratis at bruge Fusion 360 3d -modelleringssoftware. Jeg begyndte med at importere servomotorer til designet og byggede benene omkring dem. Jeg designede beslag til servomotoren, som giver et andet drejepunkt diametralt modsat servomotorens aksel. At have to aksler i hver ende af motoren giver konstruktiv stabilitet i designet og eliminerer enhver skævhed, der kan opstå, når benene tvinges til at tage en vis belastning. Linkene var designet til at holde et leje, mens beslagene brugte en bolt til akslen. Når leddene var monteret på akslerne ved hjælp af en møtrik, ville lejet give et glat og robust drejepunkt på den modsatte side af servomotorakslen.
Et andet mål under udformningen af de tobenede var at holde modellen så kompakt som muligt for maksimalt at udnytte det drejningsmoment, servomotorerne leverer. Linkernes dimensioner blev lavet for at opnå et stort bevægelsesområde, samtidig med at den samlede længde blev minimeret. At gøre dem for korte ville få beslagene til at kollidere, reducere bevægelsesområdet og gøre det for langt ville udøve unødvendigt moment på aktuatorerne. Endelig designede jeg robotens krop, som Arduino og andre elektroniske komponenter ville montere på.
Bemærk: Delene er inkluderet i et af følgende trin.
Trin 2: Arduinoens rolle
En Arduino Uno blev brugt i dette projekt. Arduino var ansvarlig for at beregne bevægelsesbanerne for de forskellige gangarter, der blev testet, og instruerede aktuatorerne i at bevæge sig til præcise vinkler ved præcise hastigheder for at skabe en jævn gangbevægelse. En Arduino er et godt valg til udvikling af projekter på grund af dens alsidighed. Det giver en masse IO -pins og giver også grænseflader som seriel, I2C og SPI til at kommunikere med andre mikrokontrollere og sensorer. Arduino giver også en fantastisk platform til hurtige prototyper og test og giver udviklere også plads til forbedringer og udvidelsesmuligheder. I dette projekt vil yderligere versioner omfatte en inertial måleenhed til bevægelsesbehandling, såsom faldregistrering og dynamisk bevægelse i ujævnt terræn og en afstandsmålesensor for at undgå forhindringer.
Arduino IDE blev brugt til dette projekt. (Arduino giver også en webbaseret IDE)
Bemærk: Robotens programmer kan downloades fra et af følgende trin.
Trin 3: Nødvendige materialer
Her er listen over alle komponenter og dele, der kræves for at lave din helt egen Arduino -drevne Bipedal -robot. Alle dele skal være almindeligt tilgængelige og lette at finde.
ELEKTRONIK:
Arduino Uno x 1
Towerpro MG995 servomotor x 6
Perfboard (lignende størrelse som Arduino)
Hovedstifter til mænd og kvinder (ca. 20 af hver)
Jumper Wires (10 stk.)
MPU6050 IMU (valgfri)
Ultralydssensor (valgfri)
HARDWARE:
Skateboardleje (8x19x7mm)
M4 møtrikker og bolte
3D -printerfilament (hvis du ikke ejer en 3D -printer, skal der være en 3D -printer i et lokalt arbejdsområde, eller udskrifterne kan udføres online for ganske billigt)
Eksklusive Arduino og 3D printer er de samlede omkostninger ved dette projekt 20 $.
Trin 4: 3D -printede dele
De dele, der kræves til dette projekt, skulle specialdesignes, derfor blev der brugt en 3D -printer til at udskrive dem. Udskrifterne blev lavet med 40% fyldning, 2 omkredse, 0,4 mm dyse og en laghøjde på 0,1 mm med PLA, farve efter eget valg. Nedenfor kan du finde den komplette liste over dele og STL'erne til udskrivning af din egen version.
Bemærk: Herfra vil der blive henvist til delene ved hjælp af navnene på listen.
- fod servo holder x 1
- fod servo holder spejl x 1
- knæ servo holder x 1
- knæ servo holder spejl x 1
- fod servo holder x 1
- fod servo holder spejl x 1
- lejeled x 2
- servo horn link x 2
- fodlænke x 2
- bro x 1
- elektronikbeslag x 1
- elektronik afstandsstykke x 8 (valgfrit)
- servo hornplads x 12 (valgfrit)
I alt, eksklusive afstandsstykkerne, er der 14 dele. Den samlede udskrivningstid er omkring 20 timer.
Trin 5: Forberedelse af servobeslagene
Når alle delene er trykt, kan du begynde med at konfigurere servoer og servobeslag. Før først et leje ind i knæservoholderen. Pasformen skal være tæt, men jeg vil anbefale at slibe den indre overflade af hullet lidt i stedet for at tvinge lejet, hvilket kan risikere at bryde delen. Før derefter en M4 -bolt gennem hullet, og stram den med en møtrik. Tag derefter fat i fodleddet, og fastgør et cirkulært servohorn til det ved hjælp af de medfølgende skruer. Fastgør fodleddet til knæservoholderen ved hjælp af de skruer, du vil bruge til også at fastgøre servomotoren. Sørg for at justere motoren, så akslen er på den samme side af bolten, du havde fastgjort tidligere. Fastgør til sidst servoen med resten af møtrikker og bolte.
Gør det samme med hofte servo holderen og fod servo holderen. Med dette skal du have tre servomotorer og deres tilhørende beslag.
Bemærk: Jeg giver instruktioner til at bygge det ene ben, det andet er simpelthen spejlet.
Trin 6: Lav linkstykker
Når beslagene er samlet, skal du begynde at lave linkene. For at lave lejeled, slib igen let den indvendige overflade af hullerne til lejet, og skub derefter lejet ind i hullet på begge sider. Sørg for at skubbe lejet ind, indtil den ene side er flush. For at bygge servohornsleddet, tag to cirkulære servohorn og de medfølgende skruer. Placer hornene på 3D -printet og sæt hullerne på linje, skru derefter hornet på 3D -printet ved at fastgøre skruen fra 3D -printsiden. Jeg anbefaler at bruge et 3D -printet servohornsafstandsstykke til disse skruer. Når forbindelserne er bygget, kan du begynde at samle benet.
Trin 7: Montering af benene
Når links og beslag er samlet, kan du kombinere dem til at bygge robotens ben. Brug først servohornslinket til at fastgøre hofte servobeslag og knæ servobeslag sammen. Bemærk: Skru ikke hornet fast på servoen endnu, da der er et opsætningstrin i det følgende trin, og det vil være en gene, hvis hornet blev skruet fast på servomotoren.
På den modsatte side monteres lejeleddet på de stikkende bolte ved hjælp af møtrikker. Til sidst fastgøres fodservo -beslaget ved at indsætte den stikkende bolt gennem lejet på knæ -servoholderen. Og fastgør servoakslen til servohornet, der er forbundet med knæservoholderen på den anden side. Dette kan være en vanskelig opgave, og jeg vil anbefale et andet par hænder til dette.
Gentag trinene for det andet ben. Brug de vedhæftede billeder til hvert trin som reference.
Trin 8: Brugerdefineret printkort og ledninger
Dette er et valgfrit trin. For at gøre ledningerne pænere besluttede jeg at lave et brugerdefineret printkort ved hjælp af perf board og header pins. PCB'et indeholder porte til direkte tilslutning af servomotortråde. Derudover forlod jeg også ekstra porte, hvis jeg ville udvide og tilføje andre sensorer som f.eks. Inertialmåleenheder eller ultralydsafstandssensorer. Den indeholder også en port til den eksterne strømkilde, der kræves for at drive servomotorer. En jumper -forbindelse bruges til at skifte mellem USB og ekstern strøm til Arduino. Monter Arduino og printkort på hver side af elektronikbeslaget ved hjælp af skruer og 3D -trykte afstandsstykker.
Bemærk: Sørg for at trække stikket ud, før du slutter Arduino til din computer via USB. Hvis du ikke gør dette, kan det resultere i beskadigelse af Arduino.
Hvis du beslutter dig for ikke at bruge printkortet og i stedet bruge et brødbræt, er her servoforbindelserne:
- Venstre hofte >> pin 9
- Højre hofte >> pin 8
- Venstre knæ >> pin 7
- Højre knæ >> pin 6
- Venstre fod >> pin 5
- Højre fod >> pin 4
Hvis du beslutter dig for at få printkortet til at følge den samme rækkefølge som ovenfor ved at bruge portene på printkortet fra højre til venstre med IMU -porten opad. Og brug almindelige stikkontakter til han til hun til at forbinde printkortet til Arduino ved hjælp af ovenstående pin -numre. Sørg for også at tilslutte jordnålen og oprette det samme jordpotentiale og Vin -pin til, når du beslutter dig for at køre den uden USB -strøm.
Trin 9: Montering af kroppen
Når de to ben og elektronikken er samlet, skal du kombinere dem sammen for at bygge robotkroppen. Brug brostykket til at forbinde de to ben sammen. Brug de samme monteringshuller på hofte -servoholderen og møtrikker og bolte, der holder servomotoren. Tilslut til sidst elektronikbeslaget til broen. Opsæt hullerne på broen og elektronikmonteringen, og brug M4 møtrikker og bolte til at lave leddet.
Se de vedhæftede billeder for at få hjælp. Med dette har du afsluttet robotopbygningen af robotten. Lad os derefter springe ind i softwaren og bringe robotten til live.
Trin 10: Indledende opsætning
Det, jeg har bemærket under opbygningen af dette projekt, er, at servomotorer og horn ikke behøver at flugte perfekt for at forblive relativt parallelle. Det er derfor, at hver servomotors "centrale position" skal justeres manuelt for at flugte med benene. For at opnå dette skal du fjerne servohornene fra hver servo og køre den initial_setup.ino -skitse. Når motorerne har sat sig i deres centrale position, skal hornene fastgøres igen, så benene er helt lige og foden er perfekt parallel med jorden. Hvis dette er tilfældet, har du held og lykke. Hvis ikke, åbner filen constants.h på fanen ved siden af, og ændrer servo-offsetværdierne (linje 1-6), indtil benene er perfekt justeret, og foden er flad. Leg med værdierne, og du får en idé om, hvad der er nødvendigt i dit tilfælde.
Når konstanterne er blevet indstillet, skal du notere disse værdier, da de senere vil være nødvendige.
Se billederne for at få hjælp.
Trin 11: Lidt om kinematikken
For at få de tobenede til at udføre nyttige handlinger såsom løb og gå skal de forskellige gangarter programmeres i form af bevægelsesstier. Bevægelsesstier er stier, langs hvilke endeeffektoren (fødderne i dette tilfælde) bevæger sig langs. Der er to måder at opnå dette på:
- En tilgang ville være at fodre de forskellige motorers ledvinkler på en brutal kraft måde. Denne tilgang kan være tidskrævende, kedelig og også fyldt med fejl, da dommen er rent visuel. I stedet er der en smartere måde at opnå de ønskede resultater.
- Den anden tilgang drejer sig om fodring af koordinaterne for sluteffektoren i stedet for alle ledvinklerne. Dette er det, der er kendt som Inverse Kinematics. Brugeren indtaster koordinater og ledvinklerne justeres for at placere sluteffektoren ved de angivne koordinater. Denne metode kan betragtes som en sort boks, der tager som input en koordinat og udsender ledvinklerne. For dem, der er interesseret i, hvordan de trigonometriske ligninger i denne sorte boks blev udviklet, kan se på diagrammet ovenfor. For dem, der ikke er interesseret, er ligningerne allerede programmeret og kan bruges ved hjælp af pos -funktionen, der tager som input x, z og sender tre vinkler svarende til motorerne.
Programmet, der indeholder disse funktioner, findes i det næste trin.
Trin 12: Programmering af Arduino
Inden programmering af Arduino skal der foretages små ændringer i filen. Kan du huske de konstanter, jeg havde bedt dig om at tage en seddel fra? Rediger de samme konstanter til de værdier, du angav i filen constants.h.
Bemærk: Hvis du har brugt designene i denne instruktionsbog, har du intet at ændre. Hvis der er nogle af jer, der har lavet deres egne designs, bliver du nødt til at ændre et par værdier mere sammen med forskydningerne. Den konstante l1 måler afstanden mellem hoftedrejningen og knedrejningen. Den konstante l2 måler afstanden mellem knedrejningen og anklens drejning. Så hvis du har designet din egen model, skal du måle disse længder og ændre konstanterne. De sidste to konstanter bruges til gangarterne. StepClearance -konstanten måler, hvor højt foden vil løfte, mens den kommer frem efter et trin, og stepHeight -konstanten måler højden fra jorden til hoften, mens den tager skridt.
Når alle konstanterne er ændret i henhold til dit behov, kan du uploade hovedprogrammet. Hovedprogrammet initialiserer simpelthen robotten i en gangstilling og begynder at tage skridt fremad. Funktionerne kan ændres efter dit behov for at udforske de forskellige gangarter, hastigheder og trinlængder for at se, hvad der fungerer bedst.
Trin 13: Endelige resultater: Tid til at eksperimentere
Biped kan tage trin, der varierer fra 10 til 2 cm lang uden at vælte. Hastigheden kan også varieres, mens gangen holdes i balance. Denne biped kombineret med kraften i Arduino giver en robust platform til at eksperimentere med forskellige andre gangarter og andre mål såsom at hoppe eller balancere, mens man sparker en bold. Jeg vil anbefale dig at prøve at ændre benenes bevægelsesbaner for at skabe dine egne gangarter og opdage, hvordan forskellige gangarter påvirker robotens ydeevne. Sensorer som f.eks. En IMU og afstandssensor kan tilføjes til systemet for at øge dets funktionaliteter, mens kraftsensorer kan tilføjes til benene for at eksperimentere med dynamisk bevægelse på ujævne overflader.
Håber du nød denne Instructable og er nok inspiration til at bygge din egen. Hvis du kunne lide projektet, så støt det ved at droppe en afstemning i "Arduino -konkurrencen".
Happy Making!
Første præmie i Arduino -konkurrencen 2020
Anbefalede:
WiFi -kontrolleret enhjørningshætte? Med RGB -lys: 5 trin (med billeder)
WiFi -kontrolleret enhjørningshætte? Med RGB -lys: Hej alle sammen. Min lille nudede mig i et stykke tid om interessante bærbare gør -det -selv -relaterede til enhjørninger. Så jeg har kløet mig i hovedet og besluttet at skabe noget usædvanligt og med et meget lavt budget. Dette projekt kræver ikke, at appen fortsætter
Arduino kontrolleret telefon dock med lamper: 14 trin (med billeder)
Arduino kontrolleret telefon dock med lamper: Ideen var enkel nok; opret en telefonopladningsdock, der kun ville tænde en lampe, når telefonen oplades. Men som det ofte er tilfældet, kan ting, der i starten virker simple, ende med at blive lidt mere komplekse i deres udførelse. Dette er t
Nunchuk kontrolleret robotarm (med Arduino): 14 trin (med billeder)
Nunchuk kontrolleret robotarm (med Arduino): Robotarme er fantastiske! Fabrikker over hele verden har dem, hvor de maler, lodder og bærer ting med præcision. De kan også findes i rumforskning, undervandsfjernbetjente køretøjer og endda i medicinske applikationer! Og nu kan du
Robothånd med trådløs handske kontrolleret - NRF24L01+ - Arduino: 7 trin (med billeder)
Robothånd med trådløs handske kontrolleret | NRF24L01+ | Arduino: I denne video; 3D robot håndsamling, servostyring, flex sensor kontrol, trådløs kontrol med nRF24L01, Arduino modtager og sender kildekode er tilgængelige. Kort sagt, i dette projekt vil vi lære at styre en robothånd med en wireles
Arduino-kontrolleret platformspil med joystick og IR-modtager: 3 trin (med billeder)
Arduino-kontrolleret platformspil med joystick og IR-modtager: I dag vil vi bruge en Arduino-mikrokontroller til at styre et simpelt C#-baseret platformspil. Jeg bruger Arduino til at tage input fra et joystick -modul og sende dette input til C# -programmet, der lytter og afkoder input over et serielt c