Мазмуну:

[WIP] Myo Armband менен башкарылган Drawbot түзүү: 11 кадам
[WIP] Myo Armband менен башкарылган Drawbot түзүү: 11 кадам

Video: [WIP] Myo Armband менен башкарылган Drawbot түзүү: 11 кадам

Video: [WIP] Myo Armband менен башкарылган Drawbot түзүү: 11 кадам
Video: Дизель Шоу – 94 НОВЫЙ ВЫПУСК – 28.05.2021 | ЮМОР ICTV 2024, Июль
Anonim
[WIP] Myo Armband менен башкарылган Drawbot түзүү
[WIP] Myo Armband менен башкарылган Drawbot түзүү

Баарына салам!

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

Экинчиден, биз бул прототипти куруу өзүбүз үчүн гана пайдалуу болорун билчүбүз. Биздин дизайн жана планыбыз акыркы рамканы металлга жылдыруу жана ардуино менен Myo тобуна курулган акселерометр менен гироскоптон позициябызды алуу болчу. Бул маалымат моторлорго жөнөтүлөт жана колдонуучунун кыймылын кайталайт. Биз бул биздин экинчи фазабызды үч негизги аспектиге бөлөөрүн билчүбүз:

  1. Myoдон моторлорго чейин Arduino аркылуу программалоо
  2. электрдик дизайн биздин маалыматтарды кыймылга келтирет
  3. механикалык дизайн биздин кыймылды жеңилдете турган акылга сыярлык алкакты түзүү

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

1 -кадам: Эмне кылууну пландап жатабыз

Image
Image

Биздин максат - бул эки продуктту биз мурда колдонбогондой кылып бириктирүү болчу. Биз Myo боосу менен Evil Mad Scientistтин AxiDraw жетеги менен жасалган дизайндын өз версиясынын ортосунда жандуу эстафета жасоону чечтик.

2 -кадам: Прототип ингредиенттеринин тизмеси

2 2 x 4 жыгач тактайлар 1 Бел же чынжыр ченөө> = 65 "4 Жыгач мыктары 3 Курга же чынжырга туура келген тиштүү тиштер 4 3 x 8 vex тешилген плиталар 30 ⅜" Резина аралыгы 8 1 "диаметри шайба 1 1" диаметри жыгач дюбель 1 'узун 8 Vex бурамалары 1”8 ½” Vex бурамалары 8 2”Vex бурамалары 8 ¼” Резина бөлгүчтөр 48 Vex гайкалары 1 Small zip галстугу

3 -кадам: [Прототип] Жыгач менен куралдануу жана арабанын ички жасалгасы

[Прототип] Жыгач менен иштөө биздин курал -жарак жана вагондун ички жасалгасы
[Прототип] Жыгач менен иштөө биздин курал -жарак жана вагондун ички жасалгасы

Биз 2х4 өлчөмүндөгү экиден кармап, аларды бирдей узундукта кесип алдык (33 ¼ )

Столдун арасын колдонуу менен биз тактайлардын тар бөлүгүн deep”терең жана ⅛” туурасында оюк жасадык.

Дубалды 4 2”бөлүктөргө бөлүп, бургулоочу пресстин жардамы менен дубалдын ортосуна диаметри ¼” болгон тешик жасаңыз.

4 -кадам: [Прототип] Биздин арабаны жасоо

[Прототип] Биздин арабаны жасоо
[Прототип] Биздин арабаны жасоо
[Прототип] Биздин арабаны жасоо
[Прототип] Биздин арабаны жасоо
[Прототип] Биздин арабаны жасоо
[Прототип] Биздин арабаны жасоо

Идеалында, биз 7x7 эки тешик болотту колдонмокпуз, бирок бизде болгону 2х7 тилкелери бар болчу, ошондуктан биз аларды "X" конфигурациясында бириктирдик.

Rubber”резина аралыктагы 5ти чогултуп, векс плиталардын бурчтарын бири -бирине бекемдеңиз

Жыгач дубалдарды 1 -сүрөттө көрсөтүлгөндөй бекер бекиткиле, ошондо алар болжол менен 2 дюймдук боштукта айланат, сүрөттү колдонуп, тиштердин кайда жайгаштырылышы керек экенин биз шайбаларды колдонгонбуз, бирок кийинчерээк кичинекей пластикалык векс тиштеринин жакшы иштээрин аныкташкан..

Ve “векс бурамаларын, ¼” резина аралыгын жана 1”диаметри шайбаларды колдонуу менен шайбаларды 1 -сүрөттө көрсөтүлгөндөй бийик абалда бекемдейбиз (биз туура шайбаларды таба албагандыктан жашыл пластик тиштүү дөңгөлөктөрдү колдонгонбуз), кир жуугучтардын жөндөмдүүлүгүн текшериңиз. оңой айлануу жана тактайдын оюктарына батуу.

5 -кадам: [Прототип] Баарын бириктирүү

[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү
[Прототип] Баарын бириктирүү

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

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

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

6 -кадам: [Прототип] Бүттү жана жылып жатат

Image
Image

Мындай болушу керек, курду ар кандай айкалышта тартып, анын колго тийгизген ар кандай эффекттерин көрүңүз!

7 -кадам: Биздин моделди даяр дизайнга которуу

Биздин моделди даяр дизайнга которуу
Биздин моделди даяр дизайнга которуу
Биздин моделди даяр дизайнга которуу
Биздин моделди даяр дизайнга которуу

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

  1. Масштаб

    1. Биздин прототип масштабдуу жана ийкемсиз болгондуктан, колубуздун четине оодарылып кетүүгө алып келди
    2. Вагон керектүүдөн алда канча чоңураак болчу жана анда бошко кеткен көп жерлер бар болчу
    3. Биздин кур (векс танкынын тебиши) зарыл болгондон алда канча чоңураак болчу, бул куралдын ортосундагы ашыкча боштукту киргизди
  2. Фрикция

    1. Биздин векс баскычтарыбыз жыгачтан жасалган дөңгөлөк роликтеринин үстүнөн бардык чекиттерде оңой эле өткөн жок
    2. Жыгачтын үстүндөгү пластмасса көп учурда арабаны жылдырууну каалабайт
  3. Моторлоштуруу

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

Ушуларды эске алып, биз акыркы долбоор үчүн пландарыбызды тарттык. Биз drawbotтун ардуино аркылуу Myo менен башкарылышын кааладык жана рамканы алюминийден кичине кылгыбыз келди.

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

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

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

8 -кадам: Коддоо

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

1. Миодон маалымат алыңыз (lua)

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

Бул мен урган биринчи жол тосууну жасады. Мен луанын өтө чоң чектөөсүн таптым жана бул сценарийди улантуудан мурун күтүүгө мүмкүндүк бербейт. Бул иш -аракетти аткаруунун бирден -бир жолу - бул CPUны токтотуу (аны глобалдык түрдө, атүгүл тутумдук саатты кармап туруп), же ОСтин атайын буйруктарын колдонуу. Менин мисал кодумда, мен аткарган (комментарий) баштапкы OS текшерүүсүндө калтырдым. Бул Луанын документациясында көп изилдөө жүргүзгөндөн кийин болду жана системанын жолунун форматын текшерүү аркылуу жасалды. Бул мен мурда жарыяланган долбоорлордун документтерин карап көрүүнү чечтим. Мен дароо эле канча убакыт коротконумду түшүндүм жана ошол замат платформа өзгөрмөсүнө алып келдим. Анын жардамы менен, мен мурунку чечимимди чогуу жасоо үчүн талап кылган күндөргө караганда, OSтин күткөн буйруктарын дээрлик дароо ишке ашыра алдым.

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

2. Arduino тегерегинде иштөө (C ++)

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

Мен кезекке туруу функциясын мурдагыдай эле ишке ашырбаса, аны сактоо керек деп чечтим. Бул үчүн массивдердин векторун түздүм. Бул мага мурунку дизайнымдын рухун салыштырмалуу бүтүн бойдон сактоого мүмкүндүк берди, бирок мен файлды окуудагы жана жазуудагы ордумду көзөмөлдөөнүн кажети жок дегенди билдирет. Анын ордуна, азыр мен колдонуучу жылып бара жаткан болсо, менин векторума жаңы маанини кошуу гана керек болчу (алдын ала тестирлөө акыркы жаздырылган ордунан x жана y боюнча кенеп өлчөмүнүн айырмасынын 1% дан азыраагын түздү). Мен андан кийин векторумдагы эң эски маанини алып, бир эле учурда мотордун көзөмөлүнө жөнөтүп, биздин файлга жазып, анан векторумдан алып салсам болот. Бул IO агымынын үзгүлтүксүз иштеши жөнүндө көп тынчсыздануумду тазалады.

9 -кадам: Электр

Image
Image
Электр
Электр

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

Мен колдонгон материалдар:

2 x Step моторлору

1 х нан тактасы

1 x Arduino (Uno)

2 x Айдоочу IC L293DE

40 x Jumper зымдары

2 x Fans

1. Stepper Motors менен желдеткичти Breadboardго туташтыруу

Райондук схемага ылайык, биз бир баскычтуу моторду айдоочуга нан тактасындагы зым менен байланыштыра алабыз. Андан кийин, ошол эле схемага ылайык, экинчи айдоочуга жана моторго тиешелүү, бирок секирүүчү зымдарды ардуинодогу башка казыктарга туташтырууга туура келет (анткени биринчи мотор 4 кишинин ордун ээлейт).

Эскертүү/Кеңеш:

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

Кийинки - күйөрмандарга зым тартуу. Бул абдан жөнөкөй, менде болгон күйөрмандар оң жана негизи бар негизги компьютер процессорунун күйөрмандары болчу. Бул экөөнү нан тактасындагы +/- казыктарына сайып, ар бирин айдоочуга буруңуз. (Степпердик моторлор узак убакыт бою маалымат жана буйруктарды алып жаткандыктан, айдоочулар ысып кетет жана жытташат. Аны муздатуу үчүн желдеткич кошуу бул маселени чечти).

2. Arduino коду

Бул жеңил бир бөлүгү болуп саналат!

Arduino IDE'ди ачыңыз "Файл" өтмөгүнө өтүңүз, андан кийин "мисал" өтмөгүнө түшүңүз, ал андан ары төмөн түшөт жана сизге "кадам" өтмөгүн көрсөтөт. Андан кийин "Stepper_OneStepAtATime" ачкыңыз келет.

Бул arduino/мотор зымдарына туташтырып ойнотуучу кодду жүктөйт. Биз кичине жөнгө салууга туура келет, анткени биз эки моторду иштетебиз, мен аларды төмөндө көрсөтөм. Сиз ошондой эле Arduino IDE 8-11 пинге чейин демейки шартта, кайсы казыктарды колдонууну чечкениңизге жараша, кичине түзөтүүлөрдү киргизишиңиз керек болот.

Мен эки моторду "синхрондоштуруу" үчүн жылдыруу үчүн колдонгон код төмөндө:

//#кирет

const int stepsPerRevolution = 200;

Stepper myStepper1 (StepPerRevolution, 9, 10, 11, 12);

Stepper myStepper2 (StepPerRevolution, 4, 5, 6, 7);

int stepCount = 0;

void setup () {// сериялык портту инициализациялоо: Serial.begin (9600); }

void loop () {

myStepper1.step (1);

Serial.print ("кадамдар:");

Serial.println (stepCount);

stepCount ++;

кечигүү (0.5);

myStepper2.step (1); кечигүү (0.5); }

3. Мүмкүн болгон көйгөйлөр

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

Колдонуп жаткан айдоочуңуз моторду башкара алаарын текшериңиз

Сериялык номерди жана анын өзгөчөлүктөрүн текшериңиз

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

Ар бир зымды текшерүү үчүн мультиметрди колдонууга туура келди

Жана ар дайым кодуңузду текшериңиз, кичине каталар үчүн ";" буйрук

10 -кадам: Механикалык

Механикалык
Механикалык
Механикалык
Механикалык
Механикалык
Механикалык
Механикалык
Механикалык

1. Материал

Колдордун толук өндүрүштүк модели үчүн алар күчтүү, бирок жеңил материалдан жасалышы сунушталат, биз алюминийдин эң сонун ылайыктуу экенин сездик.

Биз 032 калибрдүү алюминий барактарын 9.125 "x 17.5" чейин кесип колдонуп, мурунку кадамда көрсөтүлгөн чиймеден үлгүнү байкадык.

2. даярдоо

Геммерди (көк машинаны) колдонуп, биз карама -каршы тарапка караган этектерди коштук, ошондо бөлүк сынганда жана бүктөлгөндө, эки этек бири -бирине жабышып, бир бүтүн бөлүктү түзөт.

Чоң ийилүү үчүн биз теннисмитти колдондук, анткени анын тактыгы жогору.

Азыр кичине ийилүү үчүн, сиз кичинекей буту бар машинаны колдонууну каалайсыз, мында рото-өлүк сыяктуу машина келет. Анын кичинекей буту болгондуктан, кичине тыныгууларды жасоого мүмкүндүк берет, тилекке каршы, Колубуздагы рото-диэль биздин темир жол үчүн дагы эле чоң болчу жана ал деформацияланган.

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

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

3. Бел

Курлар үчүн биз куткара алган эски 3D принтер курларын колдондук.

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

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

4. Араба

Акыр -аягы, араба 5 "x 5" 032 алюминийден жасалып, тиешелүү бурамалар менен шайбалар кете турган тешик бургуланган. Аралыгы сиздин темир жолуңуздун тууралыгына жана кир жуугучтарыңызга канчалык тазалыкка жараша өзгөрөт.

11 -кадам: Ой жүгүртүү

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

Долбоордо иштегендердин баары долбоордун башка аспектилери жөнүндө көбүрөөк билишти. Программаны конкреттүү бир иш кылуу - бул башка нерсе, андан кийин программалык камсыздоону аппараттык жабдыктар менен бирге иштетүү - бул башка нерсе. Мен айтаар элем, бул долбоордун коддоо жагында ким иштеп жатса, биздин долбоордун кодери сыяктуу тааныш болушу керек.

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

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