Isi kandungan:

Pimp My Cam: 14 Langkah (dengan Gambar)
Pimp My Cam: 14 Langkah (dengan Gambar)

Video: Pimp My Cam: 14 Langkah (dengan Gambar)

Video: Pimp My Cam: 14 Langkah (dengan Gambar)
Video: Pimp My Filter #14 - Boyu EF-25 Canister Filter 2024, November
Anonim
Pimp My Cam
Pimp My Cam

Dari sinilah asal projek ini.

Beberapa saat yang lalu saya berfikir tentang penggambaran beberapa masa. "Bagaimana?" Saya bertanya pada diri sendiri? Jawapan pertama adalah "Baiklah.. anda hanya memfilmkan sesuatu dan mempercepatnya dan itu sahaja". Tetapi adakah itu semudah itu? Pertama, saya mahu menggunakan DSLR saya untuk itu, dan Nikon D3100 saya mempunyai had masa 10 minit untuk penggambaran video. Kedua, walaupun saya mempunyai kamera tanpa had masa penggambaran video, bagaimana jika saya ingin membuat jangka masa yang panjang, seperti 12 jam? Saya membuat video 1080p sepanjang 12 jam. Saya ragu bateri akan bertahan lama dan, ia tidak begitu praktikal, bukan? Baiklah, menyeberangi "idea penggambaran video". Baiklah, maka ada gambar. Mengambil gambar pada kamera pada selang waktu tertentu dan berakhir dengan beratus-ratus gambar yang saya proseskan melalui perisian untuk membuat video..?

Nampaknya idea yang baik, jadi saya memutuskan untuk mencuba. Oleh itu, saya akhirnya ingin membuat peranti di mana saya dapat memasukkan jangka masa, dan berdasarkan jangka masa itu ia akan selalu mencetuskan kamera saya. Dan semasa kita melakukannya, mengapa tidak menambah beberapa perkara lain seperti pemicu gerakan dan sebagainya?

Langkah 1: Tetapi.. Bagaimana?

Tetapi bagaimana?
Tetapi bagaimana?

BAGAIMANA? adakah soalan seterusnya yang tidak ada jawapannya. Kerana masa, pemicu, sensor dan perkara-perkara seperti itu, tidak mengejutkan bahawa yang pertama yang terlintas di fikiran adalah, tentu saja, Arduino. Baiklah, tetapi masih, kita perlu belajar cara mencetuskan rana pada kamera kita. Hm.. servo panas terpaku pada kamera badan? Sama sekali tidak, kami mahu ini senyap dan cekap tenaga. Kuasa cekap - mengapa? Oleh kerana saya ingin menjadikannya mudah alih dan melekatkan bateri di dalamnya, saya tidak akan berada berdekatan dengan palam kuasa setiap masa. Jadi bagaimana kita mencetuskannya.. sebenarnya cukup mudah.

Nikon sudah tahu bahawa anda akan menginginkan alat kawalan jauh dan aksesori lain dan mereka berkata "baiklah, kami akan memberikan semua itu, tetapi kami akan membuat pelabuhan khas supaya kami dapat menjana lebih banyak wang untuk aksesori itu", malu Nikon. Pelabuhan itu (dalam kes saya) dipanggil MC-DC2, dan cara termurah untuk mendapatkannya adalah dengan membeli pelepas rana jarak jauh di eBay dengan harga 2-3 $ dan hanya menggunakan kabel.

* Beberapa kamera lain, seperti Canon, mempunyai bicu fon kepala 3.5mm sederhana yang dibuat untuk penggunaan yang sama sehingga anda dapat menggunakan beberapa kabel dari pembesar suara / fon kepala lama.

Langkah 2: Belajar Cara Mencetuskan Kamera

Image
Image
Cara Mencetuskan
Cara Mencetuskan

Bagaimanapun, inilah perjanjiannya, pelabuhan akan mempunyai 3 sambungan yang akan menarik minat kami (Ground, Focus dan Shutter) dan anda akan mempunyai kabel yang berada di hujung kabel shutter jarak jauh yang baru anda beli yang baru sahaja anda hancurkan. Ketiga-tiga sambungan itu penting bagi kami kerana jika kami memendekkan Ground dan Fokus, kamera akan fokus sama seperti anda menekan butang fokus dan kemudian, sementara sambungan itu tetap ada, anda boleh memendekkan Ground dan Shutter dan kamera akan mengambil gambar sama seperti anda menekan butang rana pada kamera.

Anda boleh mengujinya dengan cara memendekkan wayar langsung di hujung kabel untuk mengenal pasti wayar yang mana. Setelah anda melakukannya, untuk mengenal pasti lebih mudah, kami akan mewarnainya seperti ini:

Tanah = HITAM; Fokus = PUTIH; Shutter = MERAH.

Baiklah, sekarang kita perlu mengajar Arduino untuk melakukan ini untuk kita.

Langkah 3: Cara Mencetuskan

Image
Image

Perkara paling mudah yang dapat kita sampaikan kepada Arduino untuk dihantar ke dunia luar ialah isyarat output digital. Isyarat ini boleh menjadi TINGGI (logik '1') atau RENDAH (logik '0'), oleh itu nama "digital", atau apabila ditukar menjadi intinya bermaksud: 5V untuk TINGGI logik, dan 0V untuk RENDAH logik.

Apa yang perlu kita lakukan dengan isyarat digital ini? Kita tidak boleh hanya menghubungkannya ke kamera dan mengharapkan kamera mengetahui apa yang kita mahukan. Seperti yang telah kita lihat, kita perlu memendekkan sambungan pada kamera agar ia dapat bertindak balas, jadi kita perlu menggunakan isyarat digital Arduino untuk menggerakkan beberapa komponen yang dapat memendekkan terminal mereka bergantung pada isyarat elektrik ini yang kami kirimkan. * Seperti yang saya gambarkan, anda mungkin berfikir "Ah, Relay!" tetapi tidak tidak. Relay akan melakukan tugas itu tetapi kita berhadapan dengan arus kecil sehingga kita dapat menggunakan ilmu hitam semikonduktor dengan mudah.

Komponen pertama yang akan saya cuba ialah optocoupler. Saya telah melihat mereka melaksanakan paling banyak untuk ini dan ini mungkin penyelesaian terbaik. Optocoupler adalah komponen elektrik yang dengannya anda mengawal litar output sementara litar input sepenuhnya terpencil daripadanya. Ini dicapai dengan mengirimkan maklumat dengan cahaya, litar input menyalakan LED, dan fototransistor pada output beralih dengan sewajarnya.

Oleh itu, kami akan menggunakan optocoupler dengan cara ini: kami memberitahu Arduino kami untuk menghantar digital TINGGI pada satu jika ia adalah pin digital, isyarat itu hampir 5V yang akan menggerakkan LED di dalam optocoupler dan phototransistor di dalamnya akan "pendek" ia adalah terminal output ketika mengesan cahaya itu, dan sebaliknya, ia akan "melepaskan" terminalnya kerana tidak ada cahaya dari LED ketika kita menghantar RENDAH digital melalui Arduino.

Secara praktikal, ini bermaksud: salah satu pin digital Arduino dilekatkan pada pin ANODE optocoupler, Arduino's GND dilampirkan pada CATHODE, kamera GND dilampirkan ke EMITTER dan FOKUS (atau SHUTTER) ke COLLECTOR. Rujuk pada lembaran data optocoupler yang anda gunakan untuk mendapatkan pin ini pada pin anda. Saya menggunakan 4N35 supaya anda dapat mengikuti skema saya secara membuta tuli jika anda tidak begitu peduli dengan apa yang berlaku di dalam optocoupler. Tidak perlu dikatakan, kita memerlukan dua daripadanya, kerana kita perlu mengawal FOKUS dan SHUTTER kedua kamera.

Oleh kerana kami melihat cara kerjanya, dengan fototransistor pada output, mengapa tidak kami mencubanya hanya dengan transistor NPN sederhana. Kali ini, kami akan membawa isyarat digital secara langsung (melintasi perintang) ke pangkal transistor dan menghubungkan kedua-dua kamera dan Arduino's GND ke pemancar dan fokus kamera / pengatup ke pemungut transistor.

Sekali lagi, kita memerlukan dua ini kerana kita mengawal dua isyarat. Saya menggunakan BC547B dan pada dasarnya anda boleh menggunakan NPN untuk ini kerana arus yang kami kendalikan adalah satu miliamp.

Kedua-dua komponen ini akan berfungsi, tetapi memilih optocoupler mungkin merupakan idea yang lebih baik kerana lebih selamat. Pilih transistor hanya jika anda tahu apa yang anda lakukan.

Langkah 4: Menulis Kod untuk Mencetuskan

Image
Image
Menulis Kod untuk Mencetuskan
Menulis Kod untuk Mencetuskan

Seperti yang kami katakan sebelumnya, kami akan menggunakan pin digital Arduino untuk memberi isyarat. Arduino boleh menggunakan kedua-duanya untuk membaca data darinya, atau menulis kepadanya sehingga perkara pertama yang perlu kita tentukan dalam fungsi setup () bahawa kita akan menggunakan dua pin digital Arduino untuk output seperti:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

di mana FOCUS_PIN dan SHUTTER_PIN boleh didefinisikan dengan "#define NAME value" atau sebagai int sebelum fungsi setup () kerana anda mungkin menukar pin sehingga lebih mudah untuk mengubah nilainya hanya pada satu tempat daripada keseluruhan kod selepasnya.

Perkara seterusnya yang akan kita lakukan ialah menulis fungsi trigger () yang akan dilakukan begitu sahaja ketika dijalankan. Saya hanya akan memasukkan gambar dengan kodnya. Yang perlu anda ketahui ialah pertama-tama kita menahan FOCUS_PIN pada HIGH untuk jangka masa tertentu kerana kita perlu menunggu kamera untuk memfokuskan pada subjek yang kita tuju dan kemudian sebentar (sementara FOCUS_PIN masih TINGGI) letakkan SHUTTER_PIN pada TINGGI hanya untuk mengambil gambar.

Saya juga menyertakan kemampuan untuk melewatkan pemfokusan kerana tidak akan memerlukannya jika kita mengambil jangka masa sesuatu yang tidak mengubah jaraknya dari kamera sepanjang masa.

Langkah 5: Selang Kelas {};

Image
Image
Memanipulasi Selang Melalui Arduino
Memanipulasi Selang Melalui Arduino

Sekarang kita dapat memicu kamera daripada kita perlu menjadikannya menjadi intervalometer dengan menambahkan fungsi memanipulasi jangka masa antara dua tangkapan. Untuk mendapatkan gambaran tentang apa yang kita lakukan berikut adalah beberapa kod primitif untuk menunjukkan fungsi yang kita mahukan:

gelung kosong () {

kelewatan (selang waktu); pencetus (); }

Saya mahu dapat mengubah selang ini dari, katakanlah, 5 saat hingga 20-30 minit. Dan inilah masalahnya, jika saya mahu mengubahnya dari 5 hingga 16 atau apa-apa di antara saya akan menggunakan kenaikan 1s, di mana untuk setiap permintaan saya untuk menambah selang, selang akan bertambah selama 1 saat. Itu bagus, tetapi bagaimana jika saya mahu bergerak dari 5 hingga 5 minit? Saya memerlukan 295 permintaan untuk itu dalam kenaikan 1s jadi saya jelas perlu meningkatkan nilai kenaikan menjadi sesuatu yang lebih besar, dan saya perlu menentukan nilai selang (ambang) yang tepat untuk mengubah kenaikan. Saya melaksanakan ini:

5s-60s: kenaikan 1s; 60-300-an: kenaikan 10-an; 300s-3600s: kenaikan 60an;

tetapi saya menulis kelas ini agar dapat disesuaikan sehingga anda dapat menentukan ambang dan kenaikan anda sendiri (semuanya dikomentari dalam fail.h supaya anda dapat mengetahui di mana untuk menukar nilai mana).

Contoh yang saya berikan untuk memanipulasi selang itu jelas dilakukan pada PC, sekarang kita perlu memindahkannya ke Arduino. Seluruh kelas ini, Interval, dimasukkan ke dalam satu fail header yang digunakan untuk menyimpan deklarasi dan definisi (tidak benar, tetapi dapat dilakukan dalam contoh ini tanpa membahayakan) kelas / fungsi kita. Untuk memperkenalkan fail header ini ke kod arduino kami, kami menggunakan "#include" Interval.h "" (file harus berada di direktori yang sama), yang memastikan bahawa kami dapat menggunakan fungsi yang ditentukan dalam file header dalam kod utama kami.

Langkah 6: Memanipulasi Selang Melalui Arduino

Image
Image
Memanipulasi Selang Melalui Arduino
Memanipulasi Selang Melalui Arduino
Memanipulasi Selang Melalui Arduino
Memanipulasi Selang Melalui Arduino

Sekarang kita mahu dapat mengubah nilai selang, baik menambah atau menurunkannya. Jadi itu dua perkara jadi kita akan menggunakan dua isyarat digital yang akan dikendalikan oleh dua butang. Kami akan berulang kali membaca nilai pada pin digital yang kami tetapkan pada butang dan menguraikan nilai tersebut ke fungsi checkButtons (int, int); yang akan meningkatkan selang jika butang "atas" ditekan dan menurunkan selang jika butang "turun". Juga, jika kedua-dua butang ditekan, ia akan mengubah nilai fokus berubah yang mengawal sama ada mahu fokus ketika mencetuskan atau tidak.

Sebahagian kod ((milis () - prevBtnPress)> = debounceTime) digunakan untuk membantah. Cara saya menulisnya, ini bermaksud bahawa saya mendaftarkan penekanan butang pertama dengan pemboleh ubah boolean btnPressed dan mengingat masa ia berlaku. Daripada saya menunggu sejumlah waktu (debounceTime) dan jika butang masih ditekan, saya bertindak balas. Ini juga membuat "jeda" antara setiap penekanan butang yang lain sehingga mengelakkan banyak penekanan jika tidak ada.

Dan akhirnya, dengan:

if ((millis () - prevTrigger) / 1000> = interval.getVal ()) {

prevTrigger = millis (); pencetus (); }

pertama kami memeriksa sama ada jumlah masa antara pencetus terakhir (prevTrigger) dan waktu semasa (milis ()) (semuanya dibahagi dengan 1000 kerana dalam milisaat dan selang dalam beberapa saat) sama atau lebih besar daripada selang kita mahu, dan jika betul kita ingat masa sekarang sebagai kali terakhir kita mencetuskan kamera dan kemudian mencetuskannya.

Dengan lengkapnya, kita pada dasarnya membuat intervalometer, tetapi kita masih belum selesai. Kami masih tidak melihat nilai intervalometer. Ia hanya dipaparkan di Monitor Serial dan kita tidak akan selalu berada di komputer sehingga sekarang kita akan melaksanakan sesuatu yang akan menunjukkan selang waktu kita mengubahnya.

Langkah 7: Memaparkan Selang

Image
Image
Memaparkan Selang
Memaparkan Selang
Memaparkan Selang
Memaparkan Selang
Memaparkan Selang
Memaparkan Selang

Di sinilah kami memperkenalkan paparan. Saya menggunakan modul 4 digit yang dipacu oleh TM1637 kerana saya perlu menggunakannya hanya untuk memaparkan masa dan tidak ada yang lain. Cara termudah untuk menggunakan modul ini yang dibuat untuk Arduino adalah dengan menggunakan perpustakaan yang sudah dibuat untuknya. Di laman Arduino terdapat halaman yang menerangkan cip TM1673 dan pautan ke perpustakaan yang dicadangkan. Saya memuat turun perpustakaan ini dan terdapat dua cara untuk memperkenalkan perpustakaan ini ke Arduino IDE:

  1. dari perisian Arduino pergi ke Sketch> Include Library> Add. ZIP library dan cari fail.zip yang baru anda muat turun
  2. anda boleh melakukan apa yang dilakukan Arduino secara manual dan hanya membuka zip pustaka dalam folder di mana Arduino menyimpan perpustakaan, pada Windows: C: / Users / Username / Documents / Arduino / library \.

Sebaik sahaja anda memasukkan perpustakaan, anda harus membaca fail "ReadMe" di mana anda akan mendapat ringkasan tentang apa yang dilakukan oleh pelbagai fungsi. Kadang-kadang ini tidak mencukupi, jadi anda ingin melihat lebih mendalam dan meneroka fail header di mana anda dapat melihat bagaimana fungsinya dilaksanakan dan apa yang mereka perlukan sebagai argumen input. Dan tentu saja cara terbaik untuk merasakan apa yang mampu dimiliki oleh perpustakaan biasanya menawarkan contoh yang boleh anda jalankan dari perisian Arduino melalui Fail> Contoh> Nama Perpustakaan> Nama Contoh. Perpustakaan ini menawarkan satu contoh yang saya sarankan agar anda berjalan di paparan anda hanya untuk melihat apakah paparan anda berfungsi dengan baik dan daripada yang saya sarankan anda untuk mengubah kod yang anda lihat dalam contoh dan melihat sendiri apa yang dilakukan oleh setiap fungsi dan bagaimana reaksi paparan terhadap ia. Saya telah melakukannya dan inilah yang saya fikirkan:

ia menggunakan 4 bilangan bulat tidak bertanda 8 bit untuk setiap digit (0bB7, B6, B5, B4, B3, B2, B1, B0). Dan setiap bit itu B6-B0 digunakan untuk setiap segmen digit tertentu dan jika bit adalah 1 segmen yang dikendalikan olehnya menyala. Bilangan bulat ini disimpan dalam array yang dipanggil data . Menetapkan bit ini ke paparan dicapai dengan display.setSegments (data); atau secara semula jadi anda dapat mengakses mana-mana digit dan menetapkannya secara manual (data [0] = 0b01111001) atau anda boleh menggunakan fungsi encodeDigit (int); dan ubah digit yang anda kirimkan ke dalam bit (data [0] = display.encodeDigit (3));. Bit B7 hanya digunakan oleh digit kedua, atau data [1], untuk mengaktifkan usus besar.

Oleh kerana saya menulis fungsi dalam penyihir kelas INTERVAL yang mana saya dapat memperoleh digit selang tertentu dalam bentuk M1M0: S1S0, di mana M berdiri selama beberapa minit dan S selama beberapa saat, wajarlah saya menggunakan encodeDigitFunction (int); kerana memaparkan selang waktu seperti:

paparanInterval () {

data [0] = display.encodeDigit (interval.getM1 ()); data [1] = 0x80 | display.encodeDigit (selang.getM0 ()); data [2] = display.encodeDigit (interval.getS1 ()); data [3] = display.encodeDigit (interval.getS0 ()); display.setSegments (data); }

Sekarang, bila-bila masa saya perlu memaparkan Interval ke paparan, saya dapat memanggil fungsi displayInterval ().

* Perhatikan "0x80 |…" pada data [1]. Ia digunakan untuk memastikan bahawa bit B7 data [1] selalu 1 sehingga usus besar menyala.

Perkara terakhir mengenai paparan, penggunaan kuasa. Mungkin tidak begitu penting kerana kami tidak akan menggunakannya dalam jangka masa yang lama, tetapi jika anda berminat untuk menjadikannya lebih mesra bateri, maka pertimbangkan untuk menurunkan kecerahan paparan kerana menarik arus 3 kali lebih banyak pada kecerahan maksimum daripada pada yang paling rendah.

Langkah 8: Menggabungkan Semuanya

Menggabungkan Semuanya
Menggabungkan Semuanya

Kami tahu bagaimana mencetuskan kamera, bagaimana memanipulasi selang dan bagaimana memaparkan selang yang sama ke paparan. Sekarang kita hanya perlu menggabungkan semua perkara ini bersama-sama. Kita akan memulakan, tentu saja, dari fungsi loop (). Kami akan sentiasa memeriksa penekanan butang dan bertindak balas dengan checkButtons (int, int) dan mengubah selang dengan sewajarnya dan memaparkan selang yang berubah. Juga dalam gelung () kita akan terus memeriksa apakah cukup waktu berlalu dari pemicu terakhir atau tekan butang dan panggil fungsi pemicu () jika diperlukan. Demi penggunaan kuasa yang lebih rendah, kami akan mematikan paparan setelah beberapa lama.

Saya menambahkan led dua warna, (Merah dan Hijau, katod biasa) yang akan menyala hijau sementara pemicu () dan ia akan menyala merah bersama dengan paparan jika pemfokusan dihidupkan dan ia akan mati jika fokus mati.

Juga, kami akan berhijrah ke Arduino, Pro Mini yang lebih kecil lagi.

Langkah 9: Menambah Satu Perkara Terakhir

Menambah Satu Perkara Terakhir
Menambah Satu Perkara Terakhir
Menambah Satu Perkara Terakhir
Menambah Satu Perkara Terakhir
Menambah Satu Perkara Terakhir
Menambah Satu Perkara Terakhir

Setakat ini.. kami hanya membuat Intervalometer. Berguna, tetapi kita boleh melakukan yang lebih baik.

Inilah yang saya fikirkan: Intervalometer melakukan perkara itu secara lalai KECUALI apabila kita memasang semacam suis / sensor luaran yang kemudian menghentikan intervalometer dan bertindak balas terhadap input suis / sensor. Mari kita panggil ia sensor, tidak semestinya sensor yang disambungkan tetapi saya akan merujuknya sebagai itu.

Pertama, bagaimana kita mengesan bahawa kita telah memasang sensor?

Sensor yang akan kita gunakan / buat semuanya memerlukan tiga wayar yang menghubungkannya ke arduino (Vcc, GND, Signal). Itu bermakna kita boleh menggunakan bicu audio 3.5mm sebagai soket input untuk sensor. Dan bagaimana ia menyelesaikan masalah kita? Nah, ada jenis soket 3.5mm "dengan suis" yang mempunyai pin yang dipendekkan ke pin penyambung jika tidak ada penyambung lelaki di dalamnya, dan mereka melepaskan apabila ada penyambung yang ada. Itu bermakna kita mempunyai maklumat berdasarkan kehadiran sensor. Saya akan menggunakan resistor pull-down seperti yang ditunjukkan (pin digital akan membaca TINGGI tanpa sensor, dan RENDAH dengan sensor terpasang) pada gambar atau anda juga boleh memasang pin digital ke pin penyambung yang biasanya disambungkan ke tanah dan menentukan bahawa pin digital sebagai INPUT_PULLUP, ia akan berfungsi sama ada. Jadi sekarang kita harus mengubah kod kita sehingga melakukan semua yang kita tulis sejauh ini hanya jika sensor tidak ada, atau ketika memeriksa pin digital yang TINGGI. Saya juga mengubahnya sehingga menunjukkan "SENS" pada paparan dan bukannya selang yang tidak berguna dalam mod ini, tetapi pemfokusan masih relevan dengan kami, kami akan memastikan fungsi mengalihkan fokus dengan menekan kedua butang dan menunjukkan keadaan fokus melalui led merah.

Apa yang sebenarnya dilakukan oleh sensor?

Yang perlu dilakukan ialah meletakkan 5V pada pin Signal ketika kita mahu mencetuskan kamera. Ini bermaksud bahawa kita memerlukan pin digital lain dari Arduino yang memeriksa keadaan pin ini dan ketika mendaftar TINGGI, yang perlu dilakukan hanyalah memanggil fungsi pemicu () dan kamera akan mengambil gambar. Contoh paling mudah, dan yang akan kita gunakan untuk menguji apakah ini berfungsi, adalah butang mudah dengan perintang tarik. Pasang butang antara Vcc sensor dan pin Isyarat dan tambahkan perintang antara Pin isyarat dan GND, dengan cara ini Pin Isyarat akan berada di GND apabila butang tidak ditekan kerana tidak ada arus yang mengalir melalui perintang, dan ketika butang ditekan kami meletakkan pin Isyarat terus pada TINGGI dan Arduino membacanya dan mencetuskan kamera.

Dengan ini kami menyimpulkan menulis kodnya.

* Saya ingin mengetahui beberapa masalah yang saya hadapi dengan bicu audio yang saya gunakan. Semasa memasukkan jack lelaki ke dalam penyambung, GND dan salah satu daripada dua pin yang lain kadang-kadang pendek. Ini berlaku serta-merta dan hanya semasa memasukkan penyambung, tetapi masih cukup lama untuk Arduino mendaftar pendek sehingga Arduino akan dimulakan semula. Perkara ini tidak kerap berlaku tetapi masih boleh menjadi bahaya dan ada kemungkinan memusnahkan Arduino jadi elakkan penyambung yang saya gunakan.

Langkah 10: Mengandungi Kekacauan

Mengandungi Kekacauan
Mengandungi Kekacauan
Mengandungi Kekacauan
Mengandungi Kekacauan
Mengandungi Kekacauan
Mengandungi Kekacauan
Mengandungi Kekacauan
Mengandungi Kekacauan

Anda dapat melihat dari gambar bahawa papan roti semakin tidak kemas dan kami selesai jadi kami perlu memindahkan semuanya ke papan wap / PCB. Saya memilih PCB kerana saya fikir saya akan membuat lebih banyak jadi dengan cara ini saya dapat menghasilkannya dengan mudah.

Saya menggunakan Eagle untuk merancang PCB dan menemui reka bentuk untuk semua bahagian yang saya gunakan. Terdapat satu perkara kecil dalam reka bentuk saya yang saya harap tidak saya lakukan dan itu adalah pad wayar untuk Vcc paparan. Saya telah melihatnya terlambat dan tidak mahu merosakkan apa yang saya rancang sebelumnya dan dengan malas menambah pad wayar dan kemudian perlu menambah wayar ke sambungan ini dan bukannya jejak tembaga, jadi ingatlah jika anda menggunakan reka bentuk lombong.

Papan Arduino dan paparan disambungkan ke PCB melalui header pin wanita dan bukannya disolder terus ke PCB, untuk alasan yang jelas. Dengan cara ini terdapat banyak ruang untuk komponen lain di bawah paparan untuk komponen lain seperti perintang, transistor dan juga bicu audio.

Saya telah meletakkan butang tekan mikro yang, mengikut reka bentuk, harus disolder secara langsung tetapi anda juga boleh menggunakan lubang untuk tajuk pin wanita dan menyambungkan butang dengan wayar jika anda mahu ia dipasang pada penutup dan bukan pada PCB.

Kami juga akan memasang bicu audio wanita lain untuk memasang kabel yang menyambung ke kamera. Dengan cara ini papan menjadi lebih serba boleh kerana dengan cara itu kita dapat menyambung ke kamera lain dengan penyambung lain.

Langkah 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Mari pertimbangkan kaedah untuk melaksanakan sensor.

Oleh itu sensor akan mempunyai voltan bekalan 5V, dan ia mesti dapat memberikan TINGGI digital pada pin isyaratnya ketika kita ingin mencetuskan kamera. Perkara pertama yang terlintas di fikiran saya adalah sensor gerakan, PIR untuk menjadi spesifik. Terdapat modul yang dijual untuk Arduino yang mempunyai sensor ini dan melakukan apa yang kami mahukan. Mereka dihidupkan pada 5V dan mempunyai pin output di mana mereka meletakkan 5V ketika dicetuskan, kita hanya perlu menyambungkan pinnya ke bicu audio 3.5mm dan kita boleh pasangkan terus ke papan. Satu perkara yang perlu diperhatikan ialah sensor ini memerlukan masa untuk memanaskan badan dan mula berfungsi dengan baik, jadi jangan berharap ia berfungsi dengan betul sebaik sahaja anda memasangkannya, berikan sedikit masa dan kemudian pasangkannya dan apa sahaja yang hidup masuk ke dalamnya jarak jauh akan mencetuskan kamera.

Oleh kerana kita berfikir ke arah papan sensor Arduino yang sudah dibuat, satu lagi yang terlintas di fikiran, suara. Papan ini biasanya dibuat sedemikian rupa sehingga mereka memiliki satu pin yang mengeluarkan nilai analog dari suara yang dikeluarkannya dan satu lagi, satu digital, yang menghasilkan logik TINGGI jika suara yang dipetiknya melintasi tahap tertentu. Kami dapat menetapkan tahap ini sehingga sensor mengabaikan suara kami tetapi mendengarkan tepukan. Dengan cara itu, setiap kali anda bertepuk tangan, anda mencetuskan kamera.

Langkah 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Saya berpendapat bahawa cara termudah untuk memberi kuasa kepada perkara ini adalah dengan power bank, dan bukan secara luaran. Kami akan mengekalkan fungsi mengecas telefon kami atau apa sahaja dan mengawal aliran arus ke papan melalui suis. Kami akan mencari pin penyambung USB output pada papan litar di power bank yang wayar GND dan Vcc (5V) dan Solder terus ke atasnya dan dari sana ke papan kami.

Langkah 13: Pagar.. Kinda

Pagar.. Kinda
Pagar.. Kinda
Pagar.. Kinda
Pagar.. Kinda
Pagar.. Kinda
Pagar.. Kinda

Saya benar-benar bergelut dengan ini. Semasa saya meletakkan kotak yang saya mahu masukkan PCB yang ada, saya menyedari bahawa tidak ada cara yang bagus untuk menyesuaikan semua yang saya mahukan dan kemudian saya memutuskan untuk merancang PCB baru, kali ini dengan optocoupler. Saya mahu meletakkan PCB tepat di bawah bahagian yang akan saya lubang lubang untuk komponen tertentu yang perlu dilihat / disentuh. Agar ini berfungsi, saya perlu menyolder paparan dan Arduino terus ke papan, tanpa soket atau header, dan di situlah masalah pertama terletak. Adalah sangat mengerikan untuk menyelesaikan masalah apa-apa kerana saya tidak bersedia untuk menyelesaikannya sehingga saya menguji bahawa semuanya berfungsi, dan saya tidak dapat menguji apa-apa kerana saya tidak dapat menyoldernya dan sebagainya.. jangan jangan buat ini. Masalah numero dos, membuat lubang pada kes itu. Saya rasa saya salah melakukan pengukuran kerana tidak ada lubang pada casing yang sesuai dengan komponen pada PCB dan saya perlu membesarkannya dan butang terlalu tinggi pada PCB dan ia akan selalu ditekan semasa saya meletakkan papan di tempatnya Oleh kerana saya mahukan bicu audio di sebelahnya, saya juga perlu membesarkan lubang tersebut agar sesuai dengan bicu terlebih dahulu dan kemudian turunkan papan untuk paparan dan butang masuk.. hasilnya sangat buruk.

Saya agak membuat lubang yang mengerikan menjadi tidak mengerikan dengan meletakkan bahagian atasnya dengan kadbod nipis di mana saya memotong lubang yang lebih masuk akal untuk komponen dan.. ia masih mengerikan tetapi lebih mudah di mata saya fikir.

Keputusan, saya cadangkan anda melakukan ini dengan membeli komponen yang dipasang ke kandang, dan tidak langsung ke PCB. Dengan cara itu anda mempunyai lebih banyak kebebasan dalam meletakkan komponen dan lebih sedikit tempat untuk melakukan kesilapan.

Langkah 14: Sirip

Image
Image
Sirip
Sirip

Saya sudah selesai, tetapi berikut adalah beberapa perkara yang saya akan lakukan dengan cara yang berbeza:

Gunakan bicu audio 3.5mm yang lebih berkualiti. Yang saya gunakan cenderung untuk memendekkan terminal semasa memasukkan atau mengeluarkan bicu yang mengakibatkan pemutus bekalan sehingga merapatkan semula Arduino atau hanya menghasilkan pencetus palsu. Saya telah mengatakannya pada langkah sebelumnya tetapi saya akan mengatakannya lagi.. jangan menyolder papan Arduino tanpa header / soket, ini hanya membuat masalah atau memuat naik kod baru dan lebih sukar lagi. Saya juga berpendapat bahawa memberi isyarat yang dipimpin bahawa perkara itu dihidupkan pasti berguna kerana saya sering tidak dapat memberitahu tanpa menekan butang kerana paparan dimatikan. Dan perkara terakhir, fungsi jeda. Saya membayangkan ia berguna ketika misalnya ketika memasang sensor PIR jadi kerana memerlukan masa untuk memanaskan badan, atau ketika memindahkannya di sekitar, anda tidak mahu ia mencetuskan sehingga anda hanya boleh menghentikan sebentar semuanya, tetapi anda juga boleh menghidupkannya mematikan kamera jadi.. apa sahaja.

Satu lagi perkara yang kemas ialah Velcro pada tripod kerana kemungkinan besar digunakan di sana.

Jangan ragu untuk bertanya apa-apa mengenai projek ini dalam komen dan saya ingin tahu jika anda membinanya dan bagaimana ia berfungsi untuk anda.

Disyorkan: