Innehållsförteckning:
- Steg 1: Designprocess
- Steg 2: Arduino -rollen
- Steg 3: Material som behövs
- Steg 4: 3D -tryckta delar
- Steg 5: Förbereda servobeslagen
- Steg 6: Gör länkbitarna
- Steg 7: Montera benen
- Steg 8: Anpassad kretskort och ledningar
- Steg 9: Montering av kroppen
- Steg 10: Inledande installation
- Steg 11: Lite om kinematiken
- Steg 12: Programmering av Arduino
- Steg 13: Slutresultat: Dags att experimentera
Video: Arduino kontrollerad robotbiped: 13 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Fusion 360 -projekt »
Jag har alltid fascinerats av robotar, särskilt den typen som försöker efterlikna mänskliga handlingar. Detta intresse ledde till att jag försökte designa och utveckla en robotbiped som kunde imitera människors gång och löpning. I den här instruktionsboken kommer jag att visa dig design och montering av robotbiped.
Det främsta målet när jag byggde detta projekt var att göra systemet så robust som möjligt så att när jag experimenterar med olika gång- och löpgångar, skulle jag inte behöva oroa mig hela tiden för att maskinvaran skulle gå sönder. Detta gjorde att jag kunde pressa hårdvaran till sin gräns. Ett sekundärt mål var att göra den biped relativt låg kostnad med hjälp av lättillgängliga hobbydelar och 3D-utskrift så att det finns utrymme för ytterligare uppgraderingar och utbyggnader. Dessa två mål tillsammans ger en robust grund för att utföra olika experiment, så att man kan utveckla de biped till mer specifika krav.
Följ vidare för att skapa din egen Arduino -kontrollerade Robotic Biped och släpp en röst i "Arduino Contest" om du gillade projektet.
Steg 1: Designprocess
De humanoida benen utformades i Autodesks kostnadsfria 3D -modelleringsprogram Fusion 360. Jag började med att importera servomotorerna till designen och byggde benen runt dem. Jag konstruerade fästen för servomotorn som ger en andra svängpunkt diametralt motsatt servomotorns axel. Att ha dubbla axlar i vardera änden av motorn ger konstruktiv stabilitet i konstruktionen och eliminerar alla snedvridningar som kan uppstå när benen tvingas ta lite belastning. Länkarna var utformade för att hålla ett lager medan konsolerna använde en bult för axeln. När länkarna var monterade på axlarna med hjälp av en mutter, skulle lagret ge en slät och robust svängpunkt på motsatta sidan av servomotoraxeln.
Ett annat mål vid utformningen av tvåbent var att hålla modellen så kompakt som möjligt för att maximalt utnyttja vridmomentet från servomotorerna. Länkarnas dimensioner gjordes för att uppnå ett stort rörelseomfång samtidigt som den totala längden minimerades. Att göra dem för korta skulle få fästena att kollidera, minska rörelseomfånget och göra det för långt skulle utöva onödigt vridmoment på ställdonen. Slutligen konstruerade jag robotkroppen som Arduino och andra elektroniska komponenter skulle montera på.
Obs: Delarna ingår i ett av följande steg.
Steg 2: Arduino -rollen
En Arduino Uno användes i detta projekt. Arduino var ansvarig för att beräkna rörelsebanorna för de olika gångarter som testades och instruerade ställdonen att flytta till exakta vinklar med exakta hastigheter för att skapa en smidig gångrörelse. En Arduino är ett utmärkt val för att utveckla projekt på grund av dess mångsidighet. Det ger ett gäng IO -stift och ger också gränssnitt som seriell, I2C och SPI för att kommunicera med andra mikrokontroller och sensorer. Arduino ger också en bra plattform för snabba prototyper och tester och ger också utvecklare utrymme för förbättringar och utbyggbarhet. I detta projekt kommer ytterligare versioner att innehålla en tröghetsmätningsenhet för rörelsebearbetning som falldetektering och dynamisk rörelse i ojämn terräng och en avståndsmätningssensor för att undvika hinder.
Arduino IDE användes för detta projekt. (Arduino tillhandahåller också en webbaserad IDE)
Obs: Robotens program kan laddas ner från något av följande steg.
Steg 3: Material som behövs
Här är listan över alla komponenter och delar som krävs för att göra din alldeles egna Arduino -drivna Bipedal -robot. Alla delar ska vara allmänt tillgängliga och lätta att hitta.
ELEKTRONIK:
Arduino Uno x 1
Towerpro MG995 servomotor x 6
Perfboard (liknande storlek som Arduino)
Manliga och kvinnliga huvudstiften (cirka 20 av varje)
Jumper Wires (10 bitar)
MPU6050 IMU (tillval)
Ultraljudssensor (tillval)
HÅRDVARA:
Skateboardlager (8x19x7mm)
M4 muttrar och bultar
3D -skrivarfilament (om du inte äger en 3D -skrivare bör det finnas en 3D -skrivare i en lokal arbetsyta eller så kan utskrifterna göras på nätet för ganska billigt)
Exklusive Arduino och 3D -skrivare är den totala kostnaden för detta projekt 20 $.
Steg 4: 3D -tryckta delar
De delar som krävs för detta projekt måste vara specialdesignade, därför användes en 3D -skrivare för att skriva ut dem. Utskrifterna gjordes med 40% fyllning, 2 perimeter, 0,4 mm munstycke och en lagerhöjd på 0,1 mm med PLA, färg du väljer. Nedan hittar du hela listan över delar och STL för att skriva ut din egen version.
Obs: Härifrån kommer delarna att hänvisas till med namnen i listan.
- fotserverhållare x 1
- fot servo hållare spegel x 1
- knä servo hållare x 1
- knä servo hållare spegel x 1
- fot servo hållare x 1
- fot servo hållare spegel x 1
- bärlänk x 2
- servo hornlänk x 2
- fotlänk x 2
- bro x 1
- elektronikfäste x 1
- elektronisk distans x 8 (tillval)
- servohornsutrymme x 12 (tillval)
Totalt, exklusive distanserna, finns det 14 delar. Den totala utskriftstiden är cirka 20 timmar.
Steg 5: Förbereda servobeslagen
När alla delar har skrivits ut kan du börja med att ställa in servon och servofästena. Skjut först in ett lager i knä servohållaren. Passformen ska vara tät men jag skulle rekommendera att slipa hålets inre yta lite istället för att tvinga lagret vilket kan riskera att bryta delen. För sedan en M4 -bult genom hålet och dra åt den med en mutter. Ta sedan tag i fotlänken och fäst ett cirkulärt servohorn på det med de medföljande skruvarna. Fäst fotlänken på knä servohållaren med skruvarna som du använder för att även fästa servomotorn. Se till att rikta in motorn så att axeln är på samma sida av bulten som du hade fäst tidigare. Sätt slutligen servon med resten av muttrarna och bultarna.
Gör samma sak med höftservohållaren och fotserven. Med detta bör du ha tre servomotorer och motsvarande fästen.
Obs: Jag ger instruktioner för att bygga ett ben, det andra speglas helt enkelt.
Steg 6: Gör länkbitarna
När fästena är monterade, börja göra länkarna. För att göra lagerlänken, slipa återigen den inre ytan på lagren för lagret och tryck sedan in lagret i hålet på båda sidor. Se till att trycka in lagret tills ena sidan är jämn. För att bygga servohornslänken, ta tag i två cirkulära servohorn och de medföljande skruvarna. Placera hornen på 3D -utskriften och ställ in hålen, skruva sedan på hornet på 3D -utskriften genom att fästa skruven från 3D -utskriftssidan. Jag rekommenderar att du använder ett 3D -tryckt servohornsavstånd för dessa skruvar. När länkarna är byggda kan du börja montera benet.
Steg 7: Montera benen
När länkarna och fästena är monterade kan du kombinera dem för att bygga robotens ben. Använd först servohornslänken för att fästa höftservofästet och knäserverfästet tillsammans. Obs! Skruva inte fast hornet på servon ännu, eftersom det finns ett installationssteg i följande steg och det kommer att vara besvärligt om hornet skruvas fast på servomotorn.
Montera lagerlänken på motsatta sidan på de utskjutande bultarna med hjälp av muttrar. Slutligen fäst fotfästfästet genom att sätta in den utskjutande bulten genom lagret på knäserverhållaren. Och fäst servoaxeln på servohornet som är anslutet till knä servohållaren på andra sidan. Detta kan vara en knepig uppgift och jag skulle rekommendera ett andra par händer för detta.
Upprepa stegen för det andra benet. Använd bilderna som bifogas varje steg som referens.
Steg 8: Anpassad kretskort och ledningar
Detta är ett valfritt steg. För att göra kabeldragningen snyggare bestämde jag mig för att göra ett anpassat kretskort med hjälp av perf board och header pins. Kretskortet innehåller portar för att direkt ansluta servomotorkablarna. Dessutom lämnade jag också extra portar om jag ville expandera och lägga till andra sensorer som tröghetsmätningsenheter eller ultraljudsavståndssensorer. Den innehåller också en port för den externa strömkällan som krävs för att driva servomotorerna. En bygelanslutning används för att växla mellan USB och extern ström för Arduino. Montera Arduino och PCB på vardera sidan av elektronikfästet med skruvar och 3D -tryckta distanser.
Obs! Se till att koppla ur bygeln innan du ansluter Arduino till din dator via USB. Om du inte gör detta kan det skada Arduino.
Om du bestämmer dig för att inte använda kretskortet och istället använda en brödbräda är här servoanslutningarna:
- Vänster höft >> stift 9
- Höger höft >> stift 8
- Vänster knä >> stift 7
- Höger knä >> stift 6
- Vänster fot >> stift 5
- Höger fot >> stift 4
Om du bestämmer dig för att få kretskortet att följa samma ordning som ovan genom att använda portarna på kretskortet från höger till vänster med IMU -porten uppåt. Och använd vanliga hankopplingar till män för att ansluta kretskortet till Arduino med hjälp av ovanstående stiftnummer. Se till att också ansluta jordstiftet och skapa samma jordpotential och Vin -pin för när du bestämmer dig för att köra den utan USB -ström.
Steg 9: Montering av kroppen
När de två benen och elektroniken är monterade kombinerar du dem tillsammans för att bygga robotkroppen. Använd brostycket för att länka ihop de två benen. Använd samma monteringshål på höftservohållaren och muttrar och bultar som håller servomotorn. Slutligen, anslut elektronikfästet till bron. Rikta upp hålen på bron och elektronikfästet och använd M4 -muttrar och bultar för att göra fogen.
Se de bifogade bilderna för hjälp. Med detta har du slutfört robotens hårdvarubyggnad. Låt oss sedan hoppa in i programvaran och väcka roboten till liv.
Steg 10: Inledande installation
Vad jag har märkt när jag byggde detta projekt är att servomotorerna och hornen inte behöver anpassas perfekt för att hålla sig relativt parallella. Det är därför varje servomotors "centrala position" måste justeras manuellt för att anpassa sig till benen. För att uppnå detta, ta bort servohornen från varje servo och kör initial_setup.ino -skissen. När motorerna har satt sig i sitt centrala läge sätter du fast hornen igen så att benen är helt raka och foten är perfekt parallell med marken. Om så är fallet har du tur. Om inte, öppna filen constants.h på den intilliggande fliken och ändra servoförskjutningsvärdena (rad 1-6) tills benen är helt inriktade och foten platt. Lek med värdena så får du en uppfattning om vad som är nödvändigt i ditt fall.
När konstanterna har ställts in, notera dessa värden eftersom de kommer att behövas senare.
Se bilderna för hjälp.
Steg 11: Lite om kinematiken
För att få de tvåbenta att utföra användbara åtgärder som att springa och gå måste de olika gångarterna programmeras i form av rörelsebanor. Rörelsebanor är banor längs vilka ändeffektorn (fötterna i detta fall) färdas längs. Det finns två sätt att uppnå detta:
- Ett tillvägagångssätt skulle vara att mata fogvinklarna för de olika motorerna på ett brutalt sätt. Detta tillvägagångssätt kan vara tidskrävande, tråkigt och också fyllt med fel eftersom domen är rent visuell. Istället finns det ett smartare sätt att uppnå önskat resultat.
- Det andra tillvägagångssättet kretsar kring att mata koordinaterna för sluteffektorn istället för alla fogvinklar. Detta är vad som kallas invers kinematik. Användaren matar in koordinater och ledvinklarna justerar för att positionera ändeffektorn vid de angivna koordinaterna. Denna metod kan betraktas som en svart låda som tar in koordinater som ingångar och matar ut ledvinklarna. För dem som är intresserade av hur de trigonometriska ekvationerna för denna svarta låda utvecklades kan titta på diagrammet ovan. För dem som inte är intresserade är ekvationerna redan programmerade och kan användas med pos -funktionen som tar som ingång x, z och matar ut tre vinklar som motsvarar motorerna.
Programmet som innehåller dessa funktioner finns i nästa steg.
Steg 12: Programmering av Arduino
Innan du programmerar Arduino måste små ändringar göras i filen. Kommer du ihåg konstanterna som jag hade bett dig att ta av en lapp? Ändra samma konstanter till de värden som du anger i filen constants.h.
Obs! Om du har använt mönstren i denna instruktionsbok har du inget att ändra. Om det är några av er som har gjort sina egna mönster måste ni ändra några fler värden tillsammans med förskjutningarna. Konstanten l1 mäter avståndet mellan höftled och knäled. Den konstanta l2 mäter avståndet mellan knäleden och vristen. Så om du har designat din egen modell, mäta dessa längder och ändra konstanterna. De två sista konstanterna används för gångarterna. StepClearance -konstanten mäter hur hög foten kommer att lyfta när den kommer fram efter ett steg och steghöjdskonstanten mäter höjden från marken till höften medan den tar steg.
När alla konstanterna har modifierats enligt ditt behov kan du ladda upp huvudprogrammet. Huvudprogrammet initierar helt enkelt roboten till en gångställning och börjar ta steg framåt. Funktionerna kan ändras efter ditt behov av att utforska de olika gångarterna, hastigheterna och steglängderna för att se vad som fungerar bäst.
Steg 13: Slutresultat: Dags att experimentera
Biped kan ta steg som varierar från 10 till 2 cm lång utan att välta. Hastigheten kan också varieras samtidigt som gången hålls balanserad. Detta biped kombinerat med kraften i Arduino ger en robust plattform för att experimentera med olika andra gångarter och andra mål som att hoppa eller balansera medan du sparkar en boll. Jag skulle rekommendera dig att försöka ändra benens rörelsebanor för att skapa dina egna gångarter och upptäcka hur olika gångarter påverkar robotens prestanda. Sensorer som en IMU och avståndssensor kan läggas till systemet för att öka dess funktioner medan kraftsensorer kan läggas till benen för att experimentera med dynamisk rörelse på ojämna ytor.
Hoppas du tyckte om denna instruerbara och är tillräckligt med inspiration för att bygga din egen. Om du gillade projektet, stöd det genom att släppa en omröstning i "Arduino Contest".
Happy Making!
Första priset i Arduino Contest 2020
Rekommenderad:
Wifi -kontrollerad 12v LED -remsa med Raspberry Pi med Tasker, Ifttt -integration: 15 steg (med bilder)
Wifi -kontrollerad 12v Led Strip med Raspberry Pi Med Tasker, Ifttt Integration .: I det här projektet kommer jag att visa dig hur du styr en enkel 12v analog led strip över wifi med en hallon pi. För detta projekt behöver du: 1x Raspberry Pi (I använder en Raspberry Pi 1 Model B+) 1x RGB 12v Le
Wi-Fi-kontrollerad robot med Wemos D1 ESP8266, Arduino IDE och Blynk App: 11 steg (med bilder)
Wi-Fi-kontrollerad robot med hjälp av Wemos D1 ESP8266, Arduino IDE och Blynk App: I denna handledning visar jag dig hur du gör en Wi-Fi-kontrollerad robottank som styrs från en smartphone med Blynk App. I detta projekt användes ett ESP8266 Wemos D1 -kort, men andra plattmodeller kan också användas (NodeMCU, Firebeetle, etc.), och pr
Arduino kontrollerad robotarm med 6 frihetsgrader: 5 steg (med bilder)
Arduino kontrollerad robotarm med 6 frihetsgrader: Jag är medlem i en robotgrupp och varje år deltar vår grupp i en årlig Mini-Maker Faire. Från och med 2014 bestämde jag mig för att bygga ett nytt projekt för varje års evenemang. På den tiden hade jag ungefär en månad innan evenemanget att sätta ihop något
Arduino -kontrollerad telefondocka med lampor: 14 steg (med bilder)
Arduino kontrollerad telefon docka med lampor: Idén var enkel nog; skapa en laddningsstation för telefonen som bara skulle tända en lampa när telefonen laddades. Men som ofta är fallet kan saker som i början verkar enkla sluta bli lite mer komplexa i deras utförande. Detta är t
Smartphone -kontrollerad RC -bil med Arduino: 13 steg (med bilder)
Smartphone -kontrollerad RC -bil med Arduino: Denna instruktion visar hur man gör en Smartphone -styrd Arduino -robotbil. Uppdatera den 25 oktober 2016