Kazalo:

Arduino krmiljeni robotski dvonožnik: 13 korakov (s slikami)
Arduino krmiljeni robotski dvonožnik: 13 korakov (s slikami)

Video: Arduino krmiljeni robotski dvonožnik: 13 korakov (s slikami)

Video: Arduino krmiljeni robotski dvonožnik: 13 korakov (s slikami)
Video: Makeblock Untimate Robot Kit Part 2 : Robtic Arm Explaine, Software, Code App and Having Fun demo 2024, November
Anonim
Image
Image
Arduino krmiljeni robotski dvonožnik
Arduino krmiljeni robotski dvonožnik
Arduino krmiljeni robotski dvonožnik
Arduino krmiljeni robotski dvonožnik

Projekti Fusion 360 »

Vedno so me zanimali roboti, zlasti tisti, ki poskušajo posnemati človeška dejanja. To zanimanje me je vodilo, da sem poskušal oblikovati in razviti robotsko dvonogo, ki bi lahko posnemala človeško hojo in tek. V tem navodilu vam bom pokazal zasnovo in montažo robotske dvonožce.

Primarni cilj pri gradnji tega projekta je bil narediti sistem čim bolj robusten, tako da mi pri eksperimentiranju z različnimi hojami in tekaškimi hojami ne bi bilo treba nenehno skrbeti za okvaro strojne opreme. To mi je omogočilo, da sem strojno opremo potisnil do meje. Sekundarni cilj je bil narediti dvonožce razmeroma poceni z uporabo že dostopnih delov za hobi in 3D tiskanja ter pustiti prostor za nadgradnje in razširitve. Ta dva cilja skupaj zagotavljata trdno podlago za izvajanje različnih poskusov, kar omogoča, da biped razvije bolj specifične zahteve.

Nadaljujte z ustvarjanjem lastnega robotiziranega dvonožca, ki ga upravlja Arduino, in oddajte glasovanje na tekmovanju "Arduino", če vam je bil projekt všeč.

1. korak: Postopek oblikovanja

Oblikovalni proces
Oblikovalni proces
Oblikovalni proces
Oblikovalni proces
Oblikovalni proces
Oblikovalni proces

Humanoidne noge so bile oblikovane v Autodeskovi brezplačni programski opremi za modeliranje Fusion 360 3D. Začel sem z uvozom servo motorjev v zasnovo in okoli njih postavil noge. Zasnoval sem nosilce za servo motor, ki zagotavlja drugo vrtilno točko, diametralno nasprotno od gredi servo motorja. Dvojne gredi na obeh koncih motorja dajejo konstrukcijsko stabilnost konstrukciji in odpravljajo vsa nagibanja, ki bi se lahko pojavila, ko bi noge prenesle določeno obremenitev. Povezave so bile zasnovane tako, da držijo ležaj, medtem ko so nosilci za gred uporabljali vijak. Ko so bile povezave pritrjene na gredi z matico, bi ležaj zagotovil gladko in robustno vrtilno točko na nasprotni strani gredi servo motorja.

Drugi cilj pri oblikovanju dvonožca je bil ohraniti model čim bolj kompakten, da bi kar najbolje izkoristili navor, ki ga zagotavljajo servo motorji. Mere povezav so bile narejene tako, da so dosegle velik obseg gibanja in hkrati zmanjšale celotno dolžino. Če bi bili skrajšani, bi se nosilci trčili, zmanjšal bi se obseg gibanja in bi bilo predolgo, kar bi povzročilo nepotreben navor na aktuatorjih. Nazadnje sem zasnoval telo robota, na katerega bi lahko namestili Arduino in druge elektronske komponente.

Opomba: Deli so vključeni v enega od naslednjih korakov.

2. korak: Vloga Arduina

Vloga Arduina
Vloga Arduina

V tem projektu je bil uporabljen Arduino Uno. Arduino je bil odgovoren za izračun poti gibanja različnih hodov, ki so jih testirali, in naročil aktuatorjem, naj se premaknejo pod natančne kote pri natančnih hitrostih, da ustvarijo gladko gibanje. Arduino je zaradi vsestranskosti odlična izbira za razvoj projektov. Zagotavlja kup vmesnikov IO in ponuja tudi vmesnike, kot so serijski, I2C in SPI za komunikacijo z drugimi mikrokrmilniki in senzorji. Arduino ponuja tudi odlično platformo za hitro izdelavo prototipov in testiranje, razvijalcem pa daje tudi prostor za izboljšave in razširljivost. V tem projektu bodo nadaljnje različice vključevale inercialno merilno enoto za obdelavo gibanja, kot je zaznavanje padcev in dinamično gibanje po neravnem terenu, ter senzor za merjenje razdalje, da se izognete oviram.

Za ta projekt je bil uporabljen Arduino IDE. (Arduino ponuja tudi spletni IDE)

Opomba: Programe za robota lahko prenesete iz enega od naslednjih korakov.

3. korak: Potrebni materiali

Potrebni materiali
Potrebni materiali
Potrebni materiali
Potrebni materiali
Potrebni materiali
Potrebni materiali
Potrebni materiali
Potrebni materiali

Tu je seznam vseh komponent in delov, ki so potrebni za izdelavo vašega lastnega dvonožnega robota na Arduino. Vsi deli morajo biti splošno dostopni in jih je enostavno najti.

ELEKTRONIKA:

Arduino Uno x 1

Servo motor Towerpro MG995 x 6

Perfboard (podobne velikosti kot Arduino)

Moški in ženski zatiči glave (približno 20 vsakega)

Mostične žice (10 kosov)

MPU6050 IMU (neobvezno)

Ultrazvočni senzor (neobvezno)

STROJNA OPREMA:

Ležaj za rolko (8x19x7mm)

Matice in vijaki M4

Žica iz 3D tiskalnika (v primeru, da nimate 3D tiskalnika, mora biti v lokalnem delovnem prostoru 3D tiskalnik ali pa je natis na spletu za precej poceni)

Brez Arduino in 3D tiskalnika so skupni stroški tega projekta 20 USD.

4. korak: 3D natisnjeni deli

3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli

Deli, ki so bili potrebni za ta projekt, so morali biti oblikovani po meri, zato je bil za njihovo tiskanje uporabljen 3D tiskalnik. Odtisi so bili narejeni pri 40% polnitvi, 2 obodih, 0,4 mm šobi in višini sloja 0,1 mm s PLA, barvo po vaši izbiri. Spodaj najdete celoten seznam delov in STL -jev za tiskanje lastne različice.

Opomba: Od tu naprej se bodo deli nanašali na imena na seznamu.

  • servo držalo za noge x 1
  • ogledalo za servo držalo za noge x 1
  • servo držalo za koleno x 1
  • servo držalo za koleno ogledalo x 1
  • servo držalo za noge x 1
  • ogledalo za servo držalo za noge x 1
  • ležajni člen x 2
  • servo povezava x 2
  • nožna vezica x 2
  • most x 1
  • nosilec za elektroniko x 1
  • distančnik za elektroniko x 8 (neobvezno)
  • prostor za servo rog x 12 (neobvezno)

Skupaj, razen distančnikov, je 14 delov. Skupni čas tiskanja je približno 20 ur.

5. korak: Priprava servo nosilcev

Priprava servo nosilcev
Priprava servo nosilcev
Priprava servo nosilcev
Priprava servo nosilcev
Priprava servo nosilcev
Priprava servo nosilcev

Ko so vsi deli natisnjeni, lahko začnete z nastavitvijo servomotorjev in servo nosilcev. Najprej potisnite ležaj v držalo servo kolena. Prileganje bi moralo biti tesno, vendar priporočam, da notranjost luknje malce obrusite, namesto da bi prisilili ležaj, ki lahko poškoduje del. Nato skozi luknjo potisnite vijak M4 in ga privijte z matico. Nato primite nožni drog in nanj s priloženimi vijaki pritrdite okrogel servo rog. Nožno povezavo pritrdite na držalo servo kolena z vijaki, s katerimi boste pritrdili tudi servo motor. Motor poravnajte tako, da je gred na isti strani vijaka, ki ste ga pritrdili prej. Končno pritrdite servo z ostalimi maticami in vijaki.

Enako storite z držalom servo kolka in držalom servo stopala. S tem bi morali imeti tri servo motorje in njihove ustrezne nosilce.

Opomba: Zagotavljam navodila za izgradnjo ene noge, druga je preprosto zrcaljena.

6. korak: Izdelava povezanih kosov

Izdelava povezanih kosov
Izdelava povezanih kosov
Izdelava povezanih kosov
Izdelava povezanih kosov
Izdelava povezanih kosov
Izdelava povezanih kosov

Ko so nosilci sestavljeni, začnite ustvarjati povezave. Za izdelavo ležajne povezave še enkrat rahlo obrusite notranjo površino lukenj za ležaj, nato pa ležaj potisnite v luknjo na obeh straneh. Ležaj potiskajte, dokler se ena stran ne poravna. Za izdelavo servo -rogovnega vmesnika primite dva krožna servo -roga in priložene vijake. Rogove položite na 3D tisk in poravnajte luknje, nato pa rog privijte na 3D tisk tako, da vijak pritrdite s strani 3D tiskanja. Priporočam, da za te vijake uporabite distančnik za servo rogove s 3D -tiskanjem. Ko so povezave zgrajene, lahko začnete sestavljati nogo.

7. korak: Sestavljanje nog

Sestavljanje nog
Sestavljanje nog
Sestavljanje nog
Sestavljanje nog
Sestavljanje nog
Sestavljanje nog
Sestavljanje nog
Sestavljanje nog

Ko so povezave in nosilci sestavljeni, jih lahko združite, da sestavite nogo robota. Najprej uporabite povezavo servo roga, da skupaj pritrdite servo nosilec kolka in servo nosilec kolena. Opomba: trupa še ne privijačite na servomotor, saj je v naslednji fazi faza nastavitve in neprijetnost bi bila, če bi hupo privili na servo motor.

Na nasprotni strani z maticami pritrdite ležajno povezavo na štrleče vijake. Nazadnje pritrdite servo nosilec nog tako, da vstavite štrleči vijak skozi ležaj na nosilcu servo kolena. Servo gred pritrdite na servo rog, ki je na drugi strani priključen na držalo servo kolena. To je lahko težavna naloga, zato bi priporočil drugi par rok.

Ponovite korake za drugo nogo. Slike, priložene vsakemu koraku, uporabite kot referenco.

8. korak: PCB in ožičenje po meri

PCB in ožičenje po meri
PCB in ožičenje po meri
PCB in ožičenje po meri
PCB in ožičenje po meri
PCB in ožičenje po meri
PCB in ožičenje po meri

To je neobvezen korak. Za olajšanje ožičenja sem se odločil za izdelavo tiskanega vezja po meri z uporabo perf plošče in zatičev glave. PCB vsebuje vrata za neposredno povezavo žic servo motorja. Poleg tega sem pustil tudi dodatna vrata, če sem hotel razširiti in dodati druge senzorje, na primer inercialne merilne enote ali ultrazvočne senzorje razdalje. Vsebuje tudi vrata za zunanji vir energije, ki je potreben za napajanje servo motorjev. Mostična povezava se uporablja za preklapljanje med USB in zunanjim napajanjem za Arduino. Arduino in tiskano vezje namestite na obe strani nosilca elektronike z vijaki in 3D -tiskanimi distančniki.

Opomba: Preden priključite Arduino na računalnik prek USB -ja, izključite mostiček. Če tega ne storite, lahko poškodujete Arduino.

Če se odločite, da ne boste uporabljali tiskanega vezja in namesto tega uporabili načrt, so tukaj servo priključki:

  • Levi bok >> pin 9
  • Desni bok >> pin 8
  • Levo koleno >> nožica 7
  • Desno koleno >> pin 6
  • Leva noga >> pin 5
  • Desna noga >> pin 4

Če se odločite, da bo tiskano vezje v istem vrstnem redu, kot je opisano zgoraj, z uporabo vrat na tiskanem vezju od desne proti levi z vrati IMU navzgor. Za priključitev tiskanega vezja na Arduino z uporabo zgornjih številk pin uporabite običajne moške žice. Ko se odločite, da ga zaženete brez napajanja USB, priključite tudi ozemljitveni zatič in ustvarite enak ozemljitveni potencial in Vin pin.

9. korak: Sestavljanje telesa

Sestavljanje telesa
Sestavljanje telesa
Sestavljanje telesa
Sestavljanje telesa
Sestavljanje telesa
Sestavljanje telesa

Ko sta dve nogi in elektronika sestavljeni, ju združite skupaj, da sestavite telo robota. Z mostom povežite obe nogi skupaj. Uporabite iste montažne luknje na nosilcu servo kolka ter matice in vijake, ki držijo servo motor. Na koncu priključite nosilec elektronike na most. Poravnajte luknje na mostu in nosilcu elektronike ter za izdelavo spoja uporabite matice in vijake M4.

Za pomoč si oglejte priložene slike. S tem ste zaključili strojno izdelavo robota. Nato skočimo v programsko opremo in oživimo robota.

10. korak: Začetna nastavitev

Začetna nastavitev
Začetna nastavitev
Začetna nastavitev
Začetna nastavitev
Začetna nastavitev
Začetna nastavitev

Kar sem opazil pri gradnji tega projekta, je, da se servo motorji in hupe ne morajo popolnoma poravnati, da ostanejo relativno vzporedni. Zato je treba "osrednji položaj" vsakega servo motorja ročno prilagoditi, da se poravna z nogami. Če želite to doseči, odstranite servo rogove iz vsakega servomotorja in zaženite skico initial_setup.ino. Ko se motorji namestijo v osrednji položaj, ponovno pritrdite rogove, tako da so noge popolnoma ravne in stopalo popolnoma vzporedno s tlemi. V tem primeru imate srečo. Če ne odprete datoteke constants.h, ki jo najdete na sosednjem zavihku, in spremenite vrednosti odmika servomotorja (vrstice 1-6), dokler noge niso popolnoma poravnane in stopalo ravno. Poigrajte se z vrednotami in dobili boste predstavo o tem, kaj je v vašem primeru potrebno.

Ko so konstante nastavljene, si te vrednosti zapomnite, saj bodo potrebne kasneje.

Za pomoč si oglejte slike.

11. korak: Nekaj o kinematiki

Nekaj o kinematiki
Nekaj o kinematiki
Nekaj o kinematiki
Nekaj o kinematiki
Nekaj o kinematiki
Nekaj o kinematiki

Da bi dvonožnik izvedel uporabna dejanja, kot sta tek in hoja, je treba različne hoje programirati v obliki poti gibanja. Poti gibanja so poti, po katerih potuje končni efektor (v tem primeru stopala). To lahko dosežete na dva načina:

  1. Eden od pristopov bi bil napajanje skupnih kotov različnih motorjev na surovo silo. Ta pristop je lahko dolgotrajen, dolgočasen in napolnjen z napakami, saj je sodba zgolj vizualna. Namesto tega obstaja pametnejši način za dosego želenih rezultatov.
  2. Drugi pristop se vrti okoli hranjenja koordinat končnega efektorja namesto vseh spojnih kotov. To je tisto, kar je znano kot obratna kinematika. Uporabnik vnese koordinate in koti spojev se prilagodijo, da se končni efektor postavi na določene koordinate. Ta metoda se lahko obravnava kot črna škatla, ki za vhodne podatke vzame koordinato in oddaja skupne kote. Za tiste, ki jih zanima, kako so bile razvite trigonometrične enačbe te črne škatle, si oglejte zgornji diagram. Za tiste, ki jih ne zanimajo, so enačbe že programirane in jih je mogoče uporabiti s funkcijo pos, ki za vhod x, z vnese tri kote, ki ustrezajo motorjem.

Program, ki vsebuje te funkcije, najdete v naslednjem koraku.

12. korak: Programiranje Arduina

Programiranje Arduina
Programiranje Arduina
Programiranje Arduina
Programiranje Arduina

Pred programiranjem Arduina je treba datoteko nekoliko spremeniti. Se spomnite konstant, ki sem jih prosil, da si vzamete zapisek? Spremenite iste konstante na vrednosti, ki ste jih nastavili v datoteki constants.h.

Opomba: Če ste uporabili modele, navedene v tem navodilu, nimate ničesar spremeniti. Če je med vami nekaj tistih, ki so sami oblikovali, boste morali skupaj z odmiki spremeniti še nekaj vrednosti. Konstanta l1 meri razdaljo med kolkom in kolenom. Konstanta l2 meri razdaljo med vrtenjem kolena in vrtenjem gležnja. Če ste torej oblikovali lasten model, izmerite te dolžine in spremenite konstante. Zadnji dve konstanti se uporabljata za hoje. Stopnja stepClearance meri, kako visoko se bo stopalo dvignilo, ko se bo po koraku pomaknilo naprej, in konstanta stepHeight meri višino od tal do kolka med njenimi koraki.

Ko se vse konstante spremenijo glede na vaše potrebe, lahko naložite glavni program. Glavni program preprosto inicializira robota v hojo in začne delati korake naprej. Funkcije lahko spremenite glede na vaše potrebe, da raziščete različne hoje, hitrosti in dolžine korakov, da vidite, kaj najbolje deluje.

13. korak: Končni rezultati: čas za eksperimentiranje

Končni rezultati: čas za eksperimentiranje
Končni rezultati: čas za eksperimentiranje
Končni rezultati: čas za eksperimentiranje
Končni rezultati: čas za eksperimentiranje
Končni rezultati: čas za eksperimentiranje
Končni rezultati: čas za eksperimentiranje

Dvonožni lahko naredi korake, dolge od 10 do 2 cm, ne da bi se prevrnili. Hitrost je mogoče spreminjati, hkrati pa je hoja uravnotežena. Ta dvonožnik v kombinaciji z močjo Arduina ponuja robustno platformo za eksperimentiranje z različnimi drugimi hojami in drugimi cilji, kot so skakanje ali uravnoteženje med brcanjem žoge. Priporočam vam, da poskusite spremeniti poti gibanja nog, da ustvarite lastne hoje in odkrijete, kako različne hoje vplivajo na zmogljivost robota. Za povečanje funkcionalnosti sistema lahko dodate senzorje, kot sta IMU in senzor razdalje, medtem ko lahko na noge dodate senzorje sile za eksperimentiranje z dinamičnim gibanjem po neravnih površinah.

Upam, da ste uživali v tem Instructableu in da je dovolj navdiha za izdelavo svojega. Če vam je bil projekt všeč, ga podprite z glasovanjem na "Arduino Contest".

Srečno ustvarjanje!

Natečaj Arduino 2020
Natečaj Arduino 2020
Natečaj Arduino 2020
Natečaj Arduino 2020

Prva nagrada na tekmovanju Arduino 2020

Priporočena: