에서 전자 종이 시계를 만드는 경우 전자 종이에 대해 들어 본 적이없는 경우 해당 바위 아래에서 기어 오르고 Sony Reader와 Amazon Kindle을 읽으십시오. E-Paper는 쉽게 일광 읽기를 위해 잉크 온 종이를 시뮬레이트하는 색상 변경 구슬로 만들어진 유연한 디스플레이입니다. 전자 종이에 대한 혁명적 인 것은 설정된 후에는 추가적인 힘이없는 방식으로 유지된다는 것입니다.

이것은 이론에서 훌륭하게 들리지만, Esquire의 표지는 모두 전자 종이 디스플레이를 해킹 할 수있는 처음입니다. 우리는 하루에 해킹, 테스트 및 해킹에 대한 해킹에 덮개를 가져갔습니다. 결국 우리는 어떤 개인이 빌드 할 수있는 것이 유익한 것을 재활용했습니다. 우리는 디스플레이가 작동하는 방식과 자신의 프로젝트에서 사용하는 것이 무엇인지에 대한 모든 세부 사항을 가지고 있습니다. 아래 해킹에 대해 읽어보십시오.

배경

Esquire 전자 종이 덮개는 그물에서 크게 쳤지 만 신속하게 무너졌습니다. 노호는 회로 기판과 전자 종이의 아름다운 스캔을 가지고 있습니다. 인기있는 과학 PickIt2로 코드를 읽는 지침을 게시했습니다. [Slaxter]는 사진 칩을 읽을 수 있고 코드 보호 퓨즈가 꺼져 있음을 확인했습니다. [매트] e- 종이 세포를 숙련 된 납땜과 Arduino로 직접 조작했습니다. 지금까지 e- 종이를 재배하거나 기존 마이크로 컨트롤러를 재 프로그래밍하는 데는 많은 관심이 없었습니다.

전자 종이 패널

전자 잉크로 제조 된 실제 전자 종이 패널은 흥미 진진한 것이 아닙니다. 각 패널에는 전면 패널에 11 개의 미리 정의 된 세그먼트가 있으며 후면 포드 광고의 3 개가 있습니다. 이것은 우리가 e- 리더로 다시 프로그래밍 할 수있는 행렬이 아닙니다. [Just_Mike]는 각 세그먼트를 구성하는 개별 구슬의 초대형 촬영 촬영을 가지고 있습니다.

각 e- 종이 세그먼트에는 개별 연결이 있으며 패널의 다른 셀과 공유되는 연결이 있습니다. 세그먼트는 세포에 적용된 전류 방향에 따라 백색 또는 검정색이됩니다. 공통이 낮을 때 높은 연결된 모든 세그먼트는 어둡게됩니다. 공통이 높으면지면에 연결된 각 셀이 삭제됩니다. PCB는 5 개의 3.3Volt 배터리에서 16 볼트를 사용하여 세포를 전환하지만 [Slaxter]는 Arduino 프로젝트로 5Volts가 충분하다는 것을 보여주었습니다.

성능 시험
우리는 전자 종이 작동 사양에 대해 여러 관찰을했습니다.

첫째, 완전히 어두워 지거나 셀을 삭제하는 데 약 0.5 초가 걸립니다. 비디오에서 E- 용지를 너무 빨리 전환하여 생성 된 부분 상태를 볼 수 있습니다. 우리는 최적의 변화 시간을 확신하지 못했지만 0.25에서 0.5 초 사이의 최소한 인 것 같습니다.

이것은 또한 최대 변화 시간에 대한 질문을 제기했습니다. 필요한 것보다 오래 전류를 적용하기 위해 전자 종이가 손상됩니까? 전자 종이가 적용되는 한 전류를 계속 소비하고 배터리를 낭비합니까? 우리는 패널을 통한 연속 전류를 피하기 위해 변경된 후에 모든 출력을 바닥으로 되돌릴 수있는 코드에서 특별한주의를 기울였습니다.

지우기와 어두워지는 것은 별도로 수행해야합니다. 화면을 완전히 닦는 두 가지 완전한 작업이 필요합니다. 오래된 세그먼트를 어둡게하는 오래된 세그먼트를 깨끗이 할 수 있습니다. 스마트 프로그래머는 항목 만 추가하거나 제거 할 때만주기를 저장할 수 있고 두 가지를 모두 수행하지 않을 수 있습니다. 이것은 어느 정도 사실이지만, 인접한 셀을 상쾌하게하지 않고 한 세포의 지속적인 조작은 색이 ‘크리프’를 일으 킵니다. 비디오에서 다른 세그먼트에 대한 업데이트가없는 깜박이는 배경은 비활성 세그먼트를 어둡고 밝은 사이의 중간 상태로 신속하게 구동합니다.

드라이버 보드

자동차 운전자는 8 핀 마이크로 칩 PIC12F629, 2 개의 4094 시프트 레지스터 및 일부 지원 구성 요소로 구성됩니다.

전자 종이 자동차 운전자 보드 (PNG)의 전체 크기 핀 다이어그램을 보려면 여기를 클릭하십시오.

배터리

Esquire는 배터리를 대체하는 오히려 절름발이 제안을 통해 커버 해킹을 초대했습니다. 이것은 의미가 있으며, 덮개는 냉장 컨테이너에서 전 세계에서 배송되어 배터리 수명을 연장 시켰습니다. 그 노력에도 불구하고, Esquire는 배터리가 몇 달 동안 지속될 것이라고 말합니다.

배터리 1-5는 직렬로되어 있으며 전자 용지에 대한 15-16Volt 스위칭 전류를 공급합니다. 여섯 번째 배터리는 그림을 위해 3Volts를 공급합니다. 어떤 배터리가 먼저 죽지 않는 단어가 아닙니다. 배터리를 ‘교체’하려는 경우 오래된 것들을 삭감하고 5-16Volt 전자지 공급 및 3Volt 마이크로 컨트롤러 공급을 제공해야합니다.

우리는 결국 개발 중에 조금 남용했기 때문에 마이크로 컨트롤러 배터리를 교체해야했습니다. 20mm 핀 간격이있는 버튼 배터리 홀더가 기존 구멍에 맞습니다. Mouser # 534-106은 아마 일할 것입니다. 그러나 이것은 미확인입니다.

4094 시프트 레지스터 (IC1, IC2)

시프트 레지스터는 16 볼트에서 전자 종이 세그먼트 컨트롤을 전환합니다.

2 개의 4094 IC는 IC1에서 IC2까지 데이터를 계단식으로 설정하는 Shift 레지스터 설정입니다. 이 기본 시프트 레지스터는 우리가 낙서 벽에 사용한 74HTC595의 사소한 변형입니다. 주요 차이점은 4094 스트로브 라인이 일반적으로 낮은 것으로, 출력 핀에 새 값을 넣기 위해 간단히 높이 뽑아 봅니다. 우리는 4094가 LO가 필요하다는 것을 관찰했습니다ng clock and strobe pulses. This could be due to lazy drive circuitry between the photo and the 4094, or just the nature of the 4000 series.

4094 segment output map

ic.

산출

주소

연결

1

Q1.

0x01.

FRONT_BOX_SYMBOL_DNA

1

Q2

0x02

FRONT_BOX_GUY

1

Q3

0x04

FRONT_BOX_FIREWORKS

1

Q4

0x08

FRONT_ON_THE_WEST_COAST

1

Q5

0x10

FRONT_THREE_HOURS_LATER

1

Q6

0x20

FRONT_ESQUIRE

1

Q7.

0x40

FRONT_BOX_GIRL

1

Q8

0x80

FRONT_NOW

2

Q1.

0x100

FRONT_BEGINS

2

Q2

0x200

FRONT_21ST_CENTURY

2

Q3

0x400

FRONT_BACKGROUND

2

Q4

0x800

FRONT_COMMON

2

Q5

0x1000

BACK_COMMON

2

Q6

0x2000

BACK_LEFT

2

Q7.

0x4000

BACK_CENTER

2

Q8

0x8000

BACK_RIGHT

12F629

Click here for a full size schematic drawing(PNG). An eight pin PIC12F629 drives the 4094 shift registers that control each e-paper segment. two pins are unused (GP4, GP5).

The MCLR feature is enabled with resistor R8. The design doesn’t include a diode to secure the photo from the 13volt programming current. Microchip recommends this, but there’s no other sensitive ICs sharing the circuit so maybe the designer felt a resistor was sufficient protection.

Three pins drive the data, clock, and strobe lines of the 4094 (GP0, GP1, GP2). The 4094 has to be interfaced at the same voltage it switches, 16 volts, so the photo switches the interface pins through transistors. As far as we can tell, the 4094 control lines are pulled high with a resistor. The photo switches a transistor on, and it pulls the line to ground. The interface to the 4094 is backwards. A photo high pin is seen as low at the shift register, and low is seen as high. The interface won’t work unless reversed.

The programming pins are brought to a header at the top of the PCB. We soldered standard .1″ pin header into the holes supplied (Mouser #571-41033290). The two programming pins, PGD and PGC, are shared with the circuitry that drives the shift registers. We were able to read the device with an ICD2 debugger. We couldn’t reprogram it though, probably because of the shift register driver. has any individual had success? Regardless, the shared pin arrangement makes it impossible to do in-circuit debugging on this device.

PIC pin connections

이름

연결

1

VDD

+3.3volts

2

GP5

GP4

4.

GP3

MCLR (program VPP)

5.

GP2

4094 Strobe

6.

GP1

4094 Clock (program clock)

7.

GP0

4094 data (program data)

8.

VSS

지면

Tap the board

It’s easy to tap into the board and use it with your favorite microcontroller. All but one of the required interface signals are already brought to a header. The strobe line can be tapped through the by means of indicated by the arrow. You don’t want the photo to interfere with your new controller, so remove it or deactivate it by severing the power pin.

Interface library

Our first effort to drive the board involved our PIC24F-based tiny web server. It was handy, and the PIC24F is easy to work with. We perfected our interface library on a low-power MSP430. Both versions are in the project archive(ZIP), but the MSP430 version of the library is a lot more mature.

The library includes a software bit-bang routine, functions for interfacing the board, and address definitions for the segment and common lines. options in esquire_eink.h enable a bit-bang delay and set its length; we found the 4094 lazy and in need of a lengthy clock pulse. The initBang() function sets the direction of the pins, and must be changed to suit your microcontroller. call it, or set your IO pins to output elsewhere:

1
bangInit(); //set bitbang pins to output

The setSeg() function sets the passed segments dark (1) or clear (0):

1
2
setSeg(FRONT_BOX_GUY+FRONT_BACKGROUND, 1); //set(dark) these segments
setSeg(FRONT_21ST_CENTURY,0);//clear (light) these segments

The setSeg() function includes a color change delay defined by EINK_DELAY in esquire_eink.h. At the end of the delay it returns the shift register pins to ground. We want to avoid damaging to the e-paper or wasting the batteries, though we don’t really know if this is necessary.

One thing we observed about setSeg() was that manipulating single cells causes adjacent cells to regress toward a mid-color. We developed the setDisplay() function to combat this by fully refreshing the display every time. setDisplay() includes a pause for each change, and then returns the shift register outputs to ground. just pass the segment arrangement for a fully refreshed display:

1
setDisplay(FRONT_ESQUIRE+BACK_LEFT);//XX dark, everything else clear

You can access the shift registers directly with the bangIt() function, but consider returning the shift registers outputs to ‘0’ after the e-paper color change is complete. You could damage the e-paper or cause excessive current drain if you leave it on, if that’s actually ‘a thing’.

1
2

bangIt(0b1110000000000000);//all back panel segments on
pause();//wait for the color change
bangIt(0x0000);//return all outputs to ground

To port the library to your miCrocontroller는 esquire_eink.h의 핀 구성을 확인하고 핀 설정 기능 banginit () esquire_eink.c에서 확인하십시오. 핀 방향은 인터페이스 트랜지스터에 의해 역전된다는 것을 명심하십시오.

그것을 사용하도록 퍼팅, 전자 종이 시계

우리는 첫 번째 저렴한 소비자 전자 종이 패널에 유익한 것을하고 싶었습니다. 많은 사람들 이이 멋진 기술을 재활용 할 수 있도록 꽤 쉽게 쉽게 쉽게해야했습니다. 우리는 오래된 디스플레이 기술로 많은 만드는 것을 할 수 없었습니다. 시계를 만드십시오. 회로도, 펌웨어 및 아트 템플릿은 프로젝트 아카이브 (.zip)에 있습니다.

우리가 시간을 부분적으로 만 나타내는 전자 종이에는 몇 가지 세그먼트가 거의 없습니다. 6 개의 세그먼트는 시간을 보이고, 각각은 시간을 지난 10 분 동안 가장 가까운 시간을 밝히기 위해 밝혀졌습니다. 우리는 또한 패널의 비 – 시간 세그먼트에서 눈 사탕을 푸시합니다. 우리가 만든 맞춤형 베젤은 다음과 같습니다. 이 베젤과 자신만의 테마가 프로젝트 아카이브 (ZIP)에 포함되어 있습니다. 우리는 잉크가 흠집으로부터 보호되도록 베젤을 인쇄했습니다.

하드웨어

우리는 Texas Instruments의 MSP430 16 비트 마이크로 컨트롤러를 사용하기 위해 전자 종이의 저전력 특성에 의해 영감을 얻었습니다. 이상적인 구성으로 MSP430은 배터리의 저장 수명에 의해서만 제한된 전력이 거의 없어집니다. 우리는 원래 디자이너에게 돈을 위해 실행을 할 수 있으며, 우리가 저전력 장치를 만들 수 있는지 확인할 수 있습니다.

MSP430에 대한 가장 좋은 점은 20 달러 만에 USB 프로그래머 / 디버거 및 브레이크 아웃 보드가있는 키트를 얻을 수 있다는 것입니다. 여기에는 무료 C 컴파일러가 4K로 제한되지만 F2013은 2K의 메모리 만 있습니다. 이것은 완벽한 개발 도구이며 솔더링이 필요하지 않습니다. 이 방법에서 MSP430과 함께 일하는 것에 대해 더 많이 배웁니다.

이 회로도는 MSP430을 전자 종이 운전자 이사회에 연결하는 방법을 보여줍니다. 전체 크기 버전 (PNG)은 여기를 클릭하십시오. 47K 저항, MSP430 및 LED (미도시)는 브레이크 아웃 보드에 포함되어있다.

우리는 시간을 유지하기 위해 32.768kHz 크리스탈을 추가했습니다 (Q1). 일반적으로 우리는 발진기를 형성하기 위해 일부 커패시터를 추가하지만, MSP430에는 P2.6 및 P2.7에 조정 가능한 커패시터가 내장되어 있습니다.

P1.4와 P1.2 사이의 버튼을 추가했습니다 (S1). P1.4의 내부 풀업 저항은 버튼을 높이고 P1.2를 통해 접지했습니다. 이것은 최선의 배열이 아니며 P1.2를 접지에 연결하는 것이 현명 할 것입니다.

우리는 프로그래밍 헤더의 전원 및 접지 핀을 통해 MSP430 브레이크 아웃 보드를 슬라이드합니다. 시계와 데이터 핀을 헤더에 연결할 수는 있지만 밑에 VIAS에서 모든 것을 라우팅하려는 결정을 내릴 수 있습니다. 사진을 제거하여 MSP430의 신호를 방해하지 않도록하십시오.

부속

숫자

비용

Esquire 전자 종이 커버

MSP430 EZ430 개발 키트

EZ430USB.

$ 20.

32.768khz 수정

815-AB26T-32.768KHz.

$ 0.27.

누름 단추

642-MJTP1250.

$ 016.

펌웨어

시계 소프트웨어는 EZ430 프로그래머가 포함 된 TI / IAR 킥 스타트 C 컴파일러의 무료 데모 버전으로 작성되었습니다.

MSP430은 매우 낮습니다. 그것은 1MHz에서 220ua를 사용하지만 잠자는 동안 6UA 미만을 사용합니다. 긴 배터리 수명에 결정적인 것은 칩을 가능한 한 많이 유지하는 것입니다. 우리의 시계 코드는 이것을 염두에두고 작성되었습니다.

우리는 32.768kHz 크리스탈을 사용하여 TIMER_A를 사용하여 매 초의 두 번 방해를 만듭니다. 첫 번째 인터럽트는 표시 할 세그먼트를 구성 하고이 값을 전자 용지에 전송 한 다음 다음 0.5 초 동안 잠자기줍니다. MSP430이 잠자는 동안 모든 ‘OFF’세그먼트는 분명히 할 시간이 있습니다. 다음 인터럽트는 공통 선을 기본 XOR로 플립하고 값을 출력하며 0.5 초 동안 잠자기 상태로 이동합니다. 다음 번에주기가 다시 시작됩니다. Freshen이 Flux에서 정기적으로 ‘0’위치로 재설정 할 수 없습니다. 세그먼트 크리프는 각 사이클 모든 세그먼트를 신선시기 때문에 문제가되지 않습니다.

버튼을 누르면 다음 10 분까지의 시간을 발전시키는 인터럽트를 트리거합니다. 시계를 설정하려면 시간이 시간이 지나면 시간이 10 분이 될 때까지 기다리고 버튼을 눌러

Leave a Reply

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