Sadržaj:

Arduino upravljani robotski dvonožac: 13 koraka (sa slikama)
Arduino upravljani robotski dvonožac: 13 koraka (sa slikama)

Video: Arduino upravljani robotski dvonožac: 13 koraka (sa slikama)

Video: Arduino upravljani robotski dvonožac: 13 koraka (sa slikama)
Video: PRVA UTRKA - ARDUINO ROBOTI 2022. (first race) 2024, Prosinac
Anonim
Image
Image
Arduino upravljani robotski dvonožac
Arduino upravljani robotski dvonožac
Arduino upravljani robotski dvonožac
Arduino upravljani robotski dvonožac

Fusion 360 projekti »

Uvijek su me zanimali roboti, osobito oni koji pokušavaju oponašati ljudske postupke. Taj me interes natjerao da pokušam dizajnirati i razviti robotskog dvonošca koji bi mogao oponašati ljudsko hodanje i trčanje. U ovom Instructable -u pokazat ću vam dizajn i montažu robotskog dvonošca.

Primarni cilj izgradnje ovog projekta bio je učiniti sustav što je moguće robusnijim, tako da tijekom eksperimentiranja s različitim hodanjem i hodanjem ne bih morao stalno brinuti o kvarovima hardvera. To mi je omogućilo da dovedem hardver do krajnjih granica. Sekundarni cilj bio je učiniti dvonožne relativno jeftinim korištenjem lako dostupnih dijelova za hobi i 3D ispisa ostavljajući prostor za daljnje nadogradnje i proširenja. Ova dva cilja zajedno daju čvrstu osnovu za izvođenje različitih eksperimenata, dopuštajući im da razvije dvonožne prema specifičnijim zahtjevima.

Nastavite s izradom vlastitog Arduino robotiziranog dvonošca i ispustite glasovanje na "Arduino natjecanju" ako vam se svidio projekt.

Korak 1: Proces projektiranja

Proces projektiranja
Proces projektiranja
Proces projektiranja
Proces projektiranja
Proces projektiranja
Proces projektiranja

Humanoidne noge dizajnirane su u Autodeskovom besplatnom softveru za modeliranje Fusion 360 3d. Počeo sam uvozom servo motora u dizajn i izgradio noge oko njih. Dizajnirao sam nosače za servo motor koji pruža drugu zakretnu točku dijametralno suprotnu od osovine servo motora. Dvostruka vratila na oba kraja motora daju konstrukcijsku stabilnost dizajnu i eliminiraju bilo kakvo iskrivljenje koje se može dogoditi kada su noge podnesene za određeno opterećenje. Veze su dizajnirane za držanje ležaja, dok su nosači koristili vijak za osovinu. Nakon što su spojevi montirani na vratila pomoću matice, ležaj bi osigurao glatku i robusnu točku zakretanja na suprotnoj strani vratila servo motora.

Drugi je cilj prilikom projektiranja dvonošca bio zadržati model što kompaktnijim kako bi se maksimalno iskoristio okretni moment koji osiguravaju servo motori. Dimenzije karika napravljene su kako bi se postigao veliki raspon kretnji uz minimiziranje ukupne duljine. Ako bi ih učinili prekratkim, nosači bi se sudarili, smanjili bi se raspon kretnji, a predugo bi izvršili nepotreban okretni moment na aktuatore. Konačno, dizajnirao sam tijelo robota na koje će se montirati Arduino i druge elektroničke komponente.

Napomena: Dijelovi su uključeni u jedan od sljedećih koraka.

Korak 2: Uloga Arduina

Uloga Arduina
Uloga Arduina

U ovom je projektu korišten Arduino Uno. Arduino je bio odgovoran za izračunavanje putanji kretanja različitih hoda koji su testirani i uputio je aktuatore da se kreću pod preciznim kutovima pri preciznim brzinama kako bi stvorili glatko kretanje. Arduino je izvrstan izbor za razvoj projekata zbog svoje svestranosti. Omogućuje hrpu IO pinova i također nudi sučelja poput serijskog, I2C i SPI za komunikaciju s drugim mikrokontrolerima i senzorima. Arduino također pruža izvrsnu platformu za brzo prototipiranje i testiranje, a programerima također daje prostor za poboljšanja i proširenje. U ovom će projektu daljnje inačice uključivati inercijsku mjernu jedinicu za obradu pokreta, kao što je detekcija pada i dinamičko kretanje po neravnom terenu, te senzor za mjerenje udaljenosti kako bi se izbjegle prepreke.

Za ovaj projekt korišten je Arduino IDE. (Arduino također nudi IDE na webu)

Napomena: Programi za robota mogu se preuzeti iz jednog od sljedećih koraka.

Korak 3: Potrebni materijali

Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali
Potrebni materijali

Ovdje je popis svih komponenti i dijelova potrebnih za izradu vlastitog dvonožnog robota na Arduino pogon. Svi dijelovi trebali bi biti općenito dostupni i lako se pronaći.

ELEKTRONIKA:

Arduino Uno x 1

Servo motor Towerpro MG995 x 6

Perfboard (slične veličine kao Arduino)

Muški i ženski zaglavlje zaglavlja (svaki po 20)

Žice za kratkospojnike (10 komada)

MPU6050 IMU (opcionalno)

Ultrazvučni senzor (opcionalno)

HARDVER:

Ležaj za skateboard (8x19x7mm)

M4 matice i vijci

Žica za 3D pisač (u slučaju da ne posjedujete 3D pisač, trebao bi postojati 3D pisač u lokalnom radnom prostoru ili se ispisi mogu obaviti putem interneta po prilično jeftino)

Bez Arduina i 3D pisača, ukupni trošak ovog projekta je 20 USD.

Korak 4: 3D ispisani dijelovi

3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi

Dijelovi potrebni za ovaj projekt morali su biti prilagođeni tako da je za ispis korišten 3D pisač. Otisci su napravljeni pri ispuni od 40%, 2 oboda, mlaznici od 0,4 mm i visini sloja od 0,1 mm s PLA, boja po vašem izboru. Ispod možete pronaći potpuni popis dijelova i STL -ova za ispis vlastite verzije.

Napomena: Odavde će se dijelovi pozivati na imena s popisa.

  • nožni servo držač x 1
  • ogledalo za servo držač stopala x 1
  • servo držač za koljena x 1
  • ogledalo za servo držač koljena x 1
  • nožni servo držač x 1
  • ogledalo za servo držač stopala x 1
  • ležajna karika x 2
  • veza servo trube x 2
  • nožna poluga x 2
  • most x 1
  • nosač za elektroniku x 1
  • razmaknica za elektroniku x 8 (izborno)
  • prostor za servo trube x 12 (izborno)

Ukupno, bez razmaka, ima 14 dijelova. Ukupno vrijeme ispisa je oko 20 sati.

Korak 5: Priprema servo nosača

Priprema servo nosača
Priprema servo nosača
Priprema servo nosača
Priprema servo nosača
Priprema servo nosača
Priprema servo nosača

Nakon što su svi dijelovi ispisani, možete početi s postavljanjem servomotora i servo nosača. Prvo gurnite ležaj u držač servo koljena. Prianjanje bi trebalo biti tijesno, ali preporučio bih malo brušenje unutarnje površine rupe umjesto forsiranja ležaja što bi moglo dovesti do loma dijela. Zatim provucite vijak M4 kroz rupu i zategnite ga maticom. Zatim uhvatite nožnu polugu i pričvrstite kružnu servo trubu na nju pomoću isporučenih vijaka. Pričvrstite nožnu polugu na držač servo koljena pomoću vijaka koje ćete koristiti i za pričvršćivanje servo motora. Poravnajte motor tako da osovina bude na istoj strani vijka koji ste ranije pričvrstili. Na kraju učvrstite servo s ostalim maticama i vijcima.

Učinite isto s držačem servo kuka i držačem servoa za stopala. S tim biste trebali imati tri servo motora i odgovarajuće nosače.

Napomena: Dajem upute za izgradnju jedne noge, druga je jednostavno preslikana.

Korak 6: Izrada poveznica

Izrada poveznica
Izrada poveznica
Izrada poveznica
Izrada poveznica
Izrada poveznica
Izrada poveznica

Nakon što su nosači sastavljeni, počnite stvarati veze. Za izradu ležajne veze još jednom lagano izbrusite unutarnju površinu rupa za ležaj, a zatim gurnite ležaj u rupu s obje strane. Utisnite ležaj dok se jedna strana ne isperi. Za izradu veze servo trube, uhvatite dvije kružne servo trube i isporučene vijke. Postavite rogove na 3D ispis i poravnajte rupe, zatim zavijte trubu na 3D ispis pričvršćivanjem vijka sa strane 3D ispisa. Za ove vijke preporučujem upotrebu odstojnika servo trupa s 3D printom. Nakon što su veze izgrađene, možete početi sastavljati nogu.

Korak 7: Sklapanje nogu

Sastavljanje nogu
Sastavljanje nogu
Sastavljanje nogu
Sastavljanje nogu
Sastavljanje nogu
Sastavljanje nogu
Sastavljanje nogu
Sastavljanje nogu

Kad se poveznice i zagrade sastave, možete ih kombinirati za izradu nogu robota. Najprije upotrijebite vezu servo trube da zajedno pričvrstite servo držač kuka i servo držač koljena. Napomena: Nemojte još zavijati trubu na servo pogon jer u sljedećoj fazi postoji faza postavljanja i bit će neugodno ako je sirena pričvršćena na servo motor.

Na suprotnoj strani pričvrstite ležajnu vezu na vijke koji vire pomoću matica. Na kraju, pričvrstite nožni servo držač umetanjem izbočenog vijka kroz ležaj na držaču servo koljena. I pričvrstite servo vratilo na servo trubu povezanu s držačem servo koljena s druge strane. Ovo može biti težak zadatak i za ovo bih preporučio drugi par ruku.

Ponovite korake za drugu nogu. Slike kao priručnike koristite uz svaki korak.

Korak 8: Prilagođena PCB i ožičenje

Prilagođena PCB i ožičenje
Prilagođena PCB i ožičenje
Prilagođena PCB i ožičenje
Prilagođena PCB i ožičenje
Prilagođena PCB i ožičenje
Prilagođena PCB i ožičenje

Ovo je izborni korak. Kako bih ožičenje učinio urednijim, odlučio sam napraviti prilagođenu PCB ploču koristeći perf ploču i zaglavlje. PCB sadrži priključke za izravno povezivanje žica servo motora. Osim toga, ostavio sam i dodatne priključke u slučaju da želim proširiti i dodati druge senzore, poput inercijskih mjernih jedinica ili ultrazvučnih senzora udaljenosti. Sadrži i priključak za vanjski izvor napajanja potreban za napajanje servo motora. Kratkospojna veza koristi se za prebacivanje između USB -a i vanjskog napajanja za Arduino. Montirajte Arduino i PCB s obje strane nosača elektronike pomoću vijaka i 3D tiskanih odstojnika.

Napomena: Prije spajanja Arduina na računalo putem USB -a, isključite kratkospojnik. Ako to ne učinite, može doći do oštećenja Arduina.

Ako odlučite ne koristiti PCB, a umjesto toga upotrijebite ploču, evo servo priključaka:

  • Lijevi bok >> pin 9
  • Desni bok >> pin 8
  • Lijevo koljeno >> pin 7
  • Desno koljeno >> pin 6
  • Lijeva noga >> pin 5
  • Desna noga >> pin 4

Ako odlučite da PCB slijedi isti redoslijed kao gore, koristeći portove na PCB -u zdesna nalijevo s IMU priključkom prema gore. I upotrijebite obične muško -ženske žice za spajanje da biste spojili PCB na Arduino koristeći gornje brojeve pinova. Također, spojite uzemljeni pin i stvorite isti potencijal uzemljenja kao i Vin pin kada ga odlučite pokrenuti bez USB napajanja.

Korak 9: Sklapanje tijela

Sklapanje tijela
Sklapanje tijela
Sklapanje tijela
Sklapanje tijela
Sklapanje tijela
Sklapanje tijela

Kad se dvije noge i elektronika sastave, spojite ih zajedno kako biste izgradili tijelo robota. Pomoću komada mosta spojite dvije noge zajedno. Upotrijebite iste montažne rupe na držaču servo kuka i matice i vijke koji drže servo motor. Na kraju, spojite nosač elektronike na most. Poravnajte rupe na mostu i nosaču elektronike te upotrijebite matice i vijke M4 za izradu spoja.

Za pomoć pogledajte priložene slike. Time ste dovršili hardversku izgradnju robota. Zatim uskočimo u softver i oživimo robota.

Korak 10: Početno postavljanje

Početno postavljanje
Početno postavljanje
Početno postavljanje
Početno postavljanje
Početno postavljanje
Početno postavljanje

Ono što sam primijetio tijekom izgradnje ovog projekta je da se servo motori i sirene ne moraju savršeno poravnati kako bi ostali relativno paralelni. Zbog toga se "središnji položaj" svakog servo motora mora ručno podesiti tako da se poravna s nogama. Da biste to postigli, uklonite servo trube sa svakog serva i pokrenite skicu initial_setup.ino. Nakon što su se motori smjestili u središnji položaj, ponovno spojite trube tako da su noge savršeno ravne, a stopalo savršeno paralelno s tlom. U tom slučaju imate sreće. Ako ne otvorite datoteku constants.h koja se nalazi na susjednoj kartici i izmijenite vrijednosti pomaka servo-a (retci 1-6) sve dok noge nisu savršeno poravnate, a stopalo ravno. Poigrajte se s vrijednostima i dobit ćete ideju o tome što je potrebno u vašem slučaju.

Nakon što su konstante postavljene, zabilježite ove vrijednosti jer će im kasnije biti potrebne.

Za pomoć pogledajte slike.

Korak 11: Malo o kinematici

Malo o kinematici
Malo o kinematici
Malo o kinematici
Malo o kinematici
Malo o kinematici
Malo o kinematici

Kako bi dvonožac izvodio korisne radnje poput trčanja i hodanja, različite je hodove potrebno programirati u obliku staza kretanja. Putevi kretanja su putevi kojima se kreće krajnji efektor (u ovom slučaju stopala). Postoje dva načina da se to postigne:

  1. Jedan bi pristup bio hranjenje spojnih kutova različitih motora na grubu silu. Ovaj pristup može biti dugotrajan, dosadan i također ispunjen pogreškama budući da je prosudba čisto vizualna. Umjesto toga, postoji pametniji način postizanja željenih rezultata.
  2. Drugi pristup se vrti oko hranjenja koordinata krajnjeg efektora umjesto svih spojnih kutova. To je ono što je poznato kao inverzna kinematika. Korisnik unosi koordinate, a kutovi spoja se podešavaju tako da krajnji efektor postavi na navedene koordinate. Ova se metoda može smatrati crnom kutijom koja uzima kao ulaznu koordinatu i izlazi zajedničke kutove. Za one koje zanima kako su razvijene trigonometrijske jednadžbe ove crne kutije mogu pogledati gornji dijagram. Za one koje ne zanimaju, jednadžbe su već programirane i mogu se koristiti pomoću funkcije pos koja uzima kao ulaz x, z i izlazi tri kuta koji odgovaraju motorima.

Program koji sadrži ove funkcije možete pronaći u sljedećem koraku.

Korak 12: Programiranje Arduina

Programiranje Arduina
Programiranje Arduina
Programiranje Arduina
Programiranje Arduina

Prije programiranja Arduina potrebno je napraviti male izmjene u datoteci. Sjećate li se konstanti koje sam vas zamolio da izvadite bilješku? Izmijenite iste konstante na vrijednosti koje ste postavili u datoteci constants.h.

Napomena: Ako ste koristili dizajne navedene u ovom Uputu, nemate što promijeniti. U slučaju da neki od vas imaju vlastite dizajne, morat ćete promijeniti još nekoliko vrijednosti zajedno s pomacima. Konstanta l1 mjeri udaljenost između kuta i koljena. Konstanta l2 mjeri udaljenost između stožera koljena i zavoja gležnja. Dakle, ako ste dizajnirali vlastiti model, izmjerite te duljine i izmijenite konstante. Za hod se koriste posljednje dvije konstante. StepClearance konstanta mjeri koliko će se stopalo podići dok napreduje nakon koraka, a stepHeight konstanta mjeri visinu od tla do kuka tijekom koraka.

Nakon što se sve konstante promijene prema vašim potrebama, možete prenijeti glavni program. Glavni program jednostavno inicijalizira robota u hodajući stav i počinje koračati naprijed. Funkcije se mogu mijenjati prema vašoj potrebi za istraživanjem različitih hodova, brzina i duljina koraka kako biste vidjeli što najbolje funkcionira.

Korak 13: Konačni rezultati: Vrijeme za eksperimentiranje

Konačni rezultati: Vrijeme za eksperimentiranje
Konačni rezultati: Vrijeme za eksperimentiranje
Konačni rezultati: Vrijeme za eksperimentiranje
Konačni rezultati: Vrijeme za eksperimentiranje
Konačni rezultati: Vrijeme za eksperimentiranje
Konačni rezultati: Vrijeme za eksperimentiranje

Dvonožac može poduzeti korake u dužini od 10 do 2 cm bez prevrtanja. Brzina se također može mijenjati uz održavanje uravnoteženog hoda. Ovaj dvonožac u kombinaciji sa snagom Arduina pruža robusnu platformu za eksperimentiranje s raznim drugim hodima i drugim ciljevima, poput skakanja ili balansiranja dok udarate loptu. Preporučio bih vam da pokušate promijeniti putanju kretanja nogu kako biste stvorili vlastite hodove i otkrili kako različiti hodovi utječu na performanse robota. Senzori kao što su IMU i senzor udaljenosti mogu se dodati sustavu kako bi se povećale njegove funkcionalnosti, dok se senzori sile mogu dodati nogama kako bi eksperimentirali s dinamičkim kretanjem na neravnim površinama.

Nadam se da ste uživali u ovom Instructable -u i da je dovoljna inspiracija za izgradnju vlastitog. Ako vam se svidio projekt podržite ga tako što ćete glasovati na "Arduino natjecanju".

Sretno stvaranje!

Arduino natjecanje 2020
Arduino natjecanje 2020
Arduino natjecanje 2020
Arduino natjecanje 2020

Prva nagrada na Arduino natjecanju 2020

Preporučeni: