Satura rādītājs:

Arduino robotu roka: 5 soļi
Arduino robotu roka: 5 soļi

Video: Arduino robotu roka: 5 soļi

Video: Arduino robotu roka: 5 soļi
Video: Прототип 4-х осевого робота-манипулятора 2024, Jūlijs
Anonim
Image
Image
Arduino robotu roka
Arduino robotu roka
Arduino robotu roka
Arduino robotu roka

Tā kā tas ir mans pirmais projekts pēc 15 Arduino sākuma komplekta apmācībām, tā patiesais mērķis ir iegūt kritiķus, padomus, ieteikumus un idejas no ikviena, kas zina vairāk nekā es.

Šis projekts ir par robotu roku, ar 4 dofiem un rokturi. Ar pietiekoši zemu budžetu: konstrukciju ir izgriezis draugs, 4 servos bija 30 €, 2 kursorsviras 4 €, skrūves utt. Par mazāk nekā 10 € un viss pārējais (Arduino, vadi, rokturu servo utt.)) jau bija iekļauts manā sākuma komplektā. Kopā par 40–45 €, kas ir aptuveni 45–50 ASV dolāri (tāda pati cena kā man-arm komplektam, bet, hei, bija jautri to uzbūvēt pašam (un laiku pa laikam kaut ko sabojāt) un neievēro norādījumus kā mašīna).

Tā kā šis bija mans pirmais projekts un Instructable, es piedalījos '' First Time Author '' un vēl pāris konkursos, tāpēc, ja jums patīk, balsojiet:)

1. darbība: Dizaina izstrāde un salikšana:

Vispirms man bija nepieciešama struktūra: šī noteikti bija garākā daļa. Tā kā es negribēju kopēt un ielīmēt projektu no kāda cita, es kā atsauci ņēmu projektu un es (un vēl daži prasmīgi klasesbiedri, kuri mani patiešām izglāba) sāka to pārveidot atbilstoši mūsu vajadzībām (dažādi servo ar dažādu griezes momentu, svaru un izmēriem utt.). Man tas bija jāveido dažas reizes, katrā no tām es atklāju kaut ko nepareizu, un mums bija jāatkārto daži gabali un jāmēģina vēlreiz. Es pievienoju.dxf failu, ja vēlaties to izmantot. Tad man bija jāiegādājas elektronika: Lielākā daļa detaļu bija standarta, grūtāk bija izvēlēties servos. Nepieciešamo griezes momentu aprēķināju ar īkšķa noteikumu, vēlāk izmēģināju precīzāku aprēķinu un atklāju, ka, iespējams, esmu to nedaudz pārpratis. Acīmredzot 2. servo (no pamatnes) būtu pieticis ar 6 kg/cm, un mans nodrošina 9-11 kg/cm. Tas man dod zināmu drošību un iespēju ielādēt līdz 2 kg kravas (kas nav iespējams, bet man patīk, ka es to varu tehniski izdarīt). Es varētu arī nopirkt dažādus servos, samazinot griezes momentu, attālinoties no bāzes, bet identisku servo pirkšana no viena un tā paša pārdevēja bija lētākais risinājums. Barošanas avots: Arduino noteikti nebija pietiekami servos, jo katrs mg995 350mA un mikroservo 9g patērē 100mA, kopā 350*4 +100 = 1500mA. Tāpēc es izglābu lādētāju (6V 1.5A) un pielodēju pie tā divus vadus. (Ja kādam no jums varētu būt vajadzīgas kādas īstas instrukcijas, vienkārši jautājiet komentāros, un es darīšu visu iespējamo, lai izveidotu soli pa solim) Materiālu saraksts:- struktūra- M5x7cm skrūve x5, m5 skrūves x15 (pamatne)- M3x16mm skrūve x18*- M3x20mm skrūve x13*- M3 skrūves x40*- M3x8cm skrūve x3- skava (pretējā gadījumā tā nokritīs)- 3 tapas- Arduino (vai kaut kas cits, lai to kontrolētu, tam jābūt vismaz 5 PWM)- kaut kas, lai piegādātu 5-6V un vismaz 1,5A- 3x ps2 līdzīgi kursorsviras- 4x TowerPro mg995 servos- 1x TowerPro 9g mikroservo (satvērienam)) - Daudz džemperu vadu - maizes dēlis*(es izmantoju skrūves un skrūves, lai varētu ātri salikt un izjaukt, pretējā gadījumā gandrīz visas varētu nomainīt ar koka skrūvēm)

2. darbība: KODS:

Ideja ir kontrolēt katru servo ar vienu no divām ps2 līdzīga kursorsviras asīm. Šķiet, ka katrai kursorsvirai ir atšķirīgas “atpūtas vērtības” (vērtība starp 0–1023, kad tā ir nekustīga) gan y, gan x asij. bija problēma, jo atšķirība bija neliela (vienam bija nulle uz y pie 623), un es vēlējos izmantot kartes funkciju, lai pārvērstu no 0 līdz 1023 grādiem. Bet kartes funkcija domā, ka pārējā vērtība ir 1023/2. Kas izraisīja katru servo kustību, tiklīdz ieslēdzu Arduino, tas nav labi. Man izdevās to apiet, manuāli atrodot starpību starp lasīšanas vērtību un katru atšķirīgo atpūtas vērtību (ko es aprēķināju atsevišķi katram kursorsviru), pēc tam uz padarot kodu īsāku un gudrāku, es liku viņam nolasīt pārējās vērtības iestatīšanas funkcijā un saglabāt tās dažos mainīgajos. Jaunais algoritms balstās uz pieauguma pārvēršanu grādos, bet es gribēju, lai manam pieaugumam būtu ļoti zems grādu daudzums, tāpēc Man tas bija jāsadala nemainīgi: es izmēģināju daudzas vērtības, līdz es nonācu pie galīgajiem 200 (es varu pievienot potenciometru, lai manuāli mainītu šo vērtību uz vēlamo). Pārējais kods, es domāju, ir diezgan standarta, lai gan varētu būt elegantāk, ja pieauguma aprēķins tiktu ievietots atsevišķā funkcijā.

3. solis: ELEKTRONIKA:

ELEKTRONIKA
ELEKTRONIKA

Elektroinstalācija ir tāda pati kā attēlā vai fritzes failā: servo signāls tapām: 5-6-9-10-11 un kursorsviru ass līdz analogām tapām: A0-A1-A2-A3-A4 Galvenā problēma, ar kuru es saskāros bija tas, ka kursorsviras bija jānodrošina Arduino, nevis ar lādētāju, ko izmantoju servos. Pretējā gadījumā servo vienkārši traks, nejauši pārvietojoties uz priekšu un atpakaļ. Es domāju, ka tas varētu būt tāpēc, ka, piegādājot tos ar lādētāju, Arduino nevarēs precīzi pateikt iespējamo atšķirību, kad tos pārvietoju, bet pēc tam vēlreiz: Es esmu ļoti jauns elektronikā, tāpēc tas ir tikai minējums. Arduino zemes un lādētāja zemes savienošana caur maizes dēli palīdzēja novērst nejaušas un negaidītas kustības, domājams, līdzīga kursorsviru piegādes iemesla dēļ.

4. darbība. Šobrīd UZLABOŠANA:

Šobrīd UZLABOŠANA
Šobrīd UZLABOŠANA

Tā kā katra kursorsvira var kontrolēt 2 servos (pa 1 uz ass), man ir nepieciešami 3 servo, lai kontrolētu visu roku, bet diemžēl man ir tikai divi īkšķi. Tāpēc es domāju, ka tā vietā, lai kontrolētu katru servo, es varētu kontrolēt tikai xyz pozīciju. satveriet un atveriet-aizveriet satvērienu, kopā 4 asis, 2 kursorsviras un 2 īkšķus! Es uzzināju, ka šī problēma ir labi pazīstama kā apgrieztā kinemātika, un es arī uzzināju, ka tas viss ir vienkārši. Ideja ir rakstīt [nelineārus) vienādojumus, lai atrastu katra efektora stāvokli (servo leņķi), ņemot vērā galīgo pozīciju. Esmu augšupielādējis ar roku rakstītu papīru ar vienādojumiem, un pašlaik strādāju pie jauna koda, lai tos izmantotu. Tam nevajadzētu būt pārāk grūti, man būtībā ir jālasa kursorsviras, jāizmanto to rādījumi, lai mainītu saķeres xyz koordinātas, un pēc tam dodiet tos maniem vienādojumiem, aprēķiniet servo leņķus un uzrakstiet tos.

5. darbība. Nākotnes uzlabojumi:

Tātad, es esmu diezgan apmierināts ar tā iznākumu un, ņemot vērā, ka esmu pilnīgi jauns elektronikā, kas nepūš kaut ko vai sevi, jau bija milzīga uzvara. Kā jau teicu sākumā, jebkura ideja par turpmākiem uzlabojumiem, gan programmatūru, gan aparatūra, ir vairāk nekā apsveicama! Līdz šim es domāju par: 1. Potenciometrs, lai mainītu kursorsviru “jutīgumu”. Jauns kods, lai liktu viņam “ierakstīt” dažas kustības un veikt tās vēlreiz (iespējams, ātrāk un īsāk nekā cilvēka ievade) 3. Kaut kāda vizuāla/attāluma/balss ievade un iespēja iegūt objektus bez kāda, izmantojot kursorsviras4. Spēja uzzīmēt ģeometriskas figūras. Vai ir vēl kāda ideja? Lūdzu, nekautrējieties komentēt visus ieteikumus. Paldies

Ieteicams: