Sadržaj:

Arduino robotska ruka: 5 koraka
Arduino robotska ruka: 5 koraka

Video: Arduino robotska ruka: 5 koraka

Video: Arduino robotska ruka: 5 koraka
Video: Didaktička robotska ruka sa 5 DOF (rotacijska struktura) 2024, Srpanj
Anonim
Image
Image
Arduino robotska ruka
Arduino robotska ruka
Arduino robotska ruka
Arduino robotska ruka

Budući da je to moj prvi projekt nakon 15 tutorijala mog početnog kompleta za Arduino, prava je svrha dobiti neke kritičare, savjete, prijedloge, ideje od svakoga tko zna više od mene.

Ovaj projekt govori o robotskoj ruci, s 4 DOF -a i hvatom. S pristojno niskim proračunom: strukturu je izrezao prijatelj, 4 serva su bila 30 €, 2 joysticka 4 €, vijci itd. Za manje od 10 € i sve ostalo (Arduino, žice, servo držač itd.)) već je bio uključen u moj početni komplet. Za ukupno 40-45 €, što je oko 45-50 američkih dolara (ista cijena kompleta za ruku, ali hej, bilo je zabavno to sam morati napraviti (i s vremena na vrijeme nešto zabrljati) a ne slijediti upute kao stroj).

Budući da je ovo bio moj prvi projekt i Instructable, prijavio sam se na '' First Time Author '' i par drugih natječaja, pa ako vam se sviđa, glasajte:)

Korak 1: PROJEKTIRANJE I MONTAŽA:

Prvo mi je trebala struktura: Ovo je definitivno bio najduži dio. Budući da nisam htio kopirati i zalijepiti projekt od nekoga drugog, uzeo sam projekt kao referencu i ja (i još par vještih kolega iz razreda koji su me stvarno spasili) počeli ga mijenjati prema našim potrebama (različiti servomotori s različitim zakretnim momentom, težinom i dimenzijama itd.). Morao sam ga izgraditi nekoliko puta, svaki od njih je otkrio da nešto nije u redu, pa smo morali ponovno izrezati neke komade i pokušati ponovo. Priložio sam.dxf datoteku u slučaju da je želite koristiti. Zatim sam morao kupiti elektroniku: Većina dijelova bili su standardni, teži dio je bio odabrati servomotore. Izračunao sam potrebni okretni moment pomoću općeg pravila, kasnije sam pokušao točnije izračunati i otkrio sam da sam ga možda malo pretjerao. Očigledno bi 6 kg/cm bilo dovoljno za 2. servo (od baze), a moj daje 9-11 kg/cm. Pa, ovo mi daje određenu sigurnost i priliku za utovar do 2 kg tereta (što je nemoguće, ali sviđa mi se što bih to tehnički mogao učiniti). Mogao sam kupiti i različite servomotore, sa smanjenjem okretnog momenta dok se udaljavamo od baze, ali kupnja identičnih servo pogona od istog dobavljača bila je daleko najjeftinija opcija. Napajanje: Arduino definitivno nije bio dovoljan za servo pogone jer svaki mg995 izvlači 350mA i mikroservo 9g troši 100mA, ukupno 350*4 +100 = 1500mA. Pa sam spasio punjač (6V 1.5A) i na njega lemio dvije kratkospojne žice. (Ako nekima od vas trebaju neke prave upute, pitajte u komentarima, a ja ću se potruditi stvoriti korak po korak vodič) Popis materijala:- Konstrukcija- M5x7cm vijak x5, m5 vijci x15 (baza)- M3x16mm vijak x18*- M3x20mm vijak x13*- M3 vijci x40*- M3x8cm vijak x3- Stezaljka (inače će pasti)- 3 klina- Arduino (ili nešto drugo za upravljanje, mora imati najmanje 5 PWM)- Nešto za napajanje 5-6V i najmanje 1,5A- 3x joysticki nalik ps2- 4x TowerPro mg995 servomotori- 1x TowerPro 9g mikroservo (za držanje) - Mnogo kratkospojnih žica - Oglasna ploča*(Koristio sam vijke i vijke za brzo sastavljanje i rastavljanje, inače biste gotovo sve mogli zamijeniti vijcima za stolariju)

2. korak: KOD:

Ideja je kontrolirati svaki servo pogon s jednom od dvije osi džojstika sličnog ps2. Činilo se da svaki džojstik ima različite "vrijednosti mirovanja" (vrijednost između 0-1023 kad je miran) za os y i x. To je bio problem, budući da je razlika bila mala (jedna je imala nulu na y pri 623) i htio sam koristiti funkciju karte za pretvaranje od 0-1023 u stupnjeve. Ali funkcija karte misli da je vrijednost odmora 1023/2. Što je dovelo do svakog servo pokreta čim uključim Arduino, nije dobro. Uspio sam to zaobići tako što sam ručno pronašao razliku između vrijednosti očitanja i svake različite vrijednosti odmora (koju sam izračunao zasebno za svaki joystick), a zatim na učinio kôd kraćim i pametnijim, natjerao sam ga da pročita ostale vrijednosti u funkciji postavljanja i spremi ih u neke varijable. Novi algoritam oslanja se na pretvaranje prirasta u stupnjevima, ali htio sam vrlo nizak stupanj za svoj prirast, pa Morao sam ga podijeliti za konstantu: isprobao sam mnoge vrijednosti, dok nisam došao do konačnih 200 (mogu dodati potenciometar da ručno promijenim ovu vrijednost na željenu). Ostatak koda je prilično standardan, pretpostavljam, iako bi moglo biti elegantnije staviti izračun prirasta unutar zasebne funkcije.

Korak 3: ELEKTRONIKA:

ELEKTRONIKA
ELEKTRONIKA

Ožičenje je isto kao što je prikazano na slici ili datoteci za prevrtanje: servosignal na pinove: 5-6-9-10-11 i os joystick na analogne pinove: A0-A1-A2-A3-A4Veliki problem na koji sam naišao da je upravljačke palice MORAO nabaviti Arduino, a NE punjač koji koristim za servo pogone. Inače bi servo poludio krećući se nasumično naprijed -natrag. Mislim da je to možda zato što, ako im isporučim punjač, Arduino neće moći precizno reći razliku potencijala kad ih premjestim, ali opet: Ja sam tek nov u elektronici pa je to samo nagađanje. Spajanje uzemljenja Arduina i uzemljenja punjača kroz ploču pomoglo je u sprječavanju slučajnih i neočekivanih pomaka, iz sličnog razloga zbog opskrbe upravljačkim palicama.

Korak 4: TRENUTNO SE POLOŽAVATE:

TRENUTNO SE POBOLJŠA
TRENUTNO SE POBOLJŠA

Budući da svaki joystick može kontrolirati 2 servo -a (1 po osi), potrebna su mi 3 servo -a za kontrolu cijele ruke, ali nažalost imam samo 2 palca. Pa sam mislio da, umjesto da kontroliram svaki servo, mogu kontrolirati samo xyz položaj hvatanje i otvaranje-zatvaranje hvata, za ukupno 4 osi, 2 džojstika i 2 palca! Otkrio sam da je taj problem dobro poznat kao inverzna kinematika, također sam otkrio da je sve to jednostavno. Ideja je napisati (nelinearne) jednadžbe za pronalaženje stanja svakog efektora (kutovi za servomotore) s obzirom na konačni položaj. Učitao sam ručno napisan papir s jednadžbama i trenutno radim na novom kodu za njihovu upotrebu. Ne bi trebalo biti previše teško, u osnovi moram čitati upravljačke palice, koristiti njihova očitanja za izmjenu xyz koordinata hvata, a zatim ih dati mojim jednadžbama, izračunati kutove servomotora i zapisati ih.

Korak 5: BUDUĆA POBOLJŠANJA:

Dakle, prilično sam zadovoljan ishodom toga, a s obzirom na to da sam potpuno nov u elektronici koja nešto nije ispuhala ili sam sebe već je bio velika pobjeda. Kao što sam rekao na početku, svaka ideja za buduća poboljšanja, kako softvera tako i hardver, više je nego dobrodošao! Do sada sam razmišljao o: 1. Potenciometar za promjenu "osjetljivosti" upravljačkih palica.2. Novi kôd koji će ga natjerati da "zabilježi" neke pokrete i izvede ih opet (možda brže i kraće od ljudskog unosa) 3. Neka vrsta vizualnog/udaljenog/glasovnog unosa i mogućnosti dobivanja objekata bez da netko koristi joystick4. Znati nacrtati geometrijske figure Ima li još kakvih ideja? Slobodno komentirajte sve prijedloge. Hvala

Preporučeni: