Talaan ng mga Nilalaman:

Pagsubaybay sa Bagay ng Camera Slider Sa Paikot na Axis. 3D Naka-print at Itinayo sa RoboClaw DC Motor Controller at Arduino: 5 Hakbang (na may Mga Larawan)
Pagsubaybay sa Bagay ng Camera Slider Sa Paikot na Axis. 3D Naka-print at Itinayo sa RoboClaw DC Motor Controller at Arduino: 5 Hakbang (na may Mga Larawan)

Video: Pagsubaybay sa Bagay ng Camera Slider Sa Paikot na Axis. 3D Naka-print at Itinayo sa RoboClaw DC Motor Controller at Arduino: 5 Hakbang (na may Mga Larawan)

Video: Pagsubaybay sa Bagay ng Camera Slider Sa Paikot na Axis. 3D Naka-print at Itinayo sa RoboClaw DC Motor Controller at Arduino: 5 Hakbang (na may Mga Larawan)
Video: MERCOLEMINI-MINI4WD MACHINING TOOLS 2024, Hulyo
Anonim
Image
Image
Disenyo ng Hardware + Bumuo + 3D Pag-print
Disenyo ng Hardware + Bumuo + 3D Pag-print

Mga Proyekto ng Fusion 360 »

Ang proyektong ito ay naging isa sa aking mga paboritong proyekto mula nang pagsamahin ko ang aking interes sa paggawa ng video sa DIY. Palagi kong tiningnan at nais na tularan ang mga cinematic shot na iyon sa mga pelikula kung saan gumagalaw ang isang camera sa isang screen habang nag-i-pan upang subaybayan ang bagay. Nagdaragdag ito ng isang napaka-kagiliw-giliw na malalim na epekto sa isang kung hindi man 2d na video. Nais na gayahin ito nang hindi gumagasta ng libu-libong dolyar sa gamit ng Hollywood, nagpasya akong magtayo ng naturang isang camera slider sa aking sarili.

Ang buong proyekto ay binuo sa mga bahagi na maaari mong i-print sa 3D, at tumatakbo ang code sa sikat na Arduino board. Ang lahat ng mga file ng proyekto tulad ng mga CAD file at code ay magagamit para sa pag-download sa ibaba.

Magagamit ang mga file na CAD / 3D print dito

Magagamit ang Arduino Code file dito

Ang proyekto ay umiikot sa 2 nakatuon na brushing DC na motor at ang Controller ng Basic Micro Roboclaw Motor. Maaaring baguhin ng motor control na ito ang brushing DC motor sa isang nakahihigit na uri ng servo na may hindi kapani-paniwalang posisyonal na kawastuhan, toneladang metalikang kuwintas, at isang buong 360 degree na pag-ikot. Higit pa rito

Bago kami magpatuloy, panoorin muna ang video tutorial na naka-link dito. Ang tutorial na iyon ay magbibigay sa iyo ng isang pangkalahatang-ideya ng kung paano mabuo ang proyektong ito at ang gabay na ito ng Mga Tagubilin ay higit na lalalim sa kung paano ko itinatayo ang proyektong ito.

Mga Materyal-

  • 2x 1 metro ang haba m10 may sinulid na mga tungkod na ginamit upang ikonekta ang lahat ng mga bahagi
  • 8x M10 nut upang mai-mount ang mga bahagi sa mga sinulid na tungkod
  • 2x 95 cm ang haba 8mm makinis na mga tansong bakal para sa slide upang mag-slide
  • 4x lm8uu bearings para sa slider upang maayos na dumulas sa mga steel rod
  • 4x 10mm ang haba m3 nut para sa pag-mount ang motor
  • 2 x skateboard bearings (22mm panlabas na diameter, 8mm panloob na lapad) para sa paikot na axis
  • 1x 15mm tindig para sa panig na tamad
  • 1x 4cm ang haba m4 bolt na may m4 lock nut para sa pag-mount ng idler na tindig sa idler na naka-print na bahagi.
  • 20 gear ngipin na may 4mm panloob na lapad para sa slider motor. Ang eksaktong pulley ay hindi masyadong mahalaga dahil ang iyong DC motor ay dapat na nakatuon para sa sapat na metalikang kuwintas. Siguraduhin lamang na ito ay parehong pitch ng iyong sinturon
  • 2 metro ang haba ng GT2 Belt. Muli maaari mong gamitin ang anumang sinturon hangga't tumutugma ito sa pitch ng ngipin ng iyong kalo.

Elektronika

  • 2 * Nakatuon ang DC motors na may mga encoder (kinokontrol ng isa ang paggalaw ng pag-ilid, habang kinokontrol ng iba ang paikot na axis). Eto yung ginamit ko. Higit pa rito sa bahagi ng Electronics ng gabay
  • Controller ng RoboClaw DC motor. (Ginamit ko ang dalawahang 15Amp controller dahil pinapayagan akong kontrolin ang parehong mga motor na may isang controller)
  • Kahit anong Arduino. Ginamit ko ang Arduino UNO
  • Pinagmulan ng baterya / Lakas. (Gumamit ako ng isang 7.4V 2 cell LiPo na baterya)
  • Screen (Para sa pagpapakita ng menu. Anumang U8G na katugmang screen ay gagana, ginamit ko ang 1.3 inch OLED screen na ito)
  • Rotatry encoder (Para sa pag-navigate at pag-configure ng mga pagpipilian sa menu)
  • Pisikal na pindutan ng itulak (Para sa pagpapalitaw ng paggalaw ng slider)

Hakbang 1: Disenyo ng Hardware + Bumuo + 3D Pag-print

Elektronika
Elektronika

Susunod na magpatuloy tayo sa electronics. Ang electronics ay kung saan ang proyektong ito ay may maraming kakayahang umangkop.

Magsimula tayo sa core ng proyektong ito- ang 2 brushing DC motor.

Pinili ko ang brushing DC motors para sa ilang kadahilanan.

  1. Ang mga brotadong motor ay mas simple sa pag-wire at pagpapatakbo kumpara sa mga stepper motor
  2. Ang brushing DC motors ay mas magaan kaysa sa DC motors na kung saan ay lalong mahalaga para sa rotational axis motor dahil ang motor na iyon ay pisikal na gumagalaw nang lateral gamit ang camera at ginagawa itong kasing ilaw hangga't maaari ay mahalaga para mapigilan ang labis na pilay sa pangunahing motor na slider ng camera.

Pinili ko ang partikular na DC motor na ito. Ang motor na ito ay nagbigay sa akin ng isang napakataas na halaga ng metalikang kuwintas na kinakailangan para sa paglipat ng isang mabibigat na karga ng camera. Bukod dito, ang mataas na paggalaw ay nangangahulugan na ang rurok na RPM ay mabagal na nangangahulugang maaari akong makapag-film ng mas mabagal na paggalaw, at ang mataas na paggalaw ay humantong din sa mas mataas na katumpakan ng posisyonal dahil ang isang 360 degree na pag-ikot ng output shaft ay nangangahulugang 341.2 na bilang ng encoder ng motor.

Dinadala tayo nito sa RoboClaw motion controller. Ang Roboclaw motor dual DC motor controller ay tumatagal ng simpleng mga tagubilin mula sa iyong Arduino sa pamamagitan ng simpleng mga utos ng code at ginagawa ang lahat ng mabibigat na pagproseso at paghahatid ng kuryente upang gawin ang paggana ng iyong motor tulad ng inilaan. Ang Arduino ay maaaring magpadala ng mga signal sa Roboclaw sa pamamagitan ng PWM, Analog voltage, simpleng serial, o packet serial. Ang serial packet ay ang pinakamahusay na paraan upang pumunta dahil pinapayagan kang makakuha ng impormasyon mula sa Roboclaw na kinakailangan para sa pagsubaybay ng posisyonal. Sumisid ako nang mas malalim sa bahagi ng software / programa ng Roboclaw sa susunod na hakbang (pag-program).

Sa esensya, ang Roboclaw ay maaaring magbago ng isang DC brushing motor na may isang encoder upang maging mas katulad ng isang servo salamat sa kakayahan ng RoboClaw na makagawa ng posisyong kontrol. Gayunpaman hindi katulad ng isang tradisyunal na servo, ngayon ang iyong brushing DC motor ay may mas maraming metalikang kuwintas, higit na katumpakan ng posisyonal dahil sa mataas na paggalaw ng motor, at higit sa lahat, ang iyong motor na DC ay maaaring paikutin sa 360 degree na patuloy na alinman sa hindi magagawa ng isang tradisyunal na servo.

Ang susunod na bahagi ng electronics ay ang screen. Para sa aking screen, pinili ko ang OLED panel na ito dahil sa laki, at mataas na kaibahan. Ang mataas na kaibahan na ito ay hindi kapani-paniwala at ginagawang napakadaling gamitin ang screen sa direktang sikat ng araw habang hindi nagbibigay ng sobrang ilaw na maaaring makagambala sa isang potensyal na shot ng madilim na camera. Ang screen na ito ay maaaring madaling ipagpalit para sa isa pang U8G katugmang screen. Ang buong listahan ng mga katugmang screen ay magagamit dito. Sa katunayan ang proyektong ito ay sadyang naka-code sa paligid ng silid-aklatan ng U8G kaya't ang mga tagabuo ng DIY na tulad mo ay may higit na kakayahang umangkop sa kanilang mga bahagi

Ang huling bahagi ng electronics para sa proyektong ito ay ang rotary encoder, at push button para sa pagsisimula ng paggalaw ng slider. Pinapayagan ka ng encoder na mag-navigate sa menu ng screen at i-configure ang lahat ng menu ng slider gamit ang isang dial lang. Ang rotary encoder ay walang posisyon na 'end' tulad ng isang tradisyunal na potensyomiter, at lalo itong kapaki-pakinabang para sa pag-tweak ng x at y mga koordinasyon ng pagsubaybay ng object sa screen. Ang push button ay ginagamit ng eksklusibo upang simulan ang paggalaw ng slider nang hindi kinakailangang kumilos sa rotary encoder.

Hakbang 3: Programming ang Camera Slider

Programming ang Camera Slider
Programming ang Camera Slider
Programming ang Camera Slider
Programming ang Camera Slider

Ang pag-coding ay ang pinakamahirap na hamon ng proyektong ito. Kita mo, mula sa simula ay nais kong makontrol ang slider mula sa isang screen. Upang gawing katugma ang proyektong ito sa maraming mga screen hangga't maaari, kinailangan kong gamitin ang U8Glib Library para sa Arduino. Ang library na ito ay may suporta para sa higit sa 32 mga screen. Gayunpaman, ang silid-aklatan ng U8Glib ay gumamit ng isang loop ng larawan upang iguhit ang menu sa screen at sumalungat ito sa kakayahan ng Arduino na sabay na mangolekta ng impormasyon sa posisyon ng kamera na kinakailangan para sa pagpapaandar ng pagkalkula ng anggulo ng camera (Saklaw ito sa susunod na pares ng mga talata). Ang U8Glib2 ay may kahalili sa loop ng larawan sa pamamagitan ng paggamit ng isang bagay na tinatawag na isang buong pahina na pagpipilian ng buffer ngunit ang aklatan ay natupok ng labis na memorya at ginawang mahirap magkasya sa natitirang code na ibinigay sa mga hadlang sa memorya ng Arduino Uno. Nangangahulugan ito na ako ay natigil sa U8G at kailangang magtrabaho tungkol sa isyu sa pamamagitan ng pagpigil sa screen mula sa pag-update anumang oras na gumagalaw ang slider at kailangan ng Arduino upang mangolekta ng posisyong data mula sa Roboclaw. Napilitan din akong mag-trigger ng slider upang magsimulang lumipat sa labas ng menu loop sa sandaling pumasok ako sa mga sub-menu, nasa loob ako ng loop ng larawan, at ang slider ay hindi gagana tulad ng nilalayon. Iniwas ko rin ang isyung ito sa pamamagitan ng pagkakaroon ng isang hiwalay na pisikal na pindutan na nagpapalitaw sa paggalaw ng slider.

Susunod ay pag-usapan natin ang tungkol sa umiikot na elemento ng pagsubaybay. Ang bahaging ito ay tila napaka-kumplikado upang isama, ngunit ito ay talagang medyo simple. Ang pagpapatupad para dito ay nasa ilalim ng pagpapaandar ng 'motor ()' sa loob ng aking Arduino code. Ang unang hakbang ay upang gumawa ng isang 2 dimensional na grid at nagpasya kung saan nakalagay ang bagay na nais mong subaybayan. Batay sa na maaari kang gumuhit ng isang tatsulok sa iyong kasalukuyang lokasyon. Maaari mong makuha ang iyong kasalukuyang lokasyon mula sa halaga ng encoder ng motor. Kung nais mong i-configure ang posisyon ng bagay na sinusubaybayan sa cm / mm, kakailanganin mong isalin ang iyong halaga ng encoder sa isang cm / mm na halaga. Maaari lamang itong magawa sa pamamagitan ng paglipat ng camera slider ng 1 cm at pagsukat sa pagtaas ng halaga ng encoder. Maaari mong mai-input ang halagang ito sa tuktok ng code sa ilalim ng variable ng encoder_mm.

Nagpapatuloy, ngayon gagamitin namin ang kabaligtaran na paggana ng paggalaw upang makuha ang anggulo na dapat harapin ng camera upang ituro ang iyong object. Ang kabaligtaran tangent ay tumatagal sa kabaligtaran at katabing bahagi ng tatsulok. Ang kabaligtaran na bahagi ng tatsulok ay hindi nagbabago dahil ito ang distansya ng y mula sa iyong slider patungo sa object. Ang katabing bahagi ng slider ng camera ay nagbabago gayunpaman. Ang katabing panig na ito ay maaaring kalkulahin sa pamamagitan ng pagkuha ng x posisyon ng object at ibawas ang iyong kasalukuyang posisyon mula rito. Habang gumagalaw ang slider sa pamamagitan ng saklaw ng paggalaw nito, mananatili itong i-update ang Arduino sa halaga ng encoder. Ang Arduino ay paulit-ulit na i-convert ang halagang encoder na ito sa isang cm / mm x posisyonal na halaga at pagkatapos ay kalkulahin ang katabing haba ng gilid, at sa wakas ay kalkulahin ang anggulo na kailangang harapin ng camera sa lahat ng oras upang ituro ang object.

Ngayon na ang aming Arduino ay pabagu-bago ng pagproseso ng anggulo ng camera, maaari naming matugunan ang pag-convert ng anggulong ito sa isang posisyonal na halaga para lumipat ang rotational motor. Dinadala tayo nito sa pinakamalaking tampok ng RoboClaw para sa proyektong ito. Sa pamamagitan ng pagbibigay sa Roboclaw ng isang halaga ng posisyon, Maaari itong mahalagang gumawa ng isang DC brushing motor na kumilos tulad ng isang servo. Maliban sa hindi katulad ng isang servo, ang aming motor ay may toneladang higit pang metalikang kuwintas, mas mataas na kawastuhan at maaari ring paikutin ang 360 Degree.

Ang Arduino code upang ilipat ang Roboclaw sa isang tiyak na posisyon ay ang mga sumusunod:

roboclaw. SpeedAccelDeccelPositionM1 (address, 'speed', 'acceleration', 'deceleration', 'posisyon na nais mong puntahan', 1);

Upang ibagay ang posisyonal na halaga ng motor na tumutugma sa anggulo ng iyong camera, kakailanganin mong manu-manong ilipat ang plate ng camera ng 180 degree. Susunod na makita kung magkano ang binago ang halaga ng encoder mula sa paglipat ng plate ng camera mula 0 degree hanggang 180 degree. Binibigyan ka nito ng saklaw ng iyong encoder. Maaari mong mai-input ang saklaw na ito sa pagpapaandar ng motor na nagma-map ang anggulo ng camera ng Arduino sa isang posisyonal na halaga. Nagkomento din ito sa code kaya dapat madali itong makahanap ng *****

Binigyan din ako ng RoboClaw ng kakayahang ibagay ang iba pang mga kadahilanan tulad ng pagpapabilis, pagbawas ng halaga at mga halaga ng PID. Pinapayagan pa ako nitong pakinisin ang paggalaw ng paikot na axis lalo na kapag ang mga pagbabago sa anggulo ay maliit at nagdagdag ng mga haltak nang walang mataas na halaga ng 'D' PID. Maaari mo ring mai-auto tune ang iyong mga halagang PID sa pamamagitan ng desktop app ng Roboclaw.

Hakbang 4: Pagpapatakbo ng Camera Slider

Pagpapatakbo ng Camera Slider
Pagpapatakbo ng Camera Slider

Dumating kami ngayon sa kasiya-siyang bahagi, pinapatakbo ang slider Ang menu ay may 4 na pangunahing mga tab. Ang tuktok na tab ay nakatuon sa kontrol sa bilis. Naglalaman ang gitnang hilera ng menu ng mga tab upang mai-configure ang posisyon ng X at Y na sinusubaybayan na object sa mm, at i-configure din kung nais naming iikot at i-track ng slider ang aming object o gumawa lamang ng isang simpleng kilusang sliding nang walang pag-ikot. Ang pag-ikot ng rotary encoder ay nagbibigay-daan sa amin upang mag-navigate sa iba't ibang mga pagpipilian ng mga menu. Upang mai-configure ang anuman sa mga pagpipilian, mag-navigate sa pagpipilian at pindutin ang rotary encoder. Kapag napindot, ang pag-ikot ng rotary encoder ay magbabago ng halaga ng naka-highlight na sub-menu sa halip na mag-scrub sa pamamagitan ng menu. Kapag naabot mo na ang nais mong halaga, maaari mong i-click muli ang rotary encoder. Ngayon ay bumalik ka sa pangunahing menu at maaaring mag-navigate sa pagitan ng iba't ibang mga tab. Kapag handa ka na, pindutin lamang ang pindutan ng go sa tabi ng screen at ginagawa ng slider ang mga bagay nito!

Tiyaking sa sandaling tapos ka na gamit ang slider ng camera, na ang camera ay nasa posisyon na 'home': ang gilid ng slider ay nagsimula ito. Ang dahilan para dito ay ang encoder ng motor ay hindi isang ganap na encoder na nangangahulugang hindi masabi ng Roboclaw / Arduino kung nasaan ang encoder. Masasabi lamang nila kung magkano ang nagbago ng encoder mula noong huli itong pinapagana. Nangangahulugan ito na kapag pinapagod mo ang iyong slider ng camera, ang slider ay 'makakalimutan' ang posisyon ng slider at i-reset ang encoder sa isang 0. Samakatuwid, kung pinapatay mo ang iyong slider sa kabilang panig, kapag pinapagana mo ito, ang slider ay subukang lumipat pa kaysa sa gilid at mag-crash sa slider wall. Ang pag-uugali ng encoder na ito ay kung bakit dinidetey ng camera ang anggulo ng pag-ikot nito pagkatapos ng bawat paggalaw ng slide ng camera. Pinoprotektahan din ng paikot na axis ang sarili mula sa pag-crash sa dulo ng saklaw ng paggalaw nito.

Maaari mong ayusin ito sa pamamagitan ng pagdaragdag ng mga end-stop at isang pamamaraan ng homing kapag nag-boot ka. Ito ang ginagamit ng mga 3d printer.

Hakbang 5: Pangwakas na Mga Saloobin + Mga Pagpapabuti sa Hinaharap

Masidhi kong inirerekumenda na ang bawat tagabuo ay gumawa ng kanilang sariling mga bersyon ng slider na ito kaysa bumuo ng eksaktong parehong slider. Ang pag-tweak sa aking disenyo ay magpapahintulot sa iyo na buuin ang iyong slider sa iyong eksaktong mga pagtutukoy habang mas mahusay na nauunawaan kung paano gumagana ang electronics at code.

Ginawa ko ang code na nababasa at mai-configure hangga't maaari upang maaari mong i-tweak / i-calibrate ang iba't ibang mga variable ng code para sa iyong mga pagtutukoy ng slider. Ang code ay buo ring binuo sa paligid ng mga pag-andar kaya kung nais mong kopyahin / i-tweak / isulat muli ang ilang mga pag-uugali ng slider, hindi mo kailangang baligtarin ang engineer at gawing muli ang buong code ngunit ang mga bahagi lamang na nais mong i-edit.

Panghuli, kung gumawa ako ng isang bersyon 2.0, narito ang ilang mga pagpapabuti na gagawin ko

  1. Mas mataas na ratio ng gear para sa rotational axis motor. Ang isang mas mataas na ratio ng gearing ay nangangahulugang makakagawa ako ng mas tumpak na maliliit na galaw. Lalo na kritikal ito kapag ang camera ay malayo sa iyong object at ang anggulo ng iyong camera ay mabagal nang nagbabago. Sa kasalukuyan, ang aking motor ay hindi nakatuon nang masyadong mataas at maaaring magresulta ito sa bahagyang mabagal na paggalaw kapag ang slider ng camera ay masyadong mabagal na tumatakbo o kapag may napakakaunting pagbabago ng anggulo ng pag-ikot. Ang pagdaragdag ng isang mataas na halaga ng 'D' PID ay nakatulong sa akin na mapupuksa ito ngunit dumating sa gastos ng bahagyang mas mababang kawastuhan sa pagsubaybay ng object.
  2. Haba ng modular. Ito ay isang malayong kuha ng layunin, ngunit nais kong ang slider ng camera ay maging modular sa haba na nangangahulugang madali mong mai-attach ang mas mahabang haba ng track para mag-slide sa camera. Ito ay medyo mahirap dahil ang isa ay perpektong kailangang ihanay ang parehong mga track at alamin kung paano gumagana ang system ng sinturon. Gayunpaman, ito ay magiging isang cool na pag-upgrade!
  3. Pasadyang paggalaw ng Keyframing. Nais kong ipakilala ang konsepto ng keyframed na paggalaw sa slider ng camera na ito. Ang Keyframing ay isang pamamaraan na karaniwang ginagamit sa paggawa ng video at audio. Paganahin nito ang hindi paggalaw ng camera na kung saan ang camera ay pumupunta sa isang posisyon, naghihintay, pagkatapos ay lilipat sa ibang posisyon sa ibang bilis, naghihintay, pagkatapos ay pupunta sa isang pangatlong posisyon atbp.
  4. Pagkontrol sa Bluetooth / wireless phone. Talagang cool na upang mai-configure ang mga parameter ng camera slider nang wireless at ma-deploy ang camera slider sa hard upang ma-access ang mga lokasyon. Maaari ring buksan ng app ng telepono ang mga pagkakataon upang isama ang keyframing tulad ng nabanggit sa huling talata.

Iyon lang para sa tutorial na ito. Huwag mag-atubiling i-drop ang anumang mga katanungan sa seksyon ng mga komento sa ibaba.

Para sa higit pang mga tutorial sa nilalaman at electronics maaari mo ring suriin ang aking channel sa YouTube dito.

Inirerekumendang: