Slider Kamera Motoris Arduino dengan Bluetooth untuk Gambar Sinematik Halus
Komponen dan Perlengkapan
Berikut adalah komponen utama yang diperlukan untuk membangun slider kamera motoris dengan kontrol Bluetooth:
Arduino UNO × 1
PCB Custom dari PCBWay × 1
Linear Rail V-Slot 20×40 (panjang sesuai kebutuhan) × 1
Kit Solid V Wheel × 8
Drop In Tee Nuts × 8
Eccentric Spacer × 4
Spacer Aluminium 9mm × 4
Spacer Aluminium 3mm × 4
Buru M5 Low Profile 20mm dengan mur × 4
Buru M5 Low Profile 10mm × 4
Buru Allen HEX M3 16mm dengan mur × 8
Bearing Flange Block Self-aligning 8mm × 2
Pulley Timing Aluminium GT2 Bor 8mm 20 Gigi × 1
Poros Linear Rail 8mm (60mm) × 1
Pulley Timing Aluminium GT2 Bor 5mm 20 Gigi × 1
Rantai Timing Terbuka GT2-6mm × 1
Motor Stepper Bipolar NEMA17 × 1
Driver Stepper Motor A4988 × 1
Akumulator Rechargeable 12V 3A × 1
Modul Bluetooth HC-05 × 1
Alat dan Mesin yang Diperlukan
Printer 3D (generic)
Aplikasi dan Layanan Online
Autodesk Fusion 360
Autodesk Eagle
Arduino IDE
Tentang Proyek
Ringkasan Proyek
Bagi mereka yang suka mengorek video hobi, membeli slider kamera motoris ternyata cukup mahal. Oleh karena itu, kami membangun slider sendiri. Dalam tutorial ini, kami akan membahas setiap langkah untuk membuat slider kamera motoris yang dikontrol melalui Bluetooth.
Hari ini kami akan membuat slider kamera motoris yang dapat dikontrol secara nirkabel melalui Bluetooth dari aplikasi mobile Android buatan sendiri. Kami menggunakan alat “MIT App Inventor” untuk membuat aplikasi yang memungkinkan pengaturan kecepatan gerakan slider, jarak perjalanan, laju percepatan/perlambatan, dan banyak lagi. Aplikasi mobile ini sangat andal, di dalamnya Anda dapat menetapkan panjang slider kamera yang digunakan. Artinya, Anda bebas membangun slider kamera dengan panjang hingga 10 meter tanpa khawatir tentang kompatibilitas aplikasi.
Kami menggunakan motor stepper NEMA17 sebagai aktuator sehingga dapat mengontrol berapa banyak langkah yang diperlukan slider kamera untuk bergerak. Untuk mengontrol motor stepper menggunakan papan Arduino, diperlukan penerjemah yang mengambil perintah dari papan Arduino dan menterjemahkannya ke bahasa yang dipahami motor stepper. Di sinilah peran driver stepper motor A4988 Pololu, yang memberikan lima resolusi microstep yang berbeda (hingga 1/16 langkah) untuk mencapai akurasi pergerakan maksimum dan kehalusan gerakan.
Proyek ini dirancang dengan mempertimbangkan kemudahan pembuatan di fablab, makerspace, atau hackerspace.
CAD dan Pemodelan 3D
Kami menggunakan Fusion360 untuk merancang slider kamera, kami memilih komponen mekanikal yang sangat populer dan mudah ditemukan yang dapat dibeli dengan mudah dari hampir semua toko online atau offline di mana pun Anda tinggal.
Kami menggunakan hardware Openbuilds untuk membangun struktur mekanikal, linear rail V-slot 2040 sebagai panduan untuk kamera bergerak. Dua roda gigi, satu pada poros motor stepper. Dan yang lainnya, pada poros linear rail 8mm di sisi lawan slider dengan rantai timing terbuka di antaranya untuk mengubah gerakan putar motor stepper menjadi gerakan linier.
Poros linear rail 8mm dipasang di antara dua Bearing Flange Block Self-aligning yang dipasang pada papan atas dan bawah dengan empat buru M5.
Kami menggunakan empat roda solid V-Slot Delrin yang berjalan di dalam ranur V-groove dari rail V-Slot untuk membuat gerakan kamera sangat halus. Di tengah papan kamera terdapat lubang diameter 1/4 inci untuk baut tripod standar sehingga Anda dapat memasang kamera dengan mudah.
Terakhir, kotak pelindung untuk elektronika. Semua bagian slider kamera dipasang bersama dengan buru dan mur M3*16mm.
Pembuatan Digital (Print 3D)
Seluruh badan slider kamera dicetak 3D dengan ketinggian lapisan 0,2 mm, isian 20% kecuali kaki kiri dan kanan slider kamera, dicetak dengan ketinggian lapisan 0,2 mm, isian 50%.
Anda dapat mengunduh file STL dari Thingiverse.
Pengaturan Kit V-Wheel
Proses pengaturan sangat mudah, ayo! Pada langkah pertama, kita perlu merakit empat roda Solid V-Wheel. Kit roda V-solid dilengkapi dengan roda karet, dua bearing, dua shim presisi, dan satu mur pengunci.
Masukkan bearing dari satu sisi roda karet dan balikkan roda, lalu masukkan satu shim presisi di dalam roda karet, terakhir masukkan bearing kedua dari sisi wajah kedua.
Pengaturan Mekanikal Slider Kamera
Pertama, kita perlu merakit papan kamera dan empat roda Solid V-Wheel. menggunakan spacer aluminium 9mm, shim presisi, dan mur pengunci.
Kami akan mengulangi langkah sebelumnya dengan tiga roda lainnya. pada dua roda kanan, kami akan menggunakan spacer 9mm. Dan pada dua roda kiri lainnya, kami akan menggunakan spacer eksentrik dengan spacer 3mm alih-alih spacer 9mm.
Sekarang, masukkan papan holder kamera ke dalam profil V-slot. Jika Anda menemukan papan longgar dan goyah, Anda dapat mengebom mur Eccentric hingga Anda mendapatkan papan yang kokoh.
Masukkan dua tee nuts drop-in di setiap ujung profil V-slot. kita perlu menghubungkan profil V-slot dengan kaki kanan dan kiri slider kamera.
Ambil dua kaki slider kamera dan dorongkan ke dalam profil V-slot.
Ambil empat buru M5X10mm, dan pasang dua kaki dengan profil V-slot.
Kita perlu memasang motor stepper NEMA 17 pada papan motor. lalu, menggunakan empat buru M3X16mm kita akan memasang motor di tempatnya.
Pada kaki kiri, masukkan dua mur di dalam tempat mur atas kaki kiri.
Bawa papan motor NEMA 17 dan pasang di atas kaki kiri. dan, menggunakan dua buru M3X16mm kita akan memasang papan pada kaki kiri.
Untuk dapat mengubah gerakan rotasi motor stepper menjadi gerakan linier, kita perlu memasang pulley GT2 Bor 5mm pada poros motor. dan menggunakan kunci Allen, rapatkan baut set pulley untuk menjaga agar tetap tempat.
Ayo pergi ke kaki kanan slider kamera, masukkan empat mur M3 di tempat mur kaki.
Lalu, letakkan dua plate bearing kaki kanan di atas kaki kanan slider kamera.
Menggunakan empat buru M3X16mm, pasang kedua plate pada kaki kanan slider kamera untuk menjaga mereka tetap tempat.
Bawa salah satu bearing flange block 8mm dan pasang di plate kaki kanan atas. menggunakan dua buru M5X20mm dan dua mur M5.
Kita perlu mengulangi langkah sebelumnya dengan bearing flange block 8mm kedua untuk memasangnya di plate bawah kaki kanan slider kamera.
Masukkan poros linear rail 8mm ke dalam bearing flange block 8mm dari sisi bawah, dan dorong ke atas. Lalu, masukkan pulley bor 8mm ke dalam poros linear rail dan pasang dengan merapatkan baut set pulley.
Checkpoint, Sekarang kita telah merakit semua mekanisme slider kamera kecuali satu hal. rantai timing. Ayo lakukan.
putarkan rantai timing 6mm pada pulley bor 5mm motor NEMA17. Juga, pada pulley bor 8mm kaki kanan. Terakhir, rapatkan rantai dengan papan kamera.
Saatnya untuk merakit papan kontrol. masukkan Cairo Camera Slider Arduino shield di atas papan Arduino.
Masukkan papan Arduino dan Cairo Camera Slider shield ke dalam kotak pelindung papan kontrol.
masukkan dua mur M3 di dalam tempat mur kaki kiri.
pasang kotak pelindung papan kontrol ke kaki kiri Cairo Camera Slider dengan buru M3X16mm.
tutup wajah atas kotak pelindung dengan dua buru M3 dan mur, dan itu selesai!
Uji Kontrol Motor Stepper
Setelah merakit semua bagian bersama, Kita perlu mengujinya untuk memastikan segalanya terpasang di tempatnya dengan benar. Sekarang, kita perlu menghubungkan motor stepper dengan papan Arduino melalui driver stepper motor A4988 dan menulis beberapa kode untuk menjalankan hal tersebut.
Driver Stepper Motor A4988
Untuk mengontrol motor stepper mana pun menggunakan papan Arduino atau mikrokontroler lainnya, Anda akan memerlukan driver stepper motor yang berfungsi sebagai penerjemah, mengambil perintah dari papan Arduino dan menterjemahkannya ke bahasa yang dipahami motor.
ada banyak driver stepper motor di luar sana tetapi kami akan menggunakan driver A4988. Driver ini memungkinkan kami untuk mengontrol satu motor bipolar dengan arus keluaran hingga 2A per coil, sangat mudah dihubungkan dengan papan Arduino Anda hanya memerlukan dua pin digital untuk mengontrol langkah dan arah motor sepenuhnya, memungkinkan Anda untuk mengontrol arus keluaran maksimum dengan mudah dengan potensiometer papan, dan memberikan Anda resolusi micro-step hingga 1/16 micro-step.
VMOT, GND: Itu adalah pin koneksi daya untuk motor stepper itu sendiri, bisa 8V-35V. Dalam kasus kami, kami menghubungkan sumber daya 12V 3A pada pin tersebut dengan kapasitor decoupling 100uf untuk melindungi papan A4998 dari lonjakan daya apa pun.
2B, 2A: pin keluaran untuk coil pertama motor stepper yang dapat menyediakan hingga 2A.
1A, 1B: pin keluaran untuk coil kedua motor stepper yang juga dapat menyediakan hingga 2A.
VDD, GND: Digunakan untuk menggerakkan sirkuit logika internal, bisa 3V hingga 5.5V. Ini sepenuhnya terisolasi dari pin VMOT.
EN: Singkatan dari “Enable” itu adalah pin input aktif LOW(0V), yang berarti ketika pin ini ditarik LOW(0V) chip A4988 diaktifkan. Dan ketika ditarik HIGH(5V) chip A4988 dinonaktifkan. Secara default, pin ini ditarik LOW(0V). Jadi, chip selalu diaktifkan kecuali Anda menariknya HIGH(5V).
MS1, MS2, MS3: Melalui pin ini, Anda dapat memilih resolusi microstepping motor (ukuran langkah). A4988 memberikan Anda lima resolusi microstep yang berbeda (full step, half step, quarter step, Eighth step, Sixteenth step). Dengan menerapkan level logika yang sesuai pada ketiga pin ini kita dapat mengatur motor ke salah satu dari lima resolusi langkah.
Secara default, pin MS1, MS2, MS3 memiliki resistor pull-down internal. Jadi membiarkan ketiga pin pemilihan microstep ini tidak terhubung menghasilkan mode full-step.
RST, SLP: Pin “Reset” adalah pin input aktif LOW(0V), yang berarti ketika ditarik LOW(0V), semua input step diabaikan juga mereset penerjemah itu sendiri hingga Anda menariknya HIGH(5V). Pin “Sleep” juga pin aktif LOW, menariknya LOW, memasukkan driver ke mode sleep meminimalkan konsumsi daya. Secara default, pin “Sleep” ditarik HIGH(5V).
STP, DIR: Pin “Step” bertanggung jawab untuk mengontrol jumlah langkah yang diputar motor, setiap pulsa ke pin “Step” berkontribusi untuk satu microstep di arah yang dipilih oleh pin “Direction” , semakin cepat pulsa, semakin cepat motor akan berputar. Dengan menerapkan nilai logika HIGH(5V) pada pin “Direction” membuat motor berputar searah jarum jam, dengan menerapkan LOW(0V) membuat motor berputar berlawanan arah jarum jam(mungkin berbeda dari satu ke lainnya sesuai dengan kabel motor Anda dengan driver).
Motor Stepper NEMA17
Motor stepper adalah motor DC yang dapat berputar dalam peningkatan yang tepat, mereka digunakan dalam banyak aplikasi seperti printer 3D untuk merapatkan printhead dan mesin CNC untuk mengontrol gerakan alat potong dan ini karena mereka sangat akurat dan tepat.
Berbeda dengan motor DC, motor stepper dikontrol dengan menerapkan pulsa listrik DC pada coil internal mereka. Setiap pulsa membuat poros maju satu langkah atau fraksi langkah yang disebut “Microstepping”. Jadi, Anda dapat mengontrol dengan tepat berapa banyak langkah atau bahkan langkah fraksi yang Anda inginkan poros motor untuk bergerak. Keuntungan besar lainnya dari penggunaan motor stepper adalah dapat bergerak dengan sangat tepat dan akurat pada kecepatan sangat lambat bahkan tanpa macet.
Tipe motor yang kami gunakan dalam proyek ini adalah motor stepper Bipolar NEMA 17. Motor stepper bipolar memiliki dua coil internal dan biasanya memiliki empat kabel, dua kabel per coil. berbeda dengan motor stepper bipolar yang memiliki lima kabel. “Step Angle” motor adalah 1.8° yang menunjukkan sejauh mana poros maju di setiap langkah penuh, motor bekerja pada 9V tetapi jika Anda ingin mendapatkan daya maksimum gunakan sumber daya 12V.
Jadi, dengan menghubungkan motor stepper dengan driver stepper motor A4988, kita dapat mengontrol berapa banyak langkah yang diperlukan motor untuk bergerak dan di arah mana. Juga, kita dapat mengatur mode “microstep” apakah full step, half step, quarter step, ….. Ayo lihat diagram kabel.
Diagram Kabel
Seperti yang kita sebutkan sebelumnya, kita perlu melakukan pemeriksaan kecil untuk memastikan segala yang kita rakit sebelumnya tepat di tempatnya dan bergerak dengan baik. Sekarang, kita akan merakit semua hardware bersama, motor stepper NEMA 17 dengan driver stepper motor A4988 ke otak, papan Arduino. Dan menggunakan baterai Lithium-Ion 12V 3A untuk memberi daya pada motor dengan daya yang dibutuhkan.
Kode Arduino
Instalasi Library AccelStepper
Instalasinya cukup sederhana, kita perlu membuka Arduino IDE. Dari menu “Sketch”. Pilih Include Library –> Manage Libraries…
Jendela baru harus muncul, cari “AccelStepper” dan instal library yang dibuat oleh “Mike McCauley”. Mudah kan!
Setelah menginstal library AccelStepper, Anda seharusnya melihatnya di menu contoh.
Saya ingin memastikan library AccelStepper terinstal dengan benar dan koneksi motor stepper saya dengan driver motor A4988 benar dan manajemen daya saya baik. Jadi, ayo tulis beberapa baris kode untuk menjalankan motor stepper maju dan mundur.
// Bounce stepper test program // Make a single stepper bounce from one limit to another // Copyright (C) 2020 makesomestuff.org
#include <AccelStepper.h> #define stepPin 2 #define dirPin 3 // Define a stepper and the pins it will use
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); //create an object. the pin "2" is the step pin, "3" is the direction pin.
void setup() { // Change these to suit your stepper if you want stepper.setMaxSpeed(100); stepper.setAcceleration(20); stepper.moveTo(500); }
void loop() { // If at the end of travel go to the other end if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); }
Logika kode cukup sederhana, kami menginisialisasi objek dari library AccelStepper, kami mendefinisikan dua konstanta (stepPin, dirPin) bahwa dua pin digital digunakan oleh driver stepper motor A4988 untuk mengontrol gerakan motor itu sendiri.
#include <AccelStepper.h>
#define stepPin 2 #define dirPin 3 // Define a stepper and the pins it will use
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); //create an object. the pin "2" is the step pin, "3" is the direction pin.
Di dalam fungsi void setup, kami mengatur Max. kecepatan motor stepper menjadi 100 langkah/detik. Juga, kami mengatur laju percepatan/perlambatan menjadi 20 langkah/detik. terakhir, kami menggunakan fungsi moveTo() untuk memberi tahu motor untuk bergerak 500 langkah.
void setup() { // Change these to suit your stepper if you want stepper.setMaxSpeed(100); stepper.setAcceleration(20); stepper.moveTo(500); }
Di dalam fungsi void loop, kami memeriksa apakah motor mencapai posisinya atau tidak. Jika sudah mencapai posisi, itu akan memantul kembali. dan jika belum mencapai posisinya, itu akan terus berjalan.
void loop() { // If at the end of travel go to the other end if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); }
Kontrol Nirkabel Penuh Slider Kamera
Kami telah melakukan hal-hal hebat sejauh ini. Ayo lanjutkan! Langkah berikutnya setelah menguji segalanya, adalah bekerja pada aplikasi seluler yang akan kita gunakan untuk mengontrol gerakan slider kamera dan mengirim perintah ke sana. Juga, kita perlu bekerja pada kode Arduino yang akan menerima data dari aplikasi seluler dan sesuai dengan data ini akan mengambil beberapa tindakan seperti memindahkan motor, mengubah kecepatan, percepatan, dan sebagainya…
Membangun Aplikasi Seluler
Untuk membangun aplikasi seluler, saya menggunakan alat MIT App Inventor yang memungkinkan Anda membuat aplikasi seluler yang berjalan pada ponsel Android apa pun. Alat ini cukup sederhana karena Anda hanya seret dan lepas beberapa blok kode yang sudah jadi untuk membangun logika program Anda, juga Anda menggunakan beberapa blok yang sudah jadi untuk membangun antarmuka pengguna aplikasi. Anda dapat mengakses sumber aplikasi seluler dari tautan di bawah ini. Bebas untuk mengedit dan berbagi, itu open-source. Mobile App Source
Gambar di bawah ini, penjelasan singkat untuk setiap fungsi tombol dan cara kerjanya.
Aplikasi seluler itu akan berkomunikasi dengan slider kamera Cairo secara nirkabel melalui komunikasi Bluetooth. Jadi, langkah berikutnya adalah menghubungkan modul Bluetooth ke sirkuit terakhir yang kita bangun sebelumnya dan mengunggah beberapa baris kode ke papan Arduino untuk dapat membangun komunikasi antara aplikasi seluler dan slider kamera Cairo.
Diagram Kabel
Ini saatnya untuk menghubungkan semua hal bersama, sebelumnya kita telah menghubungkan motor stepper, driver motor stepper, Arduino UNO, dan baterai bersama dan menguji sirkuit dan berfungsi baik. Sekarang, dan setelah membangun aplikasi seluler, kita perlu menghubungkan modul Bluetooth HC-05 ke sirkuit kita.
Untuk membuatnya nirkabel kita akan menggunakan modul Bluetooth HC-05 yang digunakan luas, dapat diatur sebagai slave atau master juga (berbeda dengan modul HC-06 yang hanya dapat bekerja sebagai slave) yang berarti Anda dapat membuat koneksi Bluetooth antara dua papan Arduino yang berbeda. Modul Bluetooth HC-05 adalah modul SPP (Serial Port Protocol), yang berarti berkomunikasi dengan papan Arduino melalui komunikasi Serial. Anda hanya perlu menghubungkan pin Tx dan Rx antara modul HC-05 dan papan Arduino UNO.
Tx(Arduino) --> Rx(HC-05)
Rx(Arduino) --> Tx(HC-05)
5V(Arduino) --> VCC(HC-05)
GNND(Arduino) --> GND(HC-05)
Fabrikasi Skematik dan PCB
Man! Saya tidak suka breadboarding sirkuit besar seperti ini. Jadi, saya merancang papan PCB shield Arduino UNO yang sangat cantik yang menjaga semua komponen saya tetap di tempat tanpa khawatir tentang kabel jumper atau bahkan koneksi. Yang perlu Anda lakukan adalah meletakkan komponen Anda pada papan PCB shield Arduino, masukkan modul Bluetooth HC-05, driver motor stepper A4988, dan baterai di tempatnya. dan pasang shield di atas papan Arduino. itu selesai!
Saya memfabrikasi PCB saya di PCBWay kualitasnya sangat baik, dalam beberapa hari paket tiba di Egypt dengan aman. dan saya hanya membayar 5$ untuk fabrikasi yang luar biasa. Hal terbaik yang bisa saya lakukan adalah memeriksa status fabrikasi dan pemesanan secara online di panel akun saya dan melacak semua yang terjadi pada papan bayi saya seolah-olah saya ada di dalam pabrik.
Anda dapat mengunduh file sumber desain PCB atau bahkan memesan Cairo Camera Slider Arduino Shield PCB dari situs web PCBWay. PCB Source Files & Ordering
Kode Arduino dan Komunikasi Bluetooth
/* TODO:: Update the arduino program to Make the user able to choose the motor driver micro stepping mode. find and equation that helps to automatically adjust the the "steps" variable value. TODO:: update the mobile app to ask the user on the beginning only about the [homing position(done), microstepping mode]. TODO:: Update the arduino program to make the code only iterates around the "homing position" & "microstepping mode" only once on the void setup() function.
DATA:: motor acceleration spinner Very High --> 14. DATA:: motor acceleration spinner High --> 11 DATA:: motor acceleration spinner Medium --> 12 DATA:: motor acceleration spinner Low --> 13 DATA:: motor acceleration spinner Very Low --> 15
int incomingData = 0; int movementDistance = 50; long steps = 0; //50cm rail by default @1/8 microstepping. int microStepResolution = 0; //4 or 16 long railLength = 0; int sliderSpeed = 10;
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); //create an object. the pin "2" is the step pin, "3" is the direction pin.
stepper.setMaxSpeed(10.00); //The fastest motor speed that can be reliably supported is about 4000 steps per second at a clock frequency of 16 MHz on Arduino such as Uno stepper.setAcceleration(500.00); //1600 (40%) (Medium Acceleration rate)
while (startupSetupFlag < 3) { if (Serial.available() > 1) { unsigned int dataOne = Serial.read(); unsigned int dataOne1 = Serial.read(); unsigned int incomingData = (dataOne1 * 256) + dataOne;
Kami menggunakan library Arduino AccelStepper yang luar biasa yang menyediakan antarmuka berorientasi objek untuk motor stepper 2, 3, 4 pin untuk mengontrol gerakannya dengan presisi.
#define stepPin 2 #define dirPin 3
bool homingPositionFlag = false;
int startupSetupFlag = 0; bool delayedStart = false;
int incomingData = 0; int movementDistance = 50;
long steps = 0; //50cm rail by default @1/8 microstepping. int microStepResolution = 0; //4 or 16
long railLength = 0; int sliderSpeed = 10;
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); //create an object. the pin "2" is the step pin, "3" is the direction pin.
ketika Anda membuka aplikasi seluler dan terhubung ke slider kamera Cairo itu akan menanyakan kepada Anda tentang mode micro-stepping yang Anda atur driver motor A4988 untuk bekerja. sangat penting untuk memilih mode micro-stepping yang benar. Slider kamera Cairo hanya mendukung resolusi micro-step 1/4 dan 1/16. Jika Anda memilih mode micro-step yang salah akan mempengaruhi perhitungan jarak sehingga gerakan kamera akan mengenai batas slider. Jadi, hati-hati!
Itu mengatur homing slider kamera jika sisi kiri atau kanan homing. posisi homing, setelah Anda klik homing sisi kanan atau kiri data spesifik akan dikirim dari aplikasi seluler ke papan Arduino sesuai dengan posisi homing yang Anda pilih.
stepper.setMaxSpeed(10.00); //The fastest motor speed that can be reliably supported is about 4000 steps per second at a clock frequency of 16 MHz on Arduino such as Uno stepper.setAcceleration(500.00); //1600 (40%) (Medium Acceleration rate)
while (startupSetupFlag < 3) { if (Serial.available() > 1) { unsigned int dataOne = Serial.read(); unsigned int dataOne1 = Serial.read(); unsigned int incomingData = (dataOne1 * 256) + dataOne;
//**************************************************************Motor Homing Part************************************************** if (incomingData == 16) { //left end homing position. stepper.setCurrentPosition(steps); homingPositionFlag = false; startupSetupFlag++; } else if (incomingData == 17) { //right end homing position. stepper.setCurrentPosition(-(steps)); homingPositionFlag = true; startupSetupFlag++; }
sekarang itu mengatur berapa banyak langkah yang harus dijalankan motor stepper tanpa mengenai kaki kanan atau kiri slider kamera dengan gerakan kamera. itu membaca dan menyimpan panjang rail sesuai dengan nilai yang dimasukkan pengguna di aplikasi seluler. Jadi, tergantung pada resolusi micro-step yang dipilih pengguna sebelumnya, dan panjang rail saya dapat menghitung jumlah langkah yang harus diputar motor untuk mencapai batas slider rail tanpa mengenai kaki kanan atau kiri.
if (incomingData >= 1301 && incomingData <= 2300) { railLength = incomingData - 1300; //from raw data to cm. if (microStepResolution == 4) { steps = ((6100L * railLength) / 50L); startupSetupFlag++; } else if (microStepResolution == 16) { steps = ((25000L * railLength) / 50L); startupSetupFlag++; } } } //Serial.println(startupSetupFlag); }
di dalam fungsi loop, itu membaca data masuk dari aplikasi seluler dan sesuai dengan data ini mengambil tindakan yang berbeda, seperti memutar motor stepper searah jarum jam, memutar berlawanan arah jarum jam, berhenti dan kembali ke titik awal, dan mengubah kecepatan perjalanan, dan seterusnya…
void loop() {
if (Serial.available() > 1) {
unsigned int dataOne = Serial.read(); unsigned int dataOne1 = Serial.read(); unsigned int incomingData = (dataOne1 * 256) + dataOne; //Serial.print("raw data: "); //Serial.println(incomingData);
//**************************************************************Motor Control Part************************************************** if (incomingData == 1 && stepper.isRunning() == false && stepper.currentPosition() != 6050 && homingPositionFlag == true) { if (delayedStart == true) { //use millis to delay 15 seconds. delay(15000); //wait 15 seconds. } stepper.setCurrentPosition(0); stepper.moveTo(steps); //from end to end (@ 1/4 step). homingPositionFlag = false;
Panduan Pengguna & Pemecahan Masalah Slider Kamera Cairo
Setelah menghubungkan sumber daya 12V ke papan Arduino UNO yang mendistribusikan daya ke Cairo Camera Slider Arduino shield juga, nyalakan Bluetooth di ponsel Anda, cari perangkat baru, pasangkan dengan perangkat HC-05, dan buka aplikasi seluler lalu tekan tombol “Press here to connect with Cairo camera slider”. Akan muncul menu perangkat Bluetooth yang dipasangkan, pilih perangkat Bluetooth HC-05.
Setelah terhubung berhasil dengan papan kontrol, aplikasi seluler akan menanyakan beberapa pertanyaan untuk mengatur beberapa parameter. Pertanyaan pertama akan menanyakan tentang resolusi micro-step dari driver motor stepper apakah halus(1/4 micro-step), atau sangat halus(1/16 micro-step). pilih mode sesuai dengan mode resolusi micro-stepping yang Anda atur driver A4988. Jika Anda memilih mode yang salah Slider kamera Cairo tidak akan bekerja dengan benar.
Lalu, itu akan menanyakan tentang panjang rail aluminium yang Anda gunakan di slider kamera Anda. Masukkan jarak dalam CM. dalam kasus saya saya menggunakan panjang rail 50cm.
Terakhir, itu akan menanyakan tentang posisi homing gerakan kamera, Sangat penting untuk menempatkan gerakan kamera di salah satu ujung rail, ujung kanan atau ujung kiri. Dalam kasus saya, gerakan kamera ada di ujung kiri. Jadi, saya memilih homing ujung kiri.
Jika Anda memulai slider kamera Cairo dan gerakan kamera ada di tengah rail atau tidak di salah satu ujung rail itu akan menyebabkan gerakan mengenai batas saat bergerak.
Setelah Anda selesai proses penyiapan, Ini akan menunjukkan parameter yang telah Anda atur. Dan setelah Anda klik OK, Anda siap untuk bermain-main dengan slider kamera Cairo yang cantik Anda.