Mündəricat:
- Addım 1: Strukturun qurulması
- Addım 2: Avadanlıq dəyərlərinizi bilin
- Addım 3: İrəli Kinematik
- Addım 4: Ters Kinematik
Video: Haptic Drawing Robot: 5 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
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ı
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
İ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
Ə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
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ə:
"High-Fivey" Karton Mikro: bit Robot: 18 Addım (Şəkillərlə birlikdə)
"High-Fivey" Karton Mikro: bit Robotu: Evdə ilişib qalmısınız amma hələ də yüksək beşliyə ehtiyacınız varmı? Bir az karton və mikro ilə dost kiçik bir robot hazırladıq: Crazy Circuits Bit Board ilə birlikdə və səndən olan sevgisini yaşatmaq üçün səndən istədiyi hər şey yüksəkdir
Mini Drawing Bot - Canlı Android Tətbiqi - Trignomentry: 18 Addım (Şəkillərlə)
Mini Drawing Bot-Canlı Android Tətbiqi-Trignomentry: Baby-MIT-Cheetah-Robot layihəmizi hərəkət etdirdiyiniz üçün ALLAHa və hamınıza təşəkkür edirəm. Çox xoşbəxtəm, çünki bir çox dost söhbətdə və mesajda çox sual verir. Önəmli suallardan biri də necə
MXY Board - Aşağı Büdcəli XY Plotter Drawing Robot Board: 8 Addım (Şəkillərlə birlikdə)
MXY Board - Aşağı Büdcəli XY Plotter Drawing Robot Board: Məqsədim, XY plotter rəsm maşınını aşağı büdcəli etmək üçün mXY lövhəsini dizayn etmək idi. Bu layihəni etmək istəyənlərin işini asanlaşdıran bir lövhə hazırladım. Əvvəlki layihədə, 2 ədəd Nema17 pilləli mühərrikdən istifadə edərkən, bu lövhə
Zibil qutusu BT Line Drawing Botu - Botum: 13 Addım (Şəkillərlə)
Zibil qutusu BT Line Drawing Botu - Botum: Hai dostlar, təxminən 6 aylıq uzun bir boşluqdan sonra yeni bir layihə ilə gəlirəm. Cute Drawing Buddy V1, SCARA Robot - Arduino tamamlanana qədər başqa bir rəsm botu planlaşdırıram, əsas məqsəd rəsm üçün geniş bir məkanı əhatə etməkdir. Belə sabit robot qolları c
Haptic Yaxınlıq Modulu - Ucuz və Asan: 5 Addım (Şəkillərlə)
Haptik Yaxınlıq Modulu - Ucuz və Asan: Tanrının insana bəxş etdiyi görmə hissi həyatımızın vacib bir tərəfidir. Ancaq hər şeyi təsəvvür etmək qabiliyyətinə malik olmayan bədbəxt insanlar var. Dünyada təxminən 15 milyondan çox kor olan 37 milyon insan var