Navigator

Relógio de ponteiros luminosos com disco rígido usando PIC12F675

hdd-clock
 

Introdução

Este projeto tem por objetivo responder a uma questão que para mim tem grande importância: o que fazer com os discos rígidos antigos que, apesar de ainda funcionarem perfeitamente, são completamente obsoletos e ultrapassados? A esta segue-se imediatamente uma outra: o que fazer com discos rígidos não tão antigos, que ainda rodam perfeitamente, mas que sofreram algum incidente irreversível? Minha resposta a ambas as perguntas é: um relógio de ponteiros luminosos, é claro! Utilizando-se da ilusão de ótica causada pelo movimento combinado do disco rígido e de luzes piscantes, um pouco de Física elementar e outro de Matemática, é possível formar a imagem de ponteiros luminosos de cores diferentes imitando um relógio de ponteiros, conforme a imagem ao lado e fotos abaixo.

A fim de tornar o desafio um pouco mais interessante, procurei não apenas aproveitar um HD de sucata, mas priorizar ao máximo o aproveitamento de outros componentes de segunda mão, e manter o número total de componentes no circuito e o consumo de energia a um mínimo absoluto. Uma maneira de assegurar esses requisitos é encontrar um circuito o mais simples possível, deixando mais detalhes e tarefas para o software. Outra maneira, ainda não explorada em profundidade, seria desativar alguns componentes do circuito dedicado do HD a fim de não consumirem energia desnecessariamente.

Um desafio um pouco mais ambicioso seria remover completamente o circuito dedicado e controlar diretamente o motor AC desses dispositivos via software. Isso me parece ser plenamente viável, mas certamente irá requerer conhecimentos e esforços que ainda não possuo (alguém tem uma boa referência?). Isso permitiria, por exemplo, baixar a velocidade de rotação do HD até um ponto ótimo em que a imagem se forma perfeitamente e o consumo de energia e o ruído baixem ainda mais.

Pode parecer que sou particularmente sensível e tenha baixa tolerância a ruídos, mas posso assegurar que não é bem esse o caso. Residi 7 anos no centro de São Paulo e já me acostumei com todo tipo de incômodo. Acontece que não sou muito favorável a situações como a que nos foi apresentada recentemente por um eletrecista aqui no meu trabalho. Ele resolveu um preocupante problema de ruído causado pela vibração de alguns fios de eletrecidade que ninguém sabia ao certo aonde iam dar envolvendo-os cuidadosamente em uma generosa porção de espuma. Dá para imaginar o que aconteceu não muito tempo depois: graças a engenhosidade do nosso sábio eletrecista, viémos a descobrir atônitos exatamente aonde esses fios iam dar!

Antes de prosseguir com a descrição detalhada, devo dizer que a idéia deste projeto não é originalmente minha. Vejam por exemplo [1] e [2]. Há ainda relatos em alguns blogs de outros indivíduos que fazem ou faziam disso um hobby mais permanente, mas não consegui localizar nenhum sítio que viesse a confirmar isso. No entanto, procurei realizar alguns melhoramentos sobre os projetos de meus antecessores, e assim resolver alguns dos problemas apresentados por eles, produzindo um relógio que pode ser utilizado na prática, registrando corretamente a passagem do tempo, mas que tivesse um melhor desempenho funcional e apelo visual. Por exemplo, a disposição e a quantidade de LEDs naqueles projetos era insuficiente para produzir uma imagem nítida dos ponteiros sob iluminação ambiente. Além disso, os circuitos apresentados eram demasiadamente complicados para uma implementação prática. Baseavam-se apenas no aproveitamento de HD's muito antigos, e não apresentavam solução para o ruído provocado pela ranhura aberta no disco.

Finalmente, eu desejava que meu relógio fosse realmente útil. Não sei se atingi esse objetivo ainda, mas posso afirmar que tenho recorrido a ele com freqüência para saber as horas recentemente. Pode ser que, quando ele estiver dentro de uma bela caixa de acrílico que pretendo fabricar, talvez ele venha a ocupar um lugar de respeito em minha residência ou quem sabe em meu local de trabalho. Acho que este relógio tem um grande potencial para impressionar as visitas. Afinal, como se realiza a proeza de marcar horas, minutos e segundos ao mesmo tempo com apenas um ponteiro?

Segurança e Responsabilidade

A velocidade típica de rotação de um disco rígido varia entre 3600, 4500, 5400 RPM ou mais. Embora o disco girando exposto me pareceu bastante seguro ao toque, é possível imaginar algumas situações de risco de ferimentos, possivelmente graves e particularmente aos olhos. Em uma ocasião vi, ou melhor ouvi, um pedaço de plástico pontiagudo que eu havia colado ao disco ser arremessado pela sala a cerca de 14m/s (51Km/h). Nunca mais vi nem sinal do tal plástico que estava a cerca de 3cm do eixo e girava a 5400RPM no momento em que se desprendeu. Felizmente ninguém se feriu, mas o incidente me deixou preocupado a ponto de eu passar a usar uns desajeitados óculos de proteção que prefiro não mostrar aqui. Por causa disso, recomendo o máximo de cuidado com o protótipo, evitando que permaneça ligado e exposto a outras pessoas, especialmente à curiosidade de crianças, até que esteja montado definitivamente dentro de uma caixa apropriada. Isto além dar um acabamento final ao relógio, provavelmente irá proporcionar melhor segurança, maior visibilidade em certos ambientes e ajudará a reduzir a intensidade de ruídos incômodos, se houver algum.

Reitero que as informações contidas nesta página devem ser utilizadas apenas para fins educacionais, consistindo estas basicamente do meu relato de um empenho pessoal. Em momento algum estou encorajando a construção desse relógio ou de qualquer outro dispositivo. Caso alguém tome essa decisão deve também considerar cuidadosamente e assumir para si quaisquer riscos e responsabilidades inerentes. Não posso assumir nenhuma responsabilidade sobre o uso destas informações, seja ele devido ou indevido.

Hardware

Por causa do baixo custo e alta versatilidade, o componente escolhido para ser o coração deste projeto foi o PIC12F675, um microcontrolador de apenas 8 pinos com 1K de memória de programa, apenas 64 bytes de RAM e 128 bytes de EEPROM. Das suas 6 entradas e saídas, duas foram utilizadas para o oscilador a cristal, duas foram utilizadas apenas como saídas, uma apenas como entrada e uma como entrada e saída.

O esquema elétrico do relógio tal como no protótipo é apresentado abaixo. Os transistores de potência utilizados para rápido acionamento dos LEDs foram mosfets de canal-N BST72A, equivalentes por exemplo ao 2N7000. Podem ser perfeitamente substituídos por transistores mais comuns do tipo NPN como o BC337, com leve perda de brilho nos ponteiros.

Convencendo o HD a girar e ajustando a velocidade em 3600 RPM

A maioria dos HD's mais antigos, produzidos antes de 1996 gira a 3600RPM e mantém o disco em movimento mesmo estando desconectado do PC e quando as cabeças de leitura/gravação são removidas. Infelizmente este não é o caso dos HD's mais modernos, que utilizam voice-coil para movimentar as cabeças. Estes dispositivos costumam ter um chip com funções combinadas de acionamento do motor AC trifásico cujo eixo é diretamente conectado ao disco e a de acionamento do voice-coil. Este, por sua vez, é conectado a um microcontrolador que comanda o acionamento.

O problema com estes HD's é que eles costumam desligar o motor se houver alguma situação de falha. Isto inclui, por exemplo, a incapacidade do dispositivo em ler o conteúdo de algumas trilhas do disco. Por essa razão, a remoção das cabeças de leitura/gravação provoca a parada do disco.

Para sanar o problema, é preciso fazer uma pequena modificação no circuito do drive. Normalmente o chip acionador possui uma linha de comando conectada ao microcontrolador. Um nivel alto nessa linha faz o disco girar e um nivel baixo faz o disco parar. Essa linha deve ser cortada e conectada à linha de +5V por meio de um resistor (2K2 ou mais). Isto vai obrigar o disco a permanecer constantemente girando.

Em alguns HD's há ainda uma segunda linha que seleciona a velocidade de rotação. Recomendo ajustar essa linha de modo que a velocidade seja 3600RPM. Com uma menor velocidade de rotação, menos energia é consumida pelo motor e há menor produção de ruídos. Esta velocidade é mais do que suficiente para o perfeito funcionamento do relógio.

Em meu projeto utilizei o HD Quantum Pioneer de 1GB pois, além de estar há algum tempo na pilha de sucata, também era bastante silencioso. Este HD possui um chip controlador Hitachi HA13555. A linha de controle de acionamento do motor está presente no pino 44 e a linha de seleção de velocidade no pino 41. A foto abaixo apresenta a modificação: ambas as linhas foram cortadas e ligadas a +5V por meio de um resistor de 2K2.

Como a velocidade de rotação é baseada na freqüência do clock do circuito do HD, pode ser possível diminuir ainda mais a velocidade de rotação simplesmente mudando a freqüência de clock, por exemplo, pela insersão de um divisor de freqüência.

Alguns modelos de HD's que examinei possuiam o chip Hitachi HA13561F que me parece ser compatível pino-a-pino com o HA13555, ao menos no que diz respeito aos sinais relevantes para este projeto. Em alguns testes com esses chips confirmei o funcionamento idêntico ao HA13555 quanto ao acionamento constante e a seleção da velocidade.

Protótipo montado em proto-board:

Protótipo no escuro:

Protótipo com o disco parado

Os LED's foram montados no chassis do HD por detrás do disco giratório usando cola a quente e dispostos nas posições usuais dos números do relógio. Para que a luz pudesse ser percebida como um ponteiro luminoso, uma ranhura foi aberta radialmente no disco, com o cuidado de não deixar a ranhura vazar pela borda. Em alta rotação, a ranhura cria turbulência no ar ao redor e o disco começa a vibrar, produzindo uma quantidade significativa de ruído. Se a ranhura vazar pela borda, a possibilidade de vibração do disco aumenta muito e o ruído é ainda maior. Explicarei abaixo como procurei atacar este problema.

Para aumentar o contraste entre a luz ambiente e a dos LEDS, melhorando a visibilidade dos ponteiros, o disco foi pintado de preto fosco. Normalmente, o disco é praticamente um perfeito espelho e reflete muito da luz ambiente, prejudicando a visibilidade. Com isto, meu protótipo apresentou boa visibilidade mesmo de dia e com as luzes da casa acesas.

Detalhe da ranhura no disco rídigo

A ranhura radial foi feita com o disco de corte do esmeril (Dremel, etc) e em seguida foi preenchida com um pedaço de plástico lixado para aumentar a difusão da luz dos LED's. O plástico foi acomodado na ranhura e fixado no lugar com cola a quente, mas pretendo substituí-lo em breve por algum material mais transparente, como acrílico por exemplo, quando eu tiver mais experiência em trabalhar com esse material.

Um detalhe importante acerca da ranhura: o material removido vai provocar desbalanceamento do disco e isto por sua vez vai aumentar a vibração quando o disco estiver girando. Este problema pode ser remediado, desgastando-se a parte inferior do disco no lado oposto ao da ranhura. No meu caso removi progressivamente material do lado oposto procurando manter simetria no corte e evitando perfurar novamente o disco. Fiz isso até que o disco não apresentasse mais vibração quando em movimento. O resultado final foi um disco que roda perfeitamente e com baixo ruído. De fato, parece-me que o nível de ruído do protótipo não é superior ao apresentado originalmente pelo disco ainda selado. Creio que em sua caixa definitiva, assentado sobre borrachas amortecedoras, o ruído do disco será quase imperceptível.

Software

O código fonte e os binários estarão em breve disponíveis aqui para download. Infelizmente o programa ainda apresenta alguns bugs e não tive tempo de depurá-lo, mas falta muito pouco para que fique completamente estável.

Referências

  1. Hard Drive Clock de Alan Parekh
  2. HDD Clock with LCD touchscreen Controller
  3. Datasheet do PIC12F675 - link para o site da Microchip
  4. Errata desse datasheet (muito importante)

Figuras

Fig. 1 - Protótipo do circuito. Ampliar figura


Updated on  Fri Oct 6 09:39:50 2017
Copyright © 1997-2014, Waldeck Schutzer
 
http://twitter.com/ityessal http://twitter.com/liminft