Satura rādītājs:

Haptiskais zīmēšanas robots: 5 soļi (ar attēliem)
Haptiskais zīmēšanas robots: 5 soļi (ar attēliem)

Video: Haptiskais zīmēšanas robots: 5 soļi (ar attēliem)

Video: Haptiskais zīmēšanas robots: 5 soļi (ar attēliem)
Video: Досуг и развитие для детей в Будве. Честный тест. ВЛОГ ЧЕРНОГОРИЯ. 2024, Decembris
Anonim

Kā daļa no mana maģistra absolvēšanas dep. Rūpnieciskais dizains Eindhovenas universitātē, es izveidoju haptisku zīmēšanas ierīci, ko var izmantot, lai satiksmē pārvietotos daļēji autonomā automašīnā. Interfeisu sauc par skriceli un tas ļauj lietotājam izjust haptiskas ierīces 2D telpā, izmantojot mainīgu spēku un atrašanās vietu. Lai gan jēdziens nav tas, par ko ir norādīts šajā pamācībā, vairāk par Scribble varat izlasīt šeit:

Scribble izmanto 5 bāru savienojuma konfigurāciju, kas ļauj pārvietot divas sānu brīvības pakāpes (DoF). Šis iestatījums ir diezgan populārs prototipu vidū, lai izveidotu zīmēšanas robotus, šeit ir daži piemēri:

www.projehocam.com/arduino-saati-yazan-kol-…

blogs.sap.com/2015/09/17/plot-clock-weathe…

www.heise.de/make/meldung/Sanduhr-2-0-als-Bausatz-im-heise-shop-erhaeltlich-3744205.html

Mehāniski šos robotus ir viegli izgatavot. Viņiem ir nepieciešami tikai pamata savienojumi, un tiem ir divi izpildmehānismi, kas var radīt dažas šķidruma kustības. Šī struktūra ir ideāli piemērota dizaineriem, kuri ir ieinteresēti veidot kustīgu struktūru. Tomēr, tā kā neesmu mašīnbūves inženieris, man bija diezgan grūti pārvērst kinemātiku kodā. Tāpēc es sniegšu pamata Arduino kodu, kas nosaka priekšējo un apgriezto kinemātiku, lai jūs varētu to viegli izmantot turpmākajos dizainos!;-)

Lūdzu, lejupielādējiet zemāk esošo kodu!

* EDIT: līdzīga projekta gadījumā apskatiet vietni https://haply.co *

1. darbība: struktūras veidošana

Struktūras veidošana
Struktūras veidošana

Atkarībā no mērķa, kuru jūs domājat, vispirms jāizstrādā 5 saišu struktūra. Padomājiet par mērījumiem, izpildmehānismiem, kurus vēlaties izmantot, un par to, kā piestiprināt savienojumus vienmērīgai kustībai.

Savam prototipam es palaižu savu kodu Arduino DUE, kuru sērijveidā kontrolē mana Mac programma, kas tika izveidota Open Frameworks. Programma izmanto UDP savienojumu, lai sazinātos ar braukšanas simulatoru, kura pamatā ir Unity 3D.

Scribble prototips izmanto 5 mm gultņus un ir izgatavots no 5 mm lāzera griezuma akrila. Izpildmehānismi ir Frank van Valeknhoef Haptic dzinēji, kas ļauj iedarbināt, nolasīt pozīciju un izvadīt mainīgu spēku. Tas padarīja tos ideālus Scribble vēlamajām haptiskajām īpašībām. Vairāk par viņa izpildmehānismiem var atrast šeit:

2. darbība. Ziniet savas aparatūras vērtības

Ziniet savas aparatūras vērtības
Ziniet savas aparatūras vērtības

Uz priekšu vērstās kinemātikas pamatā ir SAP grafiskā pulksteņa laika stacija:

Kā parādīts to konfigurācijā, roka ir pagarināta, lai turētu marķieri zīmēšanai. Tas ir noņemts, jo tam nebija nekāda mērķa skribelēšanas prototipam. Pārbaudiet viņu kodu, ja vēlaties šo komponentu atkal pievienot. Manā konfigurācijā attēlā redzamie vārdi paliek nemainīgi.

Atkarībā no aparatūras algoritmam ir jāzina jūsu aparatūras īpašības:

int leftActuator, rightActuator; // leņķis, lai rakstītu uz izpildmehānismu grādos, mainiet uz pludiņiem, ja vēlaties lielāku precizitāti

int posX, posY; // rādītāja atrašanās vietas koordinātas

Iestatiet ievades vērtību izšķirtspēju

int posStepsX = 2000;

int posStepsY = 1000;

Jūsu iestatījumu izmēri, vērtības ir mm (skatiet SAP attēlu)

#define L1 73 // motora rokas garums, skatiet SAP attēlu (kreisā un labā puse ir vienādas)

#define L2 95 // garuma pagarinātājs, skatiet SAP attēlu (kreisā un labā puse ir vienādas)

#define rangeX 250 // maksimālais diapazons X virzienā, lai punkts pārvietotos (no kreisās uz labo, 0 - maxVal)

#define rangeY 165 // maksimālais diapazons Y virzienā, lai punkts pārvietotos (no 0 līdz maksimālajai sasniedzamībai, paliekot centrā)

#define originL 90 // nobīdes attālums no lielākās minimālās X vērtības līdz izpildmehānisma vidējai pozīcijai

#define originR 145 // nobīdes attālums no lielākās minimālās X vērtības līdz izpildmehānisma centra stāvoklim, šajā gadījumā attālums starp abiem motoriem ir

3. solis: Kinematika uz priekšu

Uz priekšu kinemātika
Uz priekšu kinemātika

Kā minēts iepriekšējā solī, uz priekšu vērstā kinemātika ir balstīta uz SAP algoritmu.

Tukšums atjaunina kreisās un labās pievada vēlamās leņķa vērtības, kas definētas iepriekš. Pamatojoties uz pievienotajām X un Y vērtībām, tā aprēķinās pareizos leņķus, lai rādītājs nonāktu šajā pozīcijā.

void set_XY (double Tx, double Ty) // ievadiet savu X un Y vērtību. // kartēt inpit izšķirtspēju atbilstoši jūsu konfigurācijas diapazonam reālajā pasaulē int realX = map (Tx, 0, posStepsX, 0, rangeX); // apmainīt, ja kartēšana, ja apgriezta int intYY = map (Ty, posStepsX, 0, 0, rangeY); // apmainīt, ja kartēšana ir apgriezta // aprēķina leņķi kreisajam izpildmehānismam // Dekarta dx/dy dx = realX - originL; // iekļaut nobīdi dy = realY; // polārais garums (c) un leņķis (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = atgriešanās_stūris (L1, L2, c); leftActuator = stāvs ((((M_PI - (a2 + a1)) * 4068) / 71); // galīgais leņķis un pārvērst no rad uz deg // aprēķina leņķi labajam izpildmehānismam dx = realX - originR; // iekļaut nobīdi dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = atgriešanās_stūris (L1, L2, c); rightActuator = stāvs ((((a1 - a2) * 4068) / 71); // galīgais leņķis un pārvērst no rad uz deg}

Papildu tukšums leņķa aprēķināšanai:

double return_angle (double a, double b, double c) {// kosinusa noteikums leņķim starp c un atgriešanās acos (((a * a + c * c - b * b) / (2 * a * c)); }

4. solis: apgrieztā kinemātika

Apgrieztā kinemātika
Apgrieztā kinemātika

Apgrieztā kinemātika darbojas otrādi. Jūs pievienojat izpildmehānismu griešanos grādos, un tukšums atjauninās iepriekš noteikto pozīciju.

Lūdzu, ņemiet vērā, ka jums būs nepieciešami izpildmehānismi vai atsevišķs sensors, kas var nolasīt rokas leņķi. Manā gadījumā es izmantoju izpildmehānismus, kas vienlaikus var gan nolasīt, gan uzrakstīt savu pozīciju. Jūtieties brīvi eksperimentēt ar šo un apsveriet iespēju pievienot kādu kalibrēšanu, lai būtu pārliecināts, ka jūsu leņķis ir pareizi nolasīts.

Ieteicams: