Sadržaj:
- Korak 1: Teorija iza projekta
- Korak 2: Dizajniranje PCB -a
- Korak 3: Izrada PCB -a
- Korak 4: Dizajniranje ruke
- Korak 5: Štampanje dijelova
- Korak 6: Sastavite sve zajedno
- Korak 7: Programiranje Arduina
- Korak 8: Programiranje u Pythonu
- Korak 9: Lista dijelova
- Korak 10: Završne misli
Video: Arduino i PC upravljaju robotskom rukom: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Robotsko oružje široko se koristi u industriji. Bilo da se radi o montažnim operacijama, zavarivanje ili čak jedno se koristi za pristajanje na ISS (Međunarodna svemirska stanica), pomažu ljudima u radu ili potpuno zamjenjuju ljude. Ruka koju sam izgradio je manji prikaz robotske ruke koja bi se trebala koristiti za pomicanje objekata. Njime upravlja arduino pro mini koji već ima ugrađenu biblioteku za upravljanje servo pogonima. Servomotorima upravlja PWM (Pulse Width Modulation) koji nije teško programirati, ali ova biblioteka olakšava rad. Korisnik može upravljati tim servo pogonima pomoću potenciometara koji su dizajnirani da djeluju kao razdjelnici napona ili iz programa na računaru koji koristi 4 klizača za upravljanje servo motorima.
Za ovaj projekt morao sam dizajnirati prilagođenu PCB ploču i izraditi je, stvoriti 3D modele ruke i napisati kod koji sve to kontrolira. Povrh svega, kodirao sam dodatni program u pythonu koji šalje signale arduinu koji uspijeva dekodirati taj signal i premjestiti servosisteme u položaj koji je korisnik postavio.
Korak 1: Teorija iza projekta
Arduino je odličan po tome što nudi besplatnu biblioteku za rad. Za ovaj projekt koristio sam biblioteku Servo.h koja uvelike olakšava upravljanje servo pogonima.
Servo motor kontrolira PWM -Pulse Width Modulation- što znači da za upravljanje servo -om morate napraviti kratke naponske impulse. Servo može dekodirati dužinu ovog signala i rotirati se u zadani položaj. Ovdje sam koristio već spomenutu biblioteku. Nisam morao sam izračunati dužinu signala, već sam koristio funkcije biblioteke kojima samo proslijedim parametar u stupnjevima i on daje signal.
Za upravljanje servo pogonima koristio sam potenciometre koji djeluju kao razdjelnici napona. Arduino ploče imaju nekoliko analogno/digitalnih pretvarača koje sam koristio za projekt. U osnovi arduino prati napon na srednjem pinu na potenciometru, a ako se rotira na jednu stranu napon na njemu je 0 volti (vrijednost = 0), a s druge strane 5 volti (vrijednost = 1023). Ova vrijednost se zatim skalira iz raspona 0 - 1023 do 0 - 180, a zatim se prenosi na već spomenutu funkciju.
Druga tema je serijska komunikacija s arduinom koju ću ukratko obraditi. U osnovi program napisan na računalu šalje vrijednost koju odabere korisnik, arduino je može dekodirati i pomaknuti servo na zadani položaj
Korak 2: Dizajniranje PCB -a
Dizajnirao sam 2 PCB -a - jedan za glavnu kontrolu gdje je arduino i pinovi za servo, a drugi su potenciometri. Razlog za 2 PCB -a je što sam htio kontrolirati robotsku ruku sa sigurne udaljenosti. Oba kruga su spojena kabelom određene duljine - u mom slučaju 80 cm.
Za izvor napajanja odabrao sam vanjski adapter jer su servomotori koje sam koristio trošili mnogo više energije nego što arduino može isporučiti. Kao što vidite, postoje neki kondenzatori koje još nisam spomenuo. To su kondenzatori koji se koriste za filtriranje. Kao što sada znate, servo motorom upravljaju kratki impulsi. Ti impulsi mogu učiniti da padovi napona napajanja i potenciometri koji su ranije imali raspon 0-5 volti sada imaju manji raspon. To znači da se napon na srednjem pinu mijenja i arduino dobiva ovu vrijednost i mijenja položaj u koji se nalazi servo motor. Ovo može trajati zauvijek i uzrokuje neželjene oscilacije koje se mogu ukloniti nekim kondenzatorima paralelno s napajanjem.
Korak 3: Izrada PCB -a
Za izradu PCB -a predlažem da ovo pročitate.
Koristio sam metodu Iron on Glossy paper i odlično se pokazalo.
Zatim sam lemio dijelove na PCB -u. Možete vidjeti da sam koristio arduino utičnicu u slučaju da mi u budućnosti zatreba.
Korak 4: Dizajniranje ruke
Ovo nikako nije bio najteži dio izrade ovog projekta.
Cijela postavka sastoji se od 8 dijelova gdje 4 nisu pokretni dijelovi - kutija za potenciometre i baza na kojoj se nalazi arduino - a druga četiri su sama ruka. Neću ulaziti u detalje, osim što je dizajn prilično intuitivan i na neki način jednostavan. Dizajniran je tako da odgovara mojim prilagođenim PCB -ovima i servo motorima koje ću uključiti u popis dijelova.
Korak 5: Štampanje dijelova
Delovi su štampani na štampaču Prusa. Neka lica je trebalo malo brusiti i izbušiti rupe. Također je potrebno ukloniti potporne stubove.
Korak 6: Sastavite sve zajedno
U ovom koraku, kako naslov kaže, sve sam spojio.
Prvo sam lemio žice na potenciometrima, a zatim te žice na PCB -u. Potenciometri su se lijepo uklopili u rupe i vruće sam zalijepio PCB na stubove koji su bili otisnuti na dnu kutije. Možete izbušiti rupe na ploči i u kutiji, ali otkrio sam da je lijepljenje više nego dovoljno. Zatim sam zatvorio oba dijela kutije i učvrstio ih na mjestu pomoću 4 vijka koji se uklapaju u rupe koje sam dizajnirao.
Kao sljedeći korak napravio sam ravni vrpčani kabel za spajanje obje ploče.
U glavnoj kutiji sam lemio žice od VCC pina konektora za prebacivanje, a zatim na Vcc ploče i od GND ploče do GND konektora. Zatim sam vruće zalijepio konektor na mjesto i ploču na stupovima. Konektor se uklapa pravo u rupu tako da nije potrebno vruće ljepilo.
Zatim sam pomoću vijaka pričvrstio donji servo na dno kutije.
Nakon toga sam gornji dio kutije stavio na donji dio i isto kao i sa kutijom potenciometra pričvrstio sam je sa 4 vijka.
Sljedeći dio je bio pomalo zeznut, ali uspio sam spojiti ostatak ruke s raznim maticama i jastučićima i nije bilo tako čvrsto koliko sam očekivao jer sam dizajnirao neke tolerancije između dijelova, pa je lakše raditi s njima.
I kao posljednji korak stavio sam traku na dno kutija jer bi u protivnom klizile.
Korak 7: Programiranje Arduina
Već sam spomenuo kako program radi u teoriji iza projekta, ali ću ga još više razbiti.
Dakle, na početku moramo definirati neke varijable. Uglavnom se kopira 4 puta jer imamo 4 serva i po mom mišljenju nije potrebno komplicirati logiku samo da bi program bio kraći.
Slijedi postavljanje praznina gdje su definirani pinovi servo pogona.
Zatim postoji void loop - dio programa koji se ponavlja beskonačno. U ovom dijelu program uzima vrijednost sa skale potenciometra i stavlja na izlaz. No, postoji jedan problem što vrijednost s potenciometra prilično skače pa sam morao dodati filter koji čini prosjek zadnjih 5 vrijednosti, a zatim daje izlaz. Time se sprječava neželjeno ljuljanje.
Posljednji dio programa čita podatke sa serijskog porta i odlučuje što učiniti na temelju poslanih podataka.
Da biste u potpunosti razumjeli kod, predlažem vam da posjetite službene arduino web stranice.
Korak 8: Programiranje u Pythonu
Ovaj dio ovog projekta nije neophodan, ali mislim da samo daje veću vrijednost ovom projektu.
Python nudi mnoštvo besplatnih biblioteka, ali u ovom projektu koristim samo tkinter i serijske. Tkinter se koristi za GUI (grafičko korisničko sučelje) i serijski, kako mu naziv kaže, koristi se za serijsku komunikaciju.
Ovaj kôd stvara grafički interfejs sa 4 klizača čija je minimalna vrijednost 0, a maksimalna 180. Možda će vam nagovijestiti da je u stupnjevima i da je svaki klizač programiran za upravljanje jednim servo pogonom. Ovaj program je prilično jednostavan - uzima vrijednost i šalje je u arduino. Ali način na koji šalje je zanimljiv. Ako odlučite promijeniti vrijednost prvog serva na 123 stupnja, on se šalje na arduino vrijednost 1123. Prvi broj svakog poslanog broja govori koji će servo biti kontroliran. Arduino ima kod koji to može dekodirati i pomaknuti desni servo.
Korak 9: Lista dijelova
- Arduino Pro Mini 1 komad
- Servo FS5106B 1 komad
- Servo Futaba S3003 2 komada
- Pin header 2x5 1 komad
- Pin zaglavlje 1x3 6 komada
- Kondenzator 220uF 3 komada
- Mikro servo FS90 1 komad
- Konektor AWP-10 2 komada
- Konektor FC681492 1 komad
- Prekidač P-B100G1 1 komad
- Utičnica 2x14 1 komad
- TTL-232R-5v-pretvarač 1 komad
- Potenciometar B200K 4 komada
- i još mnogo vijaka, pločica i matica
Korak 10: Završne misli
Hvala vam što ste ovo pročitali i nadam se da sam vas barem motivirao. Ovo je moj prvi veći projekt koji sam napravio sam bez kopiranja stvari s interneta i prve objave s uputama. Znam da bi se ruka mogla nadograditi, ali sam zasad zadovoljan s tim. Svi dijelovi i izvorni kodovi su besplatni, možete ih koristiti i promijeniti na bilo koji način. Ako imate bilo kakvih pitanja, slobodno ih postavite u odjeljku za komentare. Također možete pogledati video zapise, nisu baš dobre kvalitete, ali prikazuju funkcionalnost projekta.
Preporučuje se:
Upravljanje robotskom rukom s TLV493D, joystick i, Arduino: 3 koraka
Upravljanje robotskom rukom s TLV493D, joystick i, Arduino: Alternativni kontroler za vašeg robota sa senzorom TLV493D, magnetski senzor sa 3 stupnja slobode (x, y, z) pomoću njih možete kontrolirati svoje nove projekte pomoću I2C komunikacije na vašem mikrokontroleri i elektronička ploča koja Bast P
Ultrazvučni senzor na robotskom usisivaču: 5 koraka
Ultrazvučni senzor na robotskom usisivaču: Zdravo, imamo robotski usisivač Dirt Devil već 3 godine i još uvijek radi svoj posao. To je tip M611, koji je mali "glup": nema skeniranja područja ili neke memorije gdje se ne usisava, ali s mogućnošću vraćanja
Upravljajte robotskom rukom sa Zio -om pomoću PS2 kontrolera: 4 koraka
Upravljajte robotskom rukom sa Ziom pomoću PS2 kontrolera: Ovaj blog je dio Zio Robotics serije. Uvod Ovo je posljednji dio posta „Upravljajte robotskom rukom sa Ziom“. U ovom vodiču ćemo dodati još jedan dio u našu robotsku ruku. Prethodni vodiči ne sadrže osnovu za
Upravljajte robotskom rukom pomoću Zio modula Dio 1: 8 koraka
Upravljajte robotskom rukom pomoću Zio modula 1. dio: Ovaj blog je dio Zio Robotics serije. Uvod U ovom vodiču ćemo izgraditi projekt u kojem ćemo koristiti Zio module za kontrolu robotskog kraka. Ovaj će vas projekt naučiti kako natjerati kandžu robotske ruke da se otvara i zatvara. Ovaj n
Pristupačno rješenje vizije s robotskom rukom zasnovano na Arduinu: 19 koraka (sa slikama)
Pristupačno rješenje vizije s robotskom rukom zasnovano na Arduinu: Kada govorimo o mašinskom vidu, uvijek nam se čini tako nedostižnim. Iako smo napravili demo vizije otvorenog koda koji bi bilo super jednostavno za svakoga. U ovom videu, s OpenMV kamerom, bez obzira gdje se nalazi crvena kocka, robot