Съдържание:

RoboGlove: 12 стъпки (със снимки)
RoboGlove: 12 стъпки (със снимки)

Видео: RoboGlove: 12 стъпки (със снимки)

Видео: RoboGlove: 12 стъпки (със снимки)
Видео: INSTAAIDARKA😂скоро на всех музыкальных площадках 😂 inst: aidarqo🔥#instasamka #shorts 2024, Юли
Anonim
RoboGlove
RoboGlove

Ние сме група студенти от ULB, Université Libre de Bruxelles. Нашият проект се състои в разработването на роботизирана ръкавица, способна да създаде сила на захващане, помагаща на хората да хващат нещата.

РЪКАВИЦАТА

Ръкавицата има телена връзка, която свързва пръстите към някои серво мотори: тел е прикрепен към крайника на пръста и към серво, така че когато серво се завърти, проводникът се издърпва и пръстът се огъва. По този начин, като контролираме захвата, направен от потребителя чрез някои сензори за налягане в крайниците на пръстите, ние можем да задействаме двигателите по контролиран начин и да помогнем на захващането, като огъваме пръста пропорционално на въртенето на двигателите и така до навиването на проводниците. По този начин трябва да можем или да позволим на слабите хора да хващат предмети, или да помагаме дори на хора във физиологични условия да хващат предмети и да ги държат без никакви усилия.

ДИЗАЙНЪТ

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

Имаме горни куполи, отпечатани в PLA на всеки пръст: това е терминалната част, където проводниците трябва да бъдат свързани и тя трябва да осигурява защита на сензора за налягане, който е фиксиран вътре. Сензорът за налягане е залепен, с горещо лепило, между PLA крайника и ръкавицата.

След това имаме два 3D отпечатани пръстена на пръст, които представляват водач за проводниците. Палецът е единственият пръст, който има само един отпечатан пръстен. Има един проводник на пръст, сгънат наполовина в края на пръстите. Двете половини преминават през двете водачи на куполната част и в двата пръстена: те се поставят направо в дупки, които направихме от външната страна на тези пръстени. След това те се събират в колело, директно свързано с двигателя. Колелото е реализирано, за да може да се увие около проводниците: тъй като нашият двигател има непълно завъртане (по -ниско от 180 °), ние реализирахме колелото, за да издърпаме проводника за разстояние от 6 сантиметра, което е разстоянието необходими за пълно затваряне на ръката.

Отпечатали сме и две пластини за фиксиране на серво моторите и arduino към рамото. По -добре е да го отрежете в дърво или твърда пластмаса с лазерен нож.

Стъпка 1: Списък за пазаруване

Списък за пазаруване
Списък за пазаруване
Списък за пазаруване
Списък за пазаруване
Списък за пазаруване
Списък за пазаруване

Ръкавици и проводници:

1 съществуваща ръкавица (трябва да бъде канализационна)

Стари дънки или друг твърд плат

Найлонови проводници

Полиетиленови тръби с ниска плътност (диаметър: 4 мм дебелина: 1 мм)

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

Arduino Uno

1 Батерия 9V + 9V Поставка за батерия

1 електронен превключвател

1 veroboard

3 серво мотора (по 1 на пръст)

3 витла (доставени със сервомоторите)

4 батерии AA + 4 AA държач за батерии

3 сензора за налягане (по 1 на пръст)

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

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

Винтове, гайки и фиксиращи елементи:

4 M3 с дължина 10 мм (за фиксиране на Arduino)

2 M2.5 с дължина 12 мм (за фиксиране на 9V държача на батерията)

6 съответни гайки

6 M2 с дължина 10 мм (2 на серво за фиксиране на колелата към сервомоторите)

12 малки кабелни връзки (за фиксиране на плочите и превключвателя)

7 големи кабелни връзки (2 на мотор и 1 за държача на 4 батерии AA)

Използвани инструменти:

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

Материал за шиене

Пистолет с горещо лепило

Опция: лазерен нож

Стъпка 2: Подгответе носима конструкция

Подгответе носеща се структура
Подгответе носеща се структура

Носимата структура е направена с някои дрехи: в нашия случай използвахме нормална ръкавица за електротехник и дънкова кърпа за структурата около китката. Те бяха ушити заедно.

Целта е да има гъвкава носима структура.

Структурата трябва да е по -здрава от обикновена вълнена ръкавица, тъй като трябва да бъде ушита.

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

Някои дървени пръчки бяха зашити вътре, за да направят дънките по -твърди.

Стъпка 3: Подгответе функционалните части

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

Твърдите части се реализират чрез 3D печат в PLA от.stl файловете в описанието:

Пръстен пръстен 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 мм чрез завинтване на М2, не са необходими гайки.

3 -те витла могат да бъдат приложени към всяко серво.

Стъпка 7: Прикрепете двигателите към рамото

Прикрепете двигателите към рамото
Прикрепете двигателите към рамото

Тази стъпка се състои в фиксирането на двигателите към рамото; за да направим това, трябваше да отпечатаме помощна PLA плоча, за да получим опора.

Всъщност двигателите не могат да бъдат фиксирани директно към рамото, тъй като колелата, необходими за издърпване на проводниците, могат да бъдат блокирани по време на движение поради ръкавицата. Така че ние 3D отпечатахме PLA плака с размери 120x150x5 mm.

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

След това други дупки също се пробиват в пластмасовата плака, за да се фиксират двигателите. Двигателите са фиксирани с две кръстосани кабелни връзки. Отстрани е добавено малко лепило, за да се осигури фиксирането.

Двигателите трябва да бъдат поставени така, че колелата да не си пречат. Така че са разделени в лявата и дясната страна на ръката: две встрани, като колелата се въртят в противоположни посоки и едно в другата страна.

Стъпка 8: Код на Arduino

Код на Arduino
Код на Arduino

Кодът е разработен по прост начин: да се задействат или не двигателите. Сервомоторите се задействат само ако показанието е над определена стойност (фиксирано е чрез опити и грешки, тъй като чувствителността на всеки сензор не е точно същата). Има две възможности за огъване, ниско за ниска сила и напълно за силна сила. След като пръстът е огънат, не е необходима сила на потребителя, за да запази пръста в действителната позиция. Причината за това изпълнение е, че в противен случай е споменато, че пръстите трябва да прилагат непрекъснато сила върху сензорите и ръкавицата не дава никакво предимство. За да се освободи огъването на пръста, трябва да се приложи нова сила върху сензора за налягане, като действа команда за спиране.

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

Инициализация на сензорите:

Първо, ние инициализирахме три целочислени променливи: четене1, четене2, четене3 за всеки сензор. Сензорите бяха поставени в аналоговите входове A0, A2, A4. Всяка променлива за отчитане се задава като:

  • четене1, където е записана стойността, прочетена във входа A0,
  • четене2, където е записана стойността, прочетена във входа A2,
  • четене3, където е записана стойността, прочетена във входа A4

Два прага са фиксирани с пръст, съответстващи на двете позиции на задействане на сервомоторите. Тези прагове са различни за всеки пръст, тъй като приложената сила не е еднаква за всеки пръст и чувствителността на трите сензора не е абсолютно еднаква.

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

Три променливи char (save1, save2, save3), по една за всеки двигател се инициализират на 0. След това в настройката посочихме щифтовете, където съответно включваме двигателите: щифт 9, щифт 6 и щифт 3 за servo1, servo2, servo3; всички инициализирани на стойност 0.

След това сервоприводите се задействат чрез командата servo.write (), която е в състояние да фиксира ъгъла, получен като вход на серво. Също така чрез опити и грешки бяха открити двата добри ъгъла, необходими за огъване на пръста в две позиции, съответстващи на малък хват и голям хват.

Тъй като един двигател трябва да се завърти в обратна посока поради фиксирането си, неговата начална точка не е нула, а максималният ъгъл и намалява, когато се прилага сила, за да може да се завърти в обратна посока.

Връзка между сензори и двигатели:

Изборът на save1, save2, save3 и read1, read2, read3 зависи от запояването. Но за всеки пръст сензорът и свързаният двигател трябва да имат един и същ номер.

След това в контура, ако са използвани условия, за да се провери дали пръстът вече е в огънато положение или не и дали налягането е приложено или не върху сензорите. Когато сензорите върнат стойност, трябва да се приложи сила, но са възможни два различни случая:

  • Ако пръстът все още не е огънат, сравнявайки тази стойност, върната от сензорите с праговете, съответният ъгъл се прилага към серво.
  • Ако пръстът вече е огънат, това означава, че потребителят иска да освободи огъването и след това началният ъгъл се прилага към сервомоторите.

Това се прави за всеки двигател.

След това добавихме закъснение от 1000 ms, за да избегнем твърде често тестване на стойностите на сензорите. Ако се приложи твърде малка стойност на закъснение, съществува риск директно да се отвори отново ръката след затварянето й, в случай че силата се прилага по -дълго от времето на забавяне.

Целият процес за един сензор е представен в диаграмата тук по -горе.

ЦЯЛИЯТ КОД

#include Servo servo1; Серво серво2; Серво серво3; int четене1; int четене2; int четене3; char save1 = 0; // сервото започва в състояние 0, спящо състояние char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // серво при цифров щифт 9 servo2.write (160); // начална точка за серво servo1.attach (6); // серво при цифров пин 6 servo1.write (0); // начална точка за servo servo3.attach (3); // серво при цифров щифт 3 servo3.write (0); // начална точка за серво

}

void loop (void) {четене1 = analogRead (A0); // прикрепен към аналогово 0 четене2 = analogRead (A2); // прикрепен към аналогов 2 четене3 = analogRead (A4); // прикрепен към аналогов 4

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

// Serial.println (четене2); } // else {Serial.print ("Стойност на сензора ="); Serial.println (0); }

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

if (save1 == 0) {servo1.write (160); } // освобождавам else if (save1 == 1) {servo1.write (120); } // среден ъгъл на издърпване else {servo1.write (90); } // максимален ъгъл на издърпване

if (четене2> 10 и save2 == 0) {// същото като servo 1 save2 = 2; } else if (четене2> 5 и save2 == 0) {save2 = 1; } else if (четене2> 0) {save2 = 0;}

if (save2 == 0) {servo2.write (0); } else if (save2 == 1) {servo2.write (40); } else {servo2.write (60); }

if (четене3> 30 и save3 == 0) {// същото като servo 1 save3 = 2; } else if (четене3> 10 и save3 == 0) {save3 = 1; } else if (четене3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } else {servo3.write (70); } забавяне (1000); } // чакай малко

Стъпка 9: Прикрепете Arduino, батериите и Veroboard към ръката

Прикрепете Arduino, батериите и Veroboard към ръката
Прикрепете Arduino, батериите и Veroboard към ръката
Прикрепете Arduino, батериите и Veroboard към ръката
Прикрепете Arduino, батериите и Veroboard към ръката

Друга плоча беше отпечатана в PLA, за да може да фиксира държачите на батериите и arduino.

Плочата има размери: 100x145x5mm.

Налични са четири отвора за завинтване на arduino и два за завинтване на държача на батерията 9 V. Отвор е направен в държача на батерията 6V и в плочата, за да се използва кабелна връзка, за да се фиксират заедно. Добавено е малко лепило, за да се осигури фиксирането на този държач. Превключвателят е фиксиран с две малки кабелни връзки.

Има и четири дупки, използвани за фиксиране на плочата върху дънките с помощта на кабелни връзки.

Веробордът е поставен върху arduino като щит.

Стъпка 10: Свържете електрониката

Свържете електрониката
Свържете електрониката

Веригата е запоена върху вероборда, както е посочено в схемата по -горе.

Arduino разполага с 9V батерия като захранване и между тях е свързан превключвател, за да може да изключи Arduino. Необходима е 6V батерия за серво мотора, който се нуждае от много ток, а третият щифт на сервомоторите е свързан към пинове 3, 6 и 9, за да ги управлявате с ШИМ.

Всеки сензор е свързан отстрани с 5V на Arduino, а от другата страна с 330 омов резистор, свързан към земята и щифтовете A0, A2 и A4 за измерване на напрежението.

Стъпка 11: Добавете найлоновите проводници

Добавете найлоновите проводници
Добавете найлоновите проводници

Найлоновите проводници са направени да преминават през двата отвора на крайника и пръстените, както се вижда на снимката, след което двете половини на проводника ще влязат вътре в полиетиленовия водач и ще останат заедно до края на водача, до двигателя. Дължината на проводниците се определя в този момент, те трябва да бъдат достатъчно дълги, за да обиколят веднъж колелото на серво с правите пръсти.

Те са фиксирани върху колелата с възел, преминаващ през две малки дупки, присъстващи върху.stl файловете, и с горещо лепило за допълнително стабилизиране.

Стъпка 12: Насладете се

Работи според очакванията.

При първия импулс той огъва пръста, а при втория го освобождава. Не е необходима сила, когато пръстите са огънати.

Въпреки това остават три проблема:

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

- Пластмасовите части леко се плъзгат, така че добавихме малко горещо лепило в края, за да добавим триене.

- Ако натоварването на пръста е голямо, сензорът ще има през цялото време голяма стойност и така сервото ще се върти непрекъснато.

Препоръчано: