- Komponente potrebne
- Konstrukcija robotske ruke
- Kružni dijagram i radno objašnjenje:
- Kako upravljati robotskom rukom:
U ovom uputstvu dizajnirat ćemo robotsku ruku zasnovanu na Arduino Unou od nekih kartona i servo motora. Cijeli postupak gradnje detaljno je objašnjen u nastavku. Ovdje je u ovom projektu Arduino Uno programiran za upravljanje servo motorima koji služe kao zglobovi robotske ruke. Ova postavka također izgleda kao robotska dizalica ili je možemo pretvoriti u dizalicu jednostavnim dotjerivanjem. Ovaj će projekt biti koristan za početnike koji žele naučiti razvijati jednostavnog robota po niskoj cijeni ili samo žele naučiti raditi s Arduinom i servo motorima.
Ovom Arduino robotskom rukom može se upravljati pomoću četiri potenciometra koja su pričvršćena na nju, a svaki potenciometar služi za upravljanje svakim servo upravljačem. Te servo motore možete pomicati okretanjem lonaca kako biste odabrali neki objekt, uz malo vježbe možete lako odabrati i premjestiti objekt s jednog mjesta na drugo. Ovdje smo koristili servo motore s malim zakretnim momentom, ali vi možete koristiti snažnije servo upravljače za odabir teških predmeta. Cijeli postupak je na kraju dobro prikazan u videu. Ovdje provjerite i ostale naše projekte robotike.
Komponente potrebne
- Arduino Uno
- Kondenzator 1000uF (4 komada)
- Kondenzator 100nF (4 komada)
- Servo motor (SG 90 - četiri komada)
- 10K lonac - promjenjivi otpor (4 komada)
- Napajanje (5v - po mogućnosti dva)
Servo motor
Prvo razgovaramo malo o Servo Motors. Servo motori se uglavnom koriste kada postoji potreba za preciznim kretanjem ili položajem osovine. Nisu predloženi za velike brzine. Servo motori su predloženi za malu brzinu, srednji obrtni moment i preciznu primjenu položaja. Dakle, ovi su motori najbolji za projektiranje robotske ruke.
Servo motori su dostupni u različitim oblicima i veličinama. Upotrijebit ćemo male servo motore, ovdje koristimo četiri servo motora SG90. Servo motor će uglavnom imati žice, jedna je za pozitivni napon, druga je za masu, a zadnja za podešavanje položaja. CRVENA žica spojena je na napajanje, crna žica spojena na masu, a ŽUTA žica spojena na signal. Prođite kroz ovaj vodič za upravljanje servo motorom pomoću Arduina da biste saznali više o njemu. U Arduinu imamo unaprijed definirane knjižnice za upravljanje servom, tako da je vrlo lako upravljati servom, što ćete naučiti zajedno s ovim vodičem.
Konstrukcija robotske ruke
Uzmite ravnu i stabilnu površinu, poput stola ili tvrde ploče. Dalje postavite servo motor u sredinu i zalijepite ga na mjesto. Provjerite je li stupanj rotacije u području prikazanom na slici. Ovaj servo upravlja kao osnova ruke.

Na prvi servo postavite mali komad kartona, a zatim na ovaj komad ploče stavite drugi servo i zalijepite ga na mjesto. Servo rotacija mora odgovarati dijagramu.


Uzmite malo kartona i izrežite ih na komade 3 cm x 11 cm. Pazite da komad nije omekšan. Na jednom kraju izrežite pravokutnu rupu (ostavite 0,8 cm od dna) tek toliko da stane na drugi servo, a na drugom kraju dobro pričvrstite servo zupčanik vijcima ili ljepilom. Zatim stavite treći servo u prvu rupu.


Sada izrežite još jedan kartonski komad duljina prikazan na donjoj slici i zalijepite još jedan zupčanik na dnu ovog komada.


Sada zalijepite četvrti i posljednji servo na rub drugog dijela kako je prikazano na slici.

Ovim izgledaju dva dijela zajedno.

Kad ovu postavku prikačimo na bazu, to bi trebalo izgledati,

Gotovo je gotovo. Samo trebamo napraviti udicu da zgrabimo i odaberemo predmet poput robotske ruke. Za kuku izrežite još dva komada kartonske ploče duljine 1cmx7cm & 4cmx5cm. Zalijepite ih kako je prikazano na slici i zalijepite završni zupčanik na sam rub.


Montirajte ovaj komad na vrh i time smo završili izgradnju naše robotske ruke.

Ovim je završen naš osnovni dizajn robotske ruke i tako smo izgradili svoju jeftinu robotsku ruku. Sada spojite krug u pločicu prema shemi kruga.

Kružni dijagram i radno objašnjenje:
Priključak kruga za Arduino Uno Robotic Arm prikazan je u nastavku.

Napon na promjenjivim otporima nije potpuno linearan; bit će bučna. Tako da bi se filtrirao ovaj šum, kondenzatori se postavljaju preko svakog otpora kao što je prikazano na slici.
Sada ćemo napoj koji daje ovaj promjenjivi otpornik (napon koji predstavlja kontrolu položaja) napojiti u ADC kanale Arduina. Za to ćemo upotrijebiti četiri ADC kanala UNO od A0 do A3. Nakon inicijalizacije ADC-a imat ćemo digitalnu vrijednost lonaca koji predstavljaju položaj potreban korisniku. Uzet ćemo ovu vrijednost i uskladiti je sa servo položajem.
Arduino ima šest ADC kanala. Koristili smo četiri za našu robotsku ruku. UNO ADC ima 10-bitnu razlučivost, tako da se cijele vrijednosti kreću od 0-1023 (2 ^ 10 = 1024 vrijednosti). To znači da će preslikati ulazne napone između 0 i 5 volti u cjelobrojne vrijednosti između 0 i 1023. Dakle, za svaki (5/1024 = 4,9 mV) po jedinici. Ovdje saznajte više o mapiranju razina napona pomoću ADC kanala u Arduinu.
Sada, da bi UNO pretvorio analogni signal u digitalni signal, trebamo upotrijebiti ADC kanal Arduino Uno, uz pomoć dolje navedenih funkcija:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bitovi);
Arduino ADC kanali imaju zadanu referentnu vrijednost od 5V. To znači da možemo dati maksimalni ulazni napon od 5V za ADC pretvorbu na bilo kojem ulaznom kanalu. Budući da neki senzori pružaju napone od 0-2,5V, tako da s referencom od 5V dobivamo manju točnost, pa imamo uputu koja nam omogućuje promjenu ove referentne vrijednosti. Dakle, za promjenu referentne vrijednosti imamo "analogReference ();"
Prema zadanim postavkama dobivamo maksimalnu razlučivost ADC ploče, koja iznosi 10 bita, ova se razlučivost može mijenjati pomoću uputa („analogReadResolution (bitovi);“).
U našem robotskom krugu ruku, taj smo referentni napon ostavili zadanim, tako da možemo čitati vrijednost iz ADC kanala izravnim pozivom funkcije „analogRead (pin);“, ovdje „pin“ predstavlja pin na koji smo spojili analogni signal, recimo želimo pročitati "A0". Vrijednost iz ADC-a može se pohraniti u cijeli broj kao int SENSORVALUE0 = analogRead (A0); .
Sada razgovarajmo o SERVO-u, Arduino Uno ima značajku koja nam omogućuje upravljanje položajem servo-a samo davanjem vrijednosti stupnja. Recimo, ako želimo da servo bude na 30, možemo izravno predstaviti vrijednost u programu. Datoteka SERVO zaglavlja ( Servo.h ) interno se brine za sve izračune omjera radne snage.
#include
Ovdje prva izjava predstavlja datoteku zaglavlja za upravljanje SERVO MOTOROM. Druga izjava je imenovanje serva; ostavljamo ga kao servo0 jer ćemo koristiti četiri. Treća izjava navodi gdje je spojen servo signalni klin; ovo mora biti PWM pin. Ovdje koristimo PIN3 za prvi servo. Četvrta izjava daje naredbe za pozicioniranje servo motora u stupnjevima. Ako mu se da 30, servo motor se okreće za 30 stupnjeva.
Sada imamo SG90 servo položaj od 0 do 180, a vrijednosti ADC su od 0-1023. Upotrijebit ćemo posebnu funkciju koja automatski podudara obje vrijednosti.
sensorvalue0 = karta (sensorvalue0, 0, 1023, 0, 180);
Ova izjava automatski preslikava obje vrijednosti i rezultat pohranjuje u cijeli broj 'servovalue0' .
Na ovaj smo način kontrolirali servo motore u našem projektu Robotic Arm koristeći Arduino. Potpuni kod provjerite u nastavku.
Kako upravljati robotskom rukom:
Korisniku su na raspolaganju četiri posude. I okrećući ove četiri posude, pružamo promjenjivi napon na ADC kanalima UNO-a. Dakle, digitalne vrijednosti Arduina pod nadzorom su korisnika. Ove digitalne vrijednosti mapiraju se za podešavanje položaja servo motora, stoga položaj servoa kontrolira korisnika i okretanjem ovih lonaca korisnik može pomicati zglobove robotske ruke i može odabrati ili zgrabiti bilo koji predmet.
