HOW-TO: digital picture FRAME, 100% diy

There are a ton of digital picture frame tutorials out there. many are old laptops with crafty case reconfigurations that fit a photo frame profile.

We set out to build a 100% DIY, scratch-built digital picture frame. Our frame has a 12bit color LCD, gigabytes of storage on common, FAT-formatted microSD cards, and you can build it at home. We’ve got the details below.

Concept overview

The bitmap images are stored on common, PC-readable microSD cards. A picture microcontroller reads the images over a three wire SPI bus. The picture processes the image data and writes it to a color LCD over a unidirectional, 9bit SPI-like bus. A configuration file on the SD card defines the delay between images.

Hardware

Click for a full size schematic image (PNG). The circuit and PCB are developed using the freeware version of Cadsoft Eagle. All the files for this project are included in the project archive linked at the end of the article.

Microcontroller

We used a Microchip PIC24FJ64GA002 28pin SOIC microcontroller (IC1) in this project. We really like this chip because the peripheral pin select feature lets us put essential features on the pins we want; this gives a smaller, simpler, much more compact PCB. Each power pin has a 0.1uF bypass capacitor to ground (C1,2). The internal 2.5volt regulator requires a 10uF tantalum capacitor (C12). The chip is programmed through a five pin header, SV1. R1 is a pull-up resistor for the MCLR function on pin 1. read much more about this chip in our PIC24F introduction.

A 32.768kHz crystal (Q1) and two 27pF capacitors (C10,11) offer an oscillator for the real-time clock calendar (RTCC). These parts are optional, the initial firmware doesn’t use them. The RTCC could be used as part of a function that superimposes the current time on the screen. buttons connected to the programming header could be used to set the time.

SD karta

MicroSD cards are completely compatible with regular SD cards, microSD cards can be used in an SD card reader/writer with an adapter. We evaluated several microSD card holders, and settled on one from SparkFun Electronics. The microSD card requires a bypass capacitor between the power pin and ground (C3). An LED indicates microSD read activity, but its also helpful for general debugging (LED1, R2).

Color LCD 128×128 Nokia knock-off

This project is developed around SparkFun’s $20 color LCD panel. The LCD logic runs at 3.3volts and requires a decoupling capacitor (C4). The LED backlight requires a separate 7volt supply, and appears to have an internal current limiter because example designs don’t use external resistors.

The LCD has a separate input for the 3.3volt display supply. numerous report noise in the display if this voltage isn’t clean. We used a ferrite bead (L1) and 0.1uF capacitor (C5) to filter the supply, and haven’t experienced any problems. This even dealt with a dirty home-etched prototype. The ferrite bead type isn’t important, we used one left over from our tiny web server project.

The small connector is easy to solder on a professional board with a solder mask, but purchase several as insurance. SparkFun has a PCB footprint for this part in their Eagle parts library, but the spacing between the pads is smaller than Olimex or BatchPCB will manufacture. We fudged it by decreasing the pad size to get much more space between.  Don’t depend on the connector to hold the LCD in place, use tape to hold it down. We used sticky-tack to attach the LCD temporarily.

We prototyped an LCD carrier board prior to sending the final design for manufacture. We recommend against using a ground fill under the connector without a solder mask.

Zdroj napájení

A 3.3volt supply, offered by an LD1117S33 (IC2), powers the PIC, microSD card, LCD logic, and LCD display. IC2 requires a 0.1uF bypass capacitor (C6) on the supply side, and a 10uF capacitor (C13) on the output. We used the same tantalum capacitor that we used for the picture internal regulator.

The LCD backlight is powered by an LM317 adjustable regulator (IC3) configured to 7volts with 240 (R5) and 1100 (R6) ohm resistors. C7 and C8 are 0.1uF bypass capacitors for the LM317.

J1 is a SMD power jack for a common 2.1mm DC barrel plug. C11 is a 10uF electrolytic capacitor that smooths any lag in the supply voltage. C11 has a maximum 16volt input rating, so the supply voltage is best kept under 12volts. 9-12 volts is probably the idea power supply range.

PCB

Click for a full size placement diagram (PNG). L1, C5, and the LCD are on the opposite side. We can’t prototype two-sided boards in mom’s basement, so we sent this design to BatchPCB. next week we’ll show you how we did it.

Seznam dílů

Část
Popis

IC1
PIC 24FJ64GA002 (SOIC)

IC2
LD1117S33 3.3volt regulator (SOT223)

IC3
LM317 adjustable regulator (SOT223)

U$1
Color LCD 128×128 Nokia knock-off


Nokia knock-off connector

C1-8
0.1uF capacitor (0805)

C10,11
27pF capacitor (0805)

C12,13
10uF tantAlum kondenzátor (SMCA)

C14.
10UF elektrolytický kondenzátor (SMD)

L1
Feritová korálek (0805)

LED1.
LED (0805)

Q1.
32.768kHz Crystal

R1.
2000 OHM odpor (0805)

R2.
390 Ohm odpor (0805)

R5.
240 Ohm odpor (0805)

R6.
1100 Ohm odpor (0805)

SD1.
Držitel karty microSD

J1.
2.1MM Power Jack (SMD)

Sv1.
0,1 “Mužská hlavička, nejlepší úhel

Firmware

Firmware je napsán v C za použití zcela bezplatné demonstrační verze obrazu C30 kompilátoru. Naučte se vše o práci s tímto obrázkem v našem úvodu s řadou snímku 24F. Firmware je zahrnut do archivu projektu na konci článku.

FAT12 / 16/32 Disková knihovna

Microchip je tuk 12/16/32 knihovna nám umožňuje snadný přístup k souborům uloženým na kartách SD. Dali jsme komplexní popis této knihovny na našem webovém serveru na projektu Card Card. Pokud máte potíže s čtením karty s knihovnou, zkontrolujte, zda byla formátována v digitální videokameře nebo pomocí Formulátoru SD karty Panasonic.

Nokia 6100 LCD řidič

Sparkfun má základní 8bitový barevný šofér (ZIP) pro Nokia 6100. Došli jsme ji k PIC a aktualizovali jej pro barevný režim 2Byte-per-pixel 12bit. S malým množstvím přidané složitosti lze sazbu pixelu snadno rozšířit pomocí jiného 12bitového režimu, který dodává dva pixely pomocí 3 bajtů.

LCD displej používá 9bitový protokol, jeden bit mnohem více než mnoho spi hardware zvládne. První bit vypráví na LCD, zda jsou další 8bitové daty nebo příkaz. Na obrázku 24f je nemožné ručně třást v prvním boku, a pak použít Spi periferie pro odeslání zbývajících 8bitů. Při aktivaci hardwaru SPI ztratíme přímou řízení pinů. Zadání dat musí být zcela bitové, což dramaticky snižuje rychlost revitalizace obrazovky.

Čtení bitmapy

Existuje tunu bitmapových formátů. Kompatibilita systému Windows udržuje každého pomocí starobylé formát Windows V3. Vytvořili jsme dvě C struktury pro čtení dat Bitmapu V3.

Ofsetový
Bajtů
Záhlaví souboru bitmapy

0.
2.
Vždy 0x42 0x4d (hex pro bm)

2.
4.
Velikost souboru (bajty)

6.
2.
Vyhrazeno, ignorováno

8.
2.
Vyhrazeno, ignorováno

10.
4.
Umístění v souboru prvních bitmapových dat

Bitmapové soubory začínají záhlaví 14byte souboru. První dva bajty jsou písmena, BM ‘, označující bitmapu. Pokud jsou první dva bajty správné, firmware načte záhlaví informací. Poslední čtyři bajty ukazují začátek bitmapových dat, ale aktuální firmware právě předpokládá, že začne na konci záhlaví.

Ofsetový
Bajtů
Bitmapová informační záhlaví

14.
4.
Délka bitmapové informační záhlaví (40bytes pro bitmapy Windows V3)

18.
4.
Šířka (pixely)

22.
4.
Výška (pixely)

26.
2.
Barevná letadla, vždy 1

28.
2.
Barevné bity na pixel (1, 4, 8, 16, 24 a 32)

30.
4.
Metoda komprese, čteme pouze nekomprimovanou (typ 0)

34.
4.
Délka obrazu obrazu

38.
4.
Horizontální rozlišení (pixely na metr)

42.
4.
Vertikální rozlišení (pixel na metr)

46.
4.
Počet barev, ignorovaných.

50.
4.
Počet základních barev, ignorovaných.

Informační záhlaví systému Windows V3 Bitmap je dlouhá 40bytes. Firmware ověří, že délka záhlaví (posunu 14) je 40, což indikuje bitmapu V3. Pokud se šířka (132), výška (132), barevná hloubka (24) a komprese (0) odhlášení, obrazová data jsou zpracovávána a výstup na obrazovku.

Ofsetový
Bajtů
24bitová data bitmapa obrazu

54+ (3N)
1.
pixel n červená hodnota

54+ (3n + 1)
1.
pixel n zelená hodnota

54+ (3N + 2)
1.
pixel n modrá hodnota

Bitmapové snímky mají nekomprimované, 1: 1 znázornění dat pixelů uložených ve třech bajtových sekvencích. Data začínají v pravém dolním rohu obrázku; první červenou hodnotu, pak zelená a modrá. Wikipedia má kompletní bitmapu.

Pokud je barevná hloubka bitmapového obrazu (24bits) větší, než je LCD displej (12bits), musíme zlikvidovat nejméně významné bity barevných dat. Chcete-li převést z 24bitové barvy na 12bitovou barvu, prostě jsme se sklíčili polovinu barevných dat; 8bitová hodnota 11110011 je tlačena čtyři bity vpravo, dávat 1111.

Firmware procházky

Init pic, SD, LCD.

Přečtěte si config.ini, vytvořte, pokud neexistuje.

Pomocí prvního znaku Config.ini nastavte mezi zpoždění obrazu.

Podívejte se na obrázky, otevřete další obrázek.

Přečtěte si a zkontrolujte záhlaví souboru bitmapy pro správný formát.

Přečtěte si a zkontrolujte záhlaví informací o bitmapu pro verzi, velikost, barvu.

Přečtěte si a zobrazí každou hodnotu pixelů. Podle potřeby upravte hloubku bitů.

Zpoždění, pak opakujte od 4.

Příprava obrázků

Chcete-li dodržet toto demo jednoduché, rámeček fotorámeček zobrazuje nejčastější formát bitmapy. Snímky by měly být dimenzovány na 132x132Pixels, s 24bitovou barvou.

Otevřete obrázek s programem pro úpravu obrázků.

Nakreslete čtvercovou výběru krabici přes část obrázku, který chcete použít, typicky používat posun a tažení.

Ořízněte obrázek.

Velikost obrázku na 132x132Pixels.

Uložte obrázek jako bitmapu systému Windows, 24bitová hloubka barev.

Ostatní velikosti obrazu a formáty mohou být podporovány s upgradem firmwaru (PNG, JPG), zejména s upgradem mikrokontroléru kompatibilního s pinem na obrovský DSPIC 33F.

Používat to

Dejte obrázky do kořenového adresáře tukové formátované SD karty. V závislosti na LASt Zařízení pro formátování karty, možná je třeba formátovat digitální videokameru nebo formátovač Panasonic SD.

Volitelné: Proveďte soubor config.ini s textovým editorem. Zadejte jednu číslici od 0-9, nastavit mezi zpoždění obrazu. Uložte soubor. Pokud nevytvoříte svůj vlastní soubor Config.ini, bude pro vás vytvořen s 1 druhou zpoždění.

Karta položte do zásuvky a zapojte digitální rámeček obrázku. Snímky budou cyklovat na obrazovce s definovaným zpožděním.

Brát to dále

Vidíme spoustu potenciálu v tomto jednoduchém digitálním rámečku obrázku. Četné funkce lze přidat s upgradem firmwaru, některé jsou základem pro budoucí hardware.

Zobrazit další formáty obrázků, snímky měřítko

Náhodné mize a ubrousky

Doba zobrazení a datum přes snímek, s nastavenými tlačítky připojenými k programovacím kolíkům

Rozšiřte možnosti konfigurace v Config.ini zahrnout delší zpoždění, FADE nebo Type Type

Použijte sub adresáře pro obrázky, protože existují některé omezení souboru do kořenového adresáře tukové formátované SD karty.

Přidání ethernetového připojení pro aktualizace sítí zobrazení.

Stáhněte si fotografii dpf.v1.zip to se přestěhoval sem.

Leave a Reply

Your email address will not be published. Required fields are marked *