톤의 디지털 그림 프레임 자습서가 있습니다. 많은 사람들이 사진 프레임 프로파일에 맞는 교활한 케이스 재구성이있는 오래된 노트북입니다.
우리는 100 % DIY, 스크래치 구축 된 디지털 액자를 만들기 위해 출력했습니다. 우리의 프레임에는 12 비트 컬러 LCD, 일반적인 뚱뚱한 형식의 microSD 카드에 저장된 기가 바이트가 있으며, 집에서 그것을 구축 할 수 있습니다. 우리는 아래의 세부 사항을 가지고 있습니다.
개념 개요
비트 맵 이미지는 공통 PC 판독 가능 microSD 카드에 저장됩니다. 사진 마이크로 컨트롤러는 3 개의 와이어 스파 버스를 통해 이미지를 읽습니다. 그림은 이미지 데이터를 처리하고 단방향, 9 비트 SPI와 같은 버스 위에 색상 LCD에 씁니다. SD 카드의 구성 파일은 이미지 간 지연을 정의합니다.
하드웨어
전체 크기의 개략적 인 이미지 (PNG)를 클릭하십시오. 회로 및 PCB는 CADSoft 독수리의 프리웨어 버전을 사용하여 개발되었습니다. 이 프로젝트의 모든 파일은 기사 끝에 링크 된 프로젝트 아카이브에 포함되어 있습니다.
마이크로 컨트롤러
우리는이 프로젝트에서 Microchip PIC24FJ64GA002 28PIN SOIC 마이크로 컨트롤러 (IC1)를 사용했습니다. 주변 핀 선택 기능이 우리가 원하는 핀에 필수적인 기능을 넣을 수 있기 때문에 우리는이 칩을 정말로 좋아합니다. 이것은 더 작고 간단하고 훨씬 더 컴팩트 한 PCB를 제공합니다. 각 전력 핀은지면에 0.1UF 바이 패스 커패시터를 갖는다 (C1, 2). 내부 2.5Volt 레귤레이터는 10UF 탄탈 커패시터 (C12)가 필요합니다. 칩은 5 핀 헤더, SV1을 통해 프로그래밍됩니다. R1은 PIN 1. PIC24F 소개 에서이 칩에 대해 훨씬 더 많은 것을 읽을 수 있습니다.
32.768KHz 크리스탈 (Q1)과 2 개의 27PF 커패시터 (C10,11)는 실시간 클록 캘린더 (RTCC)를위한 발진기를 제공합니다. 이러한 부분은 선택 사항이며 초기 펌웨어는 이들을 사용하지 않습니다. RTCC는 현재 시간을 화면에서 중첩하는 함수의 일부로 사용될 수 있습니다. 프로그래밍 헤더에 연결된 버튼을 사용하여 시간을 설정할 수 있습니다.
SD 카드
microSD 카드는 일반 SD 카드와 완전히 호환되므로 어댑터가있는 SD 카드 리더 / 라이터에서 microSD 카드를 사용할 수 있습니다. 우리는 몇몇 microSD 카드 소지자를 평가하고, SparkFun 전자 제품에서 하나씩 정착했습니다. microSD 카드는 전원 핀과 접지 사이의 바이 패스 커패시터 (C3)가 필요합니다. LED는 microSD 읽기 활동을 나타내지 만 일반 디버깅 (LED1, R2)에도 도움이됩니다.
컬러 LCD 128 × 128 Nokia Knock OFF.
이 프로젝트는 Sparkfun의 $ 20 컬러 LCD 패널 주변에서 개발되었습니다. LCD 논리는 3.3Volts에서 실행되며 디커플링 커패시터 (C4)가 필요합니다. LED 백라이트는 별도의 7Volt 공급이 필요하며 외부 저항을 사용하지 않는 예제 디자인이 없기 때문에 내부 전류 리미터가있는 것으로 보입니다.
LCD에는 3.3Volt 디스플레이 공급 전원에 대한 별도의 입력이 있습니다. 이 전압이 깨끗하지 않은 경우 디스플레이의 수많은 보고서 노이즈입니다. 우리는 페라이트 비드 (L1)와 0.1uF 커패시터 (C5)를 사용하여 공급을 필터링하고 문제가 발생하지 않았습니다. 이것은 더러운 가정 에칭 된 프로토 타입을 다루었습니다. 페라이트 비드 유형은 중요하지 않습니다. 우리는 Tiny Web Server 프로젝트에서 한 번 남았습니다.
소형 커넥터는 솔더 마스크가있는 전문 보드에서 솔더링하기 쉽지만 보험으로 여러 번 구입할 수 있습니다. SparkFun은이 전지 부품 라이브러리 에서이 부분을위한 PCB 풋 프린트를 가지고 있지만 패드 사이의 간격은 Olimex 또는 BatchPCB가 제조 될 것입니다. 우리는 패드 크기를 줄이려면 훨씬 더 많은 공간을 얻을 수 있습니다. LCD를 제자리에 고정시키는 커넥터에 의존하지 마십시오. 테이프를 사용하여 고정하십시오. 우리는 끈적 끈적한 압정을 사용하여 LCD를 일시적으로 부착했습니다.
우리는 제조를 위해 최종 디자인을 보내기 전에 LCD 캐리어 보드를 프로토 타이핑합니다. 솔더 마스크가없는 커넥터 아래의 접지 채우기를 사용하는 것이 좋습니다.
전원 공급 장치
LD1117S33 (IC2)가 제공하는 3.3Volt 공급 장치, PIC, microSD 카드, LCD 로직 및 LCD 디스플레이의 전원을 공급합니다. IC2는 공급 측에 0.1UF 바이 패스 커패시터 (C6)와 출력 상에 10UF 커패시터 (C13)가 필요합니다. 우리는 우리가 그림 내부 조절기에 사용한 것과 동일한 탄탈륨 커패시터를 사용했습니다.
LCD 백라이트는 240 (R5) 및 1100 (R6) 옴 저항으로 7Volts로 구성된 LM317 조정 가능한 레귤레이터 (IC3)에 의해 전원이 공급된다. C7 및 C8은 LM317에 대해 0.1UF 바이 패스 커패시터입니다.
J1은 공통 2.1mm DC 배럴 플러그를위한 SMD 전원 잭입니다. C11은 공급 전압에서 임의의 지연을 부드럽게하는 10UF 전해 콘덴서입니다. C11은 최대 16Volt 입력 등급을 가지므로 공급 전압은 12Volts 미만으로 유지됩니다. 9-12 볼트는 아마도 아이디어 전원 공급 장치 범위 일 것입니다.
PCB.
전체 크기 배치 다이어그램 (PNG)을 클릭하십시오. L1, C5 및 LCD는 반대쪽에 있습니다. 우리는 엄마의 지하실에서 양면 보드를 프로토 타입 할 수 없으므로이 디자인을 BatchPCB로 보냈습니다. 다음 주에 우리는 어떻게했는지 보여줍니다.
부품 목록
부분
설명
IC1.
그림 24FJ64GA002 (Soist)
IC2.
LD1117S33 3.3Volt 조절기 (SOT223)
IC3.
LM317 조정 가능한 조절기 (SOT223)
U $ 1.
컬러 LCD 128 × 128 Nokia Knock OFF.
–
Nokia Knock-off 커넥터
C1-8.
0.1UF 커패시터 (0805)
C10,11.
27PF 커패시터 (0805)
C12,13.
10uf tant.알룸 커패시터 (SMCA)
C14.
10UF 전해 커패시터 (SMD)
L1
페라이트 비드 (0805)
led1.
LED (0805)
Q1.
32.768khz 수정
r1.
2000 옴 저항기 (0805)
r2.
390 옴 저항기 (0805)
r5.
240 옴 저항 (0805)
r6.
1100 옴 저항기 (0805)
SD1.
microSD 카드 홀더
j1.
2.1mm 전원 잭 (SMD)
Sv1.
0.1 “남성 핀 헤더, 가장 좋은 각
펌웨어
펌웨어는 C30 컴파일러의 완전히 무료 데모 버전을 사용하여 C로 작성됩니다. 사진 24F 시리즈에 대한 소개 에서이 사진을 찍는 것에 대해 모두 알아보십시오. 펌웨어는 기사가 끝나면 프로젝트 아카이브에 포함되어 있습니다.
FAT12 / 16 / 32 디스크 라이브러리
Microchip의 Fat 12/16/32 라이브러리는 SD 카드에 저장된 파일에 쉽게 액세스 할 수 있습니다. 우리는 회사 카드 프로젝트의 웹 서버 에서이 라이브러리에 대한 포괄적 인 설명을 제공했습니다. 라이브러리가있는 카드를 읽는 데 어려움을 겪고있는 경우 디지털 비디오 카메라로 포맷되었거나 Panasonic의 SD 카드 포맷터를 사용하는지 확인하십시오.
노키아 6100 LCD 드라이버
SparkFun은 Nokia 6100을위한 기본적인 8 비트 컬러 운전사 (우편)를 가지고 있습니다. 우리는 그것을 PIC에 이식하여 2 픽셀 별 12 비트 컬러 모드로 업데이트했습니다. 소량의 첨가 된 복잡성을 갖는, 3 바이트를 사용하여 2 개의 픽셀을 전달하는 다른 12 비트 모드를 사용하여 픽셀 쓰기 속도를 쉽게 향상시킬 수 있습니다.
LCD는 9 비트 프로토콜을 사용하며 많은 SPI 하드웨어가 처리 할 수 있습니다. 첫 번째 비트는 다음 8 비트가 데이터 또는 명령인지 여부를 LCD에 알립니다. 사진 24F 첫 번째 비트에서 수동으로 강타하는 것은 불가능한 다음 SPI 주변 장치를 사용하여 나머지 8 비트를 보냅니다. 우리는 하드웨어 SPI가 활성화되면 핀을 직접 제어 할 수 있습니다. 데이터 항목은 완전히 비트 뱅킹되어 화면 활성화 속도를 획기적으로 줄입니다.
비트 맵 읽기
비트 맵 형식이 있습니다. Windows 호환성은 고대 Windows V3 형식을 사용하여 모든 사람을 유지합니다. 우리는 V3 Bitmap 데이터를 읽는 데 2 개의 C 구조체를 만들었습니다.
오프셋
바이트
비트 맵 파일 헤더
0.
2
항상 0x42 0x4D (BM 용 16 진수)
2
4.
파일 크기 (바이트)
6.
2
예약 된, 무시
8.
2
예약 된, 무시
10.
4.
첫 번째 비트 맵 데이터의 파일 위치
비트 맵 파일은 14 바이트 파일 헤더로 시작합니다. 처음 두 바이트는 비트 맵을 나타내는 문자 ‘bm’입니다. 처음 두 바이트가 올바른 경우 펌웨어가 정보 헤더를로드합니다. 마지막 4 바이트는 비트 맵 데이터의 시작을 나타내지 만 현재 펌웨어는 헤더 끝에서 시작할 것으로 가정합니다.
오프셋
바이트
비트 맵 정보 헤더
14.
4.
비트 맵 정보 헤더 길이 (Windows V3 비트 맵의 경우 40Bytes)
18.
4.
너비 (픽셀)
22.
4.
높이 (픽셀)
26.
2
색상 비행기, 항상 1
28.
2
픽셀 당 색상 비트 (1, 4, 8, 16, 24 및 32)
30.
4.
압축 방법, 우리는 압축되지 않은 것만 읽습니다 (유형 0).
34.
4.
이미지 데이터 길이
38.
4.
수평 해상도 (미터당 픽셀)
42.
4.
수직 해상도 (미터당 픽셀)
46.
4.
무시소 된 색상 수.
50.
4.
무시소 된 필수 색의 수.
Windows V3 비트 맵 정보 헤더는 40byte입니다. 펌웨어는 헤더 길이 (오프셋 14)가 40이고 V3 비트 맵을 나타내는지 확인합니다. 너비 (132), 높이 (132), 색 심도 (24) 및 압축 (0)이 모두 체크 아웃되면 이미지 데이터가 처리되고 화면으로 출력됩니다.
오프셋
바이트
24 비트 이미지 비트 맵 데이터
54+ (3N)
1
픽셀 n 적색 값
54+ (3N + 1)
1
픽셀 n 녹색 값
54+ (3N + 2)
1
픽셀 n 블루 값
비트 맵 이미지는 3 바이트 시퀀스로 저장된 픽셀 데이터의 1 : 1 표현을 가지고 있습니다. 데이터는 이미지의 오른쪽 하단 모서리에서 시작됩니다. 먼저 빨간색 값, 녹색 및 파랑. Wikipedia는 완전한 비트 맵을 가지고 있습니다.
비트 맵 이미지 (24bits)의 색 깊이가 LCD가 표시 할 수있는 경우 (12 비트), 우리는 컬러 데이터의 가장 중요한 비트를 삭제해야합니다. 24 비트 색상에서 12 비트 색상으로 변환하려면, 우리는 단지 컬러 데이터의 절반을 척합니다. 11110011의 8 비트 값은 오른쪽에 4 비트를 푸시하여 1111을 제공합니다.
펌웨어 워크 – 스루
init pic, sd, lcd.
config.ini를 읽고 존재하지 않는 경우 작성하십시오.
config.ini의 첫 번째 문자를 사용하여 이미지 지연 사이에서 설정하십시오.
이미지를 찾고 다음 이미지를 엽니 다.
적절한 형식을 위해 비트 맵 파일 헤더를 읽고 확인하십시오.
버전, 크기, 색상의 비트 맵 정보 헤더를 읽고 확인하십시오.
각 픽셀 값을 읽고 표시하십시오. 필요에 따라 비트 깊이를 조정하십시오.
지연, 4에서 반복하십시오.
이미지 준비
이 데모를 간단하게 유지하려면 사진 프레임은 가장 일반적인 비트 맵 형식 만 표시합니다. 이미지는 24 비트 색상으로 132x132pixels로 크기를 조정해야합니다.
이미지 편집 프로그램으로 그림을 엽니 다.
일반적으로 시프트 및 드래그를 사용하여 사용할 이미지의 일부에 사각형 선택 상자를 그립니다.
이미지를 자르십시오.
크기를 132x132pixels로 설정하십시오.
이미지를 Windows 비트 맵, 24 비트의 색 깊이로 저장하십시오.
다른 이미지 크기 및 형식은 펌웨어 업그레이드 (PNG, JPG)로 지원 될 수 있습니다. 특히 핀 호환 마이크로 컨트롤러 업그레이드가 거대한 DSPIC 33F로 업그레이드됩니다.
그것을 사용하십시오
지방 형식의 SD 카드의 루트 디렉토리에 이미지를 넣으십시오. LA에 따라ST 장치 카드를 포맷하려면 디지털 비디오 카메라 또는 파나소닉 SD 포맷터로 포맷해야 할 수도 있습니다.
선택 사항 : 텍스트 편집기가있는 Config.ini 파일을 만듭니다. 0-9부터 0-9 사이의 단일 숫자를 입력하여 Picture Delay를 설정하십시오. 파일을 저장하십시오. 자신만의 Config.ini 파일을 만들지 않으면 1 초 지연으로 사용자를 위해 생성됩니다.
카드를 소켓에 넣고 디지털 그림 프레임을 연결하십시오. 이미지가 정의 된 지연으로 화면을 순환합니다.
그것을 더 많이 가져 가라
우리는이 쉬운 디지털 액자에서 많은 잠재력을 볼 수 있습니다. 수많은 기능을 펌웨어 업그레이드로 추가 할 수 있으며, 일부는 향후 하드웨어의 기초입니다.
다른 이미지 형식, 스케일 이미지 표시
무작위 페이드와 와이프
이미지와 날짜 표시, 프로그래밍 핀에 연결된 버튼으로 설정
Config.ini에서 구성 옵션을 확장하여 더 긴 지연, 페이드 또는 닦아내는 유형을 포함합니다.
지방 형식의 SD 카드의 루트 디렉토리에 일부 파일 제한이 있기 때문에 이미지의 하위 디렉토리를 사용하십시오.
네트워크 디스플레이 업데이트에 이더넷 연결을 추가하십시오.
다운로드 : dpf.v1.zip 여기로 이동했습니다.