İçindekiler:

RoboGlove: 12 Adım (Resimlerle)
RoboGlove: 12 Adım (Resimlerle)

Video: RoboGlove: 12 Adım (Resimlerle)

Video: RoboGlove: 12 Adım (Resimlerle)
Video: Tır Kazası ⁉️Duran Otobüse Arkadan çarpıyor ‼️ 2024, Temmuz
Anonim
RoboGlove
RoboGlove

Biz ULB, Université Libre de Bruxelles'in bir grup öğrencisiyiz. Projemiz, insanların bir şeyleri tutmasına yardımcı olan bir kavrama kuvveti oluşturabilen bir robot eldivenin geliştirilmesinden oluşuyor.

ELDİVEN

Eldiven, parmakları bazı servo motorlara bağlayan bir tel bağlantısına sahiptir: parmağın ucuna ve servoya bir tel takılır, böylece servo döndüğünde tel çekilir ve parmak bükülür. Bu sayede parmak uçlarındaki bazı basınç sensörleri ile kullanıcı tarafından yapılan kavramayı kontrol ederek, motorları kontrollü bir şekilde harekete geçirebiliyor ve parmağı motorların dönüşü ile orantılı olarak bükerek kavramaya yardımcı oluyoruz ve kavramaya yardımcı oluyoruz. yani tellerin yuvarlanması için. Bu şekilde, ya zayıf insanların nesneleri tutmasına izin verebilmeliyiz ya da fizyolojik durumdaki insanların bile nesneleri tutmasına ve herhangi bir çaba harcamadan tutmasına yardımcı olabiliriz.

DİZAYN

Model, el hareketini olabildiğince serbest hale getirmek için geliştirilmiştir. Aslında, yalnızca kabloları, motorları ve parmakları bağlamak için ihtiyaç duyduğumuz kesinlikle gerekli parçaları 3D olarak yazdırdık.

Her parmakta PLA'da basılmış bir üst kupolumuz var: bu, kabloların bağlanması gereken terminal kısmıdır ve içine sabitlenmiş basınç sensörüne koruma sağlamalıdır. Basınç sensörü, PLA ucu ile eldiven arasına sıcak tutkalla yapıştırılır.

Ardından, teller için bir kılavuz oluşturan parmak başına iki adet 3D baskılı halkamız var. Başparmak, yalnızca bir baskı yüzüğü olan tek parmaktır. Parmakların ucunda ikiye katlanmış parmak başına bir tel vardır. İki yarım kubbe parçasının iki kılavuzundan ve her iki halkada geçiyor: Bu halkaların dışında yaptığımız deliklere düz olarak konuyorlar. Daha sonra doğrudan motora bağlı bir tekerlekte bir araya getirilirler. Tekerlek tellerin etrafını sarabilmek için yapılmıştır: motorumuz tam dönmediği için (180°'den daha düşük) teli mesafe olan 6 cm'lik bir boşluk için çekmek için tekerleği gerçekleştirdik. eli tamamen kapatmak gerekir.

Ayrıca servo motorları ve arduinoyu kola sabitlemek için iki adet plaka bastık. Bir lazer kesici ile ahşap veya sert bir plastikte kesmek daha iyi olmalıdır.

1. Adım: Alışveriş Listesi

Alışveriş listesi
Alışveriş listesi
Alışveriş listesi
Alışveriş listesi
Alışveriş listesi
Alışveriş listesi

Eldiven ve teller:

1 mevcut eldiven (dikilebilir olmalıdır)

Eski kot pantolon veya başka bir sert kumaş

naylon teller

Düşük yoğunluklu polietilen boru (Çap:4mm Kalınlık:1mm)

Elektronik:

Arduino Uno

1 Pil 9V + 9V Pil tutucu

1 elektronik anahtar

1 veroboard

3 servo motor (parmak başına 1 adet)

3 pervane (servolarla birlikte verilir)

4 Pil AA + 4 AA Pil tutucu

3 basınç sensörü (parmak başına 1 adet)

3 direnç 330 ohm (parmak başına 1 adet)

6 elektrik kablosu (sensör başına 2)

Vidalar, somunlar ve sabitlemeler:

4 M3 10mm uzunluğunda (Arduino'yu sabitlemek için)

2 M2,5 12 mm uzunluğunda (9V pil tutucuyu sabitlemek için)

6 karşılık gelen fındık

6 M2 10mm uzunluğunda (tekerlekleri servolara sabitlemek için servo başına 2 adet)

12 küçük kablo bağı (plakaları ve anahtarı sabitlemek için)

7 büyük kablo bağı (motor başına 2 adet ve 4 adet AA pil tutucu için 1 adet)

Kullanılan Araçlar:

3D yazıcı (Ultimaker 2)

Dikiş için malzeme

Sıcak tutkal tabancası

İsteğe bağlı: lazer kesici

Adım 2: Giyilebilir Yapıyı Hazırlayın

Giyilebilir Yapıyı Hazırlayın
Giyilebilir Yapıyı Hazırlayın

Giyilebilir yapı bazı giysilerle yapılmıştır: Bizim durumumuzda elektrikçi için normal bir eldiven ve bilek çevresindeki yapı için bir kot kumaş kullandık. Birlikte dikildiler.

Amaç esnek giyilebilir bir yapıya sahip olmaktır.

Dikilmesi gerektiğinden yapısı normal bir yün eldivenden daha sağlam olmalıdır.

Güç tedarikçilerini ve aktüatörleri tutmak için bileğin etrafında giyilebilir bir yapıya ihtiyacımız var ve bunun sabit olmasına ihtiyacımız var, bu nedenle kotun bileğine Velcro bantlar (otomatik yapışkan bantlar) uygulayarak kapanışı ayarlanabilir hale getirmeyi seçtik.

Kot pantolonu daha sert hale getirmek için içine bazı tahta çubuklar dikildi.

Adım 3: İşlevsel Parçaları Hazırlayın

Fonksiyonel Parçaları Hazırlayın
Fonksiyonel Parçaları Hazırlayın

Sert parçalar, açıklamadaki.stl dosyalarından PLA'da 3D baskı yoluyla gerçekleştirilir:

Parmak Yüzük x5 (farklı ölçeklerle: 1x ölçek %100, 2x ölçek %110, 2x ölçek %120);

Parmak Ekstremitesi x3 (farklı ölçeklerle: 1x ölçek %100, 1x ölçek %110, 1x ölçek 120%);

Motor x3 için tekerlek

Parmak kısımları için, her parmağın ve her falanksın farklı boyutu nedeniyle farklı ölçeklere ihtiyaç vardır.

Adım 4: Sensörleri Uzuvlara Sabitleyin

Sensörleri Uzuvlara Sabitleyin
Sensörleri Uzuvlara Sabitleyin

Basınç sensörleri önce kablo tellerine lehimlenir.

Daha sonra parmak uçlarının içine bir tutkal tabancası kullanılarak yapıştırılırlar: ekstremitenin içine, iki deliğin olduğu tarafa az miktarda tutkal yerleştirilir, ardından sensör aktif (yuvarlak) parça ile hemen üzerine uygulanır. tutkal (piezoelektrik yüzü yapının iç tarafına ve plastik parçayı doğrudan tutkalın üzerine getirin). Elektrik kablolarının elin arkasından geçebilmesi için kablo tellerinin parmağın üstünden sırtına kadar uzanması gerekir.

Adım 5: 3D Basılı Parçaları Eldivene Sabitleyin

3D Basılı Parçaları Eldivene Sabitleyin
3D Basılı Parçaları Eldivene Sabitleyin

Sabitlenmesi için tüm sert parçalar (ekstremiteler, halkalar) eldivene dikilmelidir.

Halkaları doğru yerleştirmek için önce eldiveni giyin ve halkaları elin kapanması sırasında dokunmadan, falanks başına bir tane olacak şekilde takmaya çalışın. Yaklaşık olarak, indeks üzerindeki halkalar, parmağın tabanının 5 mm yukarısına ve birincinin 17 ila 20 mm yukarısına sabitlenecektir. Orta parmakla ilgili olarak, ilk halka parmağın tabanından yaklaşık 8 ila 10 mm yukarıda ve ikincisi birinciden yaklaşık 20 mm yukarıda olacaktır. Baş parmakla ilgili olarak, diğer halkalara müdahale etme riski olmadığı için gereken hassasiyet çok düşüktür, bu nedenle aşınmış eldivenin üzerine uygulamayı deneyin, eldivenin üzerine olmasını istediğiniz yere bir çizgi çizin. çaldırın, böylece daha sonra dikebilirsiniz.

Dikiş ile ilgili olarak, belirli bir teknik veya beceri gerekli değildir. Bir iğne ile dikiş ipliği halkaların etrafında daireler çizerek eldivenin yüzeyinden geçer. Eldivendeki iki delik arasındaki 3-4 mm'lik bir adım zaten yeterince güçlü bir sabitleme sağlar, çok yoğun bir dikiş yapmaya gerek yoktur.

Aynı teknik ekstremiteleri sabitlemek için de uygulanır: İğnenin rahat geçmesi için ekstremitenin üst kısmı deliklidir, bu nedenle eldivene sadece parmağın üst kısmındaki haç şeklindeki şekillerin dikilmesi gerekecektir.

Daha sonra polietilen kılavuzlar da üç kriter izlenerek sabitlenmelidir:

distal uç (parmağa bakan), içine girecek naylon tel ile yüksek sürtünmelerden kaçınmak için parmak yönüne bakmalıdır;

distal uç, elin kapanmasını engellemeyecek kadar uzak olmalıdır (parmağın tabanından yaklaşık 3 cm daha düşük, başparmak için 4 ila 5 cm yeterlidir);

tüm eldivenin hacmini ve her bir tüpün hareketliliğini azaltmak için tüpler mümkün olduğunca az birbirinin üzerinden geçmelidir

Yukarıdaki ile aynı teknikle eldivene ve bileğe dikilerek sabitlenirler.

Dikiş sırasında herhangi bir kayma riskini önlemek için tüpler ve eldivenler arasına birkaç yapıştırıcı eklendi.

Adım 6: Tekerlekleri Servolar için Hazırlayın

Tekerlekleri Servolar için Hazırlayın
Tekerlekleri Servolar için Hazırlayın

Bu proje için özel olarak tasarlanmış, çizilen ve 3 boyutlu olarak basılan tekerlekler kullandık (açıklamada.stl dosyası).

Tekerlere baskı yapıldıktan sonra servoların pervanelerine vidalayarak (M2, 10mm vidalar) sabitlememiz gerekiyor. Pervanelerin delikleri M2 vidalanarak 2 mm çapından küçük olduğu için somuna gerek yoktur.

Her servoya 3 pervane uygulanabilir.

Adım 7: Motorları Kola Sabitleyin

Motorları Kola Sabitleyin
Motorları Kola Sabitleyin

Bu adım, motorların kola sabitlenmesinden oluşur; Bunu yapabilmek için bir destek almak için yardımcı bir PLA plaketi basmamız gerekti.

Aslında telleri çekmek için gerekli olan tekerlekler eldiven nedeniyle hareket sırasında bloke olabileceğinden motorlar doğrudan kola sabitlenemedi. Böylece 120x150x5 mm boyutlarında bir PLA plakasını 3D olarak yazdırdık.

Sonra plaketi eldivenimize kablo bağı ile sabitledik: Eldivene sadece makas kullanarak delikler açtık, sonra plastik plakete matkapla delikler açtık ve her şeyi bir araya getirdik. Kablo bağlarını geçirmek için plakanın ortasında, çevresi arasında dört delik gerekir. Bir matkapla yapılırlar. Bunlar orta kısımdadır ve plaka esnek olmadığı için plakayı bloke etmeden kol etrafındaki kotu kapatabilmek için plakanın yanlarında değildir.

Daha sonra motorları sabitlemek için plastik plakaya başka delikler de açılır. Motorlar iki çapraz kablo bağı ile sabitlenmiştir. Sabitlemeyi sağlamak için yanlarına bir miktar yapıştırıcı eklendi.

Motorlar, tekerlekler birbirine müdahale etmeyecek şekilde yerleştirilmelidir. Böylece elin sol ve sağ tarafında ayrılır: ikisi bir tarafta, tekerlekler zıt yönlerde ve biri diğer tarafta döner.

Adım 8: Arduino'daki Kod

Arduino'daki Kod
Arduino'daki Kod

Kod basit bir şekilde geliştirilmiştir: motorları harekete geçirmek veya çalıştırmamak için. Servolar yalnızca okuma belirli bir değerin üzerindeyse çalıştırılır (her sensörün duyarlılığı tam olarak aynı olmadığından denemeler ve hatalarla sabitlenmiştir). Düşük bir kuvvet için düşük ve güçlü bir kuvvet için tamamen olmak üzere iki bükülme olasılığı vardır. Parmak büküldüğünde, parmağı gerçek konumunda tutmak için kullanıcının kuvvetine gerek yoktur. Bu uygulamanın nedeni, aksi halde parmakların sensörlere sürekli bir kuvvet uygulaması gerektiği ve eldivenin herhangi bir avantaj sağlamadığı belirtilmiş olmasıdır. Parmağın bükülmesini serbest bırakmak için, basınç sensörüne bir durdurma komutu olarak hareket eden yeni bir kuvvet uygulanmalıdır.

Kodu üç bölüme ayırabiliriz:

Sensörler:

Her şeyden önce üç tamsayı değişkenini başlattık: her sensör için okuma1, okuma2, okuma3. Sensörler A0, A2, A4 analog girişlerine yerleştirildi. Okuma için her değişken şu şekilde ayarlanır:

  • read1 A0 girişinde okunan değerin yazıldığı yer
  • okuma2, A2 girişinde okunan değerin yazıldığı yer,
  • read3 A4 girişinde okunan değerin yazıldığı yer

İki eşik, servoların iki çalıştırma konumuna karşılık gelen parmakla sabitlenir. Bu eşikler her parmak için farklıdır çünkü uygulanan kuvvet her parmak için aynı değildir ve üç sensörün hassasiyeti de tam olarak aynı değildir.

Motorlar:

Her motor için bir tane olmak üzere üç değişken char (save1, save2, save3), 0'da başlatılır. Ardından kurulumda motorları takacağımız pinleri sırasıyla belirledik: servo1, servo2, servo3 için pin 9, pin 6 ve pin 3; tümü 0 değerinde başlatıldı.

Ardından servolar, servo üzerinde girdi olarak alınan açıyı sabitleyebilen servo.write() komutu ile çalıştırılır. Ayrıca denemeler ve hatalarla, parmağı küçük bir tutuş ve büyük bir tutuşa karşılık gelen iki pozisyonda bükmek için gereken iki iyi açı bulundu.

Bir motorun sabitlenmesi nedeniyle ters yönde dönmesi gerektiğinden, başlangıç noktası sıfır değil, ters yönde dönebilmesi için bir kuvvet uygulandığında maksimum açı ve azalmadır.

Sensörler ve motorlar arasındaki bağlantı:

save1, save2, save3 ve okuma1, okuma2, okuma3 seçimi lehimlemeye bağlıdır. Ancak her parmak için sensör ve ilgili motor aynı numaraya sahip olmalıdır.

Daha sonra döngüde, parmağın zaten bükülme konumunda olup olmadığını ve sensörlere basınç uygulanıp uygulanmadığını test etmek için koşullar kullanılmışsa. Sensörler bir değer döndürdüğünde, bir kuvvet uygulanması gerekir ancak iki farklı durum mümkündür:

  • Parmak henüz bükülmemişse, sensörler tarafından döndürülen bu değer eşiklerle karşılaştırılarak, servoya karşılık gelen açı uygulanır.
  • Parmak zaten bükülmüşse, kullanıcının bükülmeyi serbest bırakmak istediği anlamına gelir ve ardından servolara başlangıç açısı uygulanır.

Bu her motor için yapılır.

Ardından sensörlerin değerlerini çok sık test etmekten kaçınmak için 1000 ms'lik bir gecikme ekledik. Çok küçük bir gecikme değeri uygulanırsa, gecikme süresinden daha uzun bir süre boyunca kuvvet uygulanması durumunda, eli kapattıktan sonra doğrudan yeniden açma riski vardır.

Bir sensör için tüm süreç, yukarıdaki akış şemasında sunulmaktadır.

TÜM KOD

#include Servo servo1; Servo servo2; Servo servo3; int okuma1; int okuma2; int okuma3; karakter kaydet1 = 0; // servo 0 durumunda başlar, uyku durumu char save2 = 0; karakter kaydetme3 = 0; void setup(void) { Serial.begin(9600); servo2.attach(9); //servo dijital pin 9'da servo2.write(160); // servo servo1.attach(6) için başlangıç noktası; //servo dijital pin 6'da servo1.write(0); // servo servo3.attach(3) için başlangıç noktası; //servo dijital pin 3'te servo3.write(0); // servo için başlangıç noktası

}

void loop(void) { okuma1 = analogRead(A0); //analog 0'a bağlı okuma2 = analogRead(A2); //analog 2'ye bağlı okuma3 = analogRead(A4); //analog 4'e bağlı

// if (reading2 >= 0) { Serial.print("Sensör değeri = "); // İlk sensörün eşiklerinin kalibrasyonu için kullanılan komut örneği

// Serial.println(okuma2); } // else { Serial.print("Sensör değeri = "); Seri.println(0); }

if (okuma1 > 100 ve save1 == 0){ // sensör yüksek bir değer alırsa ve uyku durumunda değilse save1 = 2; } // durum 2'ye git if (okuma1 > 30 ve save1 == 0){ // sensör orta bir değer alırsa ve uyku durumunda değilse save1 = 1; } // else 1 durumuna geçildi if (okuma1 > 0){ // eğer değer sıfır değilse ve önceki koşulların hiçbiri doğru değilse save1 = 0;} // uyku durumuna git

if (save1 == 0) { servo1.write(160); } // else if(save1 == 1){ servo1.write(120); } // else çekmenin orta açısı{ servo1.write(90); } // maksimum çekme açısı

if (okuma2 > 10 ve save2 == 0){ // servo 1 ile aynı save2 = 2; } else if (okuma2 > 5 ve save2 == 0){ save2 = 1; } else if (okuma2 > 0){ save2 = 0;}

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

if (reading3 > 30 ve save3 == 0){ // servo 1 ile aynı save3 = 2; } else if (okuma3 > 10 ve save3 == 0){ save3 = 1; } else if (okuma3 > 0){ save3 = 0;}

if (save3 == 0) { servo3.write(0); } else if(save3 == 1){ servo3.write(40); } başka{ servo3.write(70); } gecikme(1000); } // bir saniye bekle

Adım 9: Arduino'yu, Pilleri ve Veroboard'u Kola Sabitleyin

Arduino'yu, Pilleri ve Veroboard'u Kola Sabitleyin
Arduino'yu, Pilleri ve Veroboard'u Kola Sabitleyin
Arduino'yu, Pilleri ve Veroboard'u Kola Sabitleyin
Arduino'yu, Pilleri ve Veroboard'u Kola Sabitleyin

Pil tutucuları ve arduino'yu sabitleyebilmek için PLA'da başka bir plaka basıldı.

Plaka boyutlarına sahiptir: 100x145x5mm.

Arduino'yu vidalamak için dört delik ve 9V pil tutucuyu vidalamak için iki delik mevcuttur. 6V pil tutucuda ve plakada bunları birbirine sabitlemek için bir kablo bağı kullanmak için bir delik yapılmıştır. Bu tutucunun sabitlenmesini sağlamak için bir miktar yapıştırıcı eklenmiştir. Anahtar, iki küçük kablo bağı ile sabitlenmiştir.

Ayrıca kablo bağları kullanarak kot pantolon üzerine plakayı sabitlemek için kullanılan dört delik vardır.

Veroboard, arduino'ya bir kalkan gibi konur.

Adım 10: Elektroniği Bağlayın

Elektroniği bağlayın
Elektroniği bağlayın

Devre, yukarıdaki şemada belirtildiği gibi veroboard üzerinde lehimlenmiştir.

Arduino'nun besleme olarak 9V pili vardır ve Arduino'yu kapatabilmek için bunlar arasına bir switch bağlanmıştır. Çok fazla akıma ihtiyaç duyan servo motor için 6V'luk bir pil gereklidir ve servoların üçüncü pini uca bağlanır. PWM ile kontrol etmek için 3, 6 ve 9 pinleri.

Her sensör, bir tarafta Arduino'nun 5V'si ve diğer tarafta toprağa bağlı 330 ohm'luk bir direnç ve gerilimi ölçmek için A0, A2 ve A4 pinleri ile bağlanır.

Adım 11: Naylon Telleri Ekleyin

Naylon Telleri Ekleyin
Naylon Telleri Ekleyin

Naylon teller resimde görüldüğü gibi uçtaki her iki delikten ve halkalardan geçecek şekilde yapılır, daha sonra telin iki yarısı hem polietilen kılavuzun içine girecek hem de kılavuzun sonuna kadar motora birlikte kalacaktır. Tellerin uzunluğu bu noktada belirlenir, servonun tekerleğini düz parmaklarla bir kez daire içine alacak kadar uzun olmaları gerekir.

.stl dosyalarında bulunan iki küçük delikten bir düğüm geçirilerek tekerleklere ve ek stabilizasyon için sıcak tutkalla sabitlenirler.

Adım 12: Keyfini çıkarın

Beklendiği gibi çalışır.

İlk darbede parmağı büker, ikinci darbede serbest bırakır. Parmaklar büküldüğünde herhangi bir kuvvete gerek yoktur.

Yine de geriye üç sorun kalıyor:

- Servoları harekete geçirmek için 1 saniyeden daha kısa bir darbe yapmaya dikkat etmeliyiz, aksi takdirde Arduino kodu ile ilgili 8. adımda açıklandığı gibi teller çekildikten hemen sonra serbest bırakılır.

- Plastik kısımlar biraz kayıyor, bu yüzden sürtünmeyi arttırmak için uçta biraz sıcak tutkal ekledik.

- Parmağa ağır bir yük biniyorsa, sensör her zaman büyük bir değere sahip olacak ve böylece servo sürekli dönecektir.

Önerilen: