Mündəricat:

Haptic Drawing Robot: 5 Addım (Şəkillərlə birlikdə)
Haptic Drawing Robot: 5 Addım (Şəkillərlə birlikdə)

Video: Haptic Drawing Robot: 5 Addım (Şəkillərlə birlikdə)

Video: Haptic Drawing Robot: 5 Addım (Şəkillərlə birlikdə)
Video: The Guided Hand Project Allows You To "Feel" What You Draw 2024, Noyabr
Anonim

Magistr məzunluğumun bir hissəsi olaraq. Eindhoven Universitetində Sənaye Dizaynında, trafikdə yarı muxtar bir avtomobili idarə etmək üçün istifadə edilə bilən bir haptik rəsm cihazı yaratdım. İnterfeys karalama adlanır və istifadəçiyə dəyişkən qüvvə və məkan vasitəsilə 2D məkanda haptik qurğular yaşamağa imkan verir. Konsepsiya bu təlimatla əlaqəli olmasa da, Scribble haqqında daha çox məlumatı burada oxuya bilərsiniz:

Scribble, iki yanal sərbəstlik dərəcəsini (DoF) hərəkət etməyə imkan verən 5 barlıq bir bağlantı konfiqurasiyasından istifadə edir. Bu quruluş, robot hazırlamaq üçün prototiplər arasında olduqca populyardır, burada bəzi nümunələr var:

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

Mexanik olaraq bu robotların hazırlanması asandır. Yalnız əsas birləşmələrə ehtiyac duyurlar və kifayət qədər maye hərəkətləri yarada bilən iki aktuatora malikdirlər. Bu quruluş, hərəkət edən bir quruluş etmək istəyən dizaynerlər üçün idealdır, lakin mexaniki mühəndis olmadığım üçün kinematikanı koda çevirmək olduqca çətin oldu. Beləliklə, irəli dizaynda və tərs kinematikanı təyin edən əsas Arduino kodunu təqdim edəcəyəm ki, bundan gələcək dizaynlarınızda asanlıqla istifadə edəsiniz!;-)

Zəhmət olmasa aşağıdakı kodu yükləyin!

* EDIT: oxşar bir layihə üçün https://haply.co saytına baxın *

Addım 1: Strukturun qurulması

Strukturun qurulması
Strukturun qurulması

Düşündüyünüz məqsəddən asılı olaraq əvvəlcə 5 keçidli bir quruluş dizayn etməlisiniz. İstifadə etmək istədiyiniz ölçüləri, aktuatorları və hamar hərəkətlər üçün oynaqları necə bağlayacağınızı düşünün.

Prototipim üçün kodumu Mac -da Open Frameworks -də hazırlanmış bir proqram tərəfindən idarə olunan Arduino DUE -da idarə edirəm. Proqram, Unity 3D əsaslı sürücülük simulyatoru ilə ünsiyyət qurmaq üçün UDP bağlantısından istifadə edir.

Scribble prototipi 5 mm-lik rulmanlardan istifadə edir və 5 mm-lik lazer kəsikli akrilikdən hazırlanmışdır. Aktivatorlar Frank van Valeknhoefin hərəkətə keçməsinə, mövqeyini oxumasına və dəyişən bir qüvvə çıxarmasına imkan verən Haptik Mühərrikləridir. Bu, onları Scribble -nin istədiyi haptik xüsusiyyətləri üçün ideal hala gətirdi. Aktuatorları haqqında daha çox məlumatı burada tapa bilərsiniz:

Addım 2: Avadanlıq dəyərlərinizi bilin

Avadanlıq Dəyərlərinizi Bilin
Avadanlıq Dəyərlərinizi Bilin

İrəli kinematik SAP tərəfindən Plot saat hava stansiyasına əsaslanır:

Konfiqurasiyasında göstərildiyi kimi qolu çəkmək üçün bir marker tutması üçün uzadılır. Bu, karalama prototipi üçün heç bir məqsədə xidmət etmədiyi üçün silindi. Bu komponenti yenidən əlavə etmək istəyirsinizsə, kodlarını yoxlayın. Şəkildəki adlar konfiqurasiyamda eyni saxlanılır.

Aparatınızdan asılı olaraq alqoritm hardware xüsusiyyətlərinizi bilməlidir:

int leftAktuator, sağAktuator; // aktuatora deg yazmaq üçün bucaq, daha çox dəqiqlik istəsəniz üzənlərə dəyişin

int posX, posY; // göstəricinin yerləşdiyi yerin koordinatları

Giriş dəyərlərinizin qətnaməsini təyin edin

int posStepsX = 2000;

int posStepsY = 1000;

Quruluşunuzun ölçüləri, dəyərlər mm -dir (SAP şəklinə baxın)

#define L1 73 // uzunluqlu motor qolu, SAP şəklinə baxın (sol və sağ eynidır)

#define L2 95 // uzunluq uzatma qolu, SAP şəklinə baxın (sol və sağ eynidır)

#define interval X 250 // hərəkət etmək nöqtəsi üçün X istiqamətindəki maksimum aralıq (soldan sağa, 0 - maxVal)

#müəyyən aralığıY 165 // hərəkət etmək nöqtəsi üçün Y istiqaməti üzrə maksimum aralıq (mərkəzdə olarkən 0 -dan maksimum çatmağa)

#define mənşəyiL 90 // ən kiçik X dəyərindən aktuatorun mərkəz mövqeyinə qədər olan məsafə

#mənşəyi təyin edin R 145 // ən kiçik X dəyərindən aktuatorun mərkəz mövqeyinə qədər olan məsafə, iki mühərrik arasındakı məsafə bu vəziyyətdədir

Addım 3: İrəli Kinematik

İrəli Kinematik
İrəli Kinematik

Əvvəlki addımda qeyd edildiyi kimi, irəli kinematik SAP alqoritminə əsaslanır.

Boşluq, əvvəllər müəyyən edilmiş sol və sağ aktuatorun istədiyi bucaq dəyərlərini yeniləyir. Tıxanan X və Y dəyərlərinə əsaslanaraq göstərici bu mövqeyə çatmaq üçün düzgün açıları hesablayacaq.

void set_XY (double Tx, double Ty) // X və Y dəyərlərinizi daxil edin {// ehtiyacımız olan, lakin uzun ikiqat dx, dy, c, a1, a2, Hx, Hy üçün qənaət etmək istəməyən bəzi vallar; // konfiqurasiyanızı real dünyada int realX = map (Tx, 0, posStepsX, 0, rangeX) aralığına daxil etmək qətnaməsini eşleyin; // ters çevrilsə, eşlemeyi dəyişdirin int realY = map (Ty, posStepsX, 0, 0, rangeY); // ters çevrildikdə eşleme olarsa dəyişdirin // sol aktuator üçün hesablama açısı // kartezyen dx/dy dx = realX - mənşəliL; // ofset dy = realY daxildir; // qütb uzunluğu (c) və bucaq (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = geri dönmə açısı (L1, L2, c); leftActuator = mərtəbə ((((M_PI - (a2 + a1)) * 4068) / 71); // son bucaq və raddən degə çevir // sağ aktuator üçün hesablama açısı dx = realX - mənşəR; // ofset dy = realY daxildir; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = geri dönmə açısı (L1, L2, c); rightActuator = mərtəbə (((a1 - a2) * 4068) / 71); // son bucaq və raddən degə çevir}

Bucağın hesablanması üçün əlavə boşluq:

double return_angle (double a, double b, double c) {// c və dönüş acos arasındakı açı üçün kosinus qaydası ((a * a + c * c - b * b) / (2 * a * c)); }

Addım 4: Ters Kinematik

Tərs kinematika
Tərs kinematika

Ters kinematika əksinə işləyir. Aktuatorlarınızın fırlanmasını dərəcə ilə bağlayırsınız və boşluq əvvəllər təyin edilmiş mövqeyi yeniləyəcəkdir.

Unutmayın ki, qolun bucağını oxuya bilən aktuatorlara və ya ayrı bir sensora ehtiyacınız olacaq. Mənim vəziyyətimdə mövqeyini eyni vaxtda oxuya və yaza bilən aktuatorlardan istifadə etdim. Bunu sınamaqdan çəkinməyin və bucağınızın düzgün oxunduğundan əmin olmaq üçün bir növ kalibrləmə əlavə etməyi düşünün.

Tövsiyə: