Оглавление:

RoboGlove: 12 шагов (с изображениями)
RoboGlove: 12 шагов (с изображениями)

Видео: RoboGlove: 12 шагов (с изображениями)

Видео: RoboGlove: 12 шагов (с изображениями)
Видео: Как извиниться перед кошкой #shorts #кот #кошка 2024, Июль
Anonim
РобоПерчатка
РобоПерчатка

Мы группа студентов ULB, Université Libre de Bruxelles. Наш проект заключается в разработке перчатки-робота, способной создавать силу захвата, помогающую людям хватать вещи.

ПЕРЧАТКА

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

ДИЗАЙН

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

У нас есть верхний купол, напечатанный из PLA на каждом пальце: это клеммная часть, к которой должны быть подключены провода, и она должна обеспечивать защиту датчика давления, который закреплен внутри. Датчик давления приклеивается горячим клеем между концом PLA и перчаткой.

Затем у нас есть два напечатанных на 3D-принтере кольца на каждый палец, которые представляют собой направляющие для проводов. Большой палец - единственный палец, на котором отпечатано только одно кольцо. На каждый палец приходится по одной проволоке, сложенной пополам на концах пальцев. Две половинки проходят через две направляющие купольной части и в обоих кольцах: они вставляются прямо в отверстия, которые мы сделали снаружи этих колец. Затем они собираются в колесо, напрямую соединенное с двигателем. Колесо было реализовано для того, чтобы можно было оборачивать провода: поскольку наш двигатель вращается не полностью (ниже 180 °), мы реализовали колесо, чтобы протянуть провод на промежуток в 6 сантиметров, то есть расстояние нужно было полностью закрыть руку.

Мы также напечатали две пластины для крепления серводвигателей и Arduino к руке. Лучше вырезать его из дерева или жесткого пластика с помощью лазерного резака.

Шаг 1. Список покупок

Список покупок
Список покупок
Список покупок
Список покупок
Список покупок
Список покупок

Перчатка и провода:

1 существующая перчатка (должна быть сшиваемой)

Старые джинсы или другая жесткая ткань

Нейлоновые провода

Трубка из полиэтилена низкой плотности (диаметр: 4 мм, толщина: 1 мм)

Электроника:

Ардуино Уно

1 батарея 9V + 9V Держатель батареи

1 электронный переключатель

1 вероборд

3 серводвигателя (по 1 на палец)

3 гребных винта (в комплекте с сервоприводами)

4 батарейки AA + 4 батарейки AA

3 датчика давления (по 1 на палец)

3 резистора 330 Ом (по 1 на палец)

6 электрических проводов (по 2 на датчик)

Винты, гайки и крепления:

4 M3 длиной 10 мм (для фиксации Arduino)

2 M2,5 длиной 12 мм (для крепления держателя батареи 9 В)

6 соответствующих гаек

6 M2 длиной 10 мм (по 2 на сервопривод для крепления колес к сервоприводам)

12 небольших кабельных стяжек (для крепления пластин и переключателя)

7 больших кабельных стяжек (2 на моторы и 1 для держателя 4 батареек AA)

Используемые инструменты:

3D-принтер (Ultimaker 2)

Материал для шитья

Пистолет для горячего клея

Optionnal: лазерный резак

Шаг 2: подготовьте носимую конструкцию

Подготовьте носимую конструкцию
Подготовьте носимую конструкцию

Носимая конструкция была сделана из некоторой одежды: в нашем случае мы использовали обычную перчатку для электрика и джинсовую ткань для структуры вокруг запястья. Они были сшиты вместе.

Цель состоит в том, чтобы иметь гибкую носимую конструкцию.

Структура должна быть прочнее, чем обычная шерстяная перчатка, так как ее нужно шить.

Нам нужна носимая конструкция вокруг запястья, чтобы удерживать источники энергии и приводы, и она должна быть стабильной, поэтому мы решили сделать закрытие регулируемым, применив липучки (самоклеящиеся ленты) к запястью джинсов.

Внутри были вшиты деревянные палочки, чтобы джинсы были более жесткими.

Шаг 3: Подготовьте функциональные части

Подготовьте функциональные части
Подготовьте функциональные части

Жесткие детали реализованы посредством 3D-печати в PLA из файлов.stl в описании:

Finger Ring x5 (с разными масштабами: 1x масштаб 100%, 2x масштаб 110%, 2x масштаб 120%);

Конечность пальца x3 (с разными шкалами: 1x шкала 100%, 1x шкала 110%, 1x шкала 120%);

Колесо для мотора x3

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

Шаг 4: прикрепите датчики к конечностям

Закрепите датчики на конечностях
Закрепите датчики на конечностях

Датчики давления сначала припаиваются к проводам кабеля.

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

Шаг 5: прикрепите детали, напечатанные на 3D-принтере, к перчатке

Прикрепите детали, напечатанные на 3D-принтере, к перчатке
Прикрепите детали, напечатанные на 3D-принтере, к перчатке

Все жесткие части (конечности, кольца) должны быть пришиты к перчатке для фиксации.

Чтобы правильно разместить кольца, сначала наденьте перчатку и попытайтесь надеть кольца, по одному на фалангу, так, чтобы они не соприкасались во время смыкания руки. Приблизительно кольца на указательном пальце будут закреплены на 5 мм выше основания пальца и на 17-20 мм выше первого. Что касается среднего пальца, первое кольцо будет примерно на 8-10 мм выше основания пальца, а второе - примерно на 20 мм выше первого. Что касается большого пальца, то здесь требуется очень низкая точность, так как он не рискует столкнуться с другими кольцами, поэтому попробуйте нанести его на изношенную перчатку, нарисуйте линию на перчатке там, где вы предпочитаете кольцо, чтобы потом его можно было сшить.

Что касается шитья, то особой техники или умений не требуется. С помощью иглы швейная нить проходит по кругу вокруг колец, проходя через поверхность перчатки. Шаг в 3-4 мм между двумя отверстиями в перчатке уже дает достаточно прочную фиксацию, нет необходимости делать очень плотное шитье.

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

Затем следует закрепить и полиэтиленовые направляющие по трем критериям:

дистальный конец (обращенный к пальцу) должен быть обращен в направлении пальца, чтобы избежать сильного трения с нейлоновой проволокой, которая будет проходить внутрь него;

дистальный конец должен быть достаточно длинным, чтобы не мешать закрытию руки (достаточно примерно на 3 см ниже основания пальца, от 4 до 5 см для большого пальца);

трубки должны проходить друг через друга как можно меньше, чтобы уменьшить объем всей перчатки и уменьшить подвижность каждой трубки

Они фиксируются пришиванием к перчатке и запястью по той же технике, что и выше.

Чтобы избежать скольжения во время шитья, между трубками и перчатками было добавлено немного клея.

Шаг 6: подготовьте колеса для сервоприводов

Подготовьте колеса для сервоприводов
Подготовьте колеса для сервоприводов

Для этого проекта мы использовали специально разработанные колеса, нарисованные и напечатанные нами в 3D (файл.stl в описании).

После того, как колеса напечатаны, мы должны прикрепить их к пропеллерам сервоприводов, прикрутив их (винты M2, 10 мм). Поскольку отверстия пропеллеров меньше 2 мм в диаметре при завинчивании M2, гайки не требуются.

На каждый сервопривод можно установить 3 пропеллера.

Шаг 7: прикрепите моторы к руке

Закрепите моторы на руке
Закрепите моторы на руке

Этот шаг заключается в креплении моторов к руке; Для этого нам пришлось напечатать вспомогательную пластину из PLA, чтобы получить опору.

На самом деле моторы нельзя было прикрепить непосредственно к руке, так как колеса, необходимые для протягивания проводов, могли блокироваться во время движения из-за перчатки. Мы напечатали на 3D-принтере пластину из PLA размером 120x150x5 мм.

Затем мы прикрепили пластину к нашей перчатке с помощью кабельных стяжек: мы проделали несколько отверстий в перчатке, просто используя ножницы, затем мы проделали отверстия в пластиковой пластине с помощью дрели и собрали все вместе. В центре по периметру пластины необходимо четыре отверстия для прохождения кабельных стяжек. Их делают дрелью. Они находятся в центральной части, а не по бокам пластины, чтобы можно было закрыть джинсы вокруг руки, не блокируя ее, поскольку пластина не гибкая.

Затем в пластиковой пластине просверливаются и другие отверстия для крепления моторов. Двигатели фиксируются двумя перекрещенными стяжками. На их стороны было добавлено немного клея для обеспечения фиксации.

Моторы нужно поставить так, чтобы колеса не мешали друг другу. Итак, левая и правая стороны руки разделены: по два в стороны, колеса вращаются в противоположных направлениях, а одно - в другую.

Шаг 8: код на Arduino

Код на Ардуино
Код на Ардуино

Код был разработан простым способом: приводить в действие двигатели или нет. Сервоприводы приводятся в действие только в том случае, если показание превышает определенное значение (это было исправлено путем проб и ошибок, потому что чувствительность каждого датчика не совсем одинакова). Есть две возможности изгиба: низкий для небольшого усилия и полностью для большого усилия. После того, как палец согнут, никакая сила пользователя не требуется, чтобы удерживать палец в фактическом положении. Причина этой реализации заключается в том, что в противном случае было упомянуто, что пальцам необходимо постоянно прикладывать силу к датчикам, и перчатка не дает никаких преимуществ. Чтобы ослабить сгибание пальца, необходимо приложить новую силу к датчику давления, действуя по команде остановки.

Мы можем разделить код на три части:

Датчики инициализации:

Прежде всего мы инициализировали три целочисленные переменные: чтение1, чтение2, чтение3 для каждого датчика. Датчики были вставлены в аналоговые входы A0, A2, A4. Каждая переменная для считывания задается следующим образом:

  • read1 где записывается значение, прочитанное на входе A0,
  • read2, где записывается значение, прочитанное на входе A2,
  • read3 где записывается значение, прочитанное на входе A4

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

Инициализация двигателей:

Три переменные char (save1, save2, save3), по одной для каждого двигателя, инициализируются значением 0. Затем в настройке мы указали контакты, куда мы подключаем двигатели соответственно: контакт 9, контакт 6 и контакт 3 для серво1, серво2, серво3; все инициализируются значением 0.

Затем сервоприводы приводятся в действие с помощью команды servo.write (), которая может фиксировать угол, полученный в качестве входных данных сервопривода. Также путем проб и ошибок были найдены два хороших угла, необходимых для сгибания пальца в двух положениях, соответствующих малому хвату и большому хвату.

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

Связь между датчиками и двигателями:

Выбор save1, save2, save3 и чтения1, чтения2, чтения3 зависит от пайки. Но для каждого пальца датчик и связанный с ним двигатель должны иметь одинаковые номера.

Затем в петле, если были использованы условия для проверки того, находится ли палец уже в положении изгиба или нет, и приложено ли давление к датчикам или нет. Когда датчики возвращают значение, необходимо приложить силу, но возможны два разных случая:

  • Если палец еще не согнут, сравнивая это значение, возвращаемое датчиками, с пороговыми значениями, соответствующий угол применяется к сервоприводу.
  • Если палец уже согнут, это означает, что пользователь хочет ослабить сгибание, а затем к сервоприводам применяется начальный угол.

Это делается для каждого мотора.

Затем мы добавили задержку в 1000 мс, чтобы не проверять слишком часто значения датчиков. Если применяется слишком малое значение задержки, существует риск прямого открытия руки после закрытия в случае, если сила применяется в течение более длительного времени, чем время задержки.

Весь процесс для одного датчика представлен на блок-схеме выше.

ВЕСЬ КОД

#include Servo servo1; Серво servo2; Серво servo3; int read1; int read2; int read3; char save1 = 0; // сервопривод запускается в состоянии 0, состояние сна char save2 = 0; char save3 = 0; установка void (void) {Serial.begin (9600); servo2.attach (9); // сервопривод на цифровом выводе 9 servo2.write (160); // начальная точка для серво servo1.attach (6); // сервопривод на цифровом выводе 6 servo1.write (0); // начальная точка для серво servo3.attach (3); // сервопривод на цифровом выводе 3 servo3.write (0); // начальная точка сервопривода

}

недействительный цикл (void) {чтение1 = аналоговое чтение (A0); // привязан к аналогу 0 read2 = analogRead (A2); // привязан к аналогу 2 read3 = analogRead (A4); // привязан к аналогу 4

// если (чтение2> = 0) {Serial.print ("Значение датчика ="); // Пример команды, используемой для калибровки пороговых значений первого датчика

// Serial.println (чтение2); } // else {Serial.print ("Значение датчика ="); Serial.println (0); }

if (reading1> 100 and save1 == 0) {// если датчик получает высокое значение и не находится в состоянии сна save1 = 2; } // переходим в состояние 2 else if (reading1> 30 and save1 == 0) {// если датчик получает среднее значение и не находится в состоянии сна save1 = 1; } // перешел в состояние 1 else if (reading1> 0) {// если значение не равно нулю и ни одно из предыдущих условий не исправлено save1 = 0;} // переходим в состояние сна

если (save1 == 0) {servo1.write (160); } // отпускаем else if (save1 == 1) {servo1.write (120); } // средний угол втягивания else {servo1.write (90); } // максимальный угол натяжения

if (чтение2> 10 и save2 == 0) {// то же, что и серво 1 save2 = 2; } иначе, если (чтение2> 5 и сохранение2 == 0) {save2 = 1; } иначе, если (чтение2> 0) {save2 = 0;}

если (save2 == 0) {servo2.write (0); } иначе, если (save2 == 1) {servo2.write (40); } else {servo2.write (60); }

if (reading3> 30 и save3 == 0) {// то же, что и servo 1 save3 = 2; } иначе, если (чтение3> 10 и сохранение3 == 0) {save3 = 1; } иначе, если (чтение3> 0) {save3 = 0;}

если (save3 == 0) {servo3.write (0); } иначе, если (save3 == 1) {servo3.write (40); } else {servo3.write (70); } задержка (1000); } // Подожди секунду

Шаг 9: прикрепите Arduino, батареи и Veroboard к руке

Прикрепите Arduino, батареи и Veroboard к руке
Прикрепите Arduino, батареи и Veroboard к руке
Закрепите Arduino, батареи и Veroboard на руке
Закрепите Arduino, батареи и Veroboard на руке

Еще одна пластина была напечатана из PLA, чтобы можно было закрепить держатели батарей и Arduino.

Табличка имеет размеры: 100х145х5мм.

Имеются четыре отверстия для прикручивания Arduino и два для крепления держателя батареи 9 В. В держателе батареи 6 В и в пластине было сделано отверстие, чтобы использовать кабельную стяжку, чтобы скрепить их вместе. Для фиксации держателя было добавлено немного клея. Переключатель фиксируется двумя небольшими кабельными стяжками.

Также есть четыре отверстия, которые используются для фиксации пластины на джинсах с помощью кабельных стяжек.

Вероборд надевается на ардуино как щит.

Шаг 10: Подключите электронику

Подключите электронику
Подключите электронику

Схема распаяна на плате, как показано на схеме выше.

Arduino имеет батарею 9 В в качестве источника питания, и между ними подключен переключатель, чтобы можно было выключить Arduino. Батарея 6 В. необходима для серводвигателя, который нуждается в большом токе, а третий контакт сервоприводов подключен к контакты 3, 6 и 9 для управления ими с помощью ШИМ.

Каждый датчик подключается с одной стороны к 5V Arduino, а с другой стороны - к резистору 330 Ом, подключенному к земле и контактам A0, A2 и A4 для измерения напряжения.

Шаг 11: Добавьте нейлоновые провода

Добавьте нейлоновые провода
Добавьте нейлоновые провода

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

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

Шаг 12: Наслаждайтесь

Работает как положено.

При первом импульсе он сгибает палец, а при втором - отпускает его. При сгибании пальцев не требуется никакого усилия.

Тем не менее остаются три проблемы:

- Мы должны быть осторожны, чтобы сделать импульс короче 1 секунды для приведения в действие сервоприводов, иначе провода сразу же отсоединятся после вытягивания, как описано в шаге 8 о коде Arduino.

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

- Если на палец оказывается большая нагрузка, датчик все время будет иметь большое значение, и сервопривод будет постоянно вращаться.

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