İçindekiler:

Miyosensörle Çalışan Protez Kol: 8 Adım
Miyosensörle Çalışan Protez Kol: 8 Adım

Video: Miyosensörle Çalışan Protez Kol: 8 Adım

Video: Miyosensörle Çalışan Protez Kol: 8 Adım
Video: Biyonik kol protezi ve Myo kol protezi incelemesi 2024, Kasım
Anonim
Image
Image

Bu proje, ampute insanlar için bir protez kol geliştirilmesidir. Bu projenin amacı, profesyonel bir kola parası yetmeyen insanlar için uygun fiyatlı bir protez kol yaratmaktır.

Bu proje hala prototip aşamasında olduğundan, her zaman daha iyi olabilir, çünkü şimdilik sadece avuç içi açıp kapatabiliyor ve bir şeyler kapabiliyor! Yine de, evde veya yerel bir fabrika laboratuarında yapılabilecek bir DIY protez koludur.

Adım 1: Gerekli Malzemeler, Araçlar ve Makineler

makineler:

  1. 3 boyutlu yazıcı
  2. Lazer Kesici
  3. Masaüstü CNC Makinesi

Aletler:

  1. Olta ipi
  2. 3 mm filament
  3. Delmek
  4. Süper yapıştırıcı
  5. delik pense
  6. multimetre
  7. Lehimleme istasyonu
  8. İşlenebilir Balmumu
  9. Silikon kalıplar

Malzemeler:

  1. Bakır levha
  2. 1x ATMEGA328P-AU
  3. 1x 16MHz Kristal
  4. 1x 10k direnç
  5. 2x 22pF kapasitörler
  6. 1x 10uF kapasitör
  7. 1x 1uF kapasitör
  8. 1x 0.1 uF kapasitör
  9. 1x Miyosensör
  10. 5x mikro servo motorlar
  11. 1x Arduino UNO

Yazılım:

  1. Arduino IDE'si
  2. Fusion360
  3. Cura
  4. Kartal
  5. GIMP

Adım 2: 2D ve 3D Tasarım

2D ve 3D Tasarım
2D ve 3D Tasarım
2D ve 3D Tasarım
2D ve 3D Tasarım
2D ve 3D Tasarım
2D ve 3D Tasarım

3D Tasarım

İlk adım, protez kola girecek elektronik aksamları göz önünde bulundurarak protez kolun parmaklarını, avuç içi ve önkolunu tasarlamaktı. Açıkçası ben açık kaynak kodlu inmoov projesini üs olarak kullandım ve oradan başladım.

Avuç içi, parmaklar arasında farklı oranlarda olması gerektiğinden tasarımı oldukça zor bir parçadır. Yani:

Parmaklar: Parmakları inmoov projesinden indirdim.

Avuç içi:

  1. Önce avuç içi düzenini çizdim ve ekstrüde ettim.
  2. Daha sonra eskiz, kesme ve fileto komutunu kullanarak parmak ve önkol bağlantıları için delikler açtım.
  3. Ondan sonra, oltaları geçirebilmek için parmakları motorlar aracılığıyla kontrol edebilmek için tüpler yapmak zorunda kaldım.
  4. Son olarak, misina çekildiğinde avucun kapanmasının mümkün olması için avuç içine delikler eklenmeliydi.

Kolun ön kısmı:

  1. Farklı düzlemlerde iki eskiz oluşturdum ve elips komutunu kullandım. İstenen şekli oluşturmak için loft komutunu kullandım.
  2. Daha sonra, içi boş yapmak için kabuk komutu ve elektroniklerimi içine monte ederken en iyi erişilebilirlik için tasarım yapabilmem için ikiye bölmek için bölme komutu kullanıldı.
  3. Bileğin yanında bir taslak da yapıldı, ekstrüde edildi ve avuç içi ile bağlantı kurabilmesi için ana ön kolla birleştirildi.
  4. Önkol içinde tasarım yapma imkanına sahip olarak, kullanacağım beş motorun, her parmak için bir tane olmak üzere ve kullanacağım PCB'min (baskılı devre kartımın) boyutlarında bir eskiz oluşturdum. Daha sonra istenen yüksekliğe ulaşana kadar onları ekstrüde ettim ve geri tuşu kullanarak silindirin arkasındaki gereksiz parçaları sildim.
  5. Son olarak, önkolun yukarıdakine benzer komutlar kullanılarak kapatılabilmesi için, genel tasarımda pek görünmeyen bir şekilde cıvata açıklıkları tasarlanmıştır.

Tasarımı bitirdikten sonra her bir gövdeyi seçip.stl dosyası olarak indirdim ve ayrı ayrı 3D çıktısını aldım.

2D Tasarım

Oltalarımın motorlar tarafından çalıştırılması sırasında ayrılmasını istediğim için onlara kılavuz yuvaları yapmaya karar verdim. Bunun için gerçekten yeni bir şey tasarlamam gerekmiyordu, ön kolu oluşturmak için loft komutunu kullandığım zamanlar için daha küçük elips kullandım.

Lazer kesiciyi kullandıktan sonra çizimini.dxf dosyası olarak dışa aktardım. İstediğim şekli verdikten sonra gerekli gördüğüm yuvanın içine 0,8 mm'lik delikler açtım.

3. Adım: 3D Baskı

3D Baskı
3D Baskı
3D Baskı
3D Baskı
3D Baskı
3D Baskı
3D Baskı
3D Baskı

Her stl dosyasını dışa aktardıktan sonra parmakların, avuç içi ve önkolun farklı bölümlerinin.gcode'unu oluşturmak için Cura'yı kullandım. Kullanılan ayarlar yukarıdaki resimlerde gösterilmiştir. 3D baskılı parçaların malzemesi PLA'dır.

Adım 4: Kalıplama ve Döküm

Kalıplama ve Döküm
Kalıplama ve Döküm
Kalıplama ve Döküm
Kalıplama ve Döküm
Kalıplama ve Döküm
Kalıplama ve Döküm

Avuç içi dökümünün amacı, PLA kaygan olabileceğinden protez kolun daha güçlü bir tutuşa sahip olmasıdır.

3D Tasarım

  1. Avucun önceden var olan taslağını kullanarak, ark komutunu kullanarak bir tür daire tasarlayarak avucumuzu taklit etmeye çalıştım.
  2. Sonra onları farklı yüksekliklerde çektim ve iç "dairelerin" kenarlarını yumuşatmak için fileto komutunu kullandım.
  3. Daha sonra işlenebilir mumumla aynı ölçülerde bir kutu tasarladım ve birleştirme komutundaki cut ile tasarımımın negatifini oraya koydum.

CAM Süreci

Tasarımı masaüstü CNC makinesinde frezelemeye hazır hale getirdikten sonra, bunun için gcode'u oluşturmam gerekiyordu. Benim durumumda Roland MDX-40 CNC makinesini kullanıyordum!

  1. İlk olarak Fusion360'ın CAM ortamına girdim.
  2. Ardından kurulum menüsünden "yeni kurulum"u seçtim.
  3. Doğru parametreleri seçtim (resimlere bakın) ve tamam'a bastım.
  4. Daha sonra 3D menüsü altında adaptif temizlemeyi seçtim ve resimlerde görüldüğü gibi kullandığım aracı yerleştirdikten sonra doğru parametreleri seçtim.
  5. Son olarak, uyarlamalı temizlemeyi seçtim ve post işlemine tıkladım. Roland makinesi mdx-40 için olduğundan emin oldum ve gcode'u almak için tamam'a tıkladım.
  6. Bundan sonra, makineyi kullanarak kendi tasarımıma göre balmumu bloğunu frezeledim.

Silikon Döküm

  1. İlk olarak, iki silikon çözeltisini, veri sayfasını (malzemelerde bulunan bağlantı) takip ederek, karıştırma oranı, kap ömrü ve kalıptan çıkma süresini dikkate alarak, herhangi bir hava kabarcığına neden olmayacak şekilde dikkatlice karıştırdım.
  2. Daha sonra, temas noktası sabit kalacak ve dökülen çözeltinin çapı hava kabarcığı kalmaması için mümkün olduğunca ince olacak şekilde kalıbıma en alt noktadan döktüm.
  3. Silikonu kalıbıma döktükten sonra, içinde hava kabarcığı olmadığından emin olmak zorundaydım, bu yüzden kalıbı eğik çivili bir matkap kullanarak titrettim.
  4. Son olarak tasarımımda yapmayı unuttuğum için silikonuma hazır olduktan sonra pense ile avuç yüzeyindeki deliklere denk gelecek şekilde delikler açtım.

Adım 5: Elektronik Tasarım ve Üretimi

Elektronik Tasarım ve Üretimi
Elektronik Tasarım ve Üretimi
Elektronik Tasarım ve Üretimi
Elektronik Tasarım ve Üretimi
Elektronik Tasarım ve Üretimi
Elektronik Tasarım ve Üretimi

Kartımı tasarlamak ve mikrodenetleyicinin pinlerinde neler olup bittiğini anlamak için veri sayfasını okumam gerekiyordu. Temel PCB olarak mikro satshakit kullandım ve ardından sistemimin ihtiyaçlarına göre modifiye ettim.

Satshakit, DIY arduino tabanlı bir kart olduğu için, parçalarımın arduino ile olan bağlantılarını araştırmalarıma göre değiştirebilirim. Böylece myosensor, bir GND pini, bir VCC pini ve bir analog pin kullanarak arduinoya bağlanır. Oysa bir servo motor bir GND pini, bir VCC pini ve bir PWM pini kullanır. Bu yüzden, kartın gücünü göz önünde bulundurarak, bir analog ve beş PWM pini olmak üzere toplam altı GND ve VCC pinini ortaya çıkarmak zorunda kaldım. Ayrıca, kartın programlanması için pinleri (MISO, MOSI, SCK, RST, VCC ve GND) ortaya çıkarmak için dikkate almam gerekiyordu.

Attığım adımlar şunlardı:

  1. İlk olarak micro-satshakit'in kartal dosyalarını indirdim.
  2. Ardından, Eagle kullanarak mikro satshakit'i ihtiyaçlarıma göre değiştirdim. Eagle'ın nasıl kullanılacağına dair bir kılavuz burada ve burada bulunabilir.
  3. Tahtamı köklendirdikten sonra-p.webp" />

Panomun iç ve dış yollarını-p.webp

Son olarak, kartal tahtama göre ihtiyacım olan her şeyi lehimledim. Şematik ve lehimli panonun resmi yukarıda bulunabilir.

Arduino UNO kullanmak yerine kendi PCB kartımı yapma sebebim, kendi kartımı kullandığımda tasarruf ettiğim alan.

Adım 6: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Yani, parmaklar basıldıktan sonra:

  1. İç delikleri 3,5 mm çapında matkapla, dış delikleri ise 3 mm çapında matkapla delmem gerekti. İç delikler, parçalar bağlandığında içeriden ve dış delikten olduğu kısım anlamına gelir, bağlandığında dışarıdan olduğu kısımdır.
  2. Bundan sonra, ilk parmağımı ikinci parmağımla ve üçüncüyü dördüncü parmağımla yapıştırmak zorunda kaldım.
  3. Daha sonra 1+2'yi 3+4'ü 5'li küçük deliklerden 3mm çapında bir filament kullanarak birleştirdim.
  4. Son olarak parmaklar avuç içi ve ardından ön kol ile birleştirilmeye hazır hale getirildi.

Yani, oltayı parmakların arasından geçirmenin zamanı gelmişti.

Bir çizgi parmağın arka tarafından parmak-avuç içi konektöründeki borudan geçerek ön kola, diğer hat ise parmağın ön tarafından avuç içi iç kısmındaki deliğe ve ön kola gidiyordu

Özel bir not, oltayı, çapı kadar delik olan bir tahta parçasından geçirip bir düğüm yapmaktır. Aksi halde ip çekildiğinde parmaktan aşağı inebilir ki bu da ne kadar düğüm atsam da başıma geldi.

  • Olta parmakların arasından geçirildikten sonra, avuç içi ve ön kol 3D baskılı bot cıvataları ile birleştirilmelidir,
  • Çizgileri ayırmak için tekrar lazer kesim delik yuvasından geçirdim ve ardından servo motorlara bağladım.
  • Oltayı servonun doğru konumuna takmak biraz zor. Ama benim yaptığım, parmağın uç noktalarını alıp servonun uç konumuna bağlamaktı.
  • Doğru pozisyonları bulduktan sonra servolar için özel yuvalara delikler açtım ve servoları doğru yerlere vidalayarak servolardan ikisinin diğerinden biraz yukarıda olmasına dikkat ettim, aksi halde çalışırken çarpışırlardı.

Adım 7: Programlama

Programlama
Programlama

Programı yazmadan önce, modifiye edilmiş mikro-satshakit'in programlanabilmesini sağlamalıydım. Bunu yapmak için aşağıdaki adımları izlemem gerekiyordu:

  1. Arduino Uno'yu bilgisayara bağlayın.
  2. Araçlar altında doğru bağlantı noktasını ve Arduino Uno kartını seçin.
  3. >Dosya >Örnekler altında, "ArduinoISP" çizimini bulun ve açın.
  4. Krokiyi Arduino'ya yükleyin.
  5. Arduino'yu bilgisayardan ayırın.
  6. Resimdeki şemayı takip ederek kartı Arduino'ya bağlayın.
  7. Arduino'yu bilgisayara bağlayın.
  8. "Arduino/Genuino Uno" kartını ve "ISP olarak Arduino" programlayıcısını seçin.
  9. > Araçlar > Önyükleyiciyi Yaz'a tıklayın.
  10. Bootloader başarıyla tamamlandıktan sonra programımızı yazabiliriz:

// servo motorlar için kullandığım kütüphane dahil

#include #include SoftwareSerial mySerial(7, 8); #define MYO_PIN A0 int sensorValue; şamandıra gerilimi; // servoma bir isim atayın VarSpeedServo servo1; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; VarSpeedServo servo5; #define PINKY 5 #define PINKY_PIN 10 #define RINGFINGER 4 #define RINGFINGER_PIN 9 #define MIDDLE 3 #define MIDDLE_PIN 3 #define INDEX 2 #define INDEX_PIN 5 #define THUMB 1 #define THUMB_PIN 6 void setupNP()_ pinMode,); //motoruma taktığım pin servo1.attach(THUMB_PIN); servo2.attach(INDEX_PIN); servo3.attach(ORTA_PIN); servo4.attach(RINGFINGER_PIN); servo5.attach(PINKY_PIN); defaultPosition(THUMB, 40); defaultPosition(INDEX, 40); defaultPosition(ORTA, 40); defaultPosition(RINGFINGER, 40); defaultPosition(PINKY, 40); mySerial.begin(9600); mySerial.print("Başlatılıyor…"); } void loop(){ sensorValue = analogRead(A0); voltaj = sensörDeğeri * (5.0 / 1023.0); mySerial.println(voltaj); gecikme(100); if (voltaj > 1){ closePosition(PINKY, 60); closePosition(RINGFINGER, 60); closePosition(ORTA, 60); closePosition(INDEX, 60); closePosition(THUMB, 60); } başka{ openPosition(PINKY, 60); openPosition(RINGFIGER, 60); openPosition(ORTA, 60); openPosition(INDEX, 60); openPosition(THUMB, 60); } } void defaultPosition(uint8_t parmak, uint8_t _speed){ if(finger == PINKY) servo5.write(90, _speed, true); else if(parmak == RINGFINGER) servo4.write(70, _speed, true); else if(parmak == ORTA) servo3.write(20, _speed, true); else if(finger ==INDEX) servo2.write(20, _speed, true); else if(finger == THUMB) servo1.write(20, _speed, true); } void closePosition(uint8_t parmak, uint8_t _speed){ if(finger == PINKY) servo5.write(180, _speed, true); else if(parmak == RINGFINGER) servo4.write(180, _speed, true); else if(parmak == ORTA) servo3.write(180, _speed, true); else if(finger == INDEX) servo2.write(180, _speed, true); else if(finger == THUMB) servo1.attach(180, _speed, true); } void openPosition(uint8_t parmak, uint8_t _speed){ if(finger == PINKY) servo5.write(0, _speed, true); else if(parmak == RINGFINGER) servo4.write(0, _speed, true); else if(parmak == ORTA) servo3.write(0, _speed, true); else if(finger == INDEX) servo2.write(0, _speed, true); else if(finger == THUMB) servo1.write(0, _speed, true); } //Programı yazdıktan sonra >Sketch>Programlayıcı kullanarak yükle ile panoya yüklüyoruz //Artık mikro satshakit'inizi arduino'nuzdan çıkarabilir ve güç bankası üzerinden çalıştırabilirsiniz //Ve işte!! Protez kolun var

Önerilen: