Миосенсор менен иштеген протездик кол: 8 кадам
Миосенсор менен иштеген протездик кол: 8 кадам
Anonim
Image
Image

Бул долбоор ампутацияланган адамдар үчүн протездик колду иштеп чыгуу. Бул долбоордун максаты - профессионалдуу колу жок адамдар үчүн жеткиликтүү протез колун түзүү.

Бул долбоор прототипдөө баскычында болгондуктан, ал дайыма жакшыраак болушу мүмкүн, анткени ал алаканды ачып, жаба алат, ал нерселерди тартып алат! Ошентсе да, бул үйдө же жергиликтүү фаб лабораторияда жасала турган DIY протездик колу.

1 -кадам: Керектүү материалдар, шаймандар жана машиналар

Машиналар:

  1. 3D принтер
  2. Лазердик кескич
  3. Иш такта CNC машинасы

Куралдар:

  1. Fishing Line
  2. 3 мм жип
  3. Бургулоо
  4. Супер клей
  5. Тешик кычкачтар
  6. Мультиметр
  7. Soldering Station
  8. Machinable Wax
  9. Калыптар үчүн кремний

Материалдар:

  1. Жез барак
  2. 1x ATMEGA328P-AU
  3. 1x 16MHz кристалл
  4. 1x 10k каршылыгы
  5. 2x 22pF конденсаторлор
  6. 1x 10uF конденсатор
  7. 1x 1uF конденсатор
  8. 1x 0.1uF конденсатор
  9. 1x Myosensor
  10. 5x микро servo моторлор
  11. 1x Arduino UNO

Программалык камсыздоо:

  1. Arduino IDE
  2. Fusion360
  3. Cura
  4. Eagle
  5. GIMP

2 -кадам: 2D жана 3D Дизайн

2D & 3D Дизайн
2D & 3D Дизайн
2D & 3D Дизайн
2D & 3D Дизайн
2D & 3D Дизайн
2D & 3D Дизайн

3D Дизайн

Биринчи кадам протездик колдун манжаларын, алаканын жана билегин протездик колго түшө турган электрониканы эске алуу менен долбоорлоо болгон. Чынын айтсам, мен ачык булак inmoov долбоорун база катары колдондум жана ошол жерден баштадым.

Пальманын дизайны өтө кыйын, анткени манжалардын ортосунда ар кандай катыш болушу керек. Ошентип:

Манжалар: inmoov проектисинен манжаларды түшүрдүм.

Пальма:

  1. Мен адегенде алакандын макетин чийип, экструдирледим.
  2. Анан эскиздер, кесүү жана филе буйругун колдонуу менен манжа менен билектин байланыштары үчүн тешиктерди жасадым.
  3. Андан кийин, манжаларды мотор аркылуу башкара алам деп, балык кармоочу линиялардан өтүүм үчүн мен түтүктөрдү жасоого туура келди.
  4. Акырында, алакандын ичине тешиктерди кошуу керек болчу, ошондо балык кармоочу жип тартылганда алакандын жабылышы мүмкүн болчу.

Билек:

  1. Ар кандай учакта мен эки эскиз түзүп, эллипс командасын колдондум. Мен каалаган форманы түзүү үчүн loft буйругун колдондум.
  2. Андан кийин, кабыктын буйругу аны көңдөй кылып, бөлүү буйругун экиге бөлүп, мен аны долбоорлой алам жана электроникамды ичине орнотуп жатканымда эң жакшы жеткиликтүүлүк үчүн колдонулган.
  3. Алаканга туташа тургандай кылып эскиз да билектин жанына жасалып, экструдирленген жана башкы билек менен бириктирилген.
  4. Билектин ичиндеги дизайнды көрүү мүмкүнчүлүгүнө ээ болуп, мен колдонгон беш кыймылдаткычтын, ар бир манжамдын бирөөсүнүн жана мен колдонгон ПКБнын (басылган схема) өлчөмү боюнча эскиз түздүм. Мен аларды каалаган бийиктикке жеткенге чейин экструдирледим жана backspace аркылуу цилиндрдин артындагы керексиз бөлүктөрдү өчүрдүм.
  5. Акырында, болттун тешиктери жалпы дизайнда анча көрүнбөгөндөй иштелип чыккан, билек жогорудагыдай буйруктарды колдонуу менен жабылышы керек.

Дизайнды бүтүрүп, мен ар бир денени тандап, аны.stl файлы катары жүктөп алгам жана 3D аларды өзүнчө басып чыгарды.

2D Дизайн

Балык кармоочу линияларым моторлор тарабынан башкарылып турганда, алардын бөлүнүшүн каалагандыктан, мен аларга багыттоочу оюктарды жасоону чечтим. Бул үчүн мен жаңы нерсени иштеп чыгуунун кажети жок болчу, бирок кичине эллипсти колдонуп, билекти түзүү үчүн чатырдын буйругун колдонгом.

Мен лазер кескичти колдонгондон кийин анын эскизин.dxf файлы катары экспорттодум. Каалаган формага ээ болгондон кийин, керектүү деп эсептеген тешиктин ичинде 0,8 мм тешик бургуладым.

3 -кадам: 3D басып чыгаруу

3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу

Ар бир stl файлын экспорттогондон кийин, мен Cura менен манжалардын, алакандын жана билектин ар кайсы бөлүктөрүнүн.gcode түзүүнү колдондум. Колдонулган орнотуулар жогорудагы сүрөттөрдө көрсөтүлгөн. 3D басылган бөлүктөрдүн материалы PLA.

4 -кадам: калыптоо жана куюу

Калыптоо жана куюу
Калыптоо жана куюу
Калыптоо жана куюу
Калыптоо жана куюу
Калыптоо жана куюу
Калыптоо жана куюу

Алакандын кастингинин максаты - протездик колдун күчтүү кармалышы, анткени PLA тайгак болушу мүмкүн.

3D Дизайн

  1. Алакандын мурунку эскизин колдонуп, алаканга окшоштурууга аракет кылдым, ага аркалык буйрукту колдонуп, айлананын түрлөрүн иштеп чыгуу.
  2. Андан кийин, мен аларды ар кандай бийиктикте экструдирлеп, филе командасын колдонуп, ички "тегерекчелердин" четин тегиздедим.
  3. Андан кийин, мен иштете турган мом менен бирдей өлчөмдөгү кутучаны иштеп чыктым жана комбайндын буйругундагы кесүүнү колдонуп, дизайнымдын терс жактарын ошол жерге койдум.

CAM процесси

Дизайн стол CNC станогунун жардамы менен тегирменге даяр болгондон кийин, мен бул үчүн gcode түзүшүм керек болчу. Менин учурда, мен Roland MDX-40 CNC машинасын колдонуп жаткам!

  1. Биринчиден, мен Fusion360 CAM чөйрөсүнө кирдим.
  2. Андан кийин, менюдан "жаңы орнотууну" тандадым.
  3. Мен туура параметрлерди тандадым (сүрөттөрдү караңыз) жана OK басылды.
  4. Кийинки, 3D менюсу астында мен адаптивдүү клирингди тандадым жана сүрөттө көрсөтүлгөндөй колдонгон куралды киргизгенден кийин туура параметрлерди тандадым.
  5. Акырында, мен адаптивдүү клирингди тандадым жана пост процессине чыкылдадым. Мен бул roland машинасы mdx-40 үчүн экенине ынандым жана gcode алуу үчүн OK басылды.
  6. Андан кийин, мен машинанын жардамы менен дизайнга ылайык мом блокун фрезерледим.

Кремнийди куюу

  1. Биринчиден, мен кремнийдин эки чечимин абанын көбүкчөлөрүн пайда кылбоо үчүн кылдаттык менен аралаштырдым, маалымат баракчасынан кийин (материалдардан табылган шилтеме), аралашуу коэффициентин, идиштин иштөө мөөнөтүн жана калыптануу убактысын эске алуу менен.
  2. Андан кийин, мен аба көбүкчөлөрүн болтурбоо үчүн, эң төмөнкү чекиттен менин контакт пунктунун туруктуу бойдон калып жатканына жана куюлган эритменин диаметри мүмкүн болушунча ичке экенине көзүм жетти.
  3. Кремнийди калыпка куюп салгандан кийин, ичинде эч кандай аба көбүкчөлөрү жок экенине ынануум керек болчу, ошондуктан мен кыйшык мык менен бургу менен калыпты титиреттим.
  4. Акырында, дизайнымда муну унутуп калганым үчүн, кремнийим даяр болгондон кийин тешикчелерди колдонуп, алакандын бетиндеги тешиктерге дал келгендей кылып тешик кылдым.

5 -кадам: Электрониканын дизайны жана өндүрүшү

Электроника Дизайн жана Өндүрүш
Электроника Дизайн жана Өндүрүш
Электроника Дизайн жана Өндүрүш
Электроника Дизайн жана Өндүрүш
Электроника Дизайн жана Өндүрүш
Электроника Дизайн жана Өндүрүш

Тактайымды долбоорлоо жана микроконтроллердин казыгында эмне болуп жатканын түшүнүү үчүн, анын маалымат барагын окуу керек болчу. Негизги ПХБ катары мен микро сатшакитти колдондум, андан кийин аны тутумумдун керектөөлөрүнө жараша өзгөртчүмүн.

Сатшакит DIY ардуиного негизделген такта болгондуктан, мен аны бөлүктөрүмдүн ардуино менен туташуусун издегениме жараша өзгөртө алам. Ошентип, миосенсор ардуиного бир GND пин, бир VCC пин жана бир аналогдук пин аркылуу туташат. Ал эми, бир servo мотордо бир GND пини, бир VCC пини жана бир PWM пини колдонулат. Ошентип, мен коллегиянын кубаттуулугун эске алуу менен жалпысынан алты GND жана VCC казыктарын, бир аналогду жана беш PWM казыгын ачыкка чыгарууга туура келди. Ошондой эле, мен тактанын программалоо үчүн казыктарын ачыкка чыгаруу үчүн эске алуу керек болчу (алар MISO, MOSI, SCK, RST, VCC жана GND).

Мен жасаган кадамдар:

  1. Биринчиден, мен микро сатшакиттин бүркүт файлдарын түшүрдүм.
  2. Андан кийин, мен Eagle'ди колдонуп, муктаждыктарыма жараша микро сатшакитти өзгөрттүм. Бүркүттү кантип колдонуу боюнча көрсөтмөнү бул жерден жана бул жерден тапса болот.
  3. Тактайымды түп -тамырынан кийин, мен аны-p.webp" />

Менин тактайымдын ички жана тышкы жолдорун-p.webp

Акыр -аягы, мен бүркүт тактайым боюнча керектүү нерселердин баарын ширеттим. Схеманын жана ширетилген тактанын сүрөтүн жогору жактан табууга болот.

Arduino UNOну колдонуунун ордуна өзүмдүн ПХБ тактамды түзүүнүн себеби, мен өзүмдүн тактайымды колдонгондо үнөмдөп жаткан жерим.

6 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Ошентип, манжалар басылган соң:

  1. Мен 3,5 мм диаметри менен ички тешиктерди, 3 мм диаметри менен бургулоого туура келди. Ичиндеги тешиктер бөлүктөрдү туташтырганда анын ички жана тышкы тешиктен экенин, туташтырылган бөлүгү сырттан экенин билдирет.
  2. Андан кийин биринчи экинчисин, үчүнчүсүн төртүнчү манжам менен жабыштырышым керек болчу.
  3. Андан кийин, мен диаметри 3 мм болгон жипти колдонуп, кичинекей тешиктер аркылуу 1+2 бөлүктөрүн 3+4 менен 5ке туташтырдым.
  4. Акырында, манжалар алакан менен, андан кийин билек менен чогултууга даяр болду.

Ошентип, балык линиясын манжалар аркылуу өткөрүү убактысы келди.

Бир сызык манжанын арт жагынан манжа-алаканын туташтыргычындагы түтүктөн өтүп, билекке жана экинчи сызык манжанын алдыңкы тарабынан алакандын ички жагындагы тешикке жана билекке чейин кеткен

Өзгөчө көңүл - балык линиясын диаметри тешиги бар жыгачтан өткөрүп, түйүн жасоо. Болбосо, линия тартылганда, ал канчалаган түйүндөргө карабай мен үчүн болгон манжадан түшүп калышы мүмкүн.

  • Балык кармоочу линия манжалар аркылуу өткөндөн кийин, алакан менен билекти 3D басылган боттордун болттору менен туташтыруу керек,
  • Мен линияларды кайра лазердик тешик уячасынан бөлүп, анан аларды servo моторлорго туташтырдым.
  • Балык кармоочу линияны сервонун туура абалына бекитүү бир аз татаал. Бирок, мен эмне кылдым: манжанын эң экстремалдуу позицияларын алып, аны сервонун эң жогорку абалына туташтыруу.
  • Туура позицияларды тапкандан кийин, мен сервопроводдор үчүн атайын оюктарга тешиктерди бурдум жана серволорду керектүү жерлерге бурап койдум, экөөнүн башкалары бир аз өйдө көтөрүлгөнүн текшериңиз, антпесе алар иштеп жатканда кагылышып кетет.

7 -кадам: Программалоо

Программалоо
Программалоо

Программаны жазардан мурун мен өзгөртүлгөн микро сатшакитти программалоого жөндөмдүү кылышым керек болчу. Ал үчүн мен төмөнкү кадамдарды аткарышым керек болчу:

  1. Arduino Uno компьютерине туташтырыңыз.
  2. Куралдар астындагы туура портту жана Arduino Uno тактасын тандаңыз.
  3. > Файл> Мисалдар астынан "ArduinoISP" эскизин таап, ачыңыз.
  4. Эскизди Arduinoго жүктөңүз.
  5. Ардуинону компьютерден ажыратыңыз.
  6. Тактаны Arduino менен сүрөттөгү схемага ылайык туташтырыңыз.
  7. Arduino -ны компьютерге туташтырыңыз.
  8. "Arduino/Genuino Uno" тактасын жана "Arduino ISP катары" программистин тандаңыз.
  9. Click> Аспаптар> Bootloader Burn.
  10. Жүктөгүч ийгиликтүү аяктагандан кийин, биз программабызды жаза алабыз:

// анын ичинде мен servo моторлор үчүн колдонгон китепкана

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; сүзүүчү чыңалуу; // VarSpeedServo servo1 менин сервомо ат коюңуз; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; VarSpeedServo servo5; #PINKY 5 аныктоо #PINKY_PIN 10 аныктоо #RINGFINGER 4 #аныктоо RINGFINGER_PIN 9 #define MIDDLE 3 #define MIDDLE_PIN 3 #deineFine INDEX 2 #define INDEX_PIN 5 #define THUMB 1 #PinPinePUMPIN_PIN); // менин мотор servo1.attach тиркелген пин (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEX, 40); defaultPosition (MIDDLE, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print ("Башталууда…"); } void loop () {sensorValue = analogRead (A0); чыңалуу = sensorValue * (5.0 / 1023.0); mySerial.println (чыңалуу); кечиктирүү (100); if (Voltage> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (MIDDLE, 60); closePosition (INDEX, 60); closePosition (THUMB, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (MIDDLE, 60); openPosition (INDEX, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t манжа, uint8_t _speed) {if (манжа == PINKY) servo5.write (90, _ ылдамдык, туура); else if (finger == RINGFINGER) servo4.write (70, _ ылдамдык, чындык); else if (finger == ORDLE) servo3.write (20, _speed, true); else if (манжа == ИНДЕКС) servo2.write (20, _ ылдамдык, чындык); else if (манжа == THUMB) servo1.write (20, _ ылдамдык, чындык); } void closePosition (uint8_t манжа, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); else if (finger == RINGFINGER) servo4.write (180, _ ылдамдык, чындык); else if (finger == ORDLE) servo3.write (180, _speed, true); else if (манжа == ИНДЕКС) servo2.write (180, _ ылдамдык, чындык); else if (манжа == THUMB) servo1.attach (180, _ ылдамдык, чындык); } void openPosition (uint8_t манжа, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); else if (finger == RINGFINGER) servo4.write (0, _speed, true); else if (finger == ORDLE) servo3.write (0, _speed, true); else if (манжа == ИНДЕКС) servo2.write (0, _ ылдамдык, чындык); else if (finger == THUMB) servo1.write (0, _speed, true); } // Программаны жазгандан кийин, биз аны> Sketch> Программист аркылуу жүктөө аркылуу тактага жүктөйбүз // Эми сиз микро сатшакитти ардуинодон ажыратып, аны электр банкы аркылуу кубаттай аласыз // Жана voila !! Колуңуз протезге ээ

Сунушталууда: