HOW-TO: Ψηφιακό πλαίσιο εικόνας, 100% DIY

Υπάρχει ένας τόνος ψηφιακής εικόνας tutorials από εκεί έξω. Πολλοί είναι παλιές φορητοί υπολογιστές με καταστροφές Crafty υπόθεση που ταιριάζουν ένα προφίλ φωτογραφιών.

Έχουμε ξεκινήσει να χτίσουμε ένα 100% DIY, χτισμένο ψηφιακό πλαίσιο εικόνας. Το πλαίσιο μας διαθέτει ένα χρώμα LCD 12bit, gigabytes αποθήκευσης σε κοινές κάρτες microSD με λίπος, και μπορείτε να το φτιάξετε στο σπίτι. Έχουμε τις λεπτομέρειες παρακάτω.

Επισκόπηση Concept

Οι εικόνες bitmap αποθηκεύονται σε κοινές κάρτες microSD σε υπολογιστή. Ένας μικροελεγκτής εικόνας διαβάζει τις εικόνες σε ένα λεωφορείο τριών συρμάτων. Η εικόνα επεξεργάζεται τα δεδομένα της εικόνας και το γράφει σε μια έγχρωμη οθόνη LCD πάνω από ένα μονόδρομο, 9bit spi-όπως το λεωφορείο. Ένα αρχείο διαμόρφωσης στην κάρτα SD ορίζει την καθυστέρηση μεταξύ εικόνων.

Σκεύη, εξαρτήματα

Κάντε κλικ για μια σχηματική εικόνα πλήρους μεγέθους (PNG). Το κύκλωμα και το PCB αναπτύσσονται χρησιμοποιώντας την έκδοση freeware του CADSoft Eagle. Όλα τα αρχεία για αυτό το έργο περιλαμβάνονται στο αρχείο του έργου που συνδέονται στο τέλος του άρθρου.

Μικροελεγκτής

Χρησιμοποιήσαμε ένα μικροτσίπ Pic24FJ64GA002 28PIN MICIC MICIC (IC1) σε αυτό το έργο. Σας αρέσει πραγματικά αυτό το τσιπ επειδή η περιφερειακή λειτουργία PIN SELECTS επιτρέπει να βάζουμε βασικά χαρακτηριστικά στις καρφίτσες που θέλουμε. Αυτό δίνει ένα μικρότερο, απλούστερο, πολύ πιο συμπαγές PCB. Κάθε πείρος τροφοδοσίας έχει έναν πυκνωτή παράκαμψης 0,1UF στο έδαφος (C1,2). Ο εσωτερικός ρυθμιστής 2.5volt απαιτεί έναν πυκνωτή 10UF Tantalum (C12). Το τσιπ προγραμματίζεται μέσω κεφαλίδας πέντε ακίδων, SV1. Το R1 είναι μια αντίσταση pull-up για τη λειτουργία MCLR στον πείρο 1. Διαβάστε περισσότερα για αυτό το τσιπ στην εισαγωγή Pic24F μας.

Ένας κρυστάλλινος (Q1) και δύο πυκνωτές 22p8kHz (C10,11) προσφέρουν έναν ταλαντωτή για το ημερολόγιο ρολογιού σε πραγματικό χρόνο (RTCC). Αυτά τα μέρη είναι προαιρετικά, το αρχικό υλικολογισμικό δεν τα χρησιμοποιεί. Το RTCC θα μπορούσε να χρησιμοποιηθεί ως μέρος μιας συνάρτησης που επικαιροποιεί την τρέχουσα ώρα στην οθόνη. Τα κουμπιά που συνδέονται με την κεφαλίδα προγραμματισμού θα μπορούσαν να χρησιμοποιηθούν για τον καθορισμό του χρόνου.

κάρτα SD

Οι κάρτες microSD είναι εντελώς συμβατές με τις κανονικές κάρτες SD, οι κάρτες MicroSD μπορούν να χρησιμοποιηθούν σε έναν αναγνώστη καρτών SD / Writer με έναν προσαρμογέα. Αξιολογήσαμε αρκετούς κατόχους καρτών microSD και εγκαταστάσαμε ένα από τα ηλεκτρονικά sparkfun. Η κάρτα microSD απαιτεί έναν πυκνωτή παράκαμψης μεταξύ του πείρου τροφοδοσίας και της γείωσης (C3). Μια λυχνία LED υποδεικνύει τη δραστηριότητα ανάγνωσης microSD, αλλά είναι επίσης χρήσιμη για το γενικό σφάλμα (LED1, R2).

Χρώμα LCD 128 × 128 Nokia Knock-off

Αυτό το έργο αναπτύσσεται γύρω από το πάνελ LCD του Sparkfun. Η λογική LCD λειτουργεί στους 3.3Volts και απαιτεί έναν αποσύνδεσμο πυκνωτή (C4). Ο οπίσθιος φωτισμός LED απαιτεί ξεχωριστή τροφοδοσία 7Volt και φαίνεται να έχει έναν εσωτερικό περιοριστή ρεύματος επειδή παραδείγματος σχέδια δεν χρησιμοποιούν εξωτερικές αντιστάσεις.

Η οθόνη LCD έχει ξεχωριστή είσοδο για την παροχή εμφάνισης 3.3Volt. Πολλοί θόρυβοι αναφοράς στην οθόνη εάν αυτή η τάση δεν είναι καθαρή. Χρησιμοποιήσαμε ένα σφαιρίδιο φερρίτη (L1) και 0.1UF πυκνωτή (C5) για να φιλτράρει την τροφοδοσία και δεν έχουν βιώσει προβλήματα. Αυτό ασχολήθηκε ακόμη με ένα βρώμικο οικοτεχνικό πρωτότυπο. Ο τύπος χάντρα φερρίτη δεν είναι σημαντικός, χρησιμοποιήσαμε ένα που απομένει από το μικροσκοπικό μας έργο διακομιστή ιστού.

Ο μικρός σύνδεσμος είναι εύκολος στη συγκόλληση σε ένα επαγγελματικό πίνακα με μια μάσκα συγκόλλησης, αλλά αγοράστε αρκετές ως ασφάλιση. Το Sparkfun έχει ένα αποτύπωμα PCB για αυτό το μέρος στη βιβλιοθήκη των ανταλλακτικών του αετού, αλλά η απόσταση μεταξύ των μαξιλαριών είναι μικρότερη από το Olimex ή BatchPCB θα κατασκευάσει. Το έβγαζα με τη μείωση του μεγέθους του μαξιλαριού για να πάρετε πολύ περισσότερο χώρο μεταξύ. Μην εξαρτάτε από το σύνδεσμο για να κρατήσετε τη λειτουργία LCD στη θέση του, χρησιμοποιήστε ταινία για να το κρατήσετε κάτω. Χρησιμοποιήσαμε κολλώδη κόλλα για να επισυνάψετε προσωρινά την οθόνη LCD.

ΠΡΩΤΟΡΙΕΣ ΠΡΟΛΗΨΗ ΠΡΟΣΩΠΟ ΣΧΕΤΙΚΑ ΜΕ ΤΗΝ ΑΠΟΣΤΟΛΗ ΤΟΥ ΤΕΛΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ. Συνιστούμε κατά τη χρήση ενός εδάφους γεμίσματος κάτω από τον σύνδεσμο χωρίς μάσκα συγκόλλησης.

Παροχή ηλεκτρικού ρεύματος

Μια παροχή 3.3Volt, που προσφέρεται από ένα LD1117S33 (IC2), εξουσιάζει την κάρτα Pic, MicroSD, LCD Logic και οθόνη LCD. Το IC2 απαιτεί έναν πυκνωτή παράκαμψης 0,1uF (C6) στην πλευρά τροφοδοσίας και έναν πυκνωτή 10UF (C13) στην έξοδο. Χρησιμοποιήσαμε τον ίδιο πυκνωτή του Tantalum που χρησιμοποιήσαμε για τον εσωτερικό ρυθμιστή εικόνας.

Ο οπίσθιος φωτισμός LCD τροφοδοτείται από έναν ρυθμιζόμενο ρυθμιστή LM317 (IC3) διαμορφωμένο σε 7volts με αντιστάσεις 240 (R5) και 1100 (R6) Ohm. C7 και C8 είναι οι πυκνωτές παράκαμψης 0,1UF για το LM317.

Το J1 είναι μια υποδοχή ισχύος SMD για ένα κοινό βύσμα βαρέλι 2,1 mm DC. Το C11 είναι ένας ηλεκτρολυτικός πυκνωτής 10UF που εξομαλύνει κάθε υστέρηση στην τάση τροφοδοσίας. Το C11 έχει μέγιστη βαθμολογία εισόδου 16Volt, έτσι ώστε η τάση τροφοδοσίας να διατηρείται καλύτερα κάτω από 12volts. 9-12 Το Volts είναι ίσως το εύρος τροφοδοσίας ιδεών.

Pcb

Κάντε κλικ για ένα διάγραμμα τοποθέτησης πλήρους μεγέθους (PNG). L1, C5, και η οθόνη LCD βρίσκονται στην αντίθετη πλευρά. Δεν μπορούμε να πρωτότυπα πίνακες διπλής όψης στο υπόγειο της μαμάς, έτσι στείλαμε αυτό το σχέδιο στο BatchPCB. Την επόμενη εβδομάδα θα σας δείξουμε πώς το κάναμε.

Ανταλλακτικός

Μέρος
Περιγραφή

Ic1
Pic 24fj64ga002 (Coip)

Ic2
LD1117S33 3.3Volt ρυθμιστής (SOT223)

Ic3
LM317 Ρυθμιζόμενος ρυθμιστής (SOT223)

U $ 1
Χρώμα LCD 128 × 128 Nokia Knock-off


Nokia knock-off connector

C1-8
0,1UF πυκνωτής (0805)

C10,11
27pF capacitor (0805)

C12,13
10uF tantalum capacitor (SMCA)

C14
10uF electrolytic capacitor (SMD)

L1
ferrite bead (0805)

LED1
LED (0805)

Q1
32.768kHz crystal

R1
2000 Ohm Αντίσταση (0805)

R2
Αντίσταση 390 Ohm (0805)

R5
240 ohm resistor (0805)

R6
1100 ohm resistor (0805)

SD1
microSD card holder

J1
2.1mm power jack (SMD)

SV1
0.1” male pin header, best angle

Υλικολογισμικό

The firmware is written in C using the totally free demonstration version of the picture C30 compiler. learn all about working with this picture in our introduction to the picture 24F series. The firmware is included in the project archive at the end of the article.

FAT12/16/32 disk library

Microchip’s FAT 12/16/32 library gives us easy access to files stored on SD cards. We gave a comprehensive description of this library in our web server on a company card project. If you’re having trouble reading a card with the library, check that it was formatted in a digital video camera or using Panasonic’s SD card formatter.

Nokia 6100 LCD driver

SparkFun has a basic 8bit color chauffeur (ZIP) for the Nokia 6100. We ported it to the PIC, and updated it for the 2byte-per-pixel 12bit color mode. With a small amount of added complexity, the pixel write rate could easily be enhanced by using a different 12bit mode that delivers two pixels using 3 bytes.

The LCD uses a 9bit protocol, one bit much more than many SPI hardware will handle. The first bit tells the LCD whether the next 8bits are data or a command. On the picture 24F it’s impossible to manually bang in the first bit, and then use the SPI peripheral to send the remaining 8bits. We lose direct control of the pins when hardware SPI is enabled. The data entry has to be completely bit-banged, which dramatically reduces the screen revitalize rate.

Reading Bitmaps

There are a ton of bitmap formats.  Windows compatibility keeps everyone using the ancient Windows v3 format. We created two C structs to read the V3 bitmap data.

Αντισταθμίζεται
Bytes
Bitmap file header

0
2
Always 0x42 0x4D (hex for BM)

2
4
File size (bytes)

6
2
Reserved, ignored

8
2
Reserved, ignored

10
4
Location in file of the first bitmap data

Bitmap files start with a 14byte file header. The first two bytes are the letters ‘BM’, indicating a bitmap.  If the first two bytes are correct, the firmware loads the information header. The last four bytes indicate the beginning of bitmap data, but the current firmware just assumes it will begin at the end of the headers.

Αντισταθμίζεται
Bytes
Bitmap information header

14
4
Length of bitmap information header (40bytes for Windows V3 bitmaps)

18
4
Width (pixels)

22
4
Height (pixels)

26
2
Color planes, always 1

28
2
Color bits per pixel (1, 4, 8, 16, 24 and 32)

30
4
Compression method, we only read uncompressed (type 0)

34
4
Image data length

38
4
Horizontal resolution (pixels per meter)

42
4
Vertical resolution (pixel per meter)

46
4
Number of colors, ignored.

50
4
Number of essential colors, ignored.

A Windows V3 bitmap information header is 40bytes long. The firmware verifies that the header length (offset 14) is 40, indicating a V3 bitmap. If the width (132), height (132), color depth (24), and compression (0) all check out, the image data is processed and output to the screen.

Αντισταθμίζεται
Bytes
24bit image bitmap data

54+(3n)
1
pixel n red value

54+(3n+1)
1
pixel n green value

54+(3n+2)
1
pixel n blue value

Bitmap images have uncompressed, 1:1 representations of pixel data stored in three byte sequences.  The data starts at the lower right-hand corner of the image; first the red value, then green and blue. Wikipedia has a complete bitmap walk through.

If the color depth of a bitmap image (24bits) is greater than the LCD can display (12bits), we need to discard the least significant bits of color data. To convert from 24bit color to 12bit color, we just chuck half the color data; an 8bit value of 11110011 is pushed four bits to the right, giving 1111.

Firmware walk-through

Init PIC, SD, LCD.

Read config.ini, create if it does not exist.

Use first character of config.ini to set between image delay.

Look for images, open next image.

Read and check bitmap file header for proper format.

Read and check bitmap information header for version, size, color.

Read and display each pixel value. adjust bit depth as needed.

Delay, then repeat from 4.

Preparing images

To keep this demo simple, the photo frame only displays the most common bitmap format. images should be sized to 132x132pixels, with 24bit color.

Open a picture with an image editing program.

Draw a square selection box over the part of the image you want to use, typically using shift and drag.

Crop the image.

Size the image to 132x132pixels.

Save the image as a windows bitmap, 24bits of color depth.

Other image sizes and formats could be supported with a firmware upgrade (PNG, JPG), especially with a pin-compatible microcontroller upgrade to a huge dsPIC 33F.

Χρησιμοποιώντας το

Put images in the root directory of a FAT formatted SD card. depending on the laSt συσκευή Για να διαμορφώσετε την κάρτα, ίσως χρειαστεί να μορφοποιηθεί με μια ψηφιακή βιντεοκάμερα ή το Panasonic SD Formatter.

Προαιρετικό: Δημιουργήστε ένα αρχείο config.ini με έναν επεξεργαστή κειμένου. Εισαγάγετε ένα μόνο ψηφίο, από 0-9, για να ορίσετε το μεταξύ της καθυστέρησης εικόνας. Αποθηκεύστε το αρχείο. Εάν δεν δημιουργήσετε το δικό σας αρχείο config.ini, θα δημιουργηθεί κάποιος για εσάς με μια καθυστέρηση 1 δευτερολέπτου.

Βάλτε την κάρτα στην υποδοχή και συνδέστε το ψηφιακό πλαίσιο εικόνας. Οι εικόνες θα κυκλοφορούν στην οθόνη με την καθορισμένη καθυστέρηση.

Το παίρνω περαιτέρω

Βλέπουμε πολλές δυνατότητες σε αυτό το εύκολο ψηφιακό πλαίσιο εικόνας. Πολυάριθμα χαρακτηριστικά μπορούν να προστεθούν με μια αναβάθμιση υλικολογισμικού, μερικές αποτελούν τη βάση για το μελλοντικό υλικό.

Εμφάνιση άλλων μορφών εικόνων, εικόνες κλίμακας

Τυχαία εξασθενίζει και μαντηλάκια

Εμφάνιση χρόνου και ημερομηνία σε ολόκληρη την εικόνα, ρυθμίστε με κουμπιά που συνδέονται με τους καρφίτσες προγραμματισμού

Επεκτείνετε τις επιλογές διαμόρφωσης στο Config.ini να συμπεριλάβετε μεγαλύτερες καθυστερήσεις, ξεφλουδίζετε ή σκουπίστε τον τύπο

Χρησιμοποιήστε έναν δευτερεύοντα κατάλογο για εικόνες επειδή υπάρχουν ορισμένοι περιορισμοί αρχείων στον ριζικό κατάλογο μιας κάρτας SD FAT.

Προσθέστε μια σύνδεση Ethernet για δικτυωμένες ενημερώσεις οθόνης.

Λήψη: DPF.V1.ZIP Έχει μετακινηθεί εδώ.

Back to top