Სარჩევი:

პროთეზის მკლავი მუშაობა მიოსენსორთან: 8 ნაბიჯი
პროთეზის მკლავი მუშაობა მიოსენსორთან: 8 ნაბიჯი

ვიდეო: პროთეზის მკლავი მუშაობა მიოსენსორთან: 8 ნაბიჯი

ვიდეო: პროთეზის მკლავი მუშაობა მიოსენსორთან: 8 ნაბიჯი
ვიდეო: ფანტომური ტკივილი. ამპუტაციის შემდგომი ტკივილის მექანიზმები და მკურნალობა 2024, ნოემბერი
Anonim
Image
Image

ეს პროექტი არის ამპუტირებული ადამიანებისთვის პროთეზის ხელის განვითარება. ამ პროექტის მიზანია შექმნას ხელმისაწვდომი პროთეზირების მკლავი იმ ადამიანებისთვის, რომლებსაც არ აქვთ საშუალება პროფესიონალი.

ვინაიდან ეს პროექტი ჯერ კიდევ პროტოტიპების ფაზაშია, ის ყოველთვის შეიძლება იყოს უკეთესი, რადგან ამ დროისთვის მას შეუძლია მხოლოდ გახსნას და დახუროს პალმა, რომელსაც შეუძლია ნივთების დაჭერა! მიუხედავად ამისა, ეს არის ხელნაკეთი პროთეზირება, რომლის გაკეთებაც შესაძლებელია სახლში ან ადგილობრივ ლაბორატორიაში.

ნაბიჯი 1: საჭირო მასალები, ხელსაწყოები და დანადგარები

მანქანები:

  1. 3D პრინტერი
  2. ლაზერული საჭრელი
  3. დესკტოპის CNC მანქანა

ინსტრუმენტები:

  1. თევზაობის ხაზი
  2. ბოჭკო 3 მმ
  3. საბურღი
  4. Სუპერ წებო
  5. ხვრელი pliers
  6. მულტიმეტრი
  7. შედუღების სადგური
  8. ცვილის დამუშავება
  9. სილიკონის ფორმები

მასალები:

  1. სპილენძის ფურცელი
  2. 1x ATMEGA328P-AU
  3. 1x 16 MHz კრისტალი
  4. 1x 10k რეზისტორი
  5. 2x 22pF კონდენსატორები
  6. 1x 10uF კონდენსატორი
  7. 1x 1uF კონდენსატორი
  8. 1x 0.1uF კონდენსატორი
  9. 1x მიოსენსორი
  10. 5x მიკრო სერვო ძრავა
  11. 1x Arduino UNO

პროგრამული უზრუნველყოფა:

  1. Arduino IDE
  2. შერწყმა 360
  3. კურა
  4. არწივი
  5. GIMP

ნაბიჯი 2: 2D და 3D დიზაინი

2D და 3D დიზაინი
2D და 3D დიზაინი
2D და 3D დიზაინი
2D და 3D დიზაინი
2D და 3D დიზაინი
2D და 3D დიზაინი

3D დიზაინი

პირველი ნაბიჯი იყო პროთეზის ხელის თითების, პალმისა და წინამხრის შემუშავება ელექტრონიკის გათვალისწინებით, რომელიც პროთეზის მკლავში შევიდოდა. სიმართლე გითხრათ, მე საფუძვლად გამოვიყენე ღია კოდის პროექტი და დავიწყე იქიდან.

პალმის დიზაინი საკმაოდ რთულია, რადგან თითებს უნდა ჰქონდეთ განსხვავებული თანაფარდობა მათ შორის. Ისე:

თითები: მე გადმოვწერე თითები ინმოოვის პროექტიდან.

პალმა:

  1. მე პირველად ესკიზის პალმის განლაგება და ექსტრუდირება მოვახდინე.
  2. შემდეგ გავაკეთე ხვრელები თითისა და წინამხრის კავშირისთვის ესკიზების, დაჭრილი ბრძანებისა და ფილე ბრძანების გამოყენებით.
  3. ამის შემდეგ, მე მომიწია მილების გაკეთება, რომ შემეძლოს მეთევზეობის ხაზების გავლა ისე, რომ მე გავაკონტროლო თითები ძრავების საშუალებით.
  4. დაბოლოს, ხვრელები უნდა დაემატოს პალმის შიგნით ისე, რომ პალმის დახურვა შესაძლებელი იყოს თევზაობის ხაზის გაყვანისას.

წინამხარი:

  1. სხვადასხვა სიბრტყეში, მე შევქმენი ორი ესკიზი და გამოვიყენე ელიფსის ბრძანება. მე გამოვიყენე loft ბრძანება სასურველი ფორმის შესაქმნელად.
  2. ამის შემდეგ, ჭურვის ბრძანება გამოიყენებოდა, რათა ის ღრუ გამხდარიყო და გაყოფილი ბრძანება შუაზე გაეწყვიტა, რათა მე შემუშავებულიყო მასში და საუკეთესო ხელმისაწვდომობისთვის, როდესაც ჩემს ელექტრონიკას შიგნით ვამონტაჟებ.
  3. ესკიზი ასევე გაკეთდა მაჯის მახლობლად, ექსტრუდირებული და შეუერთდა მთავარ წინამხარს ისე, რომ მას შეეძლოს პალმასთან დაკავშირება.
  4. წინამხრის შიგნით დიზაინის ხილვადობის მიზნით, მე შევქმენი ესკიზი ხუთი ძრავის ზომებში, რომელსაც მე ვიყენებდი, თითო თითისთვის და ჩემი PCB (დაბეჭდილი მიკროსქემის დაფა), რომელსაც ვიყენებდი. შემდეგ მე მათ ექსტრუდირება მოვახერხე სანამ არ მიაღწევდნენ სასურველ სიმაღლეს და წავშალე არასაჭირო ნაწილები ცილინდრის უკანა ნაწილში უკანა სივრცის გამოყენებით.
  5. დაბოლოს, ჭანჭიკების ღიობები შემუშავებულია ისე, რომ საერთო დიზაინზე არც ისე ჩანს, რომ წინამხარი დაიხუროს ზემოთ აღწერილი მსგავსი ბრძანებების გამოყენებით.

დიზაინის დასასრულს, მე შევარჩიე თითოეული კორპუსი და გადმოვწერე როგორც.stl ფაილი და მე 3D დაბეჭდილი ცალკე.

2D დიზაინი

ვინაიდან მინდოდა ჩემი სათევზაო ხაზები გამიჯნულიყო მაშინ, როდესაც მათ ძრავები მართავენ, გადავწყვიტე მათთვის გამეკეთებინა სახელმძღვანელო სლოტები. ამისათვის მე ნამდვილად არ მჭირდება რაიმე ახალი დიზაინის შემუშავება, მაგრამ უფრო მცირე ელიფსის გამოყენება, როდესაც მე გამოვიყენე ლოფტის ბრძანება წინამხრის შესაქმნელად.

მისი ესკიზი გადმოვიღე.dxf ფაილის სახით, მას შემდეგ რაც გამოვიყენე ლაზერული საჭრელი. მას შემდეგ რაც მივიღე ჩემი სასურველი ფორმა, ჩავარტყი ხვრელი 0.8 მმ სისქის შიგნით, რომელიც საჭიროდ ჩავთვალე.

ნაბიჯი 3: 3D ბეჭდვა

3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა

ყოველი stl ფაილის ექსპორტის შემდეგ, მე გამოვიყენე Cura, რათა შემექმნა თითების, პალმისა და წინამხრის სხვადასხვა ნაწილის.gode. გამოყენებული პარამეტრები ილუსტრირებულია ზემოთ მოცემულ სურათებზე. 3D დაბეჭდილი ნაწილების მასალა არის PLA.

ნაბიჯი 4: ჩამოსხმა და ჩამოსხმა

ჩამოსხმა და ჩამოსხმა
ჩამოსხმა და ჩამოსხმა
ჩამოსხმა და ჩამოსხმა
ჩამოსხმა და ჩამოსხმა
ჩამოსხმა და ჩამოსხმა
ჩამოსხმა და ჩამოსხმა

პალმის ჩამოსხმის მიზანია, რომ პროთეზირებულ მკლავს ჰქონდეს უფრო ძლიერი ძალაუფლება, რადგან PLA შეიძლება იყოს მოლიპულ.

3D დიზაინი

  1. პალმის არსებული ესკიზის გამოყენებით, მე შევეცადე მიგვეღო ჩვენი პალმისთვის, რკალის ბრძანების გამოყენებით მასზე სახის წრეების შემუშავებით.
  2. ამის შემდეგ, მე მათ ექსტრუდირება მოვახდინე სხვადასხვა სიმაღლეზე და გამოვიყენე ფილე ბრძანება შიდა "წრეების" კიდეების გასათანაბრებლად.
  3. შემდეგ, მე შევქმენი ყუთი იმავე ზომებით, როგორც ჩემი დამუშავებული ცვილი და მე დავდე ჩემი დიზაინის ნეგატივი კომბინაციის ბრძანების გამოყენებით.

CAM პროცესი

მას შემდეგ, რაც დიზაინი მზადაა დაფქული დესკტოპის CNC აპარატის გამოყენებით, მომიწია ამისთვის gcode გენერირება. ჩემს შემთხვევაში, მე ვიყენებდი Roland MDX-40 CNC მანქანას!

  1. პირველი, მე შევედი Fusion360– ის CAM გარემოში.
  2. შემდეგ, მე ავირჩიე "ახალი კონფიგურაცია" დაყენების მენიუში.
  3. მე ავირჩიე სწორი პარამეტრები (იხილეთ სურათები) და დააჭირეთ ღილაკს ok.
  4. შემდეგ, 3D მენიუს ქვეშ, მე ავირჩიე ადაპტირებული გაწმენდა და შევარჩიე სწორი პარამეტრები ინსტრუმენტის ჩასმის შემდეგ, რაც მე ვიყენებ, როგორც ეს მოცემულია სურათებში.
  5. და ბოლოს, მე ავირჩიე ადაპტური გაწმენდა და დავაწკაპუნე პოსტის პროცესზე. დავრწმუნდი, რომ ეს იყო როლანდ მანქანისთვის mdx-40 და დააწკაპუნე ok, რათა მივიღო gcode.
  6. ამის შემდეგ, მე ცვილის ბლოკი გავხეხე ჩემი დიზაინის მიხედვით, აპარატის გამოყენებით.

სილიკონის ჩამოსხმა

  1. პირველ რიგში, მე სილიციუმის ორი ხსნარი ფრთხილად ავურიე, რომ არ გამოიწვიოს ჰაერის ბუშტუკები, მონაცემების ფურცლის შემდეგ (მასალებზე ნაპოვნი ბმული), შერევის თანაფარდობის, ქოთნის სიცოცხლისა და გამოცხობის დროის გათვალისწინებით.
  2. შემდეგ, მე ჩავასხი იგი ჩემს ყალიბში ყველაზე დაბალი წერტილიდან, რათა დარწმუნებული ვიყო, რომ კონტაქტის წერტილი უცვლელი რჩება და ხსნარის დიამეტრი რაც შეიძლება თხელია, რათა თავიდან ავიცილოთ ჰაერის ბუშტუკები.
  3. მას შემდეგ, რაც სილიციუმი ჩემს ყალიბში ჩავყარე, უნდა დავრწმუნებულიყავი, რომ შიგნით არ იყო ჰაერის ბუშტუკები, ამიტომ მე ვკანკალებდი ფორმას ბურღვის გამოყენებით დახრილი ლურსმნით.
  4. და ბოლოს, ვინაიდან დამავიწყდა ამის გაკეთება ჩემს დიზაინში, სილიკონში ჩავაგდე ხვრელები მას შემდეგ, რაც ის მზად იყო, ხვრელის ფანტელის გამოყენებით, ისე, რომ ისინი ემთხვეოდეს იმ ხვრელებს, რომლებიც პალმის ზედაპირზე იყო.

ნაბიჯი 5: ელექტრონიკის დიზაინი და წარმოება

ელექტრონიკის დიზაინი და წარმოება
ელექტრონიკის დიზაინი და წარმოება
ელექტრონიკის დიზაინი და წარმოება
ელექტრონიკის დიზაინი და წარმოება
ელექტრონიკის დიზაინი და წარმოება
ელექტრონიკის დიზაინი და წარმოება

იმისათვის, რომ შემემუშავებინა ჩემი დაფა და გამეგო რა ხდება მიკროკონტროლერის ქინძისთავებში, მე უნდა წავიკითხო მისი მონაცემთა ფურცელი. როგორც ძირითადი PCB, მე გამოვიყენე მიკრო საშაკიტი და შემდეგ შევიცვალე ის ჩემი სისტემის საჭიროებების შესაბამისად.

იმის გამო, რომ საშაკიტი არის წვრილმანი არდუინოზე დაფუძნებული დაფა, მე შემიძლია მისი შეცვლა არდუინოსთან ჩემი ნაწილების კავშირების მიხედვით. ასე რომ, მიოსენსორი აკავშირებს არდუინოს ერთი GND პინის, ერთი VCC პინის და ერთი ანალოგური პინის გამოყენებით. ვინაიდან, ერთი სერვო ძრავა იყენებს ერთ GND პინს, ერთ VCC პინს და ერთ PWM პინს. ამრიგად, მე სულ უნდა გამოვავლინო ექვსი GND და VCC ქინძისთავები დაფის გაძლიერების გათვალისწინებით, ერთი ანალოგური და ხუთი PWM ქინძისთავები. ასევე, მე უნდა გავითვალისწინო დაფის პროგრამირების ქინძისთავების გამოვლენა (ესენია MISO, MOSI, SCK, RST, VCC და GND).

ჩემი გადადგმული ნაბიჯები იყო:

  1. პირველ რიგში, მე გადმოვწერე მიკროსაშაკიტის არწივის ფაილები.
  2. შემდეგი, მე შევცვალე მიკროსაცხაკიტი ჩემი საჭიროებების მიხედვით არწივის გამოყენებით. არწივის გამოყენების გზამკვლევი შეგიძლიათ იხილოთ აქ და აქ.
  3. დაფის დაფესვიანების შემდეგ, მას ექსპორტი გავუკეთე როგორც-p.webp" />

მას შემდეგ რაც ჩემი დაფის შიდა და გარე ბილიკები-p.webp

დაბოლოს, მე გავაფორმე ყველაფერი, რაც მჭირდებოდა ჩემი არწივის დაფის მიხედვით. სქემატური სურათის და შედუღებული დაფის სურათი შეგიძლიათ იხილოთ ზემოთ.

Arduino UNO– ს ნაცვლად ჩემი საკუთარი PCB დაფის შექმნის მიზეზი არის სივრცე, რომელსაც მე ვზოგავ საკუთარი დაფის გამოყენებისას.

ნაბიჯი 6: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

ასე რომ, თითების დაბეჭდვის შემდეგ:

  1. მე მომიწია შიდა ხვრელების გაბურღვა 3.5 მმ დიამეტრის ბურღვით და გარე ხვრელები 3 მმ დიამეტრის საბურღით. შიგნით ხვრელები ნიშნავს იმ ნაწილს, რომ როდესაც ნაწილები ერთმანეთთან არის დაკავშირებული ის არის შიგნიდან და გარედან ხვრელიდან, ნაწილი რომელიც დაკავშირებისას არის გარედან.
  2. ამის შემდეგ მომიწია სუპერწებება ჯერ მეორე თითით და მესამეს მეოთხე.
  3. ამის შემდეგ, მე დავაკავშირე ნაწილები 1+2 3+4 -ით 5 -ით პატარა ხვრელების მეშვეობით 3 მმ დიამეტრის ძაფის გამოყენებით.
  4. დაბოლოს, თითები მზად იყო შეიკრიბნენ პალმით და შემდეგ წინამხრით.

ასე რომ, დრო იყო თითებით გაევლო სათევზაო ხაზი.

ერთი ხაზი მიდიოდა თითის უკანა მხრიდან მილის მეშვეობით თითის და პალმის კონექტორზე და წინამხარზე და მეორე ხაზი მიდიოდა თითის წინა მხრიდან პალმის შიგნითა ხვრელში და წინამხარზე

სპეციალური შენიშვნაა თევზჭერის ხაზის გავლა ხის ნაჭერზე, რომელსაც აქვს ხვრელი მისი დიამეტრით და გააკეთოს კვანძი. წინააღმდეგ შემთხვევაში, როდესაც ხაზი გაყვანილია, ის შეიძლება თითის ქვემოთ ჩამოვიდეს, რაც დამემართა, რამდენი კვანძიც არ უნდა გამეკეთებინა.

  • მას შემდეგ რაც თევზჭერის ხაზი გაივლის თითებს, პალმა და წინამხარი უნდა იყოს დაკავშირებული 3D ბეჭდვით ბოტების სამჭერებით,
  • მე კვლავ გავიარე ხაზები ლაზერული ჭრის ხვრელში, რათა გამოვყო ისინი და შემდეგ დავუკავშირე სერვო ძრავებს.
  • თევზჭერის ხაზის მიმაგრება სერვოს სწორ პოზიციაზე ცოტა რთულია. მაგრამ, რაც მე გავაკეთე, იყო თითის უკიდურესი პოზიციის დაკავება და სერვოს უკიდურეს პოზიციასთან დაკავშირება.
  • მას შემდეგ რაც ვიპოვნე სწორი პოზიციები, მე გავხსენი ხვრელები სერვოების სპეციალურ ჭრილში და სერვოები გადავაგდე მარჯვენა ადგილას, რათა დარწმუნებული ვიყო, რომ ორი სერვო ოდნავ მაღლა იყო სხვაგან, წინააღმდეგ შემთხვევაში ისინი შეჯახებოდნენ მათი მუშაობის დროს.

ნაბიჯი 7: პროგრამირება

პროგრამირება
პროგრამირება

პროგრამის დაწერამდე, მომიწია, რომ შეცვლილი მიკროსაშაკიტი დაპროგრამებულიყო. ამისათვის მე უნდა შევასრულო შემდეგი ნაბიჯები:

  1. შეაერთეთ Arduino Uno კომპიუტერთან.
  2. შეარჩიეთ მარჯვენა პორტი და Arduino Uno დაფა ინსტრუმენტების ქვეშ.
  3. ქვეშ> ფაილი> მაგალითები, იპოვეთ და გახსენით "ArduinoISP" ესკიზი.
  4. ატვირთეთ ესკიზი არდუინოში.
  5. გათიშეთ Arduino კომპიუტერიდან.
  6. დააკავშირეთ დაფა არდუინოსთან სურათის სქემატური სქემის მიხედვით.
  7. შეაერთეთ Arduino კომპიუტერთან.
  8. აირჩიეთ "Arduino/Genuino Uno" დაფა და "Arduino როგორც ISP" პროგრამისტი.
  9. დააწკაპუნეთ> ინსტრუმენტები> ჩამტვირთავი ჩამტვირთავი.
  10. ჩატვირთვის წარმატებით დასრულების შემდეგ, ჩვენ შეგვიძლია დავწეროთ ჩვენი პროგრამა:

// ბიბლიოთეკის ჩათვლით, რომელიც მე გამოვიყენე სერვო ძრავებისთვის

#მოიცავს #მოიცავს პროგრამული უზრუნველყოფის სერიული სერიული (7, 8); #განსაზღვრეთ MYO_PIN A0 int სენსორი ღირებულება; მცურავი ძაბვა; // დანიშნეთ სახელი ჩემს სერვოზე VarSpeedServo servo1; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; VarSpeedServo servo5; #განსაზღვრეთ PINKY 5 #განსაზღვრეთ PINKY_PIN 10 #განსაზღვრეთ RINGFINGER 4 #განსაზღვრეთ RINGFINGER_PIN 9 #განსაზღვრეთ შუა 3 #განსაზღვრეთ MIDDLE_PIN 3 #განსაზღვრეთ INDEX 2 #განსაზღვრეთ INDEX_PIN 5 #განსაზღვრეთ THUMB 1 #განსაზღვრეთ რიცხვი (PUMP)); // პინი, რომელიც დავამატე ჩემს ძრავას servo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.atach (MIDDLE_PIN); servo4.atach (RINGFINGER_PIN); servo5.atach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEX, 40); defaultPosition (შუა, 40); defaultPosition (RINGFINGER, 40); defaultPosition (ვარდისფერი, 40); mySerial.begin (9600); mySerial.print ("ინიციალიზაცია …"); } void loop () {sensorValue = analogRead (A0); ძაბვა = სენსორი ღირებულება * (5.0 / 1023.0); mySerial.println (ძაბვა); დაგვიანება (100); if (ძაბვა> 1) {closePosition (ვარდისფერი, 60); closePosition (RINGFINGER, 60); closePosition (შუა, 60); closePosition (INDEX, 60); closePosition (THUMB, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (შუა, 60); openPosition (INDEX, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t თითი, uint8_t _speed) {if (finger == PINKY) servo5.write (90, _speed, true); სხვა შემთხვევაში თუ (თითი == RINGFINGER) servo4.write (70, _speed, true); სხვა შემთხვევაში თუ (თითი == შუა) servo3.write (20, _speed, true); სხვა შემთხვევაში თუ (თითი == INDEX) servo2.write (20, _speed, true); სხვა შემთხვევაში თუ (თითი == THUMB) servo1.write (20, _speed, true); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); სხვა შემთხვევაში თუ (თითი == RINGFINGER) servo4.write (180, _speed, true); სხვა შემთხვევაში თუ (თითი == შუა) servo3.write (180, _speed, true); სხვა შემთხვევაში თუ (თითი == INDEX) servo2.write (180, _speed, true); სხვა შემთხვევაში თუ (თითი == THUMB) servo1.attach (180, _speed, true); } void openPosition (uint8_t თითი, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); სხვა შემთხვევაში თუ (თითი == RINGFINGER) servo4.write (0, _speed, true); სხვა შემთხვევაში თუ (თითი == შუა) servo3.write (0, _speed, true); სხვა შემთხვევაში თუ (თითი == INDEX) servo2.write (0, _speed, true); სხვაგვარად if (finger == THUMB) servo1.write (0, _speed, true); } // პროგრამის წერის შემდეგ ჩვენ მას ავტვირთავთ დაფაზე> Sketch> Upload გამოყენებით პროგრამისტი // ახლა თქვენ შეგიძლიათ გათიშოთ თქვენი მიკრო საშაკიტი თქვენი არდუინოდან და ჩართოთ იგი დენის ბანკის საშუალებით // და voila !! პროთეზირებული მკლავი გაქვს

გირჩევთ: