Isi kandungan:

Objek Gelongsor Kamera Dengan Paksi Putar. 3D Dicetak & Dibina pada RoboClaw DC Motor Controller & Arduino: 5 Steps (with Pictures)
Objek Gelongsor Kamera Dengan Paksi Putar. 3D Dicetak & Dibina pada RoboClaw DC Motor Controller & Arduino: 5 Steps (with Pictures)

Video: Objek Gelongsor Kamera Dengan Paksi Putar. 3D Dicetak & Dibina pada RoboClaw DC Motor Controller & Arduino: 5 Steps (with Pictures)

Video: Objek Gelongsor Kamera Dengan Paksi Putar. 3D Dicetak & Dibina pada RoboClaw DC Motor Controller & Arduino: 5 Steps (with Pictures)
Video: PEMBAHASAN 6 SolidEdit 3D Face | AutoCAD 3D 2024, Julai
Anonim
Image
Image
Reka Bentuk Perkakasan + Binaan + Percetakan 3D
Reka Bentuk Perkakasan + Binaan + Percetakan 3D

Projek Fusion 360 »

Projek ini telah menjadi salah satu projek kegemaran saya sejak saya menggabungkan minat membuat video dengan DIY. Saya selalu melihat dan ingin meniru gambar sinematik tersebut di dalam filem di mana kamera bergerak melintasi skrin sambil menyorot untuk mengesan objek. Ini menambahkan kesan kedalaman yang sangat menarik pada video 2d. Ingin meniru ini tanpa menghabiskan ribuan dolar untuk peralatan Hollywood, saya memutuskan untuk membina slaid kamera seperti itu sendiri.

Keseluruhan projek dibina di bahagian yang anda boleh cetak 3D, dan kodnya terdapat di papan Arduino yang popular. Semua fail projek seperti fail & kod CAD boleh dimuat turun di bawah.

Fail cetak CAD / 3D boleh didapati di sini

Fail Arduino Code terdapat di sini

Projek ini berkisar pada 2 motor DC yang diikat dan pengawal Basic Micro Roboclaw Motor. Pengawal motor ini dapat mengubah motor DC yang disikat menjadi jenis servo yang unggul dengan ketepatan kedudukan yang luar biasa, tan tork, dan putaran 360 darjah penuh. Lebih lanjut mengenai ini kemudian.

Sebelum kita meneruskan, tonton tutorial video yang dipautkan di sini terlebih dahulu. Tutorial itu akan memberi anda gambaran umum tentang bagaimana membina projek ini dan panduan Instructables ini akan menjelaskan lebih mendalam bagaimana saya membina projek ini.

Bahan-

  • Batang berulir 2 m 1 meter panjang yang digunakan untuk menghubungkan semua bahagian
  • Mur 8x M10 untuk memasang bahagian ke batang berulir
  • Batang keluli halus 8mm panjang 2 x 95 cm untuk slaid tergelincir
  • Galas 4x lm8uu agar gelangsar meluncur dengan lancar pada batang keluli
  • Mur berukuran 4x 10mm panjang untuk memasang motor
  • 2 x galas papan selaju (diameter luar 22mm, diameter dalaman 8mm) untuk paksi putaran
  • Galas 1x 15mm untuk bahagian pemalas
  • Baut m4 panjang 1x 4cm dengan mur kunci m4 untuk memasang galas pemalas ke bahagian bercetak 3d pemalas.
  • 20 gigi gigi dengan diameter dalaman 4mm untuk motor gelangsar. Takal yang tepat tidak begitu penting kerana motor DC anda harus diarahkan untuk tork yang mencukupi. Pastikan ia sama dengan tali pinggang anda
  • Tali pinggang GT2 sepanjang 2 meter. Sekali lagi anda boleh menggunakan tali pinggang selagi sesuai dengan nada gigi takal anda.

Elektronik

  • 2 * Motor DC digerakkan dengan pengekod (satu mengawal pergerakan sisi, sementara yang lain mengawal paksi putaran). Inilah yang saya gunakan. Lebih lanjut mengenai perkara ini di bahagian Elektronik panduan ini
  • Pengawal motor RoboClaw DC. (Saya menggunakan pengawal 15Amp dwi kerana ia membolehkan saya mengawal kedua-dua motor dengan satu pengawal)
  • Mana-mana Arduino. Saya menggunakan Arduino UNO
  • Sumber bateri / Kuasa. (Saya menggunakan bateri LiPo sel 7.4V 2)
  • Skrin (Untuk memaparkan menu. Sebarang skrin serasi U8G akan berfungsi, saya menggunakan skrin OLED 1.3 inci ini)
  • Pengekod Rotatry (Untuk menavigasi dan mengkonfigurasi pilihan dalam menu)
  • Butang tekan fizikal (Untuk mencetuskan pergerakan slider)

Langkah 1: Reka Bentuk Perkakasan + Binaan + Percetakan 3D

Elektronik
Elektronik

Seterusnya mari kita beralih ke elektronik. Elektronik adalah di mana projek ini mempunyai banyak kelenturan.

Mari kita mulakan dengan teras projek ini - 2 motor DC yang disikat.

Saya memilih motor DC yang disikat kerana beberapa sebab.

  1. Motor yang disikat jauh lebih mudah untuk dawai dan dikendalikan berbanding dengan motor stepper
  2. Motor DC yang disikat jauh lebih ringan daripada motor DC yang sangat penting bagi motor paksi putaran kerana motor itu bergerak secara fizikal secara lateral dengan kamera dan menjadikannya sekecil mungkin penting untuk mengelakkan ketegangan berlebihan pada motor slaid kamera utama.

Saya memilih motor DC ini. Motor ini memberi saya tork yang sangat tinggi yang diperlukan untuk memindahkan beban kamera yang begitu berat. Selain itu, gear tinggi bermaksud RPM puncak lambat yang bermaksud saya dapat memfilmkan pergerakan yang lebih perlahan, dan gear tinggi juga menyebabkan ketepatan kedudukan yang lebih tinggi kerana satu putaran poros keluaran 360 darjah bermaksud 341.2 kiraan pengekod motor.

Ini membawa kita ke pengawal gerakan RoboClaw. Pengawal motor DC berkembar motor Roboclaw mengambil arahan mudah dari Arduino anda melalui arahan kod ringkas dan melakukan semua pemprosesan dan penghantaran kuasa yang berat untuk menjadikan motor anda berfungsi seperti yang diharapkan. Arduino boleh menghantar isyarat ke Roboclaw melalui PWM, voltan Analog, siri sederhana, atau siri paket. Siri paket adalah cara terbaik untuk pergi kerana ia membolehkan anda mendapatkan kembali maklumat dari Roboclaw yang diperlukan untuk penjejakan kedudukan. Saya akan menyelami lebih mendalam bahagian perisian / pengaturcaraan Roboclaw pada langkah seterusnya (pengaturcaraan).

Pada dasarnya, Roboclaw dapat mengubah motor DC yang disikat dengan encoder agar lebih menyerupai servo berkat kemampuan RoboClaw untuk melakukan kawalan kedudukan. Namun tidak seperti servo tradisional, sekarang motor DC anda yang disikat mempunyai tork yang jauh lebih tinggi, ketepatan kedudukan yang lebih tinggi kerana gear motor yang tinggi, dan yang paling penting, motor DC anda dapat berputar dalam 360 darjah secara berterusan yang tidak dapat dilakukan oleh servo tradisional.

Bahagian elektronik seterusnya adalah skrin. Untuk skrin saya, saya memilih panel OLED ini kerana saiznya, dan kontras yang tinggi. Kontras tinggi ini luar biasa dan menjadikan skrin sangat mudah digunakan di bawah sinar matahari langsung sambil tidak mengeluarkan terlalu banyak cahaya yang dapat mengganggu potret kamera gelap yang berpotensi. Skrin ini dapat ditukar dengan mudah untuk skrin serasi U8G yang lain. Senarai penuh skrin yang serasi boleh didapati di sini. Sebenarnya projek ini sengaja dikodkan di sekitar perpustakaan U8G sehingga pembangun DIY seperti anda mempunyai lebih banyak kelonggaran pada bahagiannya

Bahagian elektronik terakhir untuk projek ini adalah pengekod putar, dan butang tekan untuk memulakan pergerakan gelangsar. Pengekod membolehkan anda menavigasi menu skrin dan mengkonfigurasi semua menu slaid dengan hanya satu dail. Pengekod putar tidak mempunyai kedudukan 'akhir' seperti potensiometer tradisional, dan ini sangat berguna untuk tweak koordinat x dan y dari penjejakan objek di skrin. Butang tekan digunakan secara eksklusif untuk memulakan pergerakan gelangsar tanpa perlu bermain-main dengan pengekod putar.

Langkah 3: Memprogram Slaid Kamera

Mengaturcara Penggeser Kamera
Mengaturcara Penggeser Kamera
Mengaturcara Penggeser Kamera
Mengaturcara Penggeser Kamera

Pengekodan adalah cabaran paling sukar bagi projek ini. Anda lihat, sejak awal saya mahu slaid dikawal dari skrin. Untuk menjadikan projek ini serasi dengan seberapa banyak skrin, saya harus menggunakan Perpustakaan U8Glib untuk Arduino. Perpustakaan ini mempunyai sokongan untuk lebih dari 32 skrin. Namun, perpustakaan U8Glib menggunakan gelung gambar untuk menarik menu di layar dan ini bertentangan dengan kemampuan Arduino untuk mengumpulkan maklumat mengenai kedudukan kamera secara serentak yang diperlukan untuk fungsi pengiraan sudut kamera (Ini akan dibahas dalam beberapa perenggan berikutnya). U8Glib2 mempunyai alternatif untuk gelung gambar dengan menggunakan sesuatu yang disebut pilihan halaman penuh penyangga tetapi perpustakaan menghabiskan terlalu banyak memori dan menyukarkan muat kod yang lain kerana kekangan memori Arduino Uno. Ini bermaksud bahawa saya terjebak dengan U8G dan harus menyelesaikan masalah dengan menghalang skrin daripada diperbaharui bila-bila masa slaid bergerak dan Arduino perlu mengumpulkan data kedudukan dari Roboclaw. Saya juga terpaksa mencetuskan gelangsar untuk mula bergerak di luar gelung menu kerana sebaik sahaja memasuki sub-menu, saya akan berada di dalam gelung gambar, dan gelangsar tidak akan berfungsi seperti yang diharapkan. Saya juga mengatasi masalah ini dengan mempunyai butang fizikal yang terpisah untuk mencetuskan pergerakan slaid.

Seterusnya mari kita bincangkan tentang elemen penjejakan putaran. Bahagian ini nampaknya sangat kompleks untuk disatukan, tetapi sebenarnya agak sederhana. Pelaksanaan untuk ini berada di bawah fungsi 'motor ()' di dalam kod Arduino saya. Langkah pertama adalah membuat grid 2 dimensi dan memutuskan di mana objek yang ingin anda lacak diletakkan. Berdasarkan itu, anda boleh melukis segitiga ke lokasi anda sekarang. Anda boleh mendapatkan lokasi semasa anda dari nilai pengekod motor. Sekiranya anda ingin mengkonfigurasi kedudukan objek yang dilacak dalam cm / mm, anda perlu menerjemahkan nilai pengekod anda ke nilai cm / mm. Ini hanya dapat dilakukan dengan menggerakkan slaid kamera 1 cm dan mengukur kenaikan nilai pengekod. Anda boleh memasukkan nilai ini di bahagian atas kod di bawah pemboleh ubah encoder_mm.

Selanjutnya, sekarang kita akan menggunakan fungsi tangen terbalik untuk mendapatkan sudut kamera yang harus menghadap ke arah objek anda. Tangen terbalik mengambil sisi segitiga yang bertentangan dan bersebelahan. Sisi segitiga yang bertentangan tidak pernah berubah kerana jarak y dari gelangsar anda ke objek. Walau bagaimanapun, sebelah slaid kamera tidak berubah. Bahagian bersebelahan ini dapat dikira dengan mengambil kedudukan x objek dan mengurangkan kedudukan semasa anda daripadanya. Semasa slaid bergerak melalui jarak gerakannya, ia akan terus mengemas kini Arduino pada nilai pengekod. Arduino akan berulang kali menukar nilai pengekod ini ke nilai kedudukan cm / mm x dan kemudian mengira panjang sisi yang bersebelahan, dan akhirnya mengira sudut yang harus dihadapi kamera setiap saat untuk menunjuk ke objek.

Setelah Arduino kami memproses sudut kamera secara dinamis, kami dapat mengatasi menukar sudut ini menjadi nilai kedudukan agar motor berputar bergerak. Ini membawa kita ke ciri terbesar RoboClaw untuk projek ini. Dengan memberikan nilai kedudukan kepada Roboclaw, ini pada dasarnya dapat menjadikan motor DC yang disikat berperilaku seperti servo. Kecuali tidak seperti servo, motor kami mempunyai tork lebih banyak, ketepatan yang jauh lebih tinggi dan juga dapat berputar 360 Derajat.

Kod Arduino untuk memindahkan Roboclaw ke kedudukan tertentu adalah seperti berikut:

roboclaw. SpeedAccelDeccelPositionM1 (alamat, 'speed', 'acceleration', 'deceleration', 'position you want to go to', 1);

Untuk menyesuaikan nilai kedudukan motor agar sesuai dengan sudut kamera anda, anda perlu menggerakkan plat kamera secara manual 180 darjah. Seterusnya lihat berapa banyak nilai pengekod telah berubah daripada menggerakkan plat kamera dari 0 darjah hingga 180 darjah. Ini memberi anda julat pengekod anda. Anda boleh memasukkan julat ini dalam fungsi motor yang memetakan sudut kamera Arduino ke nilai kedudukan. Ini juga dikomentari dalam kod sehingga mudah dicari *****

RoboClaw juga memberi saya kemampuan untuk menyesuaikan faktor lain seperti pecutan, perlambatan dan nilai PID. Ini seterusnya membolehkan saya melicinkan pergerakan paksi putaran terutama ketika perubahan sudut kecil dan menambah sentakan tanpa nilai PID ‘D’ yang tinggi. Anda juga dapat menyesuaikan nilai PID anda secara automatik melalui aplikasi desktop Roboclaw.

Langkah 4: Mengendalikan Slaid Kamera

Mengendalikan Slaid Kamera
Mengendalikan Slaid Kamera

Sekarang kita sampai di bahagian yang menyeronokkan, mengoperasikan slaid. Menu mempunyai 4 tab utama. Tab atas dikhaskan untuk kawalan kelajuan. Baris tengah menu mengandungi tab untuk mengkonfigurasi kedudukan X & Y objek yang dilacak dalam mm, dan juga mengkonfigurasi jika kita mahu slaid berputar dan menjejaki objek kita atau hanya melakukan pergerakan gelongsor sederhana tanpa putaran. Memusingkan pengekod putar membolehkan kita menavigasi pelbagai pilihan menu. Untuk mengkonfigurasi salah satu pilihan, arahkan ke pilihan dan tekan pengekod putar. Setelah ditekan, memutar pengekod putar akan mengubah nilai sub-menu yang diserlahkan daripada menggosok menu. Sebaik sahaja anda mencapai nilai yang diinginkan, anda boleh mengklik pengekod putar sekali lagi. Sekarang anda kembali ke menu utama dan boleh menavigasi antara tab yang berbeza. Setelah anda bersedia, cukup tekan butang pergi di sebelah skrin dan slaid melakukan perkara!

Pastikan bahawa setelah anda selesai menggunakan slaid kamera, kamera berada dalam kedudukan 'home': sisi slaid yang dimulakan. Sebabnya adalah bahawa pengekod motor bukan pengekod mutlak yang bermaksud bahawa Roboclaw / Arduino tidak dapat mengetahui di mana pengekodnya. Mereka hanya dapat mengetahui berapa banyak pengekod yang telah berubah sejak kali terakhir dihidupkan. Ini bermaksud bahawa apabila anda mematikan slaid kamera anda, slaid akan 'melupakan' kedudukan slider dan menetapkan semula encoder ke 0. Oleh itu, jika anda mematikan slaid anda di sisi lain, semasa anda menghidupkannya, slaid akan cuba bergerak lebih jauh dari tepi dan merempuh dinding gelangsar. Tingkah laku pengekod ini juga mengapa kamera menetapkan semula sudut putarannya setelah setiap pergerakan slaid kamera. Paksi putaran juga melindungi dirinya daripada terhempas ke hujung julat pergerakannya.

Anda boleh memperbaikinya dengan menambahkan penghentian akhir dan prosedur homing semasa anda boot. Inilah yang digunakan oleh pencetak 3d.

Langkah 5: Pemikiran Akhir + Peningkatan Masa Depan

Saya sangat mengesyorkan agar setiap pembangun membuat versi slaid mereka sendiri daripada membina slider yang sama persis. Mengambil reka bentuk saya akan membolehkan anda membina slaid anda mengikut spesifikasi tepat anda dan juga lebih memahami bagaimana elektronik & kod berfungsi.

Saya membuat kod yang boleh dibaca dan dikonfigurasi mungkin sehingga anda dapat mengubah / menentukur pemboleh ubah kod yang berbeza untuk spesifikasi slaid anda. Kod ini juga dibina sepenuhnya di sekitar fungsi, jadi jika anda ingin menyalin / mengubah / menulis semula tingkah laku slaid tertentu, anda tidak perlu membalikkan semula dan mengolah semula keseluruhan kod tersebut melainkan hanya bahagian yang ingin anda edit.

Akhirnya, jika saya membuat versi 2.0, berikut adalah beberapa penambahbaikan yang akan saya buat

  1. Nisbah gear yang lebih tinggi untuk motor paksi putaran. Nisbah gear yang lebih tinggi bermaksud saya dapat membuat pergerakan kecil yang lebih tepat. Ini amat kritikal apabila kamera berada jauh dari objek anda dan sudut kamera anda berubah dengan sangat perlahan. Pada masa ini, motor saya tidak digerakkan terlalu tinggi dan boleh menyebabkan pergerakan sedikit tersentak apabila slaid kamera berjalan terlalu perlahan atau ketika terdapat sedikit perubahan sudut putaran. Menambah nilai PID ‘D’ yang tinggi telah membantu saya menyingkirkan ini tetapi dengan kos ketepatan penjejakan objek yang sedikit lebih rendah.
  2. Panjang modular. Ini adalah tujuan yang tidak dapat difahami, tetapi saya ingin slaid kamera panjang modular yang bermaksud bahawa anda boleh melekatkan panjang trek yang lebih panjang agar kamera dapat meluncur. Ini agak sukar kerana seseorang harus menyelaraskan kedua-dua trek dan mengetahui bagaimana sistem tali pinggang berfungsi. Walaupun begitu, ia akan menjadi peningkatan yang hebat!
  3. Keyframing pergerakan tersuai. Saya ingin memperkenalkan konsep pergerakan bingkai utama ke dalam slaid kamera ini. Keyframing adalah teknik yang sangat biasa digunakan dalam penghasilan video & audio. Ini akan membolehkan pergerakan kamera tidak linear di mana kamera menuju ke posisi, menunggu, kemudian bergerak ke kedudukan lain dengan kelajuan yang berbeza, menunggu, kemudian menuju ke posisi ketiga dll.
  4. Kawalan telefon Bluetooth / wayarles. Akan sangat menyenangkan apabila dapat mengkonfigurasi parameter slaid kamera secara wayarles dan dapat menggunakan slaid kamera di lokasi yang sukar diakses. Aplikasi telefon juga dapat membuka peluang untuk mengintegrasikan keyframing seperti yang disebutkan dalam perenggan terakhir.

Itu sahaja untuk tutorial ini. Jangan ragu untuk meletakkan sebarang pertanyaan di bahagian komen di bawah.

Untuk lebih banyak tutorial kandungan & elektronik, anda juga boleh melihat saluran YouTube saya di sini.

Disyorkan: