Мазмуну:

Ротациялык Ок менен Объект Көз салуу Камерасынын Слайдери. 3D Printed & RoboClaw DC Motor Controller & Arduino боюнча курулган: 5 кадам (Сүрөттөр менен)
Ротациялык Ок менен Объект Көз салуу Камерасынын Слайдери. 3D Printed & RoboClaw DC Motor Controller & Arduino боюнча курулган: 5 кадам (Сүрөттөр менен)

Video: Ротациялык Ок менен Объект Көз салуу Камерасынын Слайдери. 3D Printed & RoboClaw DC Motor Controller & Arduino боюнча курулган: 5 кадам (Сүрөттөр менен)

Video: Ротациялык Ок менен Объект Көз салуу Камерасынын Слайдери. 3D Printed & RoboClaw DC Motor Controller & Arduino боюнча курулган: 5 кадам (Сүрөттөр менен)
Video: Wifi 4G G.Craftsman камерасы МОНИТОРЛАР АДАМДАР КӨЛІКТЕРДІ АНЫҚТАДЫ. 2024, Июль
Anonim
Image
Image
Аппараттык дизайн + Build + 3D басып чыгаруу
Аппараттык дизайн + Build + 3D басып чыгаруу

Fusion 360 долбоорлору »

Бул долбоор менин видео тартууга болгон кызыгуумду DIY менен айкалыштыра баштагандан бери менин эң жакшы көргөн долбоорлорумдун бири болуп калды. Мен ар дайым камераны экранда жылдырган тасмаларды ошол кинематикалык кадрларга окшоштурууну каалачумун. Бул башкача айтканда 2d видеого абдан кызыктуу тереңдик эффектин кошот. Муну миңдеген долларды Голливуд жабдууларына коротпой эле кайталагым келип, мындай камера слайдерин өзүм курууну чечтим.

Бүт долбоор сиз 3D басып чыгара турган бөлүктөргө курулган жана код популярдуу Arduino тактасында иштейт. CAD файлдары жана коду сыяктуу бардык долбоор файлдары төмөндө жүктөлүп алынат.

CAD/ 3D басып чыгаруу файлдары бул жерде

Arduino Code файлы бул жерде жеткиликтүү

Долбоор 2 тиштүү щеткалуу DC моторлорунун жана Basic Micro Roboclaw Motor контроллеринин айланасында айланат. Бул мотор контроллери щеткаланган DC моторлорун укмуштуудай позициялык тактыкка, тонна моментке жана толук 360 градуска айланууга ээ болгон сервонун жогорку түрүнө айландыра алат. Бул тууралуу кийинчерээк.

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

Материалдар-

  • Бардык бөлүктөрдү туташтыруу үчүн колдонулган 2х 1 метр узундуктагы m10 сайма таякчалар
  • 8х M10 гайкалары тетиктерди сайма таяктарга орнотуу үчүн
  • 2х 95 см узундукта 8мм жылмакай болот таякчалар тайгалак үчүн
  • 4x lm8uu подшипниктер болоттон жасалган таякчаларга жылмакай жылат
  • Моторду орнотуу үчүн 4х 10мм м3 жаңгактар
  • 2 х скейтборд подшипниктери (22мм тышкы диаметри, 8мм ички диаметри) айлануу огу үчүн
  • 1х 15мм бош турган тарабы үчүн подшипник
  • 1x 4см узундуктагы m4 болт m4 кулпу гайкасы менен боштуктун 3d басылган бөлүгүнө орнотуу үчүн.
  • Слайдер мотору үчүн 4мм ички диаметри бар 20 тиштүү тиш. Так шкив өтө маанилүү эмес, анткени сиздин DC моторуңуз жетиштүү моментке багытталышы керек. Жөн гана бул сиздин куруңуз менен бирдей экенин текшериңиз
  • Узундугу 2 метр GT2 куру. Дагы бир жолу, сиз каалаган ременди колдоно аласыз, эгерде ал чыгырыктын тиштерине туура келсе.

Электроника

  • 2 * Encoders менен тиштүү DC моторлору (бири капталдагы кыймылды көзөмөлдөйт, экинчиси айлануу огун башкарат). Мына мен колдонгон. Бул тууралуу кененирээк гиддин Электроника бөлүмүндө
  • RoboClaw DC мотор контроллери. (Мен 15Amp кош контроллерин колдондум, анткени ал эки моторду бир контроллер менен башкарууга мүмкүндүк берди)
  • Ар кандай Arduino. Мен Arduino UNO колдондум
  • Батарея/ Кубат булагы. (Мен 7.4V 2 клеткалуу LiPo батареясын колдондум)
  • Экран (Менюну көрсөтүү үчүн. U8Gге шайкеш келген каалаган экран иштейт, мен бул 1.3 дюймдук OLED экранды колдондум)
  • Rotatry encoder (Менюда опцияларды чабыттоо жана конфигурациялоо үчүн)
  • Физикалык баскыч (слайдердин кыймылын козгоо үчүн)

1 -кадам: Аппараттык Дизайн + Build + 3D Басып чыгаруу

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

Кийинки, электроникага өтөлү. Электроника - бул долбоордун ийкемдүүлүгү көп.

Бул долбоордун өзөгүнөн баштайлы- 2 щеткалуу DC кыймылдаткычтары.

Мен бир нече себептерден улам щеткалуу DC моторлорун тандадым.

  1. Чачтуу моторлор степ моторлоруна салыштырмалуу зым менен иштөө алда канча жөнөкөй
  2. Кыйылган DC моторлору DC кыймылдаткычтарына караганда бир кыйла жеңил, анткени бул мотор физикалык түрдө камера менен капталдан жылып турат жана муну мүмкүн болушунча жеңил кылып, негизги камеранын слайдер моторунда ашыкча штаммды болтурбоо үчүн маанилүү.

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

Бул бизди RoboClaw кыймыл контроллерине алып келет. Roboclaw мотору кош DC мотор контроллери сиздин кодуңуздун буйруктары аркылуу Arduinoдон жөнөкөй көрсөтмөлөрдү алат жана моторуңуздун иштешин каалагандай кылуу үчүн бардык оор иштетүүлөрдү жана кубаттуулукту жеткирет. Arduino сигналдарды Roboclawга PWM, Analog чыңалуу, жөнөкөй серия же пакет сериясы аркылуу жөнөтө алат. Пакеттик сериал - бул эң жакшы жол, анткени ал позициялык байкоо үчүн зарыл болгон Roboclawдан маалыматты алууга мүмкүнчүлүк берет. Мен кийинки кадамда Roboclawдун программалык камсыздоо/программалоо бөлүгүнө тереңирээк кирем (программалоо).

Негизи, Roboclaw RoboClawдун позициялык көзөмөлдү жөндөмдүүлүгүнүн аркасында DC коддолгон моторду сервого окшош кылып өзгөртө алат. Бирок, салттуу серводон айырмаланып, азыр сиздин щеткалуу DC моторуңуз көбүрөөк моментке ээ, мотордун жогорку тетигине байланыштуу позициялык тактыкка ээ, эң негизгиси, сиздин DC моторуңуз 360 градуста үзгүлтүксүз айлана алат, экөө тең салттуу серво кыла албайт.

Кийинки электроника бөлүгү - экран. Экраным үчүн мен анын OLED панелин чоңдугуна жана контрастынын жогору болушуна байланыштуу тандап алдым. Бул жогорку контраст укмуштуудай жана экранды потенциалдуу караңгы камерага тоскоол боло турган өтө көп жарык бербестен, түз күндүн нурунда колдонууну оңой кылат. Бул экранды башка U8G шайкеш экранга оңой алмаштырса болот. Ылайыктуу экрандардын толук тизмеси бул жерде. Чындыгында, бул долбоор U8G китепканасынын айланасында атайылап коддолгон, андыктан сиз сыяктуу DIY куруучулардын бөлүктөрүндө ийкемдүүлүк көбүрөөк болгон.

Бул долбоордун акыркы электроникалык бөлүктөрү айлануучу коддогуч жана слайдердин кыймылын баштоо үчүн баскыч болгон. Коддогуч экрандын менюсунда чабыттоого жана бардык слайдердин менюну бир эле терүү менен конфигурациялоого мүмкүндүк берет. Ротари кодердин салттуу потенциометр сыяктуу "аягы" позициясы жок жана бул экранда объектилерди көзөмөлдөөнүн x жана y координаттарын өзгөртүү үчүн өзгөчө пайдалуу. Баскыч баскыч айлануучу коддогуч менен скрипка кылбастан, слайдердин кыймылын баштоо үчүн гана колдонулат.

3 -кадам: Камера слайдерин программалоо

Камера слайдерин программалоо
Камера слайдерин программалоо
Камера слайдерин программалоо
Камера слайдерин программалоо

Коддоо бул долбоордун эң татаал чакырыгы болчу. Көрдүңүзбү, мен башынан эле слайдер экрандан башкарылсын деген элем. Бул долбоорду мүмкүн болушунча көбүрөөк экрандарга шайкеш келтирүү үчүн, Arduino үчүн U8Glib китепканасын колдонууга туура келди. Бул китепкана 32ден ашык экрандарды колдойт. Бирок, U8Glib китепканасы экранда менюну тартуу үчүн сүрөт циклин колдонгон жана бул камеранын бурчун эсептөө функциясы үчүн керектүү болгон камеранын абалы жөнүндө маалыматты бир убакта чогултуу Arduino жөндөмдүүлүгүнө каршы келет (Бул кийинки эки параграфта камтылган)). U8Glib2де сүрөттөр циклине альтернатива бар, бул толук беттин буфердик опциясы деп аталат, бирок китепкана өтө көп эс тутумду сарптады жана Arduino Uno эс тутумунун чектөөлөрүн эске алуу менен коддун калган бөлүгүнө туура келүүнү кыйындатты. Бул U8G менен тыгылып калганымды жана слайдер кыймылда болгондо жана Arduino Roboclawдан позициялык маалыматтарды чогултуу үчүн керек болгон учурда экранды жаңыртуунун алдын алуу менен бул маселени чечүүгө туура келгенин билдирет. Мен ошондой эле меню циклинин сыртына жыла баштоо үчүн слайдерди иштетүүгө аргасыз болдум, анткени мен суб-менюга киргенде, мен сүрөт циклинин ичинде болчумун жана слайдер ойдогудай иштебейт. Мен ошондой эле бул көйгөйдү айланып өтүү үчүн, өзүнчө физикалык баскычка ээ болдум.

Кийинки, ротациялык көзөмөлдөөчү элемент жөнүндө сүйлөшөлү. Бул бөлүк интеграциялоо үчүн абдан татаал көрүнөт, бирок чындыгында жөнөкөй. Бул үчүн ишке ашыруу менин Arduino кодумдун ичиндеги "motor ()" функциясынын астында. Биринчи кадам - 2 өлчөмдүү сетка түзүү жана сиз көз салгыңыз келген объект кайда жайгаштырылганын чечүү. Ошонун негизинде учурдагы жайгашкан жериңизге үч бурчтук тартсаңыз болот. Сиз учурдагы жайгашкан жериңизди мотордун коддоочусунан ала аласыз. Эгерде сиз көз салынып жаткан объекттин абалын см/мм менен конфигурациялоону кааласаңыз, анда коддогучтун маанисин см/ммге которушуңуз керек болот. Бул жөн гана камера сыдырмасын 1 см жылдыруу жана коддогучтун маанисин жогорулатуу аркылуу жасалышы мүмкүн. Сиз бул маанини encoder_mm өзгөрмөсүнүн астына коддун үстүнө киргизе аласыз.

Мындан ары, биз тескери тангенс функциясын колдонуп, камера сиздин объектиңизге багытталышы керек болгон бурчка ээ болобуз. Тескери тангенс үч бурчтуктун карама -каршы жана чектеш тарабын алат. Үч бурчтуктун карама -каршы тарабы эч качан өзгөрбөйт, анткени бул сиздин слайдериңизден объектке чейинки аралык. Камера слайдеринин чектеш жагы өзгөрөт. Бул чектеш тарапты объекттин x позициясын алып, андан учурдагы абалын алып салуу менен эсептесе болот. Слайдер өзүнүн кыймыл диапазону боюнча жылган сайын, ал коддогучтун мааниси боюнча Arduino жаңыртуусун улантат. Arduino бул коддогучтун маанисин бир нече жолу см/мм х позициялык мааниге айландырат, андан кийин чектеш капталдын узундугун эсептейт жана акыры объектиге багыттоо үчүн камера ар дайым туш болушу керек болгон бурчту эсептейт.

Эми биздин Arduino камеранын бурчун динамикалуу түрдө иштеп жатат, биз бул бурчту потенциалдуу мааниге айландыруучу моторду жылдыра алабыз. Бул бизди RoboClawдун бул долбоор үчүн эң чоң өзгөчөлүгүнө алып келет. Roboclawго позициянын маанисин берүү менен, бул чындыгында DCдын щеткаланган моторун servo сыяктуу кылышы мүмкүн. Серводон айырмаланып, биздин моторубуз көп моментке, алда канча тактыкка ээ жана 360 градусту айланта алат.

Roboclawду белгилүү бир кызматка жылдыруу үчүн Arduino коду төмөнкүчө:

roboclaw. SpeedAccelDeccelPositionM1 (дарек, "ылдамдык", "ылдамдатуу", "басаңдоо", "баргыңыз келген позиция", 1);

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

RoboClaw мага ылдамдык, басаңдоо жана PID баалуулуктары сыяктуу башка факторлорду тууралоо мүмкүнчүлүгүн берди. Бул мага айлануу огунун кыймылын жумшартууга мүмкүндүк берди, өзгөчө бурч кичине өзгөргөндө жана "D" PID мааниси жок чуркоо кошулганда. Сиз ошондой эле Roboclaw рабочий колдонмосу аркылуу PID баалуулуктарыңызды автоматтык түрдө тууралай аласыз.

4 -кадам: Камера слайдерин иштетүү

Камера слайдерин иштетүү
Камера слайдерин иштетүү

Эми биз кызыктуу бөлүккө келебиз, слайдер менен иштөө Менюда 4 негизги өтмөк бар. Жогорку өтмөк ылдамдыкты көзөмөлдөөгө арналган. Менюнун ортоңку катарында көз салынган объекттин X & Y абалын мм менен конфигурациялоо үчүн өтмөктөр бар, ошондой эле эгер биз слайдердин объектибизди айланып, көз салып туруусун кааласак же жөн эле айлануусуз жылма кыймыл жасасак. Ротари коддогучтун бурулушу бизге менюлардын ар кандай варианттарын башкарууга мүмкүнчүлүк берет. Опциялардын бирин конфигурациялоо үчүн, опцияга өтүңүз жана айлануучу коддогучту басыңыз. Басылганда, айлануучу кодерди айландыруу меню аркылуу сүртүүнүн ордуна, бөлөк суб-менюнун маанисин өзгөртөт. Каалаган мааниге жеткенден кийин, ротациялык коддогучту кайра чыкылдата аласыз. Эми сиз башкы менюга кайтып келдиңиз жана ар кандай өтмөктөрдүн ортосунда жүрө аласыз. Даяр болгондон кийин, экрандын жанындагы өтүү баскычын басыңыз жана слайдер өз ишин аткарат!

Камера слайдерин колдонуп бүткөндөн кийин, камера "үй" абалында экенин текшериңиз: слайдердин капталы башталды. Мунун себеби мотордук кодер абсолюттук кодер эмес, башкача айтканда Roboclaw/Arduino кодердин кайда экенин айта албайт. Алар кодер акыркы жолу иштетилгенден бери канчалык өзгөргөнүн гана айта алышат. Бул камера сыдырмаңызды өчүргөнүңүздө, сыдырма слайдердин ордун "унутуп", коддогучту баштапкы абалга келтирет дегенди билдирет. Андыктан, эгер сиз слайдериңизди башка тараптан өчүрсөңүз, аны күйгүзгөнүңүздө, слайдер болот четинен ары жылып, жылма дубалга урунууга аракет кылыңыз. Бул коддогучтун жүрүм -туруму, камеранын ар бир слайд кыймылынан кийин айлануу бурчун баштапкы абалга келтирет. Айлануу огу да кыймыл диапазонунун аягына кулап түшүүдөн өзүн коргойт.

Сиз муну жүктөө учурунда токтотуу жана хостинг процедурасын кошуу менен оңдой аласыз. Муну 3d принтерлер колдонушат.

5 -кадам: Акыркы ойлор + Келечектеги жакшыртуулар

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

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

Акырында, эгерде мен 2.0 версиясын жаратсам, бул жерде мен жасай турган кээ бир жакшыртуулар бар

  1. Айлануу огунун мотору үчүн жогорку тиш катышы. Жогорку редуктордук коэффициент мен такыраак кичине кыймылдарды жасай алам дегенди билдирет. Бул камера объектиңизден алыс болгондо жана камераңыздын бурчу өтө жай өзгөргөндө өзгөчө маанилүү. Азыркы учурда, менин моторум өтө жогору багытталган эмес жана камеранын слайдери өтө жай иштегенде же айлануу бурчу өтө аз өзгөргөндө бир аз кыймылга алып келиши мүмкүн. Жогорку 'D' PID маанисин кошуу мага андан арылууга жардам берди, бирок объектилерди көзөмөлдөөнүн тактыгынан бир аз төмөндөдү.
  2. Модулдук узундук. Бул алыскы максат, бирок мен камеранын слайдеринин модулдук болушун каалайт элем, башкача айтканда, сиз камеранын жылышы үчүн узунураак тректерди оңой тиркей аласыз. Бул өтө татаал, анткени эки тректи теңдештирүү жана кур системасынын кантип иштээрин түшүнүү керек болот. Ошентсе да, бул сонун жаңыртуу болмок!
  3. Ыңгайлаштырылган кыймыл Keyframing. Мен бул камера слайдерине ачкычтуу кыймылдар түшүнүгүн киргизгим келет. Keyframing - бул видео жана аудио өндүрүшүндө абдан кеңири колдонулган техника. Бул камеранын сызыктуу эмес кыймылдарын иштетет, анда камера бир позицияга барат, күтөт, кийин башка абалга башка ылдамдык менен жылат, күтөт, анан үчүнчү позицияга ж.б.
  4. Bluetooth/ зымсыз телефонду башкаруу. Камера слайдеринин параметрлерин зымсыз конфигурациялоо жана камера слайдерин жайгашкан жерлерге жетүү кыйын болгон жерде орнотуу чынында сонун болмок. Телефон колдонмосу акыркы абзацта айтылгандай ачкыч кадрды интеграциялоо мүмкүнчүлүгүн ачышы мүмкүн.

Бул бул окуу куралы үчүн. Төмөндөгү комментарийлер бөлүмүндө кандайдыр бир суроолорду калтыруудан тартынбаңыз.

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

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