Os condensadores são utilizados em quase todos os produtos electrónicos de diversas formas. São carregados por uma corrente, quando chegam a um valor de carga, libertam essa corrente de uma só vez. É esta alternância que opera o flash de uma camera ou um sintonizador rádio impedindo danificar altifalantes, p.ex.
Tempo Os condensadores podem ser usados num circuito dependente do tempo, assim a carga-descarga ocorre em intervalos regulares. Isto pode ser ligado a qualquer díodo emissor de luz ou sistema de altifalantes, fazendo luzes intermitentes ou frequências sonoras.
Filtro regulador A eletricidade em corrente alterna oscila a intervalos regulares (50 ou 60Hz), o que significa que a carga num circuito muda constantemente entre positivo e negativo. A potência de saída de uma fonte Alternada será maior do que a de uma fonte de corrente contínua. No entanto, muitos dispositivos utilizam corrente contínua através de um condensador. Um condensador pode converter de alterna para contínua, “suavizando” a corrente. Durante a oscilação entre valor maior e menor um condensador irá carregar à medida que a corrente sobe e no pico irá descarregar, uma vez totalmente descarregado, ele começa a carregar novamente, para que a corrente de saída nunca tenha tempo de mergulhar totalmente e funcione como se fosse corrente contínua.
Acoplamento Os condensadores podem deixar passar a corrente AC mas bloquear a corrente DC. Isto é usado no caso de um altifalante. Os altifalantes funcionam convertendo uma corrente alterna em som, mas podem ser danificados por qualquer corrente direta. Um condensador impede que isto aconteça.
Afinação Os condensadores variáveis são usados em circuitos de sintonia em sistemas de rádio, conectando-os a um oscilador. O condensador carrega e depois descarrega para uma bobine de fio, gerando um campo electromagnético. Uma vez que o condensador é totalmente descarregado, o campo magnético começa a colapsar, recarregando o condensador. Esta corrente de carga e descarga ocorre em intervalos regulares, mas pode ser alterada alterando o condensador. Se a frequência destes intervalos for igual à frequência de uma estação de rádio próxima, então o amplificador no rádio reforçará este sinal e você ouvirá a transmissão.
Armazenamento de Energia No caso de p.ex., um flash de uma camera, precisamos de uma acumulação de energia e depois uma descarga repentina. Exactamente o que um condensador faz.
Este artigo descreve o desenvolvimento de um leitor de impulsos telefónicos e tocador de samples audio (poemas – cada digito um poema). Um desafio que me foi lançado por Carlos Moura-Carvalho, autor da ideia, para instalação artística em 3 estabelecimentos comerciais de conceito cultural em Lisboa.
A sinalização decádica era utilizada para o envio de informações – dados numéricos, ou mais simplesmente código binário – do telefone para as centrais telefónicas automáticas. Originalmente esta sinalização é gerada por um “disco” que abre e fecha o circuito periodicamente gerando uma série de impulsos de acordo com o número selecionado no disco telefónico.
Esta era a tecnologia telefónica na minha juventude, o que aumentou o entusiasmo de abraçar o projeto.
ESTUDO INICIAL:
Para além de conhecer bem o sistema destes telefones desde jovem, a ideia de um leitor-intérprete de impulsos não me pareceu difícil de conseguir através dum microprocessador como o Arduíno ou Raspberry Pi, programando rotinas de contagem de alteração de estado nas portas de entrada. Por outro lado, ao estudar melhor a questão, relembrei que estes aparelhos eram alimentados por corrente eléctrica através da linha, entre 2.5V e 5.5V, valores muito próximos dos utilizados pelos controladores Arduíno e Raspberry, no entanto para geral impulsos de toque tem condensadores que geram picos de 250V para arranque das campainhas. Para simplificar, não correr riscos e como não tinha propósito de fazer tocar as campainhas do telefone optei por fazer uso das ligações diretas internas para obter os pulsos analógicos simples de interrupção/continuidade de forma passiva. Desta forma descartei a possibilidade de usar o circuito interno e usar somente a mecânica do disco de impulsos.
portas do pulsador e campainha
esquema interior do telefone
tabela de medições
Depois de perceber o circuito, e de fazer medições de valores de resistência, revelou-se que alterando as ligações nas portas de saída teria o que necessitava: O envio dos impulsos para o Pi e o retorno do som para o auscultador através de um único cabo. Precisei portanto de 4 condutores pelo que escolhi cabo de rede cat6 (6 condutores), o comprimento necessário é curto pelo que o isolamento de interferência é dispensável.
PLANO DE HARDWARE:
Porta para leitor de impulsos
Porta para auscultador (pretendia ligações internas, sem cabos exteriores, pelo que soldei contactos nos condutores da caixa TRS de 3.5mm do audio analógico)
Alimentação para ventilador
Porta para LED de estado
Porta para interruptor shutdown (para encerrar diariamente o sistema sem problemas de memória flash)
Esquema
Adicionei uma pequena resistência de 10KΩ na porta do leitor de impulsos para garantir que o valor em estado aberto seja praticamente infinito. O facto de não existirem ligações internas ao audio analógico fez-me sugerir à comunidade Raspberry que se inclua numa próxima atualização essa particularidade. Seria muito bem vinda por parte dos utilizadores e será muito simples de incorporar, quase sem custos adicionais. O ventilador de refrigeração vinha com a caixa SNESPI o que garante tranquilidade para operar durante o verão. O aumento de consumo de corrente é muito pequeno (100mA). Como tal optei por ligação direta, sem configurar nenhum controlador de velocidade/temperatura.
O desligar do sistema poderia, esse sim, criar problemas, pois o Raspberry não tem interruptor, o projeto não incluí ecrã, nem interfaces de acesso e o corte de corrente poderia acontecer quando algum fluxo ao cartão SD decorre levando à perda de informação. Já me aconteceu numa instalação vídeo-art, felizmente estava perto e pude substituir rapidamente o SD de sistema pelo de salvaguarda. Então com base neste projeto adicionei um botão de Shutdown que acciona uma rotina de fecho do sistema e desliga todo o software. Somos avisados por um LED, que se apaga quando encerra, e sabemos quando podemos desligar a corrente. foi baseado neste outro projeto com umas pequenas alterações.
Circuito electrónico
Montagem
_________________
A segunda fase dirigiu-se para a criação do software para comunicação com as portas do Raspberry (3B), para isso teria que resolver as seguintes questões:
SOFTWARE:
Programa leitor de impulsos e sample player.
Inicio do leitor de pulsos com um auto-run logo após iniciar o sistema operativo.
Permitir a utilização de uma pen USB para posterior alteração dos samples audio.
Rotina do botão de shutdown e do LED de aviso.
O Sistema operativo que usei foi o Raspbian (2019-04-08-raspbian-stretch), disponho mais pormenores de configuração do Raspbian neste artigo: Raspberry Pi Tips. Poderia ter utilizado a versão Raspbian sem interface visual, mais leve mas de qualquer forma apenas configurei gráficos na fase inicial para ter feedback à medida que depurava o código. A partir daqui eliminei todo o processo gráfico dentro do sketch.. O programa contador de impulsos foi feito em Processing porque estou mais confortável com a linguagem (Java / C / C++) e teve de ser construído praticamente de raíz. Encontrei poucos exemplos de rotinas que resolvessem a questão dos ciclos de contagem. Precisava de vários passos de confirmação dos gestos feitos pelo utilizador apenas com leitura nos impulsos, ou seja:
1. Espera 1 (modo OFF); 2. Levantar o auscultador; 3. Emitir sinal de presença; 4. Espera 2 (modo ON); 5. Marcar uma série de impulsos; 6. Verificar que a série terminou; 7. Usar o último valor da série para disparar o respetivo sample; 8. Recomeçar a espera 2. ou 9. Encerrar – iniciar a espera 1.
Mais baixo deixo o programa, que é auto-explanatório, no entanto abordo a questão de como resolvi a contagem através de ciclos de espera:
A primeira rotina verifica se o auscultador está no descanso (GPIO.HIGH). Se confirmar aumenta a variável off_time e reinicia a variável on_time. Segunda rotina verifica se off_time é superior a 20 (valor que calculei acima do intervalo dos impulsos do discador): – se sim assume que desligaram o telefone, pausa o som de presença e reinicia as variáveis flag, count e off_time; – se não for superior a 20 e a flag for igual a 0, aumenta o contador countflag passa a 1 (verdadeiro) .
if (GPIO.digitalRead(4) == GPIO.HIGH) {
off_time++;
on_time = 0;
if (off_time >= 20) { // more than 20: DOWN
if (playertone.isPlaying()) {
playertone.pause();
}
flag = 0;
count = 0;
off_time = 20; // stop adding numbers
}
if (off_time < 20) { // less then 20: COUNT
if (flag == 0) {
count ++;
flag = 1;
}
}
}
Se o auscultador estiver levantado (GPIO.LOW), então passa a falso a variável off_time e flag. Verifica se o tempo entre on e off foi maior que 20 e passa o valor do contador count para a variável que escolherá o sample audio a tocar switchPoema.
if (GPIO.digitalRead(4) == GPIO.LOW) {
off_time = 0;
flag = 0;
}
if (on_time > 20) {
on_time = 0;
}
on_time++;
if (on_time > 10) {
switchPoema = count;
count = 0;
}
O restante código pode ser visto no próprio ficheiro e tem comentários nas rotinas. Deixo aqui o resumo e anexos: