Daftar Isi:

Bangun Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi.: 22 Langkah (dengan Gambar)
Bangun Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi.: 22 Langkah (dengan Gambar)

Video: Bangun Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi.: 22 Langkah (dengan Gambar)

Video: Bangun Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi.: 22 Langkah (dengan Gambar)
Video: Kecurangan penjual gas elpiji!!!!! 2024, Juli
Anonim
Bangun Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi Anda
Bangun Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi Anda
Buat Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi
Buat Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi
Buat Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi
Buat Sendiri (murah!) Pengontrol Kamera Nirkabel Multi-fungsi

Pendahuluan Pernah membayangkan membuat pengontrol kamera Anda sendiri? CATATAN PENTING: Kapasitor untuk MAX619 adalah 470n atau 0,47u. Skemanya benar, tetapi daftar komponennya salah - diperbarui. Ini adalah entri ke kompetisi Digital Days jadi jika Anda merasa ini berguna, beri peringkat/vote/komentar positif! Jika Anda benar-benar menyukainya dan tersandung, tekan "i like it!":) Pembaruan: ditampilkan di hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Pembaruan: foto baru pemicu laser beraksi! Pembaruan: Hadiah Pertama = D, terima kasih telah memilih dan/atau memberi peringkat! Instruksi ini terutama untuk kepentingan pengguna SLR yang ingin mendapatkan jarak tempuh lebih jauh dari kamera mereka, namun jika ada titik dan pemotretan dengan antarmuka IR, Anda mungkin menganggap ini menarik. Tentu saja ini juga akan berfungsi (dengan sedikit modifikasi) dengan peretasan kamera di mana Anda dapat menghubungkan output logis ke terminal pemicu kamera. Ini dimulai sebagai tutorial lengkap, tetapi karena beberapa kendala tak terduga yang saya temui nanti, ini mungkin lebih merupakan panduan tentang cara menyelesaikan berbagai hal - saya akan sering memberi Anda pilihan tentang bagaimana Anda bisa melakukan hal-hal yang Saya pikir ini adalah cara yang lebih baik untuk melakukan sesuatu daripada hanya mengatakan secara membabi buta "Anda harus melakukan ini". Anggap ini sebagai pelajaran dalam desain pengontrol kamera. Saya telah menyediakan skema dan kode lengkap sehingga Anda selalu dapat menyalinnya. Ini akan menjadi kasus sederhana mentransfer desain ke stripboard dan menambahkan LCD untuk kebanyakan orang. Saya telah melalui cara membuat papan tempat memotong roti karena prosesnya sangat mirip dan memungkinkan untuk mengoreksi kesalahan sebelum Anda membuat desain permanen! Fitur: Mode bidikan tunggal Mode interval (selang waktu) Mode pemotretan terpicu (pemicu dari sensor eksternal) dengan kondisi variabel Termasuk desain sensor - cahaya, suara (lebih banyak lagi mungkin!) Total biaya - di bawah £25 (tidak termasuk alat) Layar LCD untuk kemudahan perubahan pengaturan Kompatibel dengan Nikon/Canon (berkode), dukungan potensial (belum diuji) untuk Olympus/Pentax Tidak ada firmware modifikasi yang diperlukan Menggunakan IR sehingga nirkabel dan tidak merusak kamera Anda Saya punya ide untuk ini setelah duduk di luar dalam cuaca dingin mengklik remote control saya selama berjam-jam. Saya melakukan interval 8 detik untuk sekitar 1000 tembakan. Saya pikir, hei, itu hanya LED IR bukan? Mengapa saya tidak dapat mereplikasinya dan membuat remote sendiri dengan penundaan bawaan? Saya kemudian menemukan (agak malu, karena saya pikir saya memiliki gelombang otak yang besar) bahwa ini telah dilakukan dan bahkan ada beberapa instruksi tentang topik tersebut. Di mana implementasi saya berbeda dari kebanyakan intervalometer dan remote diy adalah memungkinkan banyak penyesuaian dan modularitas, kompatibel dengan Nikon/Canon (dan kemungkinan yang lain nanti) dan menggabungkan kemampuan untuk mengambil gambar pada pemicu tertentu. Idenya sederhana. Anda ingin memotret sesuatu dengan cukup cepat (saat ini dibatasi oleh jeda pada rana Anda, bagi saya 6 ms). Ada berbagai metode untuk melakukan ini: 1. Trial and error Anda mencoba untuk mengambil gambar pada saat yang tepat 2. Meningkatkan trial and error Anda menghitamkan ruangan, meletakkan kamera Anda di bohlam (rana terbuka) dan menyalakan lampu kilat pada waktu yang tepat 3. Beli pengontrol pemicu khusus yang memiliki semacam sensor audio/cahaya untuk mengambil gambar sesuai perintah Anda 4. Buat sendiri! Oke, 1 dan 2 baik-baik saja untuk bermain-main dan dapat menghasilkan beberapa gambar yang sangat bagus. Tapi apa yang akan saya tunjukkan kepada Anda adalah bahwa mungkin untuk membangun sirkuit yang akan memberi Anda hasil yang konsisten dari waktu ke waktu. Yang paling penting, di masa-masa sulit ini, biayanya lebih rendah daripada model alternatif (beberapa orang telah memproduksi kit untuk melakukan hal semacam ini, tetapi harganya mahal lihat tautan). Fleksibilitas desainnya adalah ini: Jika sensor Anda menghasilkan tegangan output antara 0 dan 5V, Anda dapat menggunakannya untuk memicu kamera Anda! Sepintas, ini adalah pernyataan yang membosankan, tetapi begitu Anda mulai memahami implikasinya, itu menjadi sangat kuat. Dengan hanya memantau level tegangan, pemicu Anda bisa berbasis cahaya (LDR), berbasis suara (mikrofon atau ultrasound), berbasis suhu (termistor), atau bahkan potensiometer sederhana. Bahkan, apa saja. Anda bahkan dapat menghubungkan rangkaian ke pengontrol lain dan asalkan itu dapat memberi Anda output logis, sehingga Anda dapat memicu darinya. Satu-satunya batasan utama dari desain saat ini adalah bahwa ia hanya berfungsi dengan antarmuka IR, akan cukup sederhana untuk memodifikasi perangkat lunak dan perangkat keras untuk menghasilkan melalui mini-USB atau jenis antarmuka apa pun yang diperlukan. Catatan: Kode Sumber: Saya telah menyediakan beberapa aplikasi pada langkah 13. Kode yang saya jalankan pada pengontrol saya seperti yang sekarang ada di file hex bersama dengan file c utama dan dependensinya. Anda cukup menjalankan kode saya jika Anda tidak yakin tentang kompilasi. Saya juga menyertakan beberapa kode contoh yang dapat Anda gunakan dalam berbagai langkah (mereka diberi nama jelas seperti remote_test, tes intervalometer dan tes adc. Jika saya merujuk ke kode dalam satu langkah, kemungkinan besar ada di sana. EDIT: Pembaruan tentang balon meletus - sepertinya saya agak rabun saat mengatakan Anda dapat dengan mudah memotret foto balon yang meletus. Ternyata kulit pada balon rata-rata bergerak sangat cepat sehingga akan meletus sepenuhnya pada saat kamera Anda menembak. Ini adalah masalah dengan sebagian besar kamera, BUKAN pengontrol (yang merasakan ADC pada kecepatan sekitar 120kHz). Cara mengatasinya adalah dengan menggunakan flash yang dipicu, yang dapat dilakukan jika Anda menambahkan kabel tambahan dan sirkuit kecil lainnya. dikatakan, secara teori Anda dapat menggunakan sesuatu yang lain untuk mengeluarkannya dan memainkan penundaan (atau bahkan mengubah kode penundaan untuk memasukkan mikrodetik). Pelet udara yang bergerak 1m pada 150ms-1 membutuhkan waktu sekitar 6-7ms, cukup waktu untuk memicu dan menembak Hanya menggerakkan pistol akan memberikan penundaan yang belum sempurna beberapa mikrodetik S. Sekali lagi, maaf tentang ini, saya akan bermain-main malam ini jika saya bisa mendapatkan beberapa balon, tetapi masih banyak kegunaan untuk pemicu audio, seperti kembang api! Saya telah menempatkan selang waktu cepat dan kotor di bawah ini untuk menunjukkan bahwa itu berfungsi:) Jangan lupa untuk membaca, menilai, dan/atau memilih! Cheers, JoshDisclaimer Jika terjadi sesuatu yang sangat tidak beres atau Anda entah bagaimana merusak kamera/dremel kucing Anda, saya tidak bertanggung jawab atas apa pun. Dengan memulai proyek berdasarkan instruksi ini, Anda menerimanya dan melanjutkan dengan risiko Anda sendiri. Jika Anda membuat salah satu dari ini, atau menggunakan instruksi saya untuk membantu Anda - kirimkan saya tautan/foto agar saya dapat menyertakannya di sini! Tanggapannya luar biasa sejauh ini (setidaknya menurut standar saya) jadi akan luar biasa melihat bagaimana orang menafsirkannya. Saya sedang mengerjakan revisi 2 saat saya mengetik;)

Langkah 1: Beberapa Pemikiran Awal…

Jadi, bagaimana kita akan membangun benda ini? Mikrokontroler Jantung dan jiwa dari proyek ini adalah AVR ATMega8. Ini pada dasarnya adalah versi chip ATMega168 yang sedikit dipangkas yang digunakan Arduino. Ini dapat diprogram dalam C atau Majelis dan memiliki berbagai fitur yang sangat berguna yang dapat kita gunakan untuk keuntungan kita." 28 pin, yang sebagian besar adalah input/output (i/o)" Konverter analog ke digital onboard" Konsumsi daya rendah " 3 pengatur waktu onboard" Sumber jam internal atau eksternal" Banyak perpustakaan kode dan sampel onlineMemiliki banyak pin itu bagus. Kita dapat berinteraksi dengan layar LCD, memiliki 6 tombol input dan masih memiliki cukup sisa untuk menembak dengan LED IR dan beberapa LED status. Prosesor Atmel AVR memiliki banyak dukungan online dan ada banyak tutorial untuk mendapatkannya dimulai (saya akan membahas ini secara singkat, tetapi ada tutorial khusus yang lebih baik) dan banyak kode untuk dipertimbangkan. Untuk referensi saya akan mengkodekan proyek ini dalam C menggunakan perpustakaan AVR-LibC. Saya dapat dengan mudah menggunakan PIC untuk melakukan ini, tetapi AVR didukung dengan baik dan semua contoh yang saya temukan untuk remote berbasis AVR! adalah dua jenis utama tampilan, grafis dan alfanumerik. Tampilan grafis memiliki resolusi dan Anda dapat menempatkan piksel di mana pun Anda suka. Kelemahannya adalah mereka lebih sulit untuk dikodekan (walaupun ada perpustakaan). Tampilan alfanumerik hanyalah satu atau lebih baris karakter, LCD memiliki penyimpanan karakter dasar (yaitu alfabet, beberapa angka, dan simbol) dan relatif mudah untuk mengeluarkan string dan sebagainya. Kelemahannya adalah mereka tidak sefleksibel dan menampilkan grafik hampir tidak mungkin, tetapi itu sesuai dengan tujuan kita. Mereka juga lebih murah! Alfanumerik dikategorikan berdasarkan jumlah baris dan kolomnya. 2x16 cukup umum, dengan dua baris 16 karakter, masing-masing karakter menjadi matriks 5x8. Anda bisa mendapatkan 2x20 s juga, tetapi saya tidak melihat kebutuhannya. Beli apa pun yang Anda rasa nyaman. Saya memilih untuk menggunakan LCD backlit merah (saya ingin menggunakan ini untuk astrofotografi dan lampu merah lebih baik untuk penglihatan malam). Anda dapat pergi tanpa lampu latar - itu sepenuhnya pilihan Anda. Jika Anda memilih rute tanpa lampu latar, Anda akan menghemat daya dan uang, tetapi Anda mungkin memerlukan senter dalam gelap. Saat mencari LCD, Anda harus memastikan bahwa LCD dikontrol oleh HD44780. Ini adalah protokol standar industri yang dikembangkan oleh Hitachi dan ada banyak perpustakaan bagus yang dapat kita gunakan untuk menghasilkan data. Model yang saya beli adalah JHD162A dari eBay. InputInput akan dilakukan dengan tombol (sederhana!). Saya memilih 6 - mode pilih, ok/tembak dan 4 arah. Anda juga perlu mendapatkan tombol kecil lainnya untuk mengatur ulang mikro jika terjadi kerusakan. Adapun input pemicu, beberapa ide dasar adalah resistor yang bergantung pada cahaya atau mikrofon electret. Di sinilah Anda bisa menjadi kreatif atau pelit tergantung pada anggaran Anda. Sensor ultrasound akan lebih mahal dan memerlukan beberapa pemrograman tambahan, tetapi Anda dapat melakukan beberapa hal yang sangat rapi dengan mereka. Kebanyakan orang akan senang dengan mikrofon (mungkin sensor umum yang paling berguna) dan electrets sangat murah. Sadarilah bahwa itu juga perlu diperkuat (tapi saya akan membahas ini nanti). Output - Status Satu-satunya output nyata yang kita butuhkan adalah status (selain tampilan), jadi beberapa LED akan berfungsi dengan baik di sini. Output - ShootingUntuk pengambilan gambar, kita perlu antarmuka dengan kamera dan untuk itu kita membutuhkan sumber cahaya yang dapat menghasilkan radiasi infra merah. Untungnya ada banyak LED yang melakukan ini dan Anda harus mencoba untuk mengambil yang berdaya cukup tinggi. Unit yang saya pilih memiliki nilai arus maksimum 100mA (kebanyakan LED sekitar 30mA). Anda juga harus berhati-hati untuk mencatat keluaran panjang gelombang. Cahaya inframerah berada di bagian panjang gelombang yang lebih panjang dari spektrum EM dan Anda harus mencari nilai sekitar 850-950nm. Sebagian besar LED IR cenderung ke ujung 950 dan Anda mungkin melihat sedikit lampu merah saat dinyalakan, ini bukan masalah, tetapi spektrumnya terbuang sia-sia, jadi cobalah mendekati 850 jika memungkinkan. ini? Nah, itu akan menjadi portabel jadi baterai! Saya memilih menggunakan 2 baterai AA yang kemudian ditingkatkan menjadi 5V. Saya akan membahas alasan di balik ini dalam beberapa bagian berikutnya. 'Casing dan Konstruksi' Bagaimana Anda melakukan bagian ini sepenuhnya terserah Anda. Saya memutuskan untuk menggunakan stripboard untuk sirkuit setelah prototipe karena murah dan fleksibel dan menghemat merancang PCB kustom. Saya telah menyediakan skema sehingga Anda bebas membuat tata letak PCB Anda sendiri - meskipun jika Anda melakukannya, saya akan berterima kasih untuk memiliki salinannya! Sekali lagi kasus ini sepenuhnya pilihan Anda, harus sesuai dengan layar, tombol (dalam tata letak yang cukup intuitif jika memungkinkan) dan baterai. Saat papan sirkuit berjalan, yang ini tidak terlalu rumit, banyak koneksi hanya untuk hal-hal seperti tombol/LCD.

Langkah 2: Manajemen Daya

Manajemen daya
Manajemen daya

Manajemen DayaUntuk proyek seperti ini, jelas bahwa portabilitas harus menjadi aspek kunci. Baterai dengan demikian merupakan pilihan logis! Sekarang, untuk perangkat portabel, cukup penting bagi Anda untuk memilih sumber baterai yang dapat diisi ulang atau tersedia dengan mudah. Dua pilihan utama adalah baterai 9V PP3 atau baterai AA. Saya yakin beberapa orang akan menganggap bahwa baterai 9V adalah pilihan terbaik karena hei, 9V lebih baik dari 3 kan? Nah, tidak dalam kasus ini. Baterai 9V meskipun sangat berguna, menghasilkan tegangan dengan mengorbankan masa pakai baterai. Diukur dalam mAh (jam milliamp), peringkat ini memberi tahu Anda secara teori berapa lama baterai akan bertahan beroperasi pada 1mA dalam jam (meskipun mengambilnya dengan sedikit garam, ini sering kali dalam kondisi beban rendah yang ideal). Semakin tinggi peringkatnya, semakin lama baterai akan bertahan. Baterai 9V dinilai hingga dan sekitar 1000mAh. Alkaline AA di sisi lain memiliki hampir tiga kali lipat pada 2900mAh. Isi ulang NiMH dapat mencapai ini, meskipun 2500mAh adalah jumlah yang wajar (perhatikan bahwa baterai isi ulang beroperasi pada 1.2V, bukan 1,5!). Layar LCD membutuhkan input 5V (10%) dan AVR (mikrokontroler) membutuhkan kira-kira sama (meskipun dapat mencapai serendah 2,7 untuk kecepatan clock frekuensi rendah). Kami juga membutuhkan tegangan yang cukup stabil, jika berfluktuasi dapat menyebabkan masalah dengan mikrokontroler. Untuk melakukan ini, kami akan menggunakan pengatur tegangan, Anda perlu membuat pilihan atas harga vs efisiensi sekarang. Anda memiliki pilihan untuk menggunakan regulator tegangan 3-pin sederhana seperti LM7805 (seri 78, output +5 volt) atau sirkuit terpadu kecil. Menggunakan regulator sederhanaJika Anda memilih untuk menggunakan opsi ini, Anda harus menanggung beberapa poin dalam pikiran. Pertama, regulator tiga pin hampir selalu membutuhkan input yang lebih tinggi dari outputnya. Mereka kemudian menurunkan tegangan ke nilai yang diinginkan. Kelemahannya adalah mereka memiliki efisiensi yang buruk (50-60% berjalan dengan baik). Keuntungannya adalah harganya murah dan akan berjalan dengan baterai 9V, Anda dapat mengambil model dasar seharga 20 pence di Inggris. Anda juga harus ingat bahwa regulator memiliki tegangan putus - celah minimum antara input dan output. Anda dapat membeli regulator LDO (Low DropOut) khusus yang memiliki dropout sekitar 50mV (dibandingkan 1-2V dengan desain lain). Dengan kata lain, perhatikan LDO dengan output +5V. Menggunakan sirkuit terpaduCara ideal untuk melakukannya adalah dengan menggunakan regulator switching. Ini akan, untuk tujuan kami, biasanya paket 8-pin yang mengambil tegangan dan memberi kami output yang diatur pada efisiensi tinggi - hampir 90% dalam beberapa kasus. Anda bisa mendapatkan konverter step up atau step down (masing-masing boost/buck) tergantung pada apa yang ingin Anda masukkan, atau Anda dapat membeli regulator yang akan mengambil di atas atau di bawah output yang diinginkan. Chip yang saya gunakan untuk proyek ini adalah MAX619+. Ini adalah regulator step up 5V yang membutuhkan 2 AA (rentang input 2V-3.3V) dan memberikan keluaran 5V yang stabil. Hanya membutuhkan empat kapasitor untuk beroperasi dan sangat hemat ruang. Biaya - 3.00 termasuk batasnya. Bisa dibilang itu sepadan dengan berbelanja secara royal hanya untuk mendapatkan sedikit lebih banyak penggunaan dari baterai Anda. Satu-satunya kelemahan utama adalah bahwa itu tidak dilindungi hubung singkat, jadi jika ada lonjakan arus, berhati-hatilah! Ini cukup sepele untuk diperbaiki dengan tambahan sirkuit namun: Desain chip lain yang berguna - meskipun solusi yang hampir tidak rapi adalah LT1307. Sekali lagi, regulator 5V, tetapi dapat mengambil berbagai input dan memiliki hal-hal yang berguna seperti deteksi baterai rendah. Biayanya sedikit lebih mahal hampir 5 dengan induktor, kapasitor besar, dan resistor. Rel Tegangan Kita akan menggunakan dua rel tegangan utama (ditambah landasan yang sama). Yang pertama adalah 3V dari baterai, ini akan digunakan untuk menyalakan LED dan komponen daya yang relatif tinggi lainnya. MAX619 saya hanya diberi nilai hingga 60mA (meskipun maksimum absolut adalah 120mA) sehingga lebih mudah untuk menghubungkan mikrokontroler ke MOSFET untuk mengontrol LED apa pun. MOSFET hampir tidak menarik arus dan bertindak sebagai pemutus sirkuit ketika input gerbang di bawah sekitar 3V. Ketika mikrokontroler mengirimkan logika 1 pada pin, tegangannya adalah 5V dan FET menyala, kemudian hanya bertindak sebagai korsleting (yaitu sepotong kawat). Rel 5V akan memberi daya pada LCD, Mikrokontroler, dan sirkuit amplifikasi apa pun untuk sensor input. Konsumsi DayaJika kita melihat pada berbagai lembar data, kita perhatikan bahwa AVR membutuhkan tidak lebih dari 15-20mA pada beban maksimum. LCD hanya membutuhkan 1mA untuk beroperasi (setidaknya ketika saya menguji, anggaran untuk 2). Dengan lampu latar menyala, terserah Anda untuk memutuskan. Menghubungkannya langsung ke rel 5V (saya mencoba) baik-baik saja, tetapi pastikan ia memiliki resistor onboard (ikuti jejak pada PCB) sebelum Anda melakukannya. Itu menarik 30mA seperti itu - mengerikan! Dengan resistor 3,3k itu masih dapat dilihat (sempurna untuk fotografi astro) dan hanya menarik 1mA. Anda masih bisa mendapatkan kecerahan yang layak menggunakan 1k atau sebaliknya. Saya baik-baik saja dengan gambar saya di bawah 2mA dengan lampu latar menyala! Jika Anda mau, itu sepele untuk menambahkan tombol kecerahan menggunakan potensiometer 10k. LED IR mungkin membutuhkan maksimum 100mA, tetapi saya mendapatkan hasil yang baik dengan 60mA di seluruh tambang (percobaan!). Anda kemudian dapat membagi dua arus itu karena Anda berjalan secara efektif pada siklus kerja 50% (ketika LED dimodulasi). Bagaimanapun, itu hanya menyala sepersekian detik sehingga kita tidak perlu khawatir tentang ini. LED lain yang harus Anda mainkan, Anda mungkin menemukan bahwa hanya arus 10mA yang cukup untuk memberi Anda kecerahan yang baik - tentu saja terlihat untuk LED berdaya rendah (tidak termasuk LED IR), Anda tidak mendesain obor! Saya memilih untuk tidak menambahkan indikator daya di sirkuit saya, hanya karena banyak penarikan arus karena tidak banyak digunakan. Gunakan sakelar hidup/mati untuk memeriksa apakah aktif! Secara total, Anda tidak boleh menjalankan lebih dari 30mA pada satu waktu dan dengan pasokan teoritis sekitar 2500 (memungkinkan variasi) mAh yang akan memberi Anda lebih dari 80 jam lurus dengan segala sesuatu di. Dengan prosesor yang menganggur untuk sebagian besar waktu, ini setidaknya akan menjadi dua kali lipat/tiga kali lipat, jadi Anda tidak perlu terlalu sering mengganti baterai Anda. Kesimpulan Ini dia, itu mudah bukan! Anda bisa menjadi murah dan ceria dengan baterai 9V dan regulator LDO dengan mengorbankan efisiensi atau membayar sedikit lebih banyak dan menggunakan IC khusus untuk melakukannya. Anggaran saya masih di bawah 20 bahkan DENGAN IC, sehingga Anda dapat menurunkannya lebih jauh jika perlu.

Langkah 3: Melihat Lebih Dekat pada ATmega8

Melihat Lebih Dekat pada ATmega8
Melihat Lebih Dekat pada ATmega8

PinsImage 1 adalah diagram pinout untuk ATMega8 (persis sama dengan 168/48/88, satu-satunya perbedaan adalah jumlah memori onboard dan opsi interupsi). Pin 1 - Reset, harus disimpan pada tegangan VCC (atau setidaknya logis 1). Jika di-ground, perangkat akan melakukan soft-resetPin 2-6 - Port D, input/output umumPin 7 - VCC, tegangan suplai (+5V untuk kita)Pin 8 - GroundPin 9, 10 - XTAL, input clock eksternal (bagian dari Port B)Pin 11 - 13 Port D, input/output umumPin 14 - 19 Port B, input/output umumPin 20 - AVCC, tegangan suplai analog (sama seperti VCC)Pin 21 - AREF, referensi tegangan analogPin 22 - GroundPin 23-28 Port C, port input/output umum i/o yang dapat digunakan: D = 8, C = 6, B = 6 Total 20 port yang dapat digunakan sangat bagus, untuk kesederhanaan Anda harus mengelompokkan output Anda ke dalam port (misalnya, D sebagai port output) atau ke grup di papan - Anda mungkin ingin LCD dijalankan dari Port C hanya untuk menjaga kabel tetap rapi di sudut itu. Ada tiga pin tambahan yang diperlukan untuk pemrograman. Yakni MISO (18), MOSI (17) dan SCK (19). Ini akan dengan senang hati bertindak sebagai pin i/o jika diperlukan. Penguncian Sinyal yang kita kirim ke kamera perlu diatur waktunya dengan tepat (akurat sekitar satu mikrodetik) jadi penting bagi kita untuk memilih sumber jam yang baik. Semua AVR memiliki osilator internal yang dapat digunakan oleh chip untuk mendapatkan clock-nya. Kelemahan dari ini adalah bahwa mereka dapat berfluktuasi sekitar 10% dengan suhu/tekanan/kelembaban. Apa yang bisa kita lakukan untuk mengatasi ini adalah menggunakan kristal kuarsa eksternal. Ini tersedia dalam apa saja mulai dari 32768kHz (jam tangan) hingga 20MHz. Saya telah memilih untuk menggunakan kristal 4Mhz karena memberikan kecepatan yang layak namun cukup hemat daya dibandingkan dengan 8Mhz+. Manajemen Daya OnboardSaya benar-benar ingin menggunakan rutinitas tidur dalam kode saya. Sebenarnya saya menulis versi pertama yang sangat bergantung pada pemalasan prosesor saat selang waktu. Sayangnya, karena keterbatasan waktu, saya mengalami beberapa masalah dengan menjalankan jam secara eksternal dan mengganggu penggunaan timer. Intinya saya harus menulis ulang kode untuk berurusan dengan pengontrol yang tidak bangun - yang bisa saya lakukan, tetapi waktu menentang saya. Dengan demikian, perangkat hanya menarik 20mA ish sehingga Anda bisa lolos begitu saja. Jika Anda benar-benar siap untuk itu, maka dengan segala cara mengutak-atik kode, yang perlu Anda lakukan adalah melakukan clock internal dan kemudian menjalankan Timer 2 dalam mode asinkron menggunakan kristal 4MHz untuk penundaan yang lebih akurat. Ini sederhana untuk dilakukan, tetapi memakan waktu. ADCSwiss Army Knife di AVR toolset, ADC singkatan dari Analog ke Digital Converter. Cara kerjanya relatif sederhana dari luar. Sebuah sampel tegangan pada pin (dari beberapa sensor atau input lainnya), tegangan akan diubah menjadi nilai digital antara 0 dan 1024. Nilai 1024 akan diamati ketika tegangan input sama dengan tegangan referensi ADC. Jika kita menetapkan referensi kita menjadi VCC (+5V) maka setiap divisi adalah 5/1024 V atau sekitar 5mV. Jadi peningkatan 5mV pada pin akan meningkatkan nilai ADC sebesar 1. Kita dapat mengambil nilai output ADC sebagai variabel dan kemudian mengutak-atiknya, membandingkannya dengan hal-hal, dll dalam kode. ADC adalah fungsi yang sangat berguna dan memungkinkan Anda melakukan banyak hal keren seperti mengubah AVR menjadi osiloskop. Frekuensi pengambilan sampel sekitar 125kHz dan harus disetel secara proporsional dengan frekuensi clock utama. RegisterAnda mungkin pernah mendengar tentang register sebelumnya, tetapi jangan takut! Register hanyalah kumpulan alamat (lokasi) dalam memori AVR. Register diklasifikasikan berdasarkan ukuran bitnya. Register 7 bit memiliki 8 lokasi, seperti yang kita mulai dari 0. Ada register untuk hampir semua hal dan kita akan melihat lebih detail nanti. Beberapa contoh termasuk register PORTx (di mana x adalah B, C atau D) yang mengontrol apakah pin diatur tinggi atau rendah dan mengatur resistor pull up untuk input, register DDRx yang mengatur apakah pin adalah output atau input dan seterusnya. DatasheetA raksasa sastra, dengan berat sekitar 400 halaman; lembar data AVR adalah referensi yang sangat berharga untuk prosesor Anda. Mereka berisi rincian setiap register, setiap pin, cara kerja timer, sekering apa yang harus disetel ke apa dan banyak lagi. Mereka gratis dan Anda akan membutuhkannya cepat atau lambat, jadi unduh salinannya!www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Langkah 4: Mengalokasikan Pin

Mengalokasikan Pin
Mengalokasikan Pin

Saya sudah menyebutkan input dan output yang kita butuhkan, jadi kita harus mengalokasikan pin! Sekarang, PORT D memiliki 8 pin yang nyaman karena dapat bertindak sebagai port output kita. LCD membutuhkan 7 pin untuk beroperasi - 4 pin data dan 3 pin kontrol. LED IR hanya membutuhkan satu pin, sehingga membentuk 8. PORTB kami akan menjadi port tombol kami, memiliki 6 input, tetapi kami hanya membutuhkan 5. Ini akan menjadi tombol mode dan arah. PORTC adalah khusus, itu adalah port ADC. Kami hanya membutuhkan satu pin untuk input pemicu dan masuk akal untuk meletakkannya di PC0 (singkatan umum untuk pin port dalam hal ini Port C, Pin 0). Kami kemudian memiliki beberapa pin untuk LED status (satu menyala ketika nilai ADC di atas beberapa kondisi, yang lain menyala ketika di bawah beberapa kondisi). Kami juga akan menempatkan input tombol ok/tembak kami di sini, untuk alasan yang akan menjadi jelas nanti. Setelah semua ini, kami telah menggunakan sebagian besar port tetapi kami masih memiliki beberapa yang tersisa jika Anda ingin memperluas proyek - mungkin beberapa pemicu?

Langkah 5: Berkomunikasi Dengan Kamera

Berkomunikasi Dengan Kamera
Berkomunikasi Dengan Kamera
Berkomunikasi Dengan Kamera
Berkomunikasi Dengan Kamera

Hadiah Pertama dalam Kontes Foto Digital Days

Direkomendasikan: