How-to: Faça um relógio de papel e-papel da revista Esquire
se você nunca ouviu falar de papel eletrônico, rasteje a partir daquele rock e leia no leitor da Sony e da Amazon Kindle. E-papel é uma exibição flexível feita de contas que mudam de cor que simulam tinta em papel para uma leitura de luz do dia. A coisa revolucionária sobre o e-papel é que depois de ser definida, ela permanece assim sem poder adicional.
Isso parece ótimo em teoria, mas a capa de Esquire é a primeira vez que todo mundo pode se dar ao luxo de hackear uma exibição de papel eletrônico. Nós levamos a capa para o Hack A Day Lab para documentar, testar e hackear. No final, nós reciclamos em algo benéfico que qualquer indivíduo pode construir. Temos todos os detalhes sobre como o visor funciona e o que é preciso para usá-lo em seus próprios projetos. Leia sobre o nosso relógio E-Paper Hack abaixo.
Fundo
A capa de papel E-papel de Esquire bateu grande na rede, mas foi rápida. O NotCot tem belas varreduras da placa de circuito e e-papel. Ciência popular postou instruções para ler o código com um pickit2. [Slaxter] Verifique se o chip de foto pode ser lido e que os fusíveis de proteção de código estão desligados. [Matt] Manipulou as células E-papel diretamente com a solda hábil e um arduino. Até agora, não houve muito interesse em repetir o papel eletrônico, ou reprogramando o microcontrolador existente.
Painéis de papel eletrônico
Os painéis de papel eletrônicos reais, fabricados por e-tinta, não são tão excitantes. Cada painel possui um conjunto de segmentos predefinidos, 11 no painel frontal e 3 no anúncio da Ford traseira. Esta não é uma matriz que podemos reprogramar em um e-reader. [just_mike] tem um grande conjunto de tiros ultra close-up das contas individuais que compõem cada segmento.
Cada segmento de papel em e-papel tem uma conexão individual e uma conexão compartilhada com outras células no painel. Os segmentos ficam brancos ou pretos, dependendo da direção da corrente aplicada à célula. Quando comum é baixo, qualquer segmento que também é conectado alto escurecerá. Quando comum é alto, cada célula conectada ao solo será clara. O PCB usa 16 volts de cinco baterias de 3.3volt para alternar as células, mas [Snaxter] mostrou que 5volts era suficiente com seu projeto Arduino.
Teste de performance
Fizemos várias observações sobre as especificações operacionais de papel eletrônico.
Primeiro, leva quase 0,5 segundos para escurecer completamente ou limpar uma célula. No vídeo, você pode ver os estados parciais criados mudando o papel eletrônico muito rápido. Não temos certeza do tempo de mudança ideal, mas entre 0,25 e 0,5 segundos parece ser o mínimo.
Isso também levantou questões sobre o tempo máximo de mudança. Danifica o papel eletrônico para aplicar corrente para mais do que o necessário? O e-papel continua a consumir a corrente, desde que seja aplicado, desperdiçando as baterias? Temos cuidado especial em nosso código para retornar todas as saídas para o solo após uma alteração para evitar uma corrente contínua através do painel.
Limpar e escurecimento precisa ser feito separadamente. É preciso duas operações completas para refrescar totalmente a tela; um para limpar os segmentos antigos, um para escurecer novos segmentos. Um programador inteligente vai pensar que eles podem salvar um ciclo quando somente adicionando ou removendo itens e não fazendo os dois. Isso é verdade até certo ponto, mas a manipulação contínua de uma célula sem refrescar as células adjacentes causa a cor ‘creep’. No vídeo, um fundo piscando sem atualizações para qualquer outro segmento rapidamente impulsiona os segmentos inativos a um estado médio entre escuro e luz.
Placa de motorista
O motorista consiste em um microchip pic12F629 de pinos, dois registros 4094 de mudança e alguns componentes de suporte.
Clique aqui para um diagrama de pino de tamanho completo da placa do motorista E-papel (PNG).
Baterias
Esquire convidou hacks de sua capa com a sugestão bastante coxa de substituir as baterias. Isso faz sentido, as capas foram enviadas em todo o mundo em recipientes refrigerados para ajudar a estender a vida útil da bateria. Mesmo com esse esforço, Esquire diz que as baterias durarão alguns meses.
As baterias 1-5 são em série e fornecem uma corrente de comutação de 15-16Volt para o papel eletrônico. A sexta bateria fornece 3volts para a foto. Nenhuma palavra ainda na qual as baterias morrem primeiro. Se você quiser ‘substituir’ suas baterias, você precisará desolder os antigos, e fornecer uma oferta de 5-16Volt e-papel, e 3Volt microcontrolador suprimento, nos pontos indicados.
Nós finalmente tivemos que substituir nossa bateria de microcontrolador porque abusaríamos um pouco durante o desenvolvimento. Um suporte de bateria de botão com espaçamento de pinos de 20mm caberá os furos existentes. Mouser # 534-106 provavelmente vai funcionar, mas isso não é confirmado.
4094 registros de mudança (IC1, IC2)
Os registros de turno mudam os controles de segmento de papel eletrônico em 16 volts.
Os dois ICs 4094 são registradores de mudança de mudança para dados em cascata de IC1 para IC2. Este registro de deslocamento básico é uma pequena variação no 74HTC595 usamos em nossa parede de graffiti. A principal diferença é que a linha STROBE 4094 é geralmente baixa, e brevemente puxada alta para colocar novos valores nos pinos de saída. Observamos que o 4094 exige long 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
Saída
Endereço
Conexão
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
Alfinete
Nome
Conexão
1.
VDD
+3.3volts
2.
GP5
–
3.
GP4
–
4.
GP3
MCLR (program VPP)
5.
GP2
4094 Strobe
6
GP1
4094 Clock (program clock)
7.
GP0
4094 data (program data)
8.
VSS
Terra
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.
3.
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, basta verificar as configurações do pino em esquire_eink.h, e a função de configuração do pino Banginit () em esquire_eink.c. Tenha em mente que as instruções do PIN são revertidas pelos transistores da interface.
Colocando para usar, um relógio de papel eletrônico
Queríamos fazer algo benéfico com o primeiro painel de papel de consumo barato. Tinha que ser algo muito fácil para que muitas pessoas possam reciclar essa peça legal de tecnologia. Nós não poderíamos resistir a fazer o que tão muita quantidade com a antiga tecnologia de exibição: Faça um relógio. Modelos de esquemática, firmware e arte estão no arquivo de projeto (.zip).
Há tão poucos segmentos no papel eletrônico que só podemos representar parcialmente o tempo. Seis segmentos mostram o tempo, cada um desaparece para revelar o tempo para os dez minutos mais próximos passando pela hora. Também brilhamos os olhos nos segmentos não é tempo do painel. Aqui está o painel feito sob encomenda que criamos. Este bezel, e um tema para fazer o seu próprio, estão incluídos no Arquivo do Projeto (ZIP). Nós imprimimos nosso bezel espelhado para que a tinta seja protegida contra arranhões.
Hardware.
Fomos inspirados pelas propriedades de baixa potência do papel eletrônico para usar a linha MSP430 do Texas Instruments de microcontroladores de 16 bits. Com a configuração ideal, o MSP430 desenha tão pouca energia que é limitada apenas pelo prazo de validade de uma bateria. Podemos até dar aos designers originais uma corrida pelo dinheiro e ver se podemos fazer um dispositivo de energia menor.
A melhor coisa sobre o MSP430 é que você pode obter um kit com um programador / depurador USB e breakout para apenas 20 dólares. Ele vem com um compilador C de cortesia limitado a 4K, mas o F2013 tem apenas 2k de memória. Esta é uma ferramenta completa de desenvolvimento, sem solda envolvida. Aprenda muito mais sobre como trabalhar com o MSP430 nesta forma como.
Este esquema mostra como conectamos nosso MSP430 ao quadro do motorista eletrônico. Clique aqui para uma versão em tamanho real (PNG). O resistor 47K, MSP430 e um LED (não mostrado) estão incluídos na placa de quebra.
Adicionamos um cristal de 32,768khz para manter o tempo (Q1). Normalmente, nós também adicionamos alguns capacitores a formarem um oscilador, mas o MSP430 possui capacitores ajustáveis embutidos em P2.6 e P2.7.
Também adicionamos um botão entre P1.4 e P1.2 (S1). O resistor interno de pull-up no P1.4 mantém o botão alto, e nós a aterramos através de P1.2. Este não é o melhor arranjo, provavelmente seria sábio também conectar P1.2 ao solo.
Nós deslizamos a placa de fugas do MSP430 sobre os pinos de potência e solo do cabeçalho de programação. Você pode conectar os pinos de relógio e dados ao cabeçalho também, mas tomamos uma decisão de direcioná-los todos do Vias por baixo. Lembre-se de remover a foto para que ele não interfira com sinais do MSP430.
Partes
Número
Custo
Capa E-Paper Esquire
–
–
Kit de desenvolvimento MSP430 EZ430
ez430usb.
US $ 20.
32.768khz Crystal.
815-AB26T-32.768khz
US $ 0,27.
Botão de apertar
642-mjtp1250.
US $ 0,16.
Firmware.
O software do relógio é escrito com a versão de demonstração de cortesia do compilador TI / IAR Kickstart C incluído no programador EZ430.
O MSP430 é muito baixo. Ele usa apenas 220ua a 1MHz, mas menos de 6Ua quando dormir. O crucial para a duração da bateria longa é manter o chip amplo o máximo possível. Nosso código de clock está escrito com isso em mente.
Usamos o timer_a com o cristal de 32,768khz para criar uma interrupção duas vezes a cada segundo. O primeiro código de interrupção desencadeia que configura os segmentos a serem exibidos, envia esses valores para o papel eletrônico e, em seguida, dorme para os próximos 0,5 segundos. Enquanto o MSP430 dorme, todos os segmentos ‘off’ têm tempo para limpar. A próxima interrupção vira as linhas comuns a outra maneira com um XOR básico, produz os valores e vai dormir por mais 0,5 segundos. Da próxima vez que o ciclo começará novamente. Não nos incomodamos em redefinir os registros de mudança para a posição ‘0’ porque o refriger é regularmente no fluxo. Segmento Creep não é um problema porque refrescamos cada segmento cada ciclo.
Uma impressora aciona uma interrupção que avança o tempo para os próximos 10 minutos. Para definir o relógio, espere até que o tempo seja um aspecto de 10 minutos após a hora e pressione o botão para mostrar a Corre