Оглавление:

Протез руки с миосенсором: 8 шагов
Протез руки с миосенсором: 8 шагов

Видео: Протез руки с миосенсором: 8 шагов

Видео: Протез руки с миосенсором: 8 шагов
Видео: Год каналу - знакомство с командой, командировка в Ад и другое. 2024, Ноябрь
Anonim
Image
Image

Этот проект представляет собой разработку протеза руки для ампутированных людей. Цель этого проекта - создание доступного протеза руки для людей, которые не могут позволить себе профессиональный протез.

Поскольку этот проект все еще находится на стадии прототипирования, он всегда может быть лучше, поскольку на данный момент он может открывать и закрывать только ладонь, имея возможность захватывать вещи! Тем не менее, это протез руки своими руками, который можно сделать дома или в местной лаборатории.

Шаг 1: Необходимые материалы, инструменты и машины

Машины:

  1. 3д принтер
  2. Лазерный резак
  3. Настольный станок с ЧПУ

Инструменты:

  1. Леска
  2. 3 мм нить
  3. Дрель
  4. Супер клей
  5. Плоскогубцы
  6. Мультиметр
  7. Паяльная станция
  8. Обрабатываемый воск
  9. Кремнийдля форм

Материалы:

  1. Медный лист
  2. 1x ATMEGA328P-AU
  3. 1x 16 МГц кристалл
  4. 1x резистор 10 кОм
  5. 2x конденсатора 22 пФ
  6. 1x 10 мкФ конденсатор
  7. 1x 1 мкФ конденсатор
  8. 1x 0,1 мкФ конденсатор
  9. 1x миосенсор
  10. 5x микро серводвигатели
  11. 1x Arduino UNO

Программное обеспечение:

  1. IDE Arduino
  2. Fusion360
  3. Cura
  4. Орел
  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. После этого команда оболочки использовалась, чтобы сделать его полым, а команда split - разрезать его пополам, чтобы я мог проектировать в нем и для лучшей доступности, когда я устанавливаю свою электронику внутри.
  3. Набросок был также сделан около запястья, выдавлен и соединен с основным предплечьем, чтобы оно могло соединиться с ладонью.
  4. Имея видимость для проектирования внутри предплечья, я создал эскиз с размерами пяти двигателей, которые я буду использовать, по одному для каждого пальца, и моей печатной платы (печатной платы), которую я буду использовать. Затем я экструдировал их, пока они не достигли желаемой высоты, и удалил ненужные части в задней части цилиндра, используя Backspace.
  5. Наконец, отверстия для болтов были спроектированы таким образом, что они не так заметны на общей конструкции, чтобы предплечье можно было закрыть с помощью команд, аналогичных указанным выше.

Завершив дизайн, я выбрал каждое тело и загрузил его в виде файла.stl, а затем распечатал их на 3D-принтере отдельно.

2D дизайн

Поскольку я хотел, чтобы мои лески были разделены, пока они приводятся в действие двигателями, я решил сделать для них направляющие прорези. Для этого мне действительно не нужно было создавать что-то новое, но я использовал меньший эллипс, когда я использовал команду loft для создания предплечья.

Я экспортировал его эскиз как файл.dxf после того, как использовал лазерный резак. После того, как я получил желаемую форму, я просверлил отверстия 0,8 мм внутри прорези, которую посчитал необходимым.

Шаг 3: 3D-печать

3D печать
3D печать
3D печать
3D печать
3D печать
3D печать
3D печать
3D печать

После экспорта каждого файла stl я использовал Cura для генерации.gcode различных частей пальцев, ладони и предплечья. Используемые настройки показаны на рисунках выше. Материал 3D-печатных деталей - PLA.

Шаг 4: формование и литье

Литье и литье
Литье и литье
Литье и литье
Литье и литье
Литье и литье
Литье и литье

Целью отливки ладони является усиление захвата протеза руки, поскольку PLA может быть скользким.

3D дизайн

  1. Используя уже существующий набросок ладони, я попытался имитировать нашу ладонь, придав ей вид кругов с помощью команды arc.
  2. После этого я выдавил их на разной высоте и использовал команду сопряжения, чтобы сгладить края внутренних «кругов».
  3. Затем я разработал коробку с теми же размерами, что и мой обрабатываемый воск, и поместил туда негатив моего дизайна, используя разрез в команде комбинирования.

CAM процесс

После того, как дизайн был готов к фрезеровке на настольном станке с ЧПУ, мне пришлось сгенерировать для этого gcode. В моем случае я использовал станок с ЧПУ Roland MDX-40!

  1. Сначала я вошел в среду CAM Fusion360.
  2. Затем я выбрал «новую настройку» в меню настройки.
  3. Я выбрал правильные параметры (см. Картинки) и нажал ОК.
  4. Затем в меню 3D я выбрал адаптивную очистку и выбрал правильные параметры после вставки инструмента, который я использовал, как показано на рисунках.
  5. Наконец, я выбрал адаптивную очистку и нажал на процесс публикации. Я убедился, что это для машины Roland mdx-40, и нажал кнопку ОК, чтобы получить gcode.
  6. После этого я фрезеровал восковой блок в соответствии со своим дизайном на станке.

Отливка кремния

  1. Во-первых, я тщательно смешал два раствора кремния, чтобы не образовывать пузырьков воздуха, следуя таблице данных (ссылка на материалы), принимая во внимание соотношение смешивания, жизнеспособность и время извлечения из формы.
  2. Затем я вылил его в форму из самой нижней точки, следя за тем, чтобы точка контакта оставалась постоянной, а диаметр залитого раствора был как можно тоньше, чтобы избежать пузырьков воздуха.
  3. После заливки силикона в форму мне нужно было убедиться, что внутри не было пузырьков воздуха, поэтому я встряхнул форму, используя дрель с косым гвоздем.
  4. Наконец, поскольку я забыл сделать это в своем дизайне, я проделал отверстия в своем силиконе после того, как он был готов, с помощью плоскогубцев таким образом, чтобы они совпадали с отверстиями на поверхности ладони.

Шаг 5: Разработка и производство электроники

Дизайн и производство электроники
Дизайн и производство электроники
Дизайн и производство электроники
Дизайн и производство электроники
Дизайн и производство электроники
Дизайн и производство электроники

Чтобы спроектировать свою плату и понять, что происходит на выводах микроконтроллера, мне пришлось прочитать его техническое описание. В качестве базовой печатной платы я использовал микросатшакит, а затем модифицировал его в соответствии с потребностями моей системы.

Поскольку satshakit - это плата, сделанная своими руками на базе Arduino, я мог модифицировать ее в соответствии с моими поисками соединений моих частей с Arduino. Итак, миосенсор подключается к Arduino с помощью одного вывода GND, одного вывода VCC и одного аналогового вывода. Принимая во внимание, что один серводвигатель использует один вывод GND, один вывод VCC и один вывод PWM. Итак, мне пришлось выставить в общей сложности шесть контактов GND и VCC с учетом питания платы, один аналоговый и пять контактов PWM. Кроме того, мне пришлось принять во внимание наличие контактов для программирования платы (это MISO, MOSI, SCK, RST, VCC и GND).

Я предпринял следующие шаги:

  1. Сначала я скачал файлы микросатшакита.
  2. Затем я модифицировал микросатшакит в соответствии со своими потребностями, используя Eagle. Руководство по использованию Eagle можно найти здесь и здесь.
  3. После укоренения моей платы я экспортировал ее как файл-p.webp" />

После того, как внутренние и внешние пути моей платы были обозначены как png, пришло время сгенерировать их gcode, чтобы иметь возможность фрезеровать его на настольном станке с ЧПУ roland mdx-40. Для генерации.gcode я использовал модули fab. Настройки, которые должны быть установлены в модулях fab, можно найти здесь.

Напоследок припаял все необходимое согласно моей плате орла. Изображение схемы и распаянной платы можно найти выше.

Причина создания моей собственной печатной платы вместо использования Arduino UNO - это пространство, которое я экономлю, когда использую свою собственную плату.

Шаг 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. Загрузите скетч в Arduino.
  5. Отключите Arduino от компьютера.
  6. Подключите плату к Arduino, следуя схеме на картинке.
  7. Подключите Arduino к компьютеру.
  8. Выберите плату «Arduino / Genuino Uno» и программатор «Arduino as ISP».
  9. Щелкните> Инструменты> Записать загрузчик.
  10. После того, как загрузчик будет успешно завершен, мы можем написать нашу программу:

// включая библиотеку, которую я использовал для серводвигателей

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; плавающее напряжение; // назначаем имя моему сервоприводу 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, установка voidode (MYPIN 6)); // штифт, к которому я прикрепил свой мотор servo1.attach (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (ИНДЕКС, 40); defaultPosition (СРЕДНИЙ, 40); defaultPosition (RINGFINGER, 40); defaultPosition (РОЗОВЫЙ, 40); mySerial.begin (9600); mySerial.print («Инициализация…»); } пустая петля () {sensorValue = analogRead (A0); напряжение = значение датчика * (5.0 / 1023.0); mySerial.println (напряжение); задержка (100); если (напряжение> 1) {closePosition (РОЗОВЫЙ, 60); closePosition (RINGFINGER, 60); closePosition (СРЕДНИЙ, 60); closePosition (ИНДЕКС, 60); closePosition (THUMB, 60); } else {openPosition (РОЗОВЫЙ, 60); openPosition (RINGFIGER, 60); openPosition (СРЕДНИЙ, 60); openPosition (ИНДЕКС, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (90, _speed, true); иначе, если (finger == RINGFINGER) servo4.write (70, _speed, true); иначе, если (finger == MIDDLE) servo3.write (20, _speed, true); иначе, если (finger == INDEX) servo2.write (20, _speed, true); иначе, если (finger == THUMB) servo1.write (20, _speed, true); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); иначе, если (finger == RINGFINGER) servo4.write (180, _speed, true); иначе, если (finger == MIDDLE) servo3.write (180, _speed, true); иначе, если (finger == INDEX) servo2.write (180, _speed, true); иначе, если (finger == THUMB) servo1.attach (180, _speed, true); } void openPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); иначе, если (finger == RINGFINGER) servo4.write (0, _speed, true); иначе, если (finger == MIDDLE) servo3.write (0, _speed, true); иначе, если (finger == INDEX) servo2.write (0, _speed, true); иначе, если (finger == THUMB) servo1.write (0, _speed, true); } // После написания программы мы загружаем ее на плату, выбрав> Sketch> Upload using Programmer // Теперь вы можете отключить микросатшакит от Arduino и подключить его к блоку питания // И вуаля !! У тебя протез руки

Рекомендуемые: