Sadržaj:

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

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

Video: Arduino kontrolirani robotski dvonožac: 13 koraka (sa slikama)
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Novembar
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 intrigirali roboti, posebno oni koji pokušavaju oponašati ljudske postupke. Taj interes me je naveo da pokušam dizajnirati i razviti robotskog dvonošca koji bi mogao imitirati 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 trčanjem 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 daljnja nadogradnje i proširenja. Ova dva cilja zajedno daju snažnu osnovu za izvođenje različitih eksperimenata, dopuštajući im da razviju dvonožne prema specifičnijim zahtjevima.

Nastavite s kreiranjem vlastitog robotskog dvonošca kojim upravlja Arduino i ispustite glasanje na "Arduino takmičenju" ako vam se svidio projekt.

Korak 1: Proces dizajniranja

Proces projektovanja
Proces projektovanja
Proces projektovanja
Proces projektovanja
Proces projektovanja
Proces projektovanja

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 tačku zakretanja dijametralno suprotnu od osovine servo motora. Dvostruka vratila na oba kraja motora daju konstrukcijsku stabilnost dizajnu i eliminiraju svako naginjanje koje može nastati kada su noge podnijete 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 tačku zakretanja na suprotnoj strani vratila servo motora.

Drugi cilj prilikom dizajniranja dvonožnog automobila bio je 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 kretanja uz minimiziranje ukupne duljine. Ako bi ih učinili prekratkim, držači bi se sudarili, smanjivši 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 projektu korišten je Arduino Uno. Arduino je bio odgovoran za izračunavanje putanji kretanja različitih hoda koji su testirani i naložio je pokretačima da se kreću pod preciznim kutovima pri preciznim brzinama kako bi stvorili glatko kretanje. Arduino je odličan izbor za razvoj projekata zbog svoje svestranosti. Omogućava hrpu IO pinova i takođe nudi sučelja kao što su serijski, I2C i SPI za komunikaciju s drugim mikrokontrolerima i senzorima. Arduino također pruža odličnu platformu za brzo prototipiranje i testiranje, a programerima daje i prostor za poboljšanja i proširenje. U ovom projektu daljnje verzije uključivat će 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đe nudi IDE zasnovan 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 trebaju biti općenito dostupni i lako se pronaći.

ELEKTRONIKA:

Arduino Uno x 1

Towerpro servo motor 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 štampač (u slučaju da ne posjedujete 3D štampač, trebao bi biti 3D štampač u lokalnom radnom prostoru ili se otisci mogu uraditi na mreži po prilično jeftino)

Ako isključimo Arduino i 3D štampač, ukupni trošak ovog projekta je 20 USD.

Korak 4: 3D štampani dijelovi

3D štampani delovi
3D štampani delovi
3D štampani delovi
3D štampani delovi
3D štampani delovi
3D štampani delovi
3D štampani delovi
3D štampani delovi

Dijelovi potrebni za ovaj projekt morali su biti prilagođeni tako da je za ispis korišten 3D printer. Otisci su napravljeni na ispuni od 40%, 2 oboda, mlaznici 0,4 mm i visini sloja 0,1 mm sa PLA, boja po vašem izboru. Ispod možete pronaći kompletnu listu 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
  • odstojnik za elektroniku x 8 (opcionalno)
  • prostor za servo trube x 12 (opcionalno)

Ukupno, bez odstojnika, ima 14 dijelova. Ukupno vrijeme štampanja 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 servo upravljača i servo nosača. Prvo gurnite ležaj u držač servo koljena. Učvršćivanje bi trebalo biti tijesno, ali preporučio bih malo brušenje unutarnje površine rupe umjesto prisiljavanja ležaja što može 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 vratilo 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 serva za stopala. S ovim 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 dijelova veze

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

Nakon što su zagrade sastavljene, počnite stvarati veze. Da biste napravili vezu ležaja, još jednom lagano izbrusite unutrašnju površinu rupa za ležaj, a zatim gurnite ležaj u otvor s obje strane. Pazite da gurnete ležaj dok se jedna strana ne isperi. Da biste izgradili vezu 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 korištenje odstojnika za servo trupe s 3D printom. Nakon što su veze izgrađene, možete početi sastavljati nogu.

Korak 7: Sklapanje nogu

Sklapanje nogu
Sklapanje nogu
Sklapanje nogu
Sklapanje nogu
Sklapanje nogu
Sklapanje nogu
Sklapanje nogu
Sklapanje nogu

Nakon što se povežu i zagrade, možete ih kombinirati za izradu nogu robota. Najprije upotrijebite vezu servo trube za pričvršćivanje servo držača kuka i servo držača koljena zajedno. 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 izbočene vijke 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. Koristite slike priložene uz svaki korak kao referencu.

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

Prilagođena štampana ploča i ožičenje
Prilagođena štampana ploča i ožičenje
Prilagođena štampana ploča i ožičenje
Prilagođena štampana ploča i ožičenje
Prilagođena štampana ploča i ožičenje
Prilagođena štampana ploča 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 igle zaglavlja. PCB sadrži priključke za direktno spajanje žica servo motora. Osim toga, ostavio sam i dodatne priključke u slučaju da želim proširiti i dodati druge senzore, kao što su inercijske mjerne jedinice ili ultrazvučni senzori 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 štampanih 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 da ne koristite PCB, a umjesto toga koristite ploču, evo servo veza:

  • 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 portom prema gore. I upotrijebite obične muško -ženske žice za spajanje da biste spojili PCB na Arduino koristeći gornje brojeve pinova. Uključite i pin za uzemljenje te stvorite isti potencijal za uzemljenje i Vin pin za slučaj kada ga odlučite pokrenuti bez USB napajanja.

Korak 9: Sklapanje tijela

Sklapanje tela
Sklapanje tela
Sklapanje tela
Sklapanje tela
Sklapanje tela
Sklapanje tela

Nakon što 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 pogona 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 podešavanje

Intial Setup
Intial Setup
Intial Setup
Intial Setup
Intial Setup
Intial Setup

Ono što sam primijetio pri izgradnji 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 initial_setup.ino skicu. Nakon što se motori smjeste u svoj središnji položaj, ponovo pričvrstite 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 (redovi 1-6) dok noge ne budu savršeno poravnate, a stopalo ravno. Igrajte se s vrijednostima i dobit ćete ideju o tome što je potrebno u vašem slučaju.

Kad se konstante postave, 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

Da 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 pristup bi bio napajanje spojnih kutova različitih motora na grubu silu. Ovaj pristup može biti dugotrajan, dosadan i također ispunjen greškama jer 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 i uglovi spoja se prilagođavaju kako bi krajnji efektor postavio na navedene koordinate. Ova metoda se može smatrati crnom kutijom koja uzima kao ulaznu koordinatu i izlazi zajedničke uglove. 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 izlazna 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 se konstanti koje sam vam tražio da izvadite bilješku? Izmijenite iste konstante na vrijednosti koje ste postavili u datoteci constants.h.

Napomena: Ako ste koristili dizajne navedene u ovom uputstvu, nemate šta 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 stožera kuka i zavoja koljena. Konstanta l2 mjeri udaljenost između stožera koljena i skočnog zgloba. Dakle, ako ste dizajnirali vlastiti model, izmjerite ove duljine i izmijenite konstante. Posljednje dvije konstante koriste se za hodanje. StepClearance konstanta mjeri koliko će se visoko stopalo podići pri izlasku naprijed nakon koraka, a stepHeight konstanta mjeri visinu od tla do kuka za vrijeme koraka.

Nakon što se sve konstante promijene prema vašim potrebama, možete učitati glavni program. Glavni program jednostavno inicijalizira robota u hodajući stav i počinje korake naprijed. Funkcije se mogu mijenjati prema vašoj potrebi za istraživanjem različitih hodova, brzina i dužina 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 pri šutiranju lopte. Preporučio bih vam da pokušate promijeniti putanju kretanja nogu kako biste stvorili vlastite pokrete i otkrili kako različiti hodovi utječu na performanse robota. Senzori kao što su IMU i senzor udaljenosti mogu se dodati sistemu 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 takmičenju".

Happy Making!

Arduino takmičenje 2020
Arduino takmičenje 2020
Arduino takmičenje 2020
Arduino takmičenje 2020

Prva nagrada na Arduino takmičenju 2020

Preporučuje se: