Mündəricat:

RoboGlove: 12 addım (şəkillərlə)
RoboGlove: 12 addım (şəkillərlə)

Video: RoboGlove: 12 addım (şəkillərlə)

Video: RoboGlove: 12 addım (şəkillərlə)
Video: NASA's Space Suit RoboGlove Webinar 2024, Iyul
Anonim
RoboGlove
RoboGlove

Biz ULB, Université Libre de Bruxelles tələbələri qrupuyuq. Layihəmiz insanlara əşyaları tutmağa kömək edən tutma qüvvəsi yarada bilən bir robot əlcək hazırlamaqdan ibarətdir.

ƏLAQƏ

Əlcək barmaqları bəzi servo mühərriklərə bağlayan bir tel bağlantısına malikdir: barmağın ucuna və servoya bir tel bağlanır, buna görə də servo dönəndə tel çəkilir və barmaq bükülür. Bu şəkildə, barmaqların ucundakı bəzi təzyiq sensörləri vasitəsi ilə istifadəçi tərəfindən edilən tutuşa nəzarət edərək, motorları idarə olunan bir şəkildə işə sala bilərik və barmağımızı mühərriklərin fırlanmasına nisbətlə bükərək tutmağa kömək edə bilərik. tellərin yuvarlanmasına qədər. Bu şəkildə ya zəif insanların cisimləri tutmalarına icazə verməli, ya da fizioloji şəraitdə olan insanlara cisimləri tutmağa və heç bir səy göstərmədən saxlamağa kömək etməliyik.

DİZAYN

Model əl hərəkətini mümkün qədər sərbəst etmək üçün hazırlanmışdır. Əslində, biz telləri, mühərrikləri və barmaqları bağlamaq üçün lazım olan hissələri yalnız 3D çap etdik.

Hər bir barmağınızda PLA ilə yazılmış üst kubokumuz var: bu, tellərin bağlanmalı olduğu terminal hissəsidir və içəridə sabitlənmiş təzyiq sensörünü qorumalıdır. Təzyiq sensoru isti yapışqanla PLA ucu ilə əlcək arasında yapışdırılır.

Sonra tellər üçün bir bələdçi təşkil edən hər barmaq başına iki ədəd 3D çaplı üzüklərimiz var. Baş barmaq yalnız bir üzüyü olan yeganə barmaqdır. Barmaqların uclarında yarıya bükülmüş bir barmaq üçün bir tel var. İki yarı kubok hissəsinin iki bələdçisindən və hər iki halqadan keçir: düz bu halqaların xaricində düzəltdiyimiz deliklərə qoyulur. Sonra birbaşa motora bağlı olan bir çarxa yığılırlar. Təkər, tellərin ətrafına dolanmaq üçün həyata keçirilmişdir: motorumuzun tam fırlanmadığı üçün (180 ° -dən aşağı) telin 6 santimetrlik bir boşluq üçün çəkilməsi üçün təkəri həyata keçirdik. əlini tamamilə bağlamaq lazımdır.

Servo mühərrikləri və arduino -nu qola bağlamaq üçün iki lövhə də çap etdik. Ağacdan və ya lazer kəsici ilə sərt bir plastikdən kəsmək daha yaxşıdır.

Addım 1: Alış -veriş siyahısı

Alış-veriş siyahısı
Alış-veriş siyahısı
Alış-veriş siyahısı
Alış-veriş siyahısı
Alış-veriş siyahısı
Alış-veriş siyahısı

Əlcəklər və tellər:

1 mövcud əlcək (tikilə bilən olmalıdır)

Köhnə jeans və ya başqa bir sərt parça

Neylon tellər

Aşağı sıxlıqlı polietilen borular (Çap: 4mm Qalınlıq: 1mm)

Elektronika:

Arduino Uno

1 Batareya 9V + 9V Batareya tutacağı

1 elektron açar

1 veroboard

3 servo motor (barmaq başına 1 ədəd)

3 pervane (servo ilə təchiz olunmuşdur)

4 AA + 4 AA Batareya tutacağı

3 təzyiq sensoru (barmaq başına 1 ədəd)

3 rezistor 330 ohm (barmaq başına 1 ədəd)

6 elektrik naqili (hər sensora 2 ədəd)

Vintlər, qoz -fındıq və fiksasiya:

10 mm uzunluğunda 4 M3 (Arduinonu düzəltmək üçün)

2 M2.5 12mm uzunluq (9V batareya tutucusunu düzəltmək üçün)

6 uyğun fındıq

10 mm uzunluğunda 6 M2 (təkərləri servoya bağlamaq üçün hər servoya 2 ədəd)

12 kiçik kabel bağları (lövhələri və açarı düzəltmək üçün)

7 böyük kabel bağlaması (hər motorda 2 ədəd və 4 AA batareya tutucusu üçün 1 ədəd)

İstifadə olunan alətlər:

3D printer (Ultimaker 2)

Dikiş üçün material

İsti yapışqan tapança

Seçim: lazer kəsici

Addım 2: Geyilə bilən quruluş hazırlayın

Geyilə bilən quruluş hazırlayın
Geyilə bilən quruluş hazırlayın

Geyilə bilən quruluş bəzi paltarlardan hazırlanmışdır: bizim vəziyyətimizdə elektrikçi üçün normal əlcəkdən və bilək ətrafındakı quruluş üçün cins şalvar istifadə etdik. Birlikdə tikiliblər.

Məqsəd elastik bir geyinə bilən quruluşa sahib olmaqdır.

Tikilməli olduğu üçün quruluş adi yun əlcəkdən daha güclü olmalıdır.

Güc təchizatçılarını və aktuatorları tutmaq üçün bilək ətrafında geyilə bilən bir quruluşa ehtiyacımız var və bunun sabit olmasına ehtiyacımız var, buna görə jeansın biləyinə Velcro bantları (avtomatik yapışan bantlar) tətbiq edərək bağlanmasını tənzimləyə bildik.

Cins şalvarın daha sərt olması üçün içərisinə bir neçə ağac çubuq tikilmişdir.

Addım 3: Funksional hissələri hazırlayın

Funksional hissələri hazırlayın
Funksional hissələri hazırlayın

Sərt hissələr təsvirdəki.stl fayllarından PLA -da 3D çap yolu ilə həyata keçirilir:

Finger Ring x5 (müxtəlif ölçülü: 1x miqyaslı 100%, 2x miqyaslı 110%, 2x miqyaslı 120%);

Finger Extremity x3 (fərqli miqyaslı: 1x miqyaslı 100%, 1x miqyaslı 110%, 1x miqyaslı 120%);

Motor x3 üçün təkər

Barmaq hissələri üçün, hər barmağın və hər bir falanksın fərqli ölçüsünə görə fərqli tərəzilərə ehtiyac vardır.

Addım 4: Sensorları həddindən artıq vəziyyətə düzəldin

Sensorları həddindən artıq vəziyyətə düzəldin
Sensorları həddindən artıq vəziyyətə düzəldin

Təzyiq sensorlar əvvəlcə kabel tellərinə lehimlənir.

Daha sonra barmaq uclarının içərisinə yapışqan tapança ilə yapışdırılır: az miqdarda yapışqan ucun içərisinə, iki çuxurlu tərəfə qoyulur, sonra sensor dərhal aktiv (yuvarlaq) hissəsi ilə tətbiq olunur. yapışqan (quruluşun içini və birbaşa plastik hissəni piezoelektriklə örtün). Kabel telləri, elektrik kabelinin əlin arxasından keçməsi üçün barmağın üstündən aşağıya doğru arxa tərəfə keçməlidir.

Addım 5: 3D Çaplı Parçaları Əlcəkə Bərkidin

3D çaplı hissələri əlcəklə düzəldin
3D çaplı hissələri əlcəklə düzəldin

Bərkidilmək üçün bütün sərt hissələr (ekstremitələr, üzüklər) əlcəyə tikilməlidir.

Üzükləri düzgün yerləşdirmək üçün əvvəlcə əlcəyi taxın və üzükləri əlin bağlanması zamanı toxunmadan, hər falanksa bir dəfə taxmağa çalışın. Təxminən indeksdəki üzüklər barmağın altından 5 mm yuxarıda və birincisindən 17-20 mm yuxarıda sabitlənəcəkdir. Orta barmağa gəldikdə, ilk üzük barmağın altından təxminən 8-10 mm, ikincisi isə birincidən 20 mm yuxarıda olacaq. Baş barmağı ilə əlaqədar olaraq, digər halqalara müdaxilə etmə riski olmadığı üçün lazım olan dəqiqlik çox aşağıdır, buna görə də geyilmiş əlcəyə tətbiq etməyə çalışın, əlcək üzərində olmasını istədiyiniz yerdə bir xətt çəkin. sonra tikə biləcəyiniz üçün üzük çəkin.

Tikişlə əlaqədar olaraq xüsusi texnika və ya bacarıq tələb olunmur. Bir iynə ilə, tikiş ipi əlcəyin səthindən keçərək halqaların ətrafında dairələrdə gedir. Əlcəkdəki iki delik arasında 3-4 mm-lik bir addım artıq kifayət qədər güclü bir fiksasiya edir, çox sıx bir tikiş etməyə ehtiyac yoxdur.

Eyni texnika ekstremitələri düzəltmək üçün də tətbiq olunur: iynənin asanlıqla keçməsini təmin etmək üçün ekstremitənin yuxarı hissəsi dəzgahlıdır, buna görə də əlcəyə yalnız barmağın üst hissəsindəki çarpaz şəkillər tikilməlidir.

Sonra polietilen bələdçilər də üç meyarla sabitlənməlidir:

distal ucu (barmağa baxan) içəriyə girəcək neylon tel ilə yüksək sürtünmələrin qarşısını almaq üçün barmağın istiqamətinə baxmalıdır;

distal ucu əlin bağlanmasına mane olmamaq üçün kifayət qədər uzaq olmalıdır (barmağın altından təxminən 3 sm aşağı, baş barmağı üçün 4-5 sm);

Bütün əlcəyin böyük hissəsini və hər borunun hərəkətliliyini azaltmaq üçün borular bir -birindən mümkün qədər az keçməlidir

Yuxarıda göstərilən üsulla əlcəyə və biləyə tikilərək düzəldilirlər.

Dikiş zamanı sürüşmə riskini qarşısını almaq üçün borularla əlcəklər arasına bir neçə yapışqan əlavə edildi.

Addım 6: Təkərləri Servo üçün hazırlayın

Təkərləri servo üçün hazırlayın
Təkərləri servo üçün hazırlayın

Bu layihə üçün özümüz tərəfindən çəkilmiş və 3D çap olunmuş xüsusi dizaynlı təkərlərdən istifadə etdik (təsvirdə.stl faylı).

Təkərlər çap edildikdən sonra onları vidalarla (M2, 10 mm vintlər) servoların pervanələrinə bağlamalıyıq. Pervanələrin delikləri M2 vidalanaraq diametri 2 mm -dən daha kiçik olduğundan qoz -fındıq lazım deyil.

Hər bir servoya 3 pervane tətbiq oluna bilər.

Addım 7: Motorları qoluna bağlayın

Motorları Qoluna Bərkidin
Motorları Qoluna Bərkidin

Bu addım, motorların qola bərkidilməsindən ibarətdir; Bunu etmək üçün dəstək almaq üçün köməkçi PLA lövhəsi çap etməliyik.

Əslində motorlar birbaşa qola sabitlənə bilməzdi, çünki telləri çəkmək üçün lazım olan təkərlər əlcək səbəbiylə hərəkət zamanı bloklana bilərdi. Beləliklə, 120x150x5 mm ölçüdə PLA lövhəsini 3D çap etdik.

Sonra lövhəni bəzi kabel bağları ilə əlcəklərimizə bağladıq: sadəcə qayçı ilə əlcəyin içinə bir neçə deşik düzəltdik, sonra plastik lövhəyə bir matkapla deliklər düzəldib hər şeyi bir araya gətirdik. Kabel bağlarını keçmək üçün mərkəzdə, perimetri arasında lövhəyə dörd deşik lazımdır. Bir qazma ilə hazırlanırlar. Bunlar plakanın kənarında deyil, mərkəzi hissədədir və lövhənin əyilməməsi səbəbiylə lövhəni maneə törətmədən jeans bağlaya bilər.

Daha sonra mühərrikləri düzəltmək üçün plastik lövhəyə digər deliklər qazılır. Mühərriklər iki çarpaz kabel bağlayıcısı ilə sabitlənmişdir. Bərkitməni təmin etmək üçün yanlarına bir az yapışqan əlavə edildi.

Mühərriklər elə yerləşdirilməlidir ki, təkərlər bir -birinə qarışmasın. Beləliklə, əlin sol və sağ tərəfində ayrılır: ikisi bir tərəfdə, təkərlər əks istiqamətə, biri isə digər tərəfə.

Addım 8: Arduinoda kod yazın

Arduino kodu
Arduino kodu

Kod sadə bir şəkildə hazırlanmışdır: mühərrikləri işə salmaq və ya etməmək. Servolar yalnız oxunuş müəyyən bir dəyərdən artıq olduqda işə salınır (hər sensorun həssaslığı tam eyni olmadığı üçün sınaqlar və səhvlərlə müəyyən edilmişdir). Aşağı qüvvə üçün aşağı və tamamilə güclü bir qüvvə üçün iki əyilmə imkanı var. Barmaq əyildikdən sonra barmağın həqiqi mövqeyini saxlamaq üçün heç bir istifadəçi qüvvəsinə ehtiyac yoxdur. Bu tətbiqin səbəbi, əks halda barmaqların davamlı olaraq sensorlar üzərində bir qüvvə tətbiq etməsi lazım olduğu və əlcəyin heç bir üstünlük vermədiyi qeyd edilmişdir. Barmağın əyilməsini azad etmək üçün bir təzyiq əmrini yerinə yetirərək təzyiq sensoru üzərində yeni bir qüvvə tətbiq etmək lazımdır.

Kodu üç hissəyə bölmək olar:

Sensorlar işə düşür:

Hər şeydən əvvəl üç tam dəyişəni işə saldıq: hər sensor üçün oxu1, oxu2, oxu3. Sensorlar A0, A2, A4 analoq girişlərinə qoyuldu. Oxumaq üçün hər bir dəyişən belə qurulur:

  • oxuma1 burada A0 girişində oxunan dəyər yazılır,
  • oxu2 burada A2 girişində oxunan dəyər yazılır,
  • oxu3 burada A4 girişində oxunan dəyər yazılır

İki eşik, servoların iki hərəkət etmə mövqeyinə uyğun olan barmaqla sabitlənir. Bu barmaqlar hər barmaq üçün fərqlidir, çünki tətbiq olunan qüvvə hər barmaq üçün eyni deyil və üç sensörün həssaslığı tam olaraq eyni deyil.

Mühərriklər:

Üç dəyişən char (save1, save2, save3), hər bir motor üçün biri 0 -da işə salınır. Sonra qurğuda mühərrikləri müvafiq olaraq bağladığımız pinləri təyin etdik: servo1, servo2, servo3 üçün pin 9, pin 6 və pin 3; hamısı 0 dəyərində işə salındı.

Daha sonra servolar, servoya giriş olaraq alınan bucağı düzəldə bilən servo.write () əmri ilə işə salınır. Sınaqlar və səhvlər nəticəsində barmağı kiçik bir tutuşa və böyük bir tutuşa uyğun iki mövqedə əymək üçün lazım olan iki yaxşı açı tapıldı.

Bir mühərrikin fiksasiyası səbəbiylə əks istiqamətə dönməsi lazım olduğundan, başlanğıc nöqtəsi sıfır deyil, maksimum açıdır və əks istiqamətə dönə bilmək üçün güc tətbiq edildikdə azalır.

Sensorlar və motorlar arasındakı əlaqə:

Save1, save2, save3 və reading1, reading2, reading3 seçimi lehimdən asılıdır. Ancaq hər barmaq üçün sensor və motorla əlaqəli ədəd eyni olmalıdır.

Sonra döngədə, barmağın artıq əyilmə vəziyyətində olub olmadığını yoxlamaq və sensorlara təzyiq tətbiq edilib edilməməsini yoxlamaq üçün şərtlərdən istifadə olunarsa. Sensorlar bir dəyər qaytardıqda bir qüvvə tətbiq etmək lazımdır, ancaq iki fərqli hal mümkündür:

  • Barmaq hələ əyilməyibsə, sensorlar tərəfindən qaytarılmış bu dəyəri eşiklərlə müqayisə edərək, servoya müvafiq açı tətbiq olunur.
  • Barmaq artıq əyilmişsə, bu, istifadəçinin əyilməni sərbəst buraxmaq istədiyini və sonra servolara başlanğıc bucağının tətbiq olunduğunu bildirir.

Bu hər bir motor üçün edilir.

Daha sonra sensorların dəyərlərini çox tez sınamamaq üçün 1000 ms gecikmə əlavə etdik. Gecikmənin çox kiçik bir dəyəri tətbiq olunarsa, gecikmə müddətindən daha uzun müddət ərzində qüvvə tətbiq edilərsə, əli bağladıqdan sonra birbaşa yenidən açmaq riski var.

Bir sensor üçün bütün proses yuxarıdakı axın cədvəlində təqdim olunur.

BÜTÜN KOD

#Servo servo1 daxil edin; Servo servo2; Servo servo3; int oxumaq1; int oxu2; int oxumaq3; char saxla1 = 0; // servo 0 vəziyyətindən başlayır, yuxu vəziyyəti char save2 = 0; char saxla3 = 0; void setup (void) {Serial.begin (9600); servo2. əlavə (9); // rəqəmsal pin 9 -da servo servo2.write (160); // servo servo1.attach üçün başlanğıc nöqtəsi (6); // rəqəmsal pin 6 -da servo servo1.write (0); // servo servo3.attach üçün başlanğıc nöqtəsi (3); // rəqəmsal pin 3 -də servo servo3.write (0); // servo üçün ilkin nöqtə

}

void loop (void) {oxu1 = analogRead (A0); // analoqa əlavə olunur 0 oxu2 = analogRead (A2); // analoq 2 oxunuşuna əlavə olunur3 = analogRead (A4); // 4 -cü analoqa əlavə olunur

// əgər (oxu2> = 0) {Serial.print ("Sensor value ="); // İlk sensörün eşiklərinin kalibrlənməsi üçün istifadə olunan əmr nümunəsi

// Serial.println (oxu2); } // başqa {Serial.print ("Sensor dəyəri ="); Serial.println (0); }

if (oxu1> 100 və saxla1 == 0) {// sensor yüksək dəyər alırsa və yuxu vəziyyətində deyilsə save1 = 2; } // başqa 2 vəziyyətinə keçin, əgər (oxu1> 30 və saxla1 == 0) {// sensor orta qiymət alsa və yuxu vəziyyətində deyilsə save1 = 1; } // (oxuma1> 0) olarsa 1 başqa vəziyyətə keçməlidir {// əgər dəyər sıfır deyilsə və əvvəlki şərtlərin heç biri düzəlmirsə save1 = 0;} // yuxu vəziyyətinə keçin

if (save1 == 0) {servo1.write (160); } // başqa halda buraxın (save1 == 1) {servo1.write (120); } // başqa çəkmə orta bucağı {servo1.write (90); } // maksimum çəkmə bucağı

if (oxuma2> 10 və qənaət2 == 0) {// servo 1 ilə eynidir save2 = 2; } else if (oxu2> 5 və saxla2 == 0) {qənaət2 = 1; } başqa əgər (oxu2> 0) {save2 = 0;}

if (save2 == 0) {servo2.write (0); } else if (save2 == 1) {servo2.write (40); } başqa {servo2.write (60); }

if (oxuma3> 30 və qənaət3 == 0) {// servo 1 ilə eynidir save3 = 2; } else if (oxu3> 10 və saxlamaq3 == 0) {save3 = 1; } başqa əgər (oxu3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } başqa {servo3.write (70); } gecikmə (1000); } // bir saniyə gözləyin

Addım 9: Arduino, Batareyalar və Veroboardı Qoluna Bərkidin

Arduino'yu, Batareyaları və Veroboardı Qoluna bağlayın
Arduino'yu, Batareyaları və Veroboardı Qoluna bağlayın
Arduino, Batareyalar və Veroboardı Qoluna Bərkidin
Arduino, Batareyalar və Veroboardı Qoluna Bərkidin

Batareya tutacaqlarını və arduino -nu düzəltmək üçün PLA -da başqa bir lövhə çap edildi.

Plitənin ölçüləri var: 100x145x5mm.

Arduinonun vidalanması üçün dörd, 9V batareya tutucusunun vidalanması üçün iki deşik mövcuddur. 6V batareya tutacağında və lövhədə bir -birinə bərkitmək üçün kabel bağlayıcısından deşik açılmışdır. Bu tutucunun bərkidilməsini təmin etmək üçün bir az yapışqan əlavə edildi. Keçid iki kiçik kabel bağlayıcısı ilə sabitlənir.

Kabel bağlarından istifadə edərək jeansdakı boşqabı düzəltmək üçün istifadə olunan dörd deşik də var.

Verboard arduino üzərinə qalxan kimi qoyulur.

Addım 10: Elektronikanı qoşun

Elektronikaya qoşun
Elektronikaya qoşun

Dövrə, yuxarıdakı sxemdə bildirildiyi kimi veroboardda lehimlənir.

Arduino 9V batareyaya malikdir və Arduinonu söndürmək üçün aralarında bir keçid bağlanır. Çox cərəyana ehtiyacı olan servo motor üçün 6V batareya lazımdır və servoların üçüncü pimi elektrik şəbəkəsinə qoşulur. PWM ilə idarə etmək üçün 3, 6 və 9 sancaqlar.

Hər bir sensor bir tərəfdən Arduino 5V, digər tərəfdən isə yerə və A0, A2 və A4 sancaqlarına gərginliyi ölçmək üçün 330 ohm müqavimətçi ilə bağlanır.

Addım 11: Neylon Telləri əlavə edin

Neylon telləri əlavə edin
Neylon telləri əlavə edin

Neylon tellər, ekstremitenin hər iki deşiyindən və şəkildə göründüyü kimi halqalardan keçmək üçün edilir, sonra telin iki yarısı həm polietilen bələdçinin içərisinə girəcək, həm də bələdçinin sonuna qədər motorda qalacaq. Tellərin uzunluğu bu nöqtədə müəyyən edilir, servonun təkərini düz barmaqları ilə bir dəfə döndərmək üçün kifayət qədər uzun olmalıdır.

Təkərlərə.stl fayllarında olan iki kiçik delikdən keçən düyünlə və əlavə sabitləşmə üçün isti yapışqanla sabitlənirlər.

Addım 12: Zövq alın

Gözlənildiyi kimi işləyir.

İlk impulsda barmağını əyər, ikincisində isə sərbəst buraxar.

Buna baxmayaraq üç problem qalıb:

- Servoları işə salmaq üçün 1 saniyədən daha qısa bir impuls etmək üçün diqqətli olmalıyıq, əks halda Arduino kodu haqqında 8 -ci addımda izah edildiyi kimi tellər çəkildikdən dərhal sonra sərbəst buraxılır.

- Plastik hissələr bir az sürüşür, buna görə də sürtünmə əlavə etmək üçün ucuna bir az isti yapışqan əlavə etdik.

- Barmağına ağır bir yük düşərsə, sensorun hər zaman böyük bir dəyəri olacaq və servo davamlı olaraq dönəcək.

Tövsiyə: