Мазмуну:

RoboGlove: 12 кадам (Сүрөттөр менен)
RoboGlove: 12 кадам (Сүрөттөр менен)

Video: RoboGlove: 12 кадам (Сүрөттөр менен)

Video: RoboGlove: 12 кадам (Сүрөттөр менен)
Video: "92 жаштагы АПАСЫ менен 52 жаштагы ӨЗ баласы жатканын КӨРДҮМ / Күйөм ЗӨӨКҮР болчу" дейт 32деги келин 2024, Июль
Anonim
RoboGlove
RoboGlove

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

ГОЛЬВА

Мээлейде манжаларды кээ бир серво кыймылдаткычтары менен байланыштыруучу зым байланышы бар: манжанын учуна жана сервого зым бекитилет, андыктан серво айланганда зым тартылып, манжа ийилет. Ошентип, манжалардын четиндеги кээ бир басым сенсорлору аркылуу колдонуучунун кармашын көзөмөлдөө менен, биз моторлорду башкарылуучу түрдө иштете алабыз жана мотордун айлануусуна пропорционалдуу манжаны бүгүп кармап турууга жардам бере алабыз. Ошентип, зымдардын тоголонушуна. Ушундай жол менен биз алсыз кишилерге объектилерди кармоого же физиологиялык шарттардагы кишилерге объектилерди кармоодо жана эч кандай күч -аракет жумшабай сактоого жардам беришибиз керек.

ДИЗАЙН

Модель кол кыймылын мүмкүн болушунча эркин кылуу үчүн иштелип чыккан. Чынында, биз зымдарды, моторлорду жана манжаларды туташтыруу үчүн керектүү болгон тетиктерди гана 3D басып чыгардык.

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

Андан кийин бизде зымдарга жол көрсөтүүчү эки манжа үчүн 3D басылган шакектер бар. Бармак - бир гана басылган шакеги бар жалгыз манжа. Бармактын бир учунда бармактын учунда экиге бүктөлгөн. Эки жарым купол бөлүгүнүн эки жолчусунан жана эки шакекчеден өтүп жатат: алар бул шакектердин сыртында биз түзгөн тешиктерге салынат. Андан кийин алар моторго түз байланышкан дөңгөлөккө чогулат. Дөңгөлөк зымдарды ороп алуу үчүн ишке ашырылган: моторубузда толук айлануу болбогондуктан (180 ° төмөн) биз дөңгөлөктү зымды 6 сантиметрлик боштук үчүн тартып алдык. колун толугу менен жабуу керек.

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

1 -кадам: соода тизмеси

Сатып алуулар тизмеси
Сатып алуулар тизмеси
Сатып алуулар тизмеси
Сатып алуулар тизмеси
Сатып алуулар тизмеси
Сатып алуулар тизмеси

Мээлей жана зымдар:

1 колдо болгон мээлей (тигиле турган болушу керек)

Эски джинсы же башка катуу кездеме

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

Төмөн тыгыздыгы полиэтилен түтүк (диаметри: 4мм калыңдыгы: 1мм)

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

Arduino Uno

1 Батарея 9V + 9V Батарея кармагыч

1 электрондук которгуч

1 верборд

3 servo мотор (1 манжа үчүн)

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

4 Батарея АА + 4 АА Батарея кармагыч

3 басым сенсорлору (1 манжа үчүн)

3 резистор 330 ом (1 манжа үчүн)

6 электр зымдары (датчиктерге 2)

Бурамалар, гайкалар жана фиксациялар:

4 M3 10 мм узундукта (Arduino оңдоо үчүн)

2 M2.5 12mm узундугу (9V батарея кармагычты оңдоо үчүн)

6 тиешелүү жаңгактар

6 M2 10мм узундукта (дөңгөлөктөрдү servoго бекитүү үчүн бир servoго 2)

12 кичинекей кабелдик байланыш (плиталарды жана которгучту оңдоо үчүн)

7 чоң кабелдик байланыш (моторуна 2 жана 4 АА батарейкасы үчүн 1)

Колдонулган куралдар:

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

Тигүү үчүн материал

Ысык желим тапанча

Опционалдык: лазер кескич

2 -кадам: Кийилүүчү структураны даярдаңыз

Кийилүүчү структураны даярдаңыз
Кийилүүчү структураны даярдаңыз

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

Максат ийкемдүү кийилүүчү түзүлүшкө ээ болуу.

Түзүлүшү керек болгондуктан структура кадимки жүн мээлейден күчтүү болушу керек.

Бизге электр менен камсыздоочуларды жана кыймылдаткычтарды кармоо үчүн билектин тегерегине кийиле турган структура керек жана анын туруктуу болушуна муктажбыз, ошондуктан биз джинсы билегине Velcro боолорун (авто-жабышчаак боолор) колдонуу менен жабууну жөнгө салууну чечтик.

Кээ бир жыгач таякчалар джинсы катуурак болушу үчүн ичине тигилген.

3 -кадам: Функционалдык бөлүктөрдү даярдаңыз

Функционалдык бөлүктөрдү даярдаңыз
Функционалдык бөлүктөрдү даярдаңыз

Катуу бөлүктөр сүрөттөлүштөгү.stl файлдарынан PLAда 3D басып чыгаруу аркылуу ишке ашат:

Finger Ring x5 (ар кандай масштабда: 1х масштаб 100%, 2х масштаб 110%, 2x масштаб 120%);

Finger Extremity x3 (ар кандай масштабда: 1x масштаб 100%, 1x масштаб 110%, 1x масштаб 120%);

Мотор үчүн дөңгөлөк x3

Манжа бөлүктөрү үчүн ар бир манжанын жана ар бир фаланкстын чоңдугуна байланыштуу ар кандай таразалар керек.

4 -кадам: Сенсорлорду экстремалдык абалга келтирүү

Сенсорлорду чектен чыккыла
Сенсорлорду чектен чыккыла

Басым сенсорлору адегенде кабелдик зымдарга ширетилет.

Андан кийин алар манжанын учтарынын ичинде желим тапанчанын жардамы менен желимделет: бир аз желим учтун ичине, эки тешиги бар капталга жайгаштырылат, андан кийин сенсор дароо активдүү (тегерек) бөлүгү менен колдонулат клей (пьезоэлектрдик структуранын ичи жана пластикалык бөлүгү түздөн -түз желимге ээ). Кабелдик зымдар колдун арт жагында электр кабелин иштетүү үчүн манжанын үстүнөн аркасына чейин өтүшү керек.

5 -кадам: 3D Басылган Бөлүктөрүн Колкапка Оңдоо

3D Басылган Бөлүктөрүн Колкапка бекитүү
3D Басылган Бөлүктөрүн Колкапка бекитүү

Бардык катуу бөлүктөрдү (учу, шакеги) оңдоо үчүн кол капка тигүү керек.

Шакектерди туура жайгаштыруу үчүн, адегенде кол капты кийиңиз жана колуңузду жабуу учурунда тийбестен, шакектерди бир фалангка тагууга аракет кылыңыз. Болжол менен, индекстин шакектери манжанын түбүнөн 5мм жогору жана 17-20мм биринчисинен жогору болот. Ортоңку манжага келсек, биринчи шакек манжанын түбүнөн болжол менен 8-10мм, экинчиси 20ммдин тегерегинде болот. Баш бармакка тиешелүү нерселер үчүн тактык өтө төмөн, анткени ал башка шакектерге тоскоолдук кылбайт, андыктан эскилиги жеткен мээлейге сүйкөп көрүңүз, мээлейге сызык чийиңиз. шыңгырап, анан тиге аласыз.

Тигүү боюнча, эч кандай атайын техника же жөндөм талап кылынат. Ийне менен тигүүчү жип мээлейдин бетинен өтүп, шакектердин тегерегинде айланат. Мээлейдеги эки тешиктин ортосунда 3-4мм кадамы жетишерлик күчтүү фиксацияны түзөт, өтө тыгыз тигүүнүн кажети жок.

Ушундай эле ыкманы учтарды оңдоо үчүн да колдонушат: ийненин оңой өтүшү үчүн учунун чокусу holey, ошондуктан манжанын үстүндөгү крестке окшош формаларды гана кол капка тигүүгө туура келет.

Андан кийин полиэтилен багыттарын да үч критерий боюнча бекитүү керек:

дисталдык учу (манжаны караган) анын ичине кире турган нейлон зым менен жогорку сүрүлүүнү болтурбоо үчүн, манжанын багытына кароо керек;

дисталдык учу колдун жабылышына тоскоол болбошу үчүн жетишерлик алыс болушу керек (манжанын түбүнөн болжол менен 3 см төмөн, баш бармак үчүн 4-5 см);

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

Алар мээлейге жана билекке тигилип, жогорудагыдай техника менен бекитилет.

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

6 -кадам: Серверлер үчүн дөңгөлөктөрдү даярдаңыз

Серверлер үчүн дөңгөлөктөрдү даярдаңыз
Серверлер үчүн дөңгөлөктөрдү даярдаңыз

Биз бул долбоор үчүн өзүбүз чыгарган атайын иштелип чыккан дөңгөлөктөрдү, тартылган жана 3D баскычтарын колдондук (сүрөттөмөдөгү.stl файлы).

Дөңгөлөктөр басылып чыккандан кийин, аларды бурап (M2, 10мм бурамалар) менен сервоприводдорго бекитүүбүз керек. Пропелдердин тешиктери M2 бурап, диаметри 2 ммден кичине болгондуктан, жаңгактын кереги жок.

3 пропеллерди ар бир сервого колдонсо болот.

7 -кадам: Моторлорду колго бекитүү

Моторлорду колтукка бекитүү
Моторлорду колтукка бекитүү

Бул кадам моторлорду колго бекитүүдөн турат; Бул үчүн биз колдоо алуу үчүн PLAнын көмөкчү тактасын басып чыгарышыбыз керек болчу.

Чындыгында моторлор колго түздөн -түз бекитиле алган жок, анткени зымдарды тартуу үчүн керектүү дөңгөлөктөр кыймыл учурунда колкаптан улам тосулуп калышы мүмкүн. Ошентип, биз 120x150x5 мм өлчөмүндөгү PLA тактасын 3D басып чыгардык.

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

Андан кийин моторлорду оңдоо үчүн пластикалык тактага башка тешиктер тешилет. Кыймылдаткычтар эки кайчылаш кабелдик байланыш менен бекитилет. Фиксацияны камсыз кылуу үчүн капталдарына бир аз клей кошулган.

Кыймылдаткычтарды дөңгөлөктөр бири -бирине тоскоолдук кылбагандай жайгаштыруу керек. Ошентип, колдун сол жана оң жагында бөлүнөт: экөө тең бир тарапта, дөңгөлөктөрү карама -каршы багытта, бири башка тарапта.

8 -кадам: Arduino коду

Arduino коду
Arduino коду

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

Биз кодду үчкө бөлө алабыз:

Сенсорлор:

Биринчиден, биз үч бүтүн сандык өзгөрмөнү баштадык: окуу1, окуу2, окуу3 ар бир сенсор үчүн. Сенсорлор аналогдук A0, A2, A4 киргизилген. Окуу үчүн ар бир өзгөрмө төмөнкүдөй коюлган:

  • read1 мында A0 киришинде окулган мааниси жазылган,
  • reading2 мында A2 киришинде окулган мааниси жазылган,
  • reading3 мында A4 киришинде окулган мааниси жазылган

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

Моторлор:

Үч өзгөрмөлүү char (save1, save2, save3), ар бир мотор үчүн бирөө 0де баштапкы абалга келтирилет. Андан кийин орнотууга биз моторлорду тийиштүү түрдө төөнөгүчтөрдү киргиздик: pin 9, pin 6 жана servo1, servo2, servo3 үчүн pin 3; бардыгы 0 маанисинде башталды.

Андан кийин сервопривод servo.write () аркылуу ишке ашырылат, ал серводо киргизүү катары алынган бурчту оңдоого жөндөмдүү. Сыноолор жана каталар менен манжаны кичине кармоо менен чоң кармашууга туура келген эки абалда бүгүү үчүн керектүү болгон эки жакшы бурч табылды.

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

Сенсорлор менен моторлордун ортосундагы байланыш:

Save1, save2, save3 жана reading1, reading2, reading3 тандайт. Бирок ар бир манжа үчүн сенсор менен мотордун саны бирдей болушу керек.

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

  • Эгерде манжа азырынча ийиле элек болсо, бул маанини сенсорлор тарабынан кайтарылган чектерге салыштырып, тиешелүү бурч сервого карата колдонулат.
  • Эгерде манжа буга чейин ийилген болсо, анда колдонуучу ийилүүнү коё берүүнү каалайт, андан кийин баштоо бурчу серволорго колдонулат.

Бул ар бир мотор үчүн жасалат.

Андан кийин сенсорлордун баалуулуктарын өтө көп текшерүүдөн качуу үчүн 1000 мс кечигүү коштук. Эгерде кечигүүнүн өтө кичине мааниси колдонулса, күч кечигүү убактысына караганда узак убакыт бою колдонулса, аны жапкандан кийин түз кайра ачуу коркунучу бар.

Бир сенсордун бардык процесси жогорудагы схемада берилген.

БҮТ КОД

#кошуу Servo servo1; Servo servo2; Servo servo3; int reading1; int reading2; int reading3; char save1 = 0; // серво 0 абалынан башталат, уктап жаткан абал char save2 = 0; char save3 = 0; void setup (void) {Serial.begin (9600); servo2.attach (9); // servo цифралык пин 9 servo2.write (160); // servo servo1.attach үчүн баштапкы чекит (6); // servo цифралык пин 6 servo1.write (0); // servo servo3.attach үчүн баштапкы чекит (3); // servo цифралык пин 3 servo3.write (0); // servo үчүн баштапкы чекит

}

void loop (void) {reading1 = analogRead (A0); // аналогго тиркелет 0 окуу2 = analogRead (A2); // аналогдук 2 окуу тиркелет3 = analogRead (A4); // аналогго тиркелген 4

// if (reading2> = 0) {Serial.print ("Sensor value ="); // Биринчи сенсордун босогосун калибрлөө үчүн колдонулган буйруктун мисалы

// Serial.println (окуу2); } // башка {Serial.print ("Сенсордун мааниси ="); Serial.println (0); }

if (reading1> 100 and save1 == 0) {// сенсор жогорку мааниге ээ болсо жана уйку абалында болбосо save1 = 2; } // башка 2 абалга өтүңүз, эгерде (read1> 30 and save1 == 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 (reading2> 10 and save2 == 0) {// servo 1 save2 = 2 окшош; } else if (reading2> 5 and save2 == 0) {save2 = 1; } else if (reading2> 0) {save2 = 0;}

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

if (reading3> 30 and save3 == 0) {// servo 1 save3 = 2 окшош; } else if (reading3> 10 and save3 == 0) {save3 = 1; } else if (reading3> 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, Батареялар жана Веробоардды колго оңдоңуз

Батареялардын кармагычтарын жана ардуинону оңдоо үчүн PLAда дагы бир табак басылды.

Табактын өлчөмдөрү бар: 100x145x5mm.

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

Джинсыдагы табакты кабелдик галстуктун жардамы менен оңдоо үчүн колдонулган төрт тешик дагы бар.

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

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

Электрониканы туташтырыңыз
Электрониканы туташтырыңыз

Тизме жогорудагы схемада билдирилгендей вертолетко кошулган.

Arduino 9V батарейкасы менен камсыздалат жана Arduino өчүрүү үчүн алардын ортосунда туташуу бар. 6V батарейка көп токко муктаж болгон серво мотору үчүн керек жана servosтун үчүнчү пини туташкан. 3, 6 жана 9 -казыктар аларды PWM менен башкаруу үчүн.

Ар бир сенсор бир тарапта Arduino 5V менен, экинчи жагында жерге тиркелген 330 Ом резистору жана чыңалууну өлчөө үчүн A0, A2 жана A4 пиндери менен туташат.

11 -кадам: Нейлон зымдарын кошуңуз

Нейлон зымдарын кошуу
Нейлон зымдарын кошуу

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

Алар дөңгөлөктөргө.stl файлдарында жайгашкан эки кичинекей тешик аркылуу өткөн жана кошумча турукташтыруу үчүн ысык клей менен бекитилген.

12 -кадам: ырахат алыңыз

Бул күтүлгөндөй иштейт.

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

Ошентсе да, үч көйгөй калды:

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

- Пластикалык бөлүктөр бир аз тайып турат, ошондуктан биз сүрүлүүнү кошуу үчүн учуна ысык клей коштук.

- Эгерде манжага оор жүк түшсө, сенсор дайыма чоң мааниге ээ болот, андыктан серво тынымсыз айланат.

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