Мазмұны:

RoboGlove: 12 қадам (суреттермен)
RoboGlove: 12 қадам (суреттермен)

Бейне: RoboGlove: 12 қадам (суреттермен)

Бейне: RoboGlove: 12 қадам (суреттермен)
Бейне: Жүктилик 12 апта.Жүктілік дамуы.Жүкті әйел 2024, Шілде
Anonim
RoboGlove
RoboGlove

Біз ULB, Libre de Bruxelles Université студенттерінің тобымыз. Біздің жоба адамдарға заттарды ұстауға көмектесетін күштерді құра алатын робот қолғаптарын жасауға бағытталған.

ҚОЛҒАУШЫ

Қолғапта саусақтарды кейбір серво қозғалтқыштармен байланыстыратын сым байланысы бар: саусақ ұшына және сервоға сым бекітілген, сондықтан серво айналған кезде сым тартылып, саусақ бүгіледі. Осылайша, пайдаланушы саусақтардың шетіндегі кейбір қысым датчиктері арқылы ұстауды басқара отырып, біз қозғалтқыштарды басқарылатын түрде іске қосамыз және саусақты қозғалтқыштардың айналуына пропорционалды ию арқылы ұстауға көмектесеміз. сымдардың оралуына дейін. Осылайша біз әлсіз адамдарға заттарды ұстауға мүмкіндік беруіміз керек немесе физиологиялық жағдайдағы адамдарға заттарды ұстауға және оны еш күш жұмсамай ұстауға көмектесуіміз керек.

ДИЗАЙН

Модель қолдың қозғалысын мүмкіндігінше еркін ету үшін жасалған. Шын мәнінде, біз сымды, қозғалтқышты және саусақтарды қосуға қажетті өте қажет бөлшектерді ғана 3D басып шығардық.

Бізде әр саусақта PLA басылған жоғарғы күмбез бар: бұл сымдарды қосу керек терминал бөлігі және ол ішіне бекітілген қысым сенсорына қорғаныс беруі керек. Қысым датчигі PLA ұшымен қолғап арасында ыстық желіммен жабыстырылған.

Содан кейін бізде сымдар үшін нұсқаулық болып табылатын екі саусаққа 3D басып шығарылған екі сақина бар. Бас бармақ - бір ғана басылған сақинасы бар жалғыз саусақ. Саусақтардың ұшында екіге бүктелген бір саусаққа бір сым бар. Екі бөлік күмбез бөлігінің екі бағыттаушысынан және екі сақинадан өтеді: олар тікелей осы сақиналардың сыртында жасалған тесіктерге салынған. Содан кейін олар қозғалтқышқа тікелей қосылған доңғалаққа қосылады. Дөңгелек сымдарды орап алу үшін жүзеге асырылды: біздің қозғалтқышта толық емес айналу болғандықтан (180 ° төмен) біз доңғалақты сымды 6 сантиметрлік қашықтыққа тарту үшін іске асырдық, бұл қашықтық қолды толығымен жабу қажет.

Біз сондай -ақ серво қозғалтқыштары мен ардуиноны білекке бекіту үшін екі пластинаны басып шығардық. Оны ағаштан немесе қатты пластиктен лазерлік кескішпен кескен дұрыс.

1 -қадам: сатып алу тізімі

Сатып алу тізімі
Сатып алу тізімі
Сатып алу тізімі
Сатып алу тізімі
Сатып алу тізімі
Сатып алу тізімі

Қолғап пен сымдар:

1 қолданыстағы қолғап (тігілетін болуы керек)

Ескі джинсы немесе басқа қатты мата

Нейлон сымдар

Төмен тығыздықтағы полиэтилен құбырлары (диаметрі: 4мм қалыңдығы: 1мм)

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

Ардуино Уно

1 Батарея 9В + 9В Батарея ұстағыш

1 электронды қосқыш

1 вертолет

3 серво қозғалтқышы (саусаққа 1)

3 винт (сервосымен қамтамасыз етілген)

4 батарея AA + 4 AA батарея ұстағыш

3 қысым датчигі (саусаққа 1)

3 резистор 330 ом (саусаққа 1)

6 электр сымы (сенсорға 2)

Бұрандалар, жаңғақтар және бекітпелер:

Ұзындығы 10 мм 4 M3 (Arduino -ны бекіту үшін)

Ұзындығы 2 M2.5 12 мм (9В батарея ұстағышын бекіту үшін)

6 сәйкес жаңғақ

6 М2 ұзындығы 10 мм (дөңгелектерді сервоға бекіту үшін бір сервоға 2)

12 шағын кабель байланысы (пластиналар мен қосқышты бекіту үшін)

7 үлкен кабель байланысы (бір қозғалтқышқа 2 және 4 АА батарея ұстағышына 1)

Қолданылған құралдар:

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

Тігуге арналған материал

Ыстық желімді тапанша

Қосымша: лазерлік кескіш

2 -қадам: тозуға болатын құрылымды дайындаңыз

Тозатын құрылымды дайындаңыз
Тозатын құрылымды дайындаңыз

Тозатын құрылым кейбір киімдерден жасалған: біздің жағдайда біз электрикке арналған қалыпты қолғап пен білезік айналасындағы конструкцияға джинсы шүберекті қолдандық. Олар бірге тігілді.

Мақсат - тозуға болатын икемді құрылым.

Құрылым қарапайым жүннен жасалған қолғапқа қарағанда берік болуы керек, себебі оны тігу керек.

Бізге электрмен жабдықтаушылар мен жетектерді ұстау үшін білектің айналасында киілетін құрылым қажет, және ол тұрақты болуы үшін біз джинсы білегіне Velcro жолақтарын (автоматты жабысқақ таспалар) жабу арқылы реттелетін етіп таңдадық.

Джинсы қаттырақ болу үшін ішіне бірнеше ағаш таяқшалар тігілген.

3 -қадам: Функционалды бөліктерді дайындаңыз

Функционалды бөліктерді дайындаңыз
Функционалды бөліктерді дайындаңыз

Қатаң бөлшектер сипаттамада.stl файлдарынан PLA форматында 3D басып шығару арқылы жүзеге асады:

Саусақ сақинасы x5 (әр түрлі масштабпен: 1х шкаласы 100%, 2х шкаласы 110%, 2х шкаласы 120%);

Finger Extremity x3 (әр түрлі масштабта: 1х шкаласы 100%, 1х шкаласы 110%, 1х шкаласы 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 форматында 120x150x5 мм өлшемді PLA тақтасын басып шығардық.

Содан кейін біз қолғапқа тақтаны бірнеше кабельдік байланыстармен бекітіп қойдық: біз қолғапқа қайшымен бірнеше тесік жасадық, содан кейін пластикалық тақтаға бұрғымен тесіктер жасап, бәрін біріктірдік. Тақтаның ортасында, оның периметрі арасында, кабельдік байланыстарды өткізу үшін төрт тесік қажет. Олар бұрғымен жасалады. Бұл пластинаның бүйірінде емес, ортаңғы бөлігінде, джинсы қолмен жабылмайды, өйткені пластина оны бекітпейді, өйткені пластина икемді емес.

Содан кейін қозғалтқыштарды бекіту үшін пластикалық тақтаға басқа тесіктер бұрғыланады. Қозғалтқыштар екі қиылысқан кабельдік байланыстармен бекітілген. Бекітуді қамтамасыз ету үшін олардың жағына біраз желім қосылды.

Қозғалтқыштарды дөңгелектер бір -біріне кедергі жасамайтындай етіп қою керек. Сонымен, қолдың сол және оң жағында бөлінеді: екеуі бір жақта, дөңгелектері қарама -қарсы бағытта, ал біреуі екінші жағында.

8 -қадам: Arduino коды

Arduino коды
Arduino коды

Код қарапайым түрде әзірленді: қозғалтқышты іске қосу немесе қоспау. Серво тек белгілі бір мәннен асып кеткен жағдайда ғана іске қосылады (ол әр сенсордың сезімталдығы бірдей емес болғандықтан сынақтар мен қателіктермен бекітілген). Иілудің екі мүмкіндігі бар: төмен күш үшін төмен және толық күш. Саусақ бүгілгеннен кейін саусақты нақты күйде ұстау үшін пайдаланушының күші қажет емес. Бұл іске асырудың себебі, әйтпесе саусақтар сенсорларға үнемі күш түсіруі керек екендігі айтылды, ал қолғап ешқандай артықшылық бермейді. Саусақтың иілуін босату үшін қысым сенсорына тоқтату пәрмені әсер ететін жаңа күш қолдану қажет.

Біз кодты үш бөлікке бөле аламыз:

Сенсорлар:

Алдымен біз үш бүтін айнымалы мәнді инициалдадық: оқу1, оқу2, оқу3 әр сенсор үшін. Датчиктер A0, A2, A4 аналогты кірістеріне енгізілді. Әр айнымалы мән келесідей орнатылады:

  • read1 мұнда A0 кірісте оқылатын мән жазылады,
  • read2 мұнда A2 кірісте оқылатын мән жазылады,
  • read3 мұнда A4 кірісте оқылған мән жазылады

Серверлердің қосылу позициясына сәйкес екі табалдырық саусақпен бекітіледі. Бұл табалдырықтар әр саусаққа әр түрлі, себебі қолданылатын күш әр саусаққа бірдей емес және үш сенсордың сезімталдығы бірдей емес.

Қозғалтқыштар:

Char (save1, save2, save3) үш айнымалысы, әр қозғалтқыш үшін біреуі 0 -де инициализацияланады. Содан кейін қондырғыда біз қозғалтқыштарды қосатын түйреуіштерді көрсеткенбіз: түйреуіш 9, түйреуіш 6 және серво1, серво2, серво3 үшін түйреуіш 3; барлығы 0 мәнінде инициализацияланған.

Содан кейін сервоприводтар servo.write () арқылы іске қосылады, ол сервоға кіріс ретінде алынған бұрышты бекітеді. Сондай -ақ, сынақтар мен қателіктер кезінде саусақты кіші ұстауға және үлкен ұстауға сәйкес келетін екі позицияда бүгуге қажет екі жақсы бұрыш табылды.

Бекітуге байланысты бір қозғалтқыш қарама -қарсы бағытта бұрылуы керек болғандықтан, оның бастапқы нүктесі нөлге тең емес, керісінше бағытта айналу үшін күш қолданылғанда ең кіші бұрыш және азаяды.

Сенсорлар мен қозғалтқыштар арасындағы байланыс:

Save1, save2, save3 және reading1, reading2, reading3 таңдау дәнекерлеуге байланысты. Бірақ әр саусақ үшін сенсор мен қозғалтқыштың саны бірдей болуы керек.

Содан кейін, егер саусағыңыз бүгілген күйде немесе жоқ болса және сенсорларға қысым түсірілсе немесе түспейтінін тексеру үшін шарттар қолданылса. Датчиктер мәнді қайтарған кезде күш қолдану қажет, бірақ екі түрлі жағдай болуы мүмкін:

  • Егер саусақ әлі бүгілмесе, сенсорлар қайтарған бұл мәнді табалдырықпен салыстыра отырып, сервоға сәйкес бұрыш қолданылады.
  • Егер саусақ бүгілген болса, бұл пайдаланушының иілуді босатқысы келетінін білдіреді, содан кейін сервоға бастапқы бұрыш қолданылады.

Бұл әр қозғалтқыш үшін жасалады.

Содан кейін сенсорлардың мәндерін жиі тексермеу үшін 1000 мс кідіріс енгіздік. Егер кідірістің тым аз мәні қолданылса, егер күш кешігу уақытына қарағанда ұзақ уақыт қолданылса, қолды жапқаннан кейін оны тікелей қайта ашу қаупі бар.

Бір сенсорға арналған барлық процесс жоғарыдағы схемада көрсетілген.

БАРЛЫҚ КОД

#қосу Servo servo1; Servo servo2; Servo servo3; int read1; int read2; int read3; char save1 = 0; // серво 0 күйінде басталады, ұйқы күйі char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // серво цифрлық түйреуіште 9 servo2.write (160); // servo servo1.attach (6) үшін бастапқы нүкте; // цифрлық түйреуіште 6 серво1.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 (reading2> = 0) {Serial.print («Sensor value =»); // Бірінші сенсордың табалдырығын калибрлеуге қолданылатын команданың мысалы

// Serial.println (оқу2); } // else {Serial.print («Сенсор мәні =»); Serial.println (0); }

if (read1> 100 and save1 == 0) {// егер сенсор жоғары мәнге ие болса және ұйқы күйінде болмаса save1 = 2; } // басқа 2 күйге өтіңіз, егер (оқу1> 30 және сақтау1 == 0) {// егер сенсор орташа мәнді алса және ұйқы күйінде болмаса save1 = 1; } // басқа 1 күйін алу керек, егер (оқу1> 0) {// егер мән нөлге тең болмаса және алдыңғы шарттардың ешқайсысы түзелмесе save1 = 0;} // ұйқы күйіне өтіңіз

if (save1 == 0) {servo1.write (160); } // release else if (save1 == 1) {servo1.write (120); } // басқа тартудың орташа бұрышы {servo1.write (90); } // тартудың максималды бұрышы

if (read2> 10 and save2 == 0) {// servo 1 бірдей2 save2 = 2; } else if (read2> 5 and save2 == 0) {save2 = 1; } else if (read2> 0) {save2 = 0;}

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

if (read3> 30 and save3 == 0) {// servo 1 бірдей3 save2 = 3; } else if (read3> 10 and save3 == 0) {save3 = 1; } else if (read3> 0) {save3 = 0;}

if (save3 == 0) {servo3.write (0); } else if (save3 == 1) {servo3.write (40); } else {servo3.write (70); } кешігу (1000); } // бір секунд күтіңіз

9 -қадам: Arduino, Батареялар мен Верободы білекке бекітіңіз

Arduino, Батареялар мен Верободы қолыңызға бекітіңіз
Arduino, Батареялар мен Верободы қолыңызға бекітіңіз
Arduino, Батареялар мен Верободы қолыңызға бекітіңіз
Arduino, Батареялар мен Верободы қолыңызға бекітіңіз

Батарея ұстағыштары мен arduino -ны жөндей алатын PLA -да тағы бір пластина басылды.

Пластинаның өлшемдері бар: 100х145х5мм.

Ардуиноны бұрау үшін төрт тесік бар, ал 9В аккумулятор ұстағышын бұрау үшін екі тесік бар. 6В кернеу ұстағышында және пластинада оларды бекіту үшін кабель байланысын пайдалану үшін тесік жасалған. Бұл ұстағыштың бекітілуін қамтамасыз ету үшін біраз желім қосылды. Коммутатор екі кішкене кабель байланыстарымен бекітілген.

Сондай -ақ, джинсыдағы пластинаны кабельдік байланыстар көмегімен бекіту үшін қолданылатын төрт тесік бар.

Верборд қалқан сияқты ардуиноға салынған.

10 -қадам: Электрониканы қосыңыз

Электрониканы қосыңыз
Электрониканы қосыңыз

Жоғарыдағы схемада көрсетілгендей, схема вертолетке дәнекерленген.

Arduino -да 9В аккумуляторы бар және олардың арасында Arduino сөндіруге мүмкіндік беретін қосқыш қосылады. 6В аккумулятор көп ток қажет болатын серво қозғалтқышы үшін қажет, ал сервоприводтардың үшінші түйреуіші қосылған. 3, 6 және 9 түйреуіштер оларды PWM көмегімен басқарады.

Әрбір сенсор бір жағынан Arduino 5В арқылы, ал екінші жағынан жерге кернеуді өлшеу үшін жерге және A0, A2 және A4 түйреуіштеріне қосылған 330 Ом резистормен қосылады.

11 -қадам: Нейлон сымдарын қосыңыз

Нейлон сымдарын қосыңыз
Нейлон сымдарын қосыңыз

Нейлон сымдары суреттегідей шеткі және сақиналы екі тесіктен де өтеді, содан кейін сымның екі жартысы полиэтилен бағыттағышының ішіне еніп, бағыттағыштың соңына дейін қозғалтқышқа дейін бірге қалады. Сымдардың ұзындығы дәл осы сәтте анықталады, олар серво дөңгелегін біркелкі саусақтармен айналдыра алатындай ұзын болуы керек.

Олар дөңгелектерге.stl файлдарында екі кішкене тесік бар және қосымша тұрақтандыру үшін ыстық желіммен түйін арқылы өтеді.

12 -қадам: ләззат алыңыз

Ол күткендей жұмыс істейді.

Бірінші импульсте ол саусақты бүгеді, екіншісінде босатады, саусақтар бүгілген кезде күш қажет емес.

Дегенмен, үш мәселе қалды:

- Біз серводтарды іске қосу үшін импульсті 1 секундтан қысқа ету үшін абай болуымыз керек, әйтпесе сымдар Arduino коды туралы 8 -қадамда түсіндірілгендей тартылғаннан кейін бірден босатылады.

- Пластикалық бөліктер аздап сырғып кетеді, сондықтан үйкелісті қосу үшін ұшына ыстық желім қостық.

- Егер саусаққа ауыр жүктеме түссе, сенсор әрқашан үлкен мәнге ие болады, сондықтан серво үздіксіз айналады.

Ұсынылған: