Мазмұны:

Роботтық сурет: 5 қадам (суреттермен)
Роботтық сурет: 5 қадам (суреттермен)

Бейне: Роботтық сурет: 5 қадам (суреттермен)

Бейне: Роботтық сурет: 5 қадам (суреттермен)
Бейне: Қалай сурет салуға болады? Сандар арқылы 2024, Шілде
Anonim

Магистратура бөлімінде магистратураның бір бөлігі ретінде. Эйндховен университетінде өнеркәсіптік дизайн, мен жартылай автономды автокөлікті қозғалыс кезінде жылжытуға болатын хаптикалық сурет салу құрылғысын жасадым. Интерфейс scribble деп аталады және пайдаланушыға ауыспалы күш пен орналасу арқылы 2D кеңістігінде гаптикалық қондырғыларды көруге мүмкіндік береді. Концепция бұл нұсқаулыққа жатпаса да, Scribble туралы толығырақ мына жерден оқи аласыз:

Scribble 5 жолақты байланыс конфигурациясын қолданады, ол екі бүйірлік еркіндік дәрежесін (DoF) жылжытуға мүмкіндік береді. Бұл қондырғы сурет роботтарын жасау үшін прототиптер арасында өте танымал, мұнда бірнеше мысалдар келтірілген:

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

Бұл роботтарды механикалық түрде жасау оңай. Оларға тек негізгі буындар қажет және сұйық қозғалыстар жасай алатын екі жетегі бар. Бұл құрылым жылжымалы құрылым жасауға мүдделі дизайнерлер үшін өте қолайлы, бірақ мен инженер -механик емеспін, кинематиканы кодқа аудару қиынға соқты. Сондықтан мен алға және кері кинематиканы анықтайтын негізгі Arduino кодын беремін, осылайша сіз оны болашақ дизайнда оңай қолдана аласыз!;-)

Төмендегі кодты жүктеңіз!

* EDIT: ұқсас жоба үшін https://haply.co қараңыз *

1 -қадам: құрылымды құру

Құрылымды құру
Құрылымды құру

Сіз ойлаған мақсатқа байланысты алдымен 5 буынды құрылымды жобалауыңыз керек. Қолданғыңыз келетін өлшемдер, жетектер және тегіс қозғалыстар үшін буындарды қалай бекіту керектігі туралы ойланыңыз.

Менің прототипім үшін мен кодты Open Frameworks -те жасалған Mac жүйесіндегі бағдарлама арқылы басқарылатын Arduino DUE -де іске қосамын. Бағдарлама Unity 3D негізделген тренажермен байланысу үшін UDP қосылымын пайдаланады.

Scribble прототипі 5 мм подшипниктерді пайдаланады және 5 мм лазермен кесілген акриликтен жасалған. Іске қосқыштар - бұл Франк ван Валекнхофтың Haptic Engines қозғалтқыштары, олар іске қосуға, позицияны оқуға және айнымалы күш шығаруға мүмкіндік береді. Бұл оларды Scribble қалаған haptic қасиеттері үшін өте қолайлы етті. Оның жетектері туралы толығырақ мына жерден білуге болады:

2 -қадам: Жабдықтың құндылығын біліңіз

Аппараттық құралдардың құндылықтарын біліңіз
Аппараттық құралдардың құндылықтарын біліңіз

Алға қарай кинематика SAP бойынша Plot clock метеостанциясына негізделген:

Конфигурацияда көрсетілгендей, қолды салу үшін маркерді ұстап тұру үшін ұзартылады. Бұл жазбаның прототипі үшін ешқандай мақсат болмағандықтан жойылды. Егер сіз бұл компонентті қайта қосқыңыз келсе, олардың кодын тексеріңіз. Менің конфигурациямда суреттегі атаулар өзгеріссіз қалады.

Жабдыққа байланысты алгоритм аппараттық құралдардың қасиеттерін білуі керек:

int leftActuator, rightActuator; // бұранда, қозғағышқа градуста жазу, егер сіз дәлірек болғыңыз келсе, өзгермеліге ауысыңыз

int posX, posY; // көрсеткіштің орналасқан жерінің координаттары

Енгізілетін мәндердің ажыратымдылығын орнатыңыз

int posStepsX = 2000;

int posStepsY = 1000;

Орнатудың өлшемдері, мәндері мм (SAP суретін қараңыз)

#define L1 73 // ұзындығы қозғалтқыш тұтқасы, SAP суретін қараңыз (сол және оң жақ бірдей)

#define L2 95 // ұзартқыш тірек, SAP суретін қараңыз (сол және оң жақ бірдей)

#defineXX 250 // жылжу нүктесі үшін X бағыттағы максималды диапазон (солдан оңға, 0 - maxVal)

#анықтайтын ауқымы Y 165 // жылжу нүктесі үшін Y бағыты бойынша максималды диапазон (0 -ден максималды жетуге дейін орталықта)

#dinefine LL // ең кіші X мәнінен жетектің орталық позициясына дейінгі қашықтық

#анықтаушы R 145 // ең кіші X мәнінен жетектің орталық позициясына дейінгі аралық қашықтық, бұл жағдайда екі қозғалтқыш арасындағы қашықтық

3 -қадам: Кинематика алға

Алға кинематика
Алға кинематика

Алдыңғы қадамда айтылғандай, алға кинематика SAP алгоритміне негізделген.

Бос орын бұрын және бұрын берілген жетектің қажетті бұрышының мәндерін жаңартады. Қосылған X және Y мәндеріне сүйене отырып, көрсеткішті осы позицияға жеткізу үшін дұрыс бұрыштарды есептейді.

void set_XY (double Tx, double Ty) // X және Y мәндерін енгізіңіз {// бізге қажет, бірақ ұзақ қос dx, dy, c, a1, a2, Hx, Hy; // нақты әлемдегі конфигурация диапазонына енгізудің ажыратымдылығын салыстыру int realX = map (Tx, 0, posStepsX, 0, rangeX); // егер ауыстырылса, егер салыстыру int realY = map (Ty, posStepsX, 0, 0, rangeY); // егер инверсия болса, егер салыстыру болса, ауыстыру // сол жақ жетектің калькуляциялық бұрышы // картесиялық dx/dy dx = realX - OrigL; // офсетті қосу dy = realY; // полярлық ұзындық (с) және бұрыш (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = қайтару бұрышы (L1, L2, c); leftActuator = қабат (((M_PI - (a2 + a1)) * 4068) / 71); // түпкілікті бұрыш және радтан deg -ге түрлендіру // оң жақ жетегі үшін кальций бұрышы dx = realX - OrigR; // офсетті қосу dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = қайтару бұрышы (L1, L2, c); rightActuator = қабат (((a1 - a2) * 4068) / 71); // соңғы бұрыш және радтан deg -ге түрлендіру}

Бұрышты есептеу үшін қосымша бос орын:

double return_angle (double a, double b, double c) {// c және aco қайтару арасындағы бұрыштың косинус ережесі ((a * a + c * c - b * b) / (2 * a * c)); }

4 -қадам: Кері кинематика

Кері кинематика
Кері кинематика

Кері кинематика керісінше жұмыс істейді. Сіз жетектердің айналуын градуспен қосасыз, ал бос орын бұрын анықталған орынды жаңартады.

Қолдың бұрышын оқитын жетектер немесе бөлек сенсор қажет болатынын ескеріңіз. Менің жағдайда мен өз позициясын бір мезгілде оқи алатын және жаза алатын жетектерді қолдандым. Бұған тәжірибе жасаңыз және калибрлеудің қандай да бір түрін енгізуді қарастырыңыз, осылайша сіздің бұрышыңыз дұрыс оқылғанына сенімді боласыз.

Ұсынылған: