INHOUDSOPGAWE:

Arduino Controlled Robotic Biped: 13 stappe (met foto's)
Arduino Controlled Robotic Biped: 13 stappe (met foto's)

Video: Arduino Controlled Robotic Biped: 13 stappe (met foto's)

Video: Arduino Controlled Robotic Biped: 13 stappe (met foto's)
Video: Arduino Humanoid Robot with Robotic Palms (帶可控手掌之Arduino人形機器人) 2024, November
Anonim
Image
Image
Arduino Controlled Robotic Biped
Arduino Controlled Robotic Biped
Arduino Controlled Robotic Biped
Arduino Controlled Robotic Biped

Fusion 360 -projekte »

Ek was nog altyd geïntrigeerd deur robotte, veral die soort wat menslike optrede probeer naboots. Hierdie belangstelling het my daartoe gelei dat ek probeer het om 'n robot -tweevoet te ontwerp en te ontwikkel wat menslike loop en hardloop kan naboots. In hierdie instruksies sal ek u die ontwerp en samestelling van die robot tweeband wys.

Die primêre doelwit tydens die bou van hierdie projek was om die stelsel so robuust moontlik te maak, sodat ek nie voortdurend hoef te bekommer oor die hardeware wat misluk terwyl ek met verskillende loop- en hardloopgange eksperimenteer nie. Dit het my in staat gestel om die hardeware tot sy uiterste te stoot. 'N Sekondêre doelwit was om die bipip relatief goedkoop te maak deur gebruik te maak van geredelik beskikbare stokperdjie-onderdele en 3D-drukwerk wat ruimte bied vir verdere opgraderings en uitbreidings. Hierdie twee doelwitte gesamentlik bied 'n robuuste basis om verskillende eksperimente uit te voer, sodat 'n mens die bipip na meer spesifieke vereistes kan ontwikkel.

Gaan voort om u eie Arduino -beheerde Robotic Biped te skep en stem in die 'Arduino -wedstryd' as u van die projek hou.

Stap 1: Ontwerpproses

Ontwerpproses
Ontwerpproses
Ontwerpproses
Ontwerpproses
Ontwerpproses
Ontwerpproses

Die menslike bene is ontwerp in Autodesk se gratis Fusion 360 3D -modelleringsagteware. Ek het begin met die invoer van die servomotore in die ontwerp en die pote om hulle gebou. Ek het hakies ontwerp vir die servomotor wat 'n tweede spilpunt bied wat diametraal teenoor die servomotor se as is. Deur dubbele asse aan weerskante van die motor te hê, gee die ontwerp strukturele stabiliteit en elimineer enige skeefheid wat kan ontstaan as die bene 'n bietjie las neem. Die skakels is ontwerp om 'n laer te hou terwyl die hakies 'n bout vir die as gebruik het. Sodra die skakels met 'n moer op die as gemonteer is, sou die laer 'n gladde en robuuste spilpunt aan die teenoorgestelde kant van die servomotoras bied.

'N Ander doelwit tydens die ontwerp van die tweeben was om die model so kompak as moontlik te hou om die wringkrag wat deur die servomotors verskaf word, optimaal te benut. Die afmetings van die skakels is gemaak om 'n groot bewegingsbereik te bereik, terwyl die totale lengte tot 'n minimum beperk word. Deur hulle te kort te maak, kan die hakies bots, die bewegingsbereik verminder en dit te lank maak, sal onnodige wringkrag op die aandrywers uitoefen. Uiteindelik het ek die liggaam van die robot ontwerp waarop die Arduino en ander elektroniese komponente gemonteer kan word.

Opmerking: die onderdele is ingesluit in een van die volgende stappe.

Stap 2: Die rol van die Arduino

Die rol van die Arduino
Die rol van die Arduino

'N Arduino Uno is in hierdie projek gebruik. Die Arduino was verantwoordelik vir die berekening van die bewegingspaaie van die verskillende gange wat getoets is, en het die aktuators opdrag gegee om teen presiese snelhede na presiese hoeke te beweeg om 'n gladde loopbeweging te skep. Vanweë sy veelsydigheid is 'n Arduino 'n uitstekende keuse vir die ontwikkeling van projekte. Dit bied 'n klomp IO -penne en bied ook koppelvlakke soos seriële, I2C en SPI om met ander mikrobeheerders en sensors te kommunikeer. Die Arduino bied ook 'n uitstekende platform vir vinnige prototipering en toetsing en gee ontwikkelaars ook ruimte vir verbeterings en uitbreidbaarheid. In hierdie projek sal verdere weergawes 'n traagmeeteenheid vir bewegingsverwerking insluit, soos valopsporing en dinamiese beweging in ongelyke terrein en 'n afstandmeetsensor om hindernisse te vermy.

Die Arduino IDE is vir hierdie projek gebruik. (Arduino bied ook 'n webgebaseerde IDE aan)

Opmerking: die programme vir die robot kan afgelaai word uit een van die volgende stappe.

Stap 3: materiaal benodig

Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig
Materiaal benodig

Hier is die lys van al die komponente en onderdele wat nodig is om u eie Arduino -aangedrewe tweevoetige robot te maak. Alle onderdele moet algemeen beskikbaar wees en maklik gevind word.

ELEKTRONIES:

Arduino Uno x 1

Towerpro MG995 servomotor x 6

Perfboard (soortgelyk aan die Arduino)

Manlike en vroulike koppenne (ongeveer 20 van elk)

Jumper Wires (10 stukke)

MPU6050 IMU (opsioneel)

Ultrasoniese sensor (opsioneel)

HARDWARE:

Skateboardlager (8x19x7mm)

M4 moere en boute

3D -drukkersdraad (as u nie 'n 3D -drukker besit nie, moet daar 'n 3D -drukker in 'n plaaslike werkruimte wees, of die afdrukke kan goedkoop aanlyn gedoen word)

Die Arduino- en 3D -drukker uitgesluit is die totale koste van hierdie projek 20 $.

Stap 4: Onderdele met 3D -druk

3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele

Die dele wat vir hierdie projek benodig word, moes spesiaal ontwerp word, daarom is 'n 3D -drukker gebruik om dit uit te druk. Die afdrukke is gemaak met 40% vulsel, 2 omtrek, 0,4 mm spuitstuk en 'n laaghoogte van 0,1 mm met PLA, kleur van u keuse. Hieronder vind u die volledige lys met onderdele en die STL's om u eie weergawe te druk.

Nota: Van hier af sal na die dele verwys word deur die name in die lys te gebruik.

  • voet servo houer x 1
  • voet servo houerspieël x 1
  • knie servo houer x 1
  • knie servo houerspieël x 1
  • voet servo houer x 1
  • voet servo houerspieël x 1
  • laerskakel x 2
  • servo horing skakel x 2
  • voetskakel x 2
  • brug x 1
  • elektroniese houer x 1
  • elektroniese afstandhouer x 8 (opsioneel)
  • servo horingspasie x 12 (opsioneel)

In totaal, behalwe die afstandhouers, is daar 14 dele. Die totale druktyd is ongeveer 20 uur.

Stap 5: Berei die servo -hakies voor

Berei die servo -hakies voor
Berei die servo -hakies voor
Berei die servo -hakies voor
Berei die servo -hakies voor
Berei die servo -hakies voor
Berei die servo -hakies voor

Sodra al die dele gedruk is, kan u begin met die opstel van die servo's en die servo -hakies. Druk eers die laer in die knie -servohouer. Die pasvorm moet stewig wees, maar ek beveel aan dat u die binnekant van die gat 'n bietjie skuur in plaas van om die laer te forseer, wat die deel kan breek. Steek dan 'n M4 -bout deur die gat en draai dit vas met 'n moer. Gryp dan die voetskakel en maak 'n sirkelvormige servohoring daaraan vas met die meegeleverde skroewe. Bevestig die voetskakel met die skroewe wat u sal gebruik om die servomotor ook aan die knie -servohouer vas te maak. Maak seker dat die motor so in lyn is dat die as aan dieselfde kant van die bout is wat u vroeër vasgemaak het. Bevestig uiteindelik die servo met die res van die moere en boute.

Doen dieselfde met die heup servo houer en voet servo houer. Hiermee behoort u drie servomotors en die ooreenstemmende hakies te hê.

Nota: ek gee instruksies vir die bou van die een been, die ander word eenvoudig weerspieël.

Stap 6: Maak die skakelstukke

Maak die skakelstukke
Maak die skakelstukke
Maak die skakelstukke
Maak die skakelstukke
Maak die skakelstukke
Maak die skakelstukke

Sodra die hakies bymekaargemaak is, begin die skakels. Om die laerskakel te maak, skuur die binneste oppervlak van die gate vir die laer weer liggies en druk die laer aan beide kante in die gat. Druk die laer in totdat die een kant gelyk is. Om die servohoringskakel te bou, gryp twee sirkelvormige servohorings en die meegeleverde skroewe. Plaas die horings op die 3D -afdruk en rangskik die gate, en skroef daarna die horing op die 3D -druk deur die skroef aan die 3D -drukkant vas te maak. Ek beveel aan dat u 'n 3D -gedrukte servohoringafstandhouer vir hierdie skroewe gebruik. Sodra die skakels opgebou is, kan u die been begin monteer.

Stap 7: Monteer die bene

Montering van die bene
Montering van die bene
Montering van die bene
Montering van die bene
Montering van die bene
Montering van die bene
Montering van die bene
Montering van die bene

Sodra die skakels en hakies bymekaargemaak is, kan u dit kombineer om die been van die robot te bou. Gebruik eers die servohoringskakel om die heup -servo -beugel en die knieservo -houer aan mekaar vas te maak. Let wel: Moet nog nie die horing aan die servo vasskroef nie, want daar is 'n opstellingstadium in die volgende fase, en dit sal 'n ongerief wees as die horing op die servomotor vasgeskroef word.

Monteer die laerskakel aan die teenoorgestelde kant met die moere op die uitsteekende boute. Bevestig laastens die voetservo -houer deur die uitsteekbout deur die laer op die knie -servohouer te steek. Maak die servo -as vas aan die servohoring wat aan die knie -servohouer aan die ander kant gekoppel is. Dit kan 'n moeilike taak wees, en ek sal 'n tweede paar hande hiervoor aanbeveel.

Herhaal die stappe vir die ander been. Gebruik die prentjies wat by elke stap aangeheg is, as 'n verwysing.

Stap 8: Pasgemaakte PCB en bedrading

Pasgemaakte PCB en bedrading
Pasgemaakte PCB en bedrading
Pasgemaakte PCB en bedrading
Pasgemaakte PCB en bedrading
Pasgemaakte PCB en bedrading
Pasgemaakte PCB en bedrading

Dit is 'n opsionele stap. Om die bedrading netjies te maak, het ek besluit om 'n pasgemaakte PCB te maak met behulp van perf board en kopstukke. Die PCB bevat poorte om die servomotordrade direk aan te sluit. Boonop het ek ook ekstra hawens verlaat vir ingeval ek wou uitbrei en ander sensors byvoeg, soos traagmeeteenhede of ultrasoniese afstandsensors. Dit bevat ook 'n poort vir die eksterne kragbron wat benodig word om die servomotors aan te dryf. 'N Jumper -aansluiting word gebruik om tussen USB en eksterne krag vir die Arduino te skakel. Monteer die Arduino en PCB aan weerskante van die elektroniese houer met skroewe en die 3D -gedrukte afstandhouers.

Opmerking: maak seker dat u die jumper uit die stekker trek voordat u die Arduino via USB aan u rekenaar koppel. As u dit nie doen nie, kan dit die Arduino beskadig.

As u besluit om nie die PCB te gebruik nie en eerder 'n broodbord te gebruik, is die servo -verbindings:

  • Linkerheup >> pen 9
  • Regterheup >> pen 8
  • Linkerknie >> pen 7
  • Regterknie >> pen 6
  • Linkervoet >> pen 5
  • Regtervoet >> pen 4

As u besluit om die PCB volgens dieselfde volgorde as hierbo te laat volg, gebruik die poorte op die PCB van regs na links met die IMU -poort na bo. En gebruik gewone manlike tot vroulike springdrade om die printplaat aan te sluit op die Arduino met behulp van die bogenoemde pennommers. Sluit ook die grondpen aan en skep dieselfde aardpotensiaal en Vin -pin vir wanneer u besluit om dit sonder USB -krag te gebruik.

Stap 9: Monteer die liggaam

Die samestelling van die liggaam
Die samestelling van die liggaam
Die samestelling van die liggaam
Die samestelling van die liggaam
Die samestelling van die liggaam
Die samestelling van die liggaam

Sodra die twee bene en die elektronika saamgestel is, kombineer dit saam om die robotliggaam te bou. Gebruik die brugstuk om die twee bene aan mekaar te koppel. Gebruik dieselfde bevestigingsgate op die heup servo houer en moere en boute wat die servomotor hou. Koppel laastens die elektroniese houer aan die brug. Maak die gate op die brug en die elektroniese houer in lyn en gebruik M4 -moere en -boute om die verbinding te maak.

Raadpleeg die aangehegte prente vir hulp. Hiermee het u die hardeware -opbou van die robot voltooi. Kom ons spring dan in die sagteware en maak die robot lewendig.

Stap 10: Aanvanklike opstelling

Intieme opstelling
Intieme opstelling
Intieme opstelling
Intieme opstelling
Intieme opstelling
Intieme opstelling

Wat ek opgemerk het tydens die bou van hierdie projek is dat die servomotors en die horings nie perfek hoef te pas om relatief parallel te bly nie. Daarom moet die "sentrale posisie" van elke servomotor handmatig aangepas word om by die bene te pas. Om dit te bereik, verwyder die servohorings van elke servo en voer die initial_setup.ino -skets uit. Sodra die motors in hul sentrale posisie gevestig is, maak die horings weer vas sodat die bene heeltemal reguit is en die voet perfek parallel met die grond is. As dit die geval is, het u geluk. Indien nie, maak die constants.h-lêer op die oortjie oop en verander die servo-offsetwaardes (reëls 1-6) totdat die bene perfek in lyn is en die voet plat is. Speel met die waardes en u sal 'n idee kry van wat nodig is in u geval.

Sodra die konstantes gestel is, let op hierdie waardes, aangesien dit later nodig sal wees.

Raadpleeg die prente vir hulp.

Stap 11: 'n bietjie oor die kinematika

'N Bietjie oor die kinematika
'N Bietjie oor die kinematika
'N Bietjie oor die kinematika
'N Bietjie oor die kinematika
'N Bietjie oor die kinematika
'N Bietjie oor die kinematika

Om die tweevoetige handelinge, soos hardloop en loop, te laat uitvoer, moet die verskillende gange in die vorm van bewegingspaaie geprogrammeer word. Bewegingspaaie is paaie waarlangs die eindversterker (die voete in hierdie geval) beweeg. Daar is twee maniere om dit te bereik:

  1. Een benadering sou wees om die lashoeke van die verskillende motors op 'n brute krag manier te voer. Hierdie benadering kan tydrowend, vervelig en ook vol foute wees, aangesien die oordeel suiwer visueel is. In plaas daarvan is daar 'n slimmer manier om die gewenste resultate te behaal.
  2. Die tweede benadering draai om die koördinate van die eindeffektor in plaas van al die gesamentlike hoeke. Dit staan bekend as Inverse Kinematics. Die gebruiker voer koördinate in en die gewrigshoeke pas aan om die eindeffektor op die gespesifiseerde koördinate te plaas. Hierdie metode kan beskou word as 'n swart boks wat as insette 'n koördinaat neem en die gesamentlike hoeke uitvoer. Vir diegene wat belangstel in hoe die trigonometriese vergelykings van hierdie swart boks ontwikkel is, kan hulle na die bostaande diagram kyk. Vir diegene wat nie belangstel nie, die vergelykings is reeds geprogrammeer en kan gebruik word met behulp van die pos -funksie wat as invoer x, z neem en drie hoeke wat ooreenstem met die motors, uitvoer.

Die program wat hierdie funksies bevat, kan in die volgende stap gevind word.

Stap 12: Programmering van die Arduino

Die programmering van die Arduino
Die programmering van die Arduino
Die programmering van die Arduino
Die programmering van die Arduino

Voordat u die Arduino programmeer, moet die lêer geringe wysigings aangebring word. Onthou u die konstantes wat ek u gevra het om 'n nota af te neem? Verander dieselfde konstantes na die waardes wat u in die constants.h -lêer gestel het.

Let wel: as u die ontwerpe in hierdie instruksies gebruik het, hoef u niks te verander nie. As daar sommige van u is wat hul eie ontwerpe gemaak het, moet u nog 'n paar waardes saam met die offset verander. Die konstante l1 meet die afstand tussen die heupdraai en die knie. Die konstante l2 meet die afstand tussen die knie -draai en die enkel -draai. As u dus u eie model ontwerp het, meet hierdie lengtes en verander die konstantes. Die laaste twee konstantes word vir die gang gebruik. Die stepClearance -konstante meet hoe hoog die voet sal lig terwyl hy na 'n stap vorentoe kom, en die stepHight -konstante meet die hoogte van die grond tot by die heup terwyl hy stappe neem.

Sodra al die konstantes volgens u behoefte verander is, kan u die hoofprogram oplaai. Die hoofprogram begin die robot eenvoudig in 'n loopstand en begin stappe neem. Die funksies kan aangepas word volgens u behoefte om die verskillende gange, snelhede en stapplengtes te ondersoek om te sien wat die beste werk.

Stap 13: Finale resultate: Tyd om te eksperimenteer

Finale uitslae: Tyd om te eksperimenteer
Finale uitslae: Tyd om te eksperimenteer
Finale uitslae: Tyd om te eksperimenteer
Finale uitslae: Tyd om te eksperimenteer
Finale uitslae: Tyd om te eksperimenteer
Finale uitslae: Tyd om te eksperimenteer

Die tweevoet kan stappe neem wat wissel van 10 tot 2 cm lank sonder om om te draai. Die snelheid kan ook verander word, terwyl die gang gebalanseerd gehou word. Hierdie tweekleurige kombinasie met die krag van die Arduino bied 'n robuuste platform om te eksperimenteer met verskillende gange en ander doelwitte, soos spring of balanseer terwyl u 'n bal skop. Ek sal u aanbeveel om die bewegingspaaie van die bene te verander om u eie gang te maak en te ontdek hoe verskillende gange die prestasie van die robot beïnvloed. Sensors soos 'n IMU en afstandsensor kan by die stelsel gevoeg word om die funksionaliteit daarvan te verhoog, terwyl kragsensors aan die bene gevoeg kan word om te eksperimenteer met dinamiese beweging op ongelyke oppervlaktes.

Hoop jy het hierdie Instructable geniet en is genoeg inspirasie om jou eie te bou. As u van die projek hou, ondersteun dit dan deur 'n stemming in die "Arduino -wedstryd" te laat val.

Gelukkige maak!

Arduino -wedstryd 2020
Arduino -wedstryd 2020
Arduino -wedstryd 2020
Arduino -wedstryd 2020

Eerste prys in die Arduino -wedstryd 2020

Aanbeveel: