Ada satu ton tutorial bingkai foto digital di luar sana. Banyak laptop lama dengan konfigurasi kasus licik yang sesuai dengan profil bingkai foto.
Kami berangkat untuk membangun 100% DIY, bingkai foto digital buatan awal. Bingkai kami memiliki lcd warna 12bit, gigabytes penyimpanan pada kartu microSD yang umum dan berformat lemak, dan Anda dapat membangunnya di rumah. Kami punya detail di bawah ini.
Konsep ikhtisar
Gambar bitmap disimpan pada kartu MicroSD yang umum dan dapat dibaca PC. Mikrokontroler gambar membaca gambar melalui bus spi tiga kawat. Gambar memproses data gambar dan menulisnya ke LCD warna di atas bus searah, seperti 9bit spi-like. File konfigurasi pada kartu SD mendefinisikan penundaan antar gambar.
Perangkat keras
Klik untuk gambar skematis ukuran penuh (PNG). Sirkuit dan PCB dikembangkan menggunakan versi freeware CADSOFT EAGLE. Semua file untuk proyek ini termasuk dalam arsip proyek yang ditautkan di akhir artikel.
Mikrokontroler.
Kami menggunakan microchip pic24fj64ga002 28pin soic mikrokontroler (IC1) dalam proyek ini. Kami benar-benar menyukai chip ini karena fitur PIN PINPERAL memungkinkan kami menempatkan fitur penting pada pin yang kami inginkan; Ini memberikan PCB yang lebih kecil, lebih sederhana, lebih kompak. Setiap pin daya memiliki kapasitor bypass 0.1uf ke ground (C1,2). Regulator internal 2.5volt membutuhkan kapasitor 10UF Tantalum (C12). Chip diprogram melalui header lima pin, SV1. R1 adalah resistor pull-up untuk fungsi MCLR pada PIN 1. Baca lebih banyak tentang chip ini di PENDAHULUAN PIC24F kami.
Crystal 32.768kHz (Q1) dan dua kapasitor 27pf (C10,11) menawarkan osilator untuk kalender jam waktu-nyata (RTCC). Bagian-bagian ini opsional, firmware awal tidak menggunakannya. RTCC dapat digunakan sebagai bagian dari fungsi yang melebihi waktu saat ini di layar. Tombol yang terhubung ke header pemrograman dapat digunakan untuk mengatur waktu.
kartu SD
Kartu microSD sepenuhnya kompatibel dengan kartu SD biasa, kartu microSD dapat digunakan dalam pembaca / penulis kartu SD dengan adaptor. Kami mengevaluasi beberapa pemegang kartu microSD, dan menetap pada satu dari elektronik Sparkfun. Kartu microSD memerlukan kapasitor bypass antara pin dan ground (C3). LED menunjukkan aktivitas baca microSD, tetapi juga bermanfaat untuk debugging umum (LED1, R2).
Warna LCD 128 × 128 Nokia Knock-off
Proyek ini dikembangkan di sekitar panel LCD Warna $ 20 Sparkfun. Logika LCD berjalan pada 3.3Volts dan memerlukan kapasitor decoupling (C4). Lampu latar LED membutuhkan pasokan 7volt terpisah, dan tampaknya memiliki limiter arus internal karena contoh desain tidak menggunakan resistor eksternal.
LCD memiliki input terpisah untuk pasokan tampilan 3.3volt. Banyak kebisingan laporan di layar jika tegangan ini tidak bersih. Kami menggunakan manik ferit (L1) dan kapasitor 0,1uf (C5) untuk memfilter pasokan, dan belum mengalami masalah. Ini bahkan berurusan dengan prototipe rumah-etched kotor. Tipe manik ferit tidak penting, kami menggunakan satu yang tersisa dari proyek server web kecil kami.
Konektor kecil mudah disolder di papan profesional dengan topeng solder, tetapi beli beberapa asuransi. Sparkfun memiliki jejak PCB untuk bagian ini di perpustakaan suku cadang elang mereka, tetapi jarak antara bantalan lebih kecil dari Olimex atau BatchPCB akan memproduksi. Kami memalsukannya dengan mengurangi ukuran pad untuk mendapatkan lebih banyak ruang di antaranya. Jangan bergantung pada konektor untuk menahan LCD di tempat, gunakan selotip untuk menahannya. Kami menggunakan pekat untuk memasang LCD sementara.
Kami memproteksi papan LCD Carrier sebelum mengirim desain akhir untuk pembuatan. Kami merekomendasikan untuk tidak menggunakan ground isian di bawah konektor tanpa topeng solder.
Sumber Daya listrik
Pasokan 3.3Volt, ditawarkan oleh LD1117S33 (IC2), memberi daya pada gambar, kartu microSD, logika LCD, dan layar LCD. IC2 membutuhkan kapasitor bypass 0,1UF (C6) di sisi penawaran, dan kapasitor 10UF (C13) pada output. Kami menggunakan kapasitor tantalum yang sama yang kami gunakan untuk gambar internal regulator.
Lampu latar LCD ditenagai oleh Regulator Adjustable LM317 (IC3) yang dikonfigurasi ke 7volts dengan resistor Ohm 240 (R5) dan 1100 (R6). C7 dan C8 adalah kapasitor bypass 0.1uf untuk LM317.
J1 adalah smd power jack untuk colokan barel 2.1mm dc biasa. C11 adalah kapasitor elektrolit 10UF yang menghaluskan lag dalam tegangan suplai. C11 memiliki peringkat input 16volt maksimum, sehingga tegangan suplai paling baik disimpan di bawah 12 gol. 9-12 volt mungkin merupakan rentang catu daya ide.
PCB.
Klik untuk diagram penempatan ukuran penuh (PNG). L1, C5, dan LCD berada di sisi yang berlawanan. Kami tidak dapat memprototipe papan dua sisi di ruang bawah tanah ibu, jadi kami mengirim desain ini ke Batchpcb. Minggu depan kami akan menunjukkan kepada Anda bagaimana kami melakukannya.
Daftar bagian.
Bagian
Keterangan
IC1.
Pic 24FJ64GA002 (SOIC)
IC2.
LD1117S33 3.3VOLT Regulator (SOT223)
Ic3.
LM317 Adjustable Regulator (SOT223)
U $ 1.
Warna LCD 128 × 128 Nokia Knock-off
–
Konektor Knock-Off Nokia
C1-8.
0.1uf Kapasitor (0805)
C10,11.
27PF Kapasitor (0805)
C12,13.
10uf Tant.Kapasitor Alum (SMCA)
C14.
10UF Kapasitor Elektrolit (SMD)
L1.
Bead Ferrite (0805)
LED1.
LED (0805)
Q1.
32.768kHz Crystal.
R1.
Resistor 2000 ohm (0805)
R2.
390 ohm resistor (0805)
R5.
Resistor 240 ohm (0805)
R6.
Resistor 1100 ohm (0805)
Sd1.
Pemegang Kartu MicroSD
J1.
2.1mm power jack (SMD)
Sv1.
0,1 “Header Pin Pria, Sudut Terbaik
Firmware.
Firmware ditulis dalam C menggunakan versi demonstrasi gratis dari gambar C30 Compiler. Pelajari semua tentang bekerja dengan gambar ini dalam pengantar kami ke gambar seri 24F. Firmware termasuk dalam arsip proyek di akhir artikel.
FAT12 / 16/22 Disk Library
Perpustakaan Fat 12/16/32 Microchip memberi kami akses mudah ke file yang disimpan pada kartu SD. Kami memberikan deskripsi komprehensif tentang perpustakaan ini di server web kami pada proyek kartu perusahaan. Jika Anda kesulitan membaca kartu dengan perpustakaan, periksa apakah itu diformat dalam kamera video digital atau menggunakan formatter kartu SD Panasonic.
Nokia 6100 driver LCD
Sparkfun memiliki chauffeur warna dasar 8bit (ZIP) untuk Nokia 6100. Kami menjabarkannya ke PIC, dan memperbaruinya untuk mode warna 12bit 2byte-per-pixel. Dengan sejumlah kecil kompleksitas tambahan, tingkat tulis piksel dapat dengan mudah ditingkatkan dengan menggunakan mode 12bit yang berbeda yang memberikan dua piksel menggunakan 3 byte.
LCD menggunakan protokol 9bit, satu bit lebih dari banyak perangkat keras SPI akan menangani. Bit pertama memberi tahu LCD apakah 8bit berikutnya adalah data atau perintah. Pada gambar 24F tidak mungkin untuk secara manual menggedor sedikit di bit pertama, dan kemudian menggunakan periferal SPI untuk mengirim 8bit yang tersisa. Kami kehilangan kendali langsung atas pin ketika perangkat keras dapat diaktifkan. Entri data harus sepenuhnya bit-banged, yang secara dramatis mengurangi tingkat revitalisasi layar.
Membaca Bitmaps.
Ada satu ton format bitmap. Kompatibilitas Windows membuat semua orang menggunakan format Windows V3 kuno. Kami membuat dua structs C untuk membaca data bitmap V3.
Mengimbangi
Bytes.
Header file bitmap.
0.
2.
Selalu 0x42 0x4d (hex for bm)
2.
4.
Ukuran file (bytes)
6.
2.
Dicadangkan, diabaikan
8.
2.
Dicadangkan, diabaikan
10.
4.
Lokasi dalam file data bitmap pertama
File bitmap mulai dengan header file 14byte. Dua byte pertama adalah huruf ‘bm’, menunjukkan bitmap. Jika dua byte pertama benar, firmware memuat header informasi. Empat byte terakhir menunjukkan awal data bitmap, tetapi firmware saat ini hanya mengasumsikan akan dimulai pada akhir header.
Mengimbangi
Bytes.
Header informasi bitmap.
14.
4.
Panjang header informasi bitmap (40bytes untuk bitmap Windows V3)
18.
4.
Lebar (piksel)
22.
4.
Tinggi (piksel)
26.
2.
Pesawat warna, selalu 1
28.
2.
Bit warna per piksel (1, 4, 8, 16, 24 dan 32)
30.
4.
Metode kompresi, kami hanya membaca terkompresi (tipe 0)
34.
4.
Panjang data gambar
38.
4.
Resolusi horizontal (piksel per meter)
42.
4.
Resolusi vertikal (pixel per meter)
46.
4.
Jumlah warna, diabaikan.
50.
4.
Jumlah warna penting, diabaikan.
Header Informasi Bitmap Windows V3 adalah 40bytes. Firmware memverifikasi bahwa panjang header (offset 14) adalah 40, menunjukkan bitmap V3. Jika lebarnya (132), tinggi (132), kedalaman warna (24), dan kompresi (0) semua check out, data gambar diproses dan output ke layar.
Mengimbangi
Bytes.
Data bitmap gambar 24bit
54+ (3N)
1
Nilai Pixel N merah
54+ (3N + 1)
1
Nilai Pixel N Green
54+ (3N + 2)
1
Nilai piksel n biru
Gambar bitmap telah terkompresi, representasi 1: 1 dari data piksel yang disimpan dalam urutan tiga byte. Data dimulai di sudut kanan bawah gambar; Pertama nilai merah, lalu hijau dan biru. Wikipedia memiliki bitmap yang lengkap.
Jika kedalaman warna gambar bitmap (24bit) lebih besar dari LCD dapat menampilkan (12bit), kita perlu membuang bit warna warna yang paling tidak signifikan. Untuk mengkonversi dari warna 24bit hingga warna 12bit, kami hanya membuang setengah dari data warna; Nilai 8bit 11110011 didorong empat bit ke kanan, memberikan 1111.
Firmware berjalan
Init pic, SD, LCD.
Baca config.ini, buat jika tidak ada.
Gunakan karakter pertama dari config.ini untuk mengatur antara penundaan gambar.
Cari gambar, buka gambar berikutnya.
Baca dan periksa header file bitmap untuk format yang tepat.
Baca dan periksa header informasi bitmap untuk versi, ukuran, warna.
Baca dan tampilkan nilai masing-masing piksel. Sesuaikan sedikit kedalaman sesuai kebutuhan.
Tunda, lalu ulangi dari 4.
Menyiapkan gambar.
Untuk menjaga demo ini sederhana, bingkai foto hanya menampilkan format bitmap yang paling umum. Gambar harus berukuran 132x132piksel, dengan warna 24bit.
Buka gambar dengan program pengeditan gambar.
Gambar kotak seleksi persegi di atas bagian gambar yang ingin Anda gunakan, biasanya menggunakan Shift dan Drag.
Pangkas gambar.
Ukuran gambar ke 132x132piksel.
Simpan gambar sebagai bitmap Windows, 24bit kedalaman warna.
Ukuran dan format gambar lainnya dapat didukung dengan upgrade firmware (PNG, JPG), terutama dengan peningkatan mikrokontroler yang kompatibel dengan pin ke dspic 33F besar.
Menggunakannya
Masukkan gambar di direktori root dari kartu SD yang diformat lemak. Tergantung pada LAPerangkat St untuk memformat kartu, mungkin perlu diformat dengan kamera video digital atau formatter SD Panasonic.
Opsional: Buat file config.ini dengan editor teks. Masukkan satu digit, dari 0-9, untuk mengatur antara penundaan gambar. Simpan file. Jika Anda tidak membuat file config.ini sendiri, satu akan dibuat untuk Anda dengan penundaan 1 detik.
Letakkan kartu di soket, dan pasang bingkai foto digital. Gambar akan bersepeda di layar dengan penundaan yang ditentukan.
Membawanya lebih jauh
Kami melihat banyak potensi dalam bingkai foto digital yang mudah ini. Sejumlah fitur dapat ditambahkan dengan upgrade firmware, beberapa adalah dasar untuk perangkat keras di masa depan.
Tampilkan format gambar lain, skala gambar
Pudar dan tisu acak
Tampilkan waktu dan tanggal di atas gambar, atur dengan tombol yang terhubung ke pin pemrograman
Perpanjang opsi konfigurasi di config.ini untuk memasukkan penundaan yang lebih lama, tipe pudar atau lap
Gunakan sub direktori untuk gambar karena ada beberapa batasan file ke direktori root dari kartu SD yang diformat lemak.
Tambahkan koneksi Ethernet untuk pembaruan tampilan jaringan.
Unduh: dpf.v1.zip telah pindah ke sini.