magazine www.elektor-magazine.pt Julho - Agosto 2013 A Melhor Revista de Electrónica Prática do Mundo Excitador para FM banda larga Controlador para luz ambiente Elektorcardiograma Android (1) Fechadura com abertura por padrões Conversor elevador de tensão PWM Carregador para telemóvel com células de NiMH PRODUTOS EM OFERTA MARCAS DE REFERÊNCIA SEMICONDUTORES OPTOELECTRÓNICA E FONTES DE LUZ ELEMENTOS PASSIVOS CABOS E CONECTORES FUSÍVEIS E MEIOS DE PROTECÇÃO COMUTADORES E LUZES DE CONTROLO SISTEMAS ÁUDIO RELÉS E CONTADORES TRANSFORMADORES E NÚCLEOS VENTILADORES E SISTEMAS DE ARREFECIMENTO FONTES DE ALIMENTAÇÃO CABOS E FIOS ELÉCTRICOS ELEMENTOS MECÂNICOS CHASSIS AUTOMAÇÃO SISTEMAS DE BANCADA CAR AUDIO CONVIDAMO-LO A FAZER A SUA COMPRA ONLINE •Comunidade Edição 3339, Julho - Agosto 2013 Depósito Legal: nº 7313/84 ISSN 0870-1407 R.C. Social nº 110 523 www.elektor.com.pt www.elektor-magazine.com/pt Editor: Elektor International Media bv Holanda Sede: Elektor International Media b.v. P.O. Box 11 NL-6114-ZG Susteren The Netherlands. Telefone: +31 46 4389444 Fax: +31 46 4370161 www.elektor.com | www.elektor.org A Elektor publica-se 10 vezes ao ano com edição dupla em Janeiro/Fevereiro e Julho/Agosto. Assinaturas: Internet: www.elektor.com.pt Ir à secção Assine Já! Email: [email protected] Contacto geral da Elektor Portugal: [email protected] Publicidade: Elektor International Media Email: [email protected] João Martins: [email protected] Direitos de autor Os circuitos descritos nesta revista são exclusivamente para utilização pessoal. Os direitos de autor de todos os gráficos, fotografias, desenhos de circuitos impressos, circuitos integrados programados, discos, CD-ROM, software e os textos dos artigos publicados nos nossos livros e revistas (que não sejam propriedade de terceiros) estão registados pela Elektor International Media bv e não podem ser reproduzidos ou difundidos de nenhuma forma nem por nenhum meio, incluindo fotocópias, digitalizações ou registos de imagem, parcial ou totalmente, sem a prévia autorização escrita do Editor. Também será preciso dispor da referida autorização escrita antes de armazenar qualquer parte desta publicação em sistemas de armazenamento de qualquer natureza. Os circuitos, dispositivos, componentes, etc., descritos nesta revista podem estar protegidos por patentes. O Editor não aceita responsabilidade alguma pela ausência de identificação da(s) referida(s) patente(s) ou protecções intelectuais de outro tipo. A apresentação de desenhos ou artigos implica que o Editor está autorizado a modificar os textos e desenhos para apresentação na revista, assim como a utilizar esses conteúdos noutras publicações e actividades da Elektor International Media. O Editor não garante a devolução de qualquer material que lhe seja enviado. Ressalva Os preços e descrições dos produtos relacionados com a publicação estão sujeitos a modificações. Excluem-se erros e omissões. As opiniões expressas nos diferentes artigos, assim como o conteúdo dos mesmos, são responsabilidade exclusiva dos seus autores e não reflectem necessária as opiniões do Editor. O conteúdo e mensagens publicitárias são da responsabilidade exclusiva dos respectivos anunciantes. Os preços e descrições dos elementos relacionados com a publicação estão sujeitos a alteração sem prévio aviso. Estão excluídos erros ou omissões. © Elektor International Media b.v. 2013 A revista Elektor é publicada originalmente também na Holanda, Alemanha, França, Inglaterra, Estados Unidos, Espanha e Brasil nos respectivos idiomas. Editorial Depois de um intervalo forçado (frustrante para todos e totalmente inesperado, nós sabemos...), a Elektor Portugal consegue estar de regresso embora de forma diferente. Tal como temos vindo a comunicar através da nossa nova página no Facebook e por todas as vias que nos foram possíveis (muitas centenas de emails respondidos...), as circunstâncias económicas extremamente difíceis que se vivem em Portugal levaram a anterior editora que tinha a licença da Elektor para Portugal a interromper a sua publicação – que já vinha desde meados dos anos oitenta. A Elektor International Media, com sede na Holanda, tomou então a decisão de convidar alguns dos membros da equipa que em Portugal produzia a revista para darem continuidade ao projecto nos mesmos moldes que já havia implementado (com sucesso) em Espanha, Itália e Suécia. Assim, tal como nesses países, a Elektor deixa de ser editada em versão impressa em papel e assume-se completamente como uma publicação em formato digital. Mas em compensação, em vez de termos que seleccionar alguns dos artigos das edições originais em inglês, francês, holandês ou alemão – como sempre aconteceu – agora podemos publicar tudo, exactamente tudo a que temos acesso, traduzido para Português de Portugal. E para além do novo design das páginas, do novo logo, das novas secções, a nova Elektor oferece muito mais, tal como explicamos em detalhe nas páginas desta edição. Claro que não queríamos defraudar ninguém e decidimos criar uma pequena transição onde vamos começar por completar os artigos de séries que vínhamos publicando, porque sabemos como pode ser frustrante não ver a conclusão de um artigo, não ter acesso à ultima parte de um projecto... ou saber o fim de uma história. Para nós, esperamos que este seja apenas o princípio de uma nova história, começando pelo facto de estarmos agora mais ligados ao “castelo mágico” onde a Elektor é produzida por uma equipa talentosa, da qual nos orgulhamos agora de fazer parte. Em formato digital, adaptando-nos às mudanças mas aproveitando o melhor das mais recentes tecnologias. Prometemos continuar a trabalhar para os nossos leitores com a mesma intensidade e entusiasmo de sempre. João Martins, Director Editorial para Países de Língua Portuguesa e Espanhola A Equipa Elektor Direcção Editorial: João Martins ([email protected]) Editor Portugal/Espanha: Eduardo Corral ([email protected]) Responsável Técnico da Edição Portuguesa: Carlos Reis Redacção Internacional: Harry Baggen, Thijs Beckers, Jan Buiting, Wisse Hettinga, Denis Meyer, Jens Nickel, Clemens Valens Equipa de desenho: Thijs Beckers, Ton Giesberts, Luc Lemmens, Raymond Vermeulen, Jan Visser Design gráfico e DTP: Giel Dols, Mart Schroijen Director online: Daniëlle Mertens Director de marca: Wisse Hettinga Director general: Don Akkermans www.elektor-magazine.pt | Julho - Agosto 2013 | 3 •Índice No. 339 magazine Julho - Agosto 2013 ♥ Hardware & Software 12 Controlador inteligente para ventoinha de computador Curso 17 Placa de controlo USB 46 Dominar as FPGAs (3) 64 Curso Arduíno (3b) 78 Circuito para escuta de comunicações aeronáuticas Montagem 52 Fechadura com abertura por padrões Domótica 29 Controlador para luz ambiente Teste & Medida 41 Amplificador de transcondutância 86 Conversor elevador de tensão PWM 90 Carregador para telemóvel com células de NiMH Passatempo & Modelismo Rádio & TV 34 Excitador para FM banda larga Alimentação & Carregadores 94 Amplificador/atenuador para medida universal 20 Elektorcardi ♥ grama Android (1) 70 Sensor de humidade 71 Antena para banda de aviação Doméstico 72 7-uP: Relógio com alarme/ /interruptor temporal 4 | Julho - Agosto 2013 | www.elektor-magazine.pt Ideias para projecto 97 elektor labs Portugal João Martins +31 46 4389444 [email protected] USA Hugo Van haecke +1 860-875-2199 [email protected] United Kingdom Wisse Hettinga +31 46 4389428 [email protected] Germany Ferdinand te Walvaart +49 241 88 909-17 [email protected] France Denis Meyer +31 46 4389435 [email protected] Netherlands Harry Baggen +31 46 4389429 [email protected] Spain Eduardo Corral +34 91 101 93 95 [email protected] Italy Maurizio del Corso +39 2.66504755 [email protected] Sweden As Nossas Redes Wisse Hettinga +31 46 4389428 [email protected] Brazil João Martins +31 46 4389444 [email protected] India Sunil D. Malekar +91 9833168815 [email protected] Russia Conectamos-te com Nataliya Melnikova +7 (965) 395 33 36 [email protected] Turkey Zeynep Köksal +90 532 277 48 26 [email protected] South Africa Johan Dijk +31 6 1589 4245 [email protected] China Cees Baay +86 21 6445 2811 [email protected] www.elektor-magazine.pt | Julho - Agosto 2013 | 5 • Indústria Novo sensor de imagem 3D da Infineon para reconhecimento gestual Por: João Martins A Infineon Technologies acaba de lançar uma nova família de sensores de imagem com capacidade de detecção tridimensional, permitindo assim obter reconhecimento gestual para aplicações de interfaces com computadores, entre outras aplicações possíveis. Este sensor foi desenvolvido em colaboração com a empresa alemã pmdtechnologies e os novos chips são os primeiros a combinar uma matriz de pixels com sensibilidade de imagem 3D e a conversão digital e funções de controlo necessárias para desenvolver sistemas extremamente compactos e precisos para aplicações seja em computadores, seja em dispositivos móveis e aplicações genéricas na electrónica de consumo. Os novos chips incluem um conjunto de pixels fotossensíveis, associados a uma sofisticada lógica de controlo, interfaces digitais com conversores A/D e saídas digitais. O chip IRS1010C tem uma resolução de 160x120 pixels, enquanto o modelo IRS1020C tem uma resolução de 352x288 pixels. Ambos são dinamicamente configuráveis através de um interface I²C, permitindo adaptação em tempo real a alterações ambientais ou operacionais. Os chips são fornecidos em versão para integração directa com lentes de câmara e podem ser complementados com uma fonte de iluminação por infra-vermelhos no próprio módulo de câmara. Segundo a Infineon detalha, esta nova geração de sensores de imagem 3D, baseada em CMOS, permite simplificar e melhorar a forma como as pessoas interagem com máquinas, permitindo implementar seguimento rápido e preciso de movimentos dos dedos e da mão, de forma a complementar as actuais tecnologias de ecrãs tácteis e os tradicionais ratos e objectos apontadores. Além disso, as câmaras 3D baseadas nestes sensores podem ser miniaturizadas de forma a viabilizar a integração em novas aplicações, reduzindo custo e dimensão dos módulos de câmaras. Segundo o fabricante, o desenho de referência da Infineon baseado neste chip é a mais pequena câmara com capacidade de detecção 3D actualmente disponível. A empresa pmdtechnologies forneceu a tecnologia Time-of-Flight (ToF) em que é especialista, implementando uma matriz de pixels baseada neste princípio, combinada com a tecnologia patenteada de supressão de iluminação de fundo ou SBI (Suppression of Background Illumination), permitindo assim melhorar a gama dinâmica do sensor para que se torne possível utilizá-lo em interiores e exteriores. Estes novos sensores da Infineon já estão disponíveis para amostras de desenvolvimento e deverão estar disponíveis para produção em volume em meados de 2014. O CamBoard pico é o projecto de referência para câmaras 3D, desenhado pela pmdtechnologies e que consiste numa câmara de resolução QQVGA, alimentada por USB, baseada no sensor de imagem 3D IRS1010C. Este módulo de câmara mede apenas 85 x 17 x 8 mm³ e demonstra a latência extremamente reduzida e a precisão que é possível atingir com estes sensores. www.infineon.com/3d-imaging www.pmdtec.com PIC32MX a 32-bit são a nova aposta da Microchip A Microchip anunciou o lançamento de uma nova família de microcontroladores PIC32MX3/4 (MCUs) em configurações de Flash/Ram 64/16 KB, 256/64 KB e 512/128 KB. Estes novos MCUs são complementados por completas ferramentas e software da Microchip para projectos na área da conectividade, gráficos, áudio digital e aplicações genéricas de controlo embebido. Estes MCUs vêm expandir a popular série de microcontroladores 32-bit de alto desempenho PIC32MX3/4. Oferecem agora maiores opções de memória RAM e maior integração de periféricos a um custo mais baixo. Os PIC32MX3/4 têm 28 conversores ADC a 10-bit e 5 UARTS, um desempenho de 105 DMIPS, periféricos série, suporte gráfico para ecrãs, superfícies tácteis capacitivas, digital áudio e conectividade. Em conjunto com as soluções completas da Microchip, a nova família PIC32 MX3/4 permite criar novas aplicações de electrónica de con- sumo, electrodomésticos, instrumentação médica e industrial acrescentando capacidades de áudio, gráficas e capacitivas de alta qualidade, a baixo custo, para além de USB, com um desenvolvimento mais rápido, de menor custo e com riscos reduzidos. A família PIC32MX3/4 é suportada por uma gama completa de ferramentas e software. Estes MCUs são também suportados por um conjunto completo de stacks para diferentes protocolos da Microchip, incluindo TCP/ IP, USB Device e Host, Bluetooth e Wi-Fi. Para aplicações de áudio digital, a Microchip fornece software para tarefas como a conversão de frequência de amostragem (SRC), codecs de áudio incluindo MP3 e AAC, assim como software para ligação a smartphones e outros dispositivos electrónicos pessoais. A família PIC32MX3/4 é suportada pelo PIC32 6 | Julho - Agosto 2013 | www.elektor-magazine.pt USB Starter Kit III e pelo PIM de 100-pinos PIC32MX450 USB para o sistema de desenvolvimento modular Explorer 16 da Microchip. Estes MCUs ficam todos disponíveis em encapsulamentos QFN de 64-pinos com 9x9x0.9 mm; TQFP de 64-pinos 10x10x1 mm; TQFP de 100pinos com 12x12x1 mm/14x14x1 mm; e VTLA de 124-pinos com 9x9x0.9 mm. www.microchip.com/get/5CB7 notícias Microchip Expande Família chipKIT A Microchip expandiu a sua plataforma chipKIT com novas ferramentas da Digilent, Fair Use Building and Research (FUBAR) Labs e Schmalz Haus. As novas ferramentas baseiam-se nos microcontroladores PIC32 a 32-bit da Microchip, em encapsulamentos excelentes para protótipos, em formato SOIC ou SPDIP com reduzido número de pinos, anteriormente mais comuns nos MCUs a 8-bit. O objectivo consiste em permitir que todos os utilizadores possam beneficiar do desempenho elevado, maior capacidade de memória e periféricos integrados dos MCUs PIC32, ao mesmo tempo permitindo continuar a usar equipamentos básicos de prototipagem que mesmo muitos entusiastas têm nas suas bancadas em casa. A placa chipKIT DP32 da Digilent tem componentes básicos de entradas e saídas e interface, expandindo o ecossistema chipKIT a 32-bit existente, ao mesmo tempo que passa a oferecer uma plataforma de desenvolvimento de baixo custo. Para os utilizadores que desejam construir aplicações sem uma placa de desenvolvimento, a Microchip oferece igualmente estes MCUs PIC32 em encapsulamentos PDIP adequados a prototipagem, com o boot loader chipKIT USB pré-programado. Em particular, destaca-se o PIC32MX250F128B em encapsulamento de 28-pinos que é um microcontrolador 32-bit com uma frequência de 40 MHz, 128 KB de memória flash e 32 KB de RAM, tendo já periféricos integrados para aplicações de controlo avançado, interfaces tácteis, gráficos, processamento áudio e USB. Estas novas placas chipKIT da Microchip são compatíveis Arduino e a versão chipKIT Fubarino Mini que resulta de uma parceria com a FUBAR Labs e Schmalz Haus, oferece uma excelente opção para desenvolvimentos em Arduino com base nos MCUs PIC32 da Microchip, tendo um custo de apenas 19,95 dólares na loja microchipDIRECT. A placa chipKIT DP32 da Digilent custa 23,99 dólares cada, enquanto os MCUs PIC32MX250F128B a 32-bit pré-programados com o chipKIT USB Bootloader custam apenas 5,95 dólares cada, sendo vendidos apenas em unidades. http://www.microchip.com/get/4NG7 Circuitos Impressos Nova placa de desenvolvimento BeagleBone Black já disponível A RS Components acaba de lançar a nova placa de desenvolvimento BeagleBone Black, uma solução de baixo custo desta popular família que vem permitir a criação de protótipos a custos reduzidos com base em software open source. A BeagleBone Black é a mais recente versão desta plataforma criada pela BeagleBoard.org, uma placa com a dimensão de um simples cartão de crédito que utiliza sistemas operativos de base Linux, permite o acesso à Internet e é compatível com Android 4.0 e Ubuntu. A BeagleBone Black é uma extensão da BeagleBoard baseada no processador ARM Cortex-A8 a 32 bit, já com acelerador co-processador matemático NEON e aceleração gráfica 3D e Sitara AM3358, a 1GHz, da Texas Instruments. Custando metade do preço da BeagleBone original e vindo já com todos os acessórios necessários, a BeagleBone Black permite criar aplicações sofisticadas a um preço substancialmente mais competitivo do que as plataformas de desenvolvimento semelhantes disponíveis no mercado. A BeagleBone Black tem já uma saída HDMI integrada, memória DDR3 de 512MB; flash interna de 2GB (eMMC) e interfaces série integrados. Tanto combinada com outros computadores como funcionando em modo independente, a BeagleBone Black oferece o acesso aos interfaces padrão na indústria e a todo um conjunto de ferramentas e software de desenvolvimento, tendo a capacidade de se poder conectar até quatro placas de expansão através dos seus conectores série. A maioria das expansões desenhadas para a BeagleBone original podem ser utilizadas também na BeagleBone Black. A BeagleBone Black está disponível através da rsportugal.com com entrega em 24/48 horas. www.beagleboard.org www.rs-components.com www.designspark.com • Indústria Linkbot: O robot modular para toda a gente Por: Tessel Renzenbrink A plataforma robótica modular Linkbot foi desenhada para ser simples de utilizar por qualquer pessoa, podendo ser explorada por crianças ou entusiastas da robótica mas sendo ao mesmo tempo suficientemente completa para desafiar a criatividade mesmo de técnicos com maiores conhecimentos e que desejem criar sistemas robóticos complexos. Segundo explica Graham Ryland, o criador do Linkbot, existem dois tipos de sistemas robóticos DYI (faz tu mesmo), começando por aqueles que são simples de entender mas têm capacidades limitadas e aqueles que são versáteis mas são difíceis de dominar. O objectivo do projecto Linkbot partiu assim da ideia de ligar os dois extremos. O Linkbot começou por ser uma criação do professor de engenharia Harry Cheng, em colaboração com Graham Ryland, seu anterior aluno, entretanto graduado. Juntos, desenvolveram a plataforma na Universidade Davis, na California. Em 2010 decidiram fundar a empresa Barobo para comercializar o robot que tinham criado e que, após concluída a etapa dos primeiros protótipos, entrou numa campanha de financiamento Kickstarter com o objectivo de reunir os 40.000 dólares que necessitam para iniciar a produção em volume. Cada robot Linkbot tem três superfícies de montagem que permite ligar módulos ou acessórios, tal como rodas ou garras. Estas superfícies têm um sistema de encaixe rápido (snap-on) para criar sistemas simples de forma rápida, sendo também possível utilizar parafusos normais para interligar os nossos próprios módulos e periféricos adicionais. O conceito começa a ganhar vida assim que juntamos dois módulos ou mais. Podemos juntar múltiplos módulos para criar um sistema grande ou podemos utilizar a capacidade de comunicação em protocolo ZigBee, para que os módulos comuniquem entre si sem fios. Usando um módulo para controlar remotamente os restantes, torna-se possível ir dar um passeio acompanhado por um autêntico exército de robots. Aquilo que torna o Linkbot suficientemente simples para que até as crianças possam brincar é a aplicação PoseTeach. As crianças podem manualmente brincar com o robot, criando uma série de posições e movimentos que podem ser gravadas, registando-as passo a passo. Dessa forma, criam um comportamento robotizado de forma manual, em vez de o estarem a fazer num ecrã de computador. A tecnologia BumpConnect é outra das inovações, permitindo associar dois módulos entre si, sem fios, simplesmente fazendo com que um choque com outro. Para os utilizadores que se sentirem preparados para aprofundar as suas experiências de robótica, a empresa criou um software de código fonte aberto, denominado RoboLink. Por exemplo, os comportamentos “gravados” através de PoseTeach podem ser importados para o RoboLink, onde se convertem em código (Python ou C). Podemos copiar o código para um editor e fazer o que quisermos. Outras possibilidades do software consistem em controlar os parâmetros de velocidade dos motores, potência, cores dos LEDs integrados e programar os sensores integrados para monitorização. Para utilizadores avançados, existe a opção de usar o interface I2C para ligar dispositivos externos, tal como sensores, ou a placa Linkbot USB e outras placas de entradas e saídas. O microcontrolador Atmel AVR usado nesta plataforma é compatível Arduino e vem com um bootloader que torna possível reescrever o firmware existente. A Barobo mantém um website para toda a comunidade interessada no Linkbot, onde os utilizadores podem partilhar modelos de acessórios e código. Os acessórios desenhados pela Barabo estão também disponíveis em ficheiros para impressão 3D, para quem desejar. A campanha de financiamento Kickstarter está quase a atingir os objectivos a que os criadores se propuseram. É possível fazer contribuições desde 10 dólares, mas, quem contribuir com 139 dólares, recebe um módulo Linkbot e, por 299 dólares, recebemos dois. www.barobo.com Ganha uma placa PICDEM PIC18 Explorer Board da Microchip! A Elektor Portugal oferece aos seus leitores a possibilidade de continuarem a ganhar fantásticas soluções da Microchip. Este mês, os leitores da Elektor podem habilitar-se a ganhar uma placa PICDEM PIC18 Explorer Board (DM183032). Esta placa de desenvolvimento de baixo custo é a principal solução para avaliar aplicações com os microcontroladores PIC18 MCU da Microchip. A PICDEM PIC18 Explorer vem já com um MCU PIC18F8722 que é o topo de gama da família PIC18 a 5V, respondendo a todo o tipo de aplicações genéricas. A placa vem também com um módulo plug-in (PIM) com processador PIC18F87J11 que é a referência da gama PIC18 J-series de MCUs a 3V, respondendo às aplicações mais sensíveis ao custo. Com uma única placa de desenvolvimento, é assim possível suportar dezenas de famílias de microcontroladores PIC18 usando os vários processadores em módulos plug-in (PIMs). As placas secundárias PICtail permitem também associar múltiplos acessórios à placa PIC18 Explorer, criando assim um ambiente de desenvolvimento bastante completo e flexível. Esta placa é o complemento ideal para o MPLAB PICkit 3 ou para o depurador e programador ICD 3, oferecendo assim uma solução total para desenvolvimento com dispositivos PIC18 da Microchip. Para a possibilidade de ganhar esta solução PICDEM PIC18 Explorer Board, basta visitar o site http://www.microchip-comps.com/ elektor-pic18 e completar o formulário de preenchimento online. 8 | Julho - Agosto 2013 | www.elektor-magazine.pt notícias Intel confirma nova geração Thunderbolt 2 A Intel confirmou recentemente que a sua nova tecnologia Thunderbolt a 20Gbps, anunciada originalmente em Abril de 2013, irá surgir no mercado com a designação oficial de Thunderbolt 2. Estes novos interfaces retrocompatíveis com todos os sistemas Thunderbolt da primeira geração e usando o mesmo conector, irão surgir no mercado em simultâneo com a quarta geração de processadores Intel Core de 22 nanómetros, lançada oficialmente em Junho. Depois do lançamento da tecnologia por parte da Apple e Intel em 2011, a indústria foi literalmente “virada do avesso” pelo aparecimento deste novo interface que combina as características de um adaptador gráfico DisplayPort com as de um barramento PCI Express. Nesse ano assistimos ao lançamento dos primeiros Mac com Thunderbolt e ao primeiro ecrã com esse interface, também por parte da Apple. Em 2012, foi uma verdadeira “festa” com o lançamento de produtos de armazenamento profissionais por parte de mais 10 fabricantes e com o aparecimento dos primeiros PCs com Thunderbolt. Ainda em 2012, surgiram os primeiros dispositivos Thunderbolt já com suporte Windows. Este ano, apesar da Apple ter estado extremamente tranquila em termos de novos lançamentos, enquanto se espera a confirmação do lançamento do prometido novo Mac Pro e a renovação dos portáteis MacBook com ecrãs Retina, a verdade é que o Thunderbolt chegou finalmente ao mercado global, multiplicando-se as propostas de computadores de periféricos já baseados neste interface, sobre o qual a Intel tem vindo a fazer também uma forte aposta. Em 2012 tínhamos também assistido ao anúncio de que existiria uma interessante evolução no lado da cablagem, com a introdução de novos conectores contendo transceptores ópticos, permitindo assim ter ligações a percorrer distâncias de 100 metros. Esta proposta, feita pela empresa Gorilla Glass, permite passar a ter cabos ópticos Thunderbolt, assim como USB 3.0, para percorrer distâncias superiores às dos cabos de cobre. Não existem vantagens em termos de velocidade mas como a atenuação é inferior no cabo óptico, a Corning demonstrou rolos de cabos de 100 metros a funcionar, entretanto já disponíveis comercialmente. E estes cabos podem ser encadeados livremente até seis dispositivos, tal como qualquer ligação Thunderbolt. Por: João Martins A Intel confirma o lançamento da segunda geração Thunderbolt a 20Gbps, juntamente com as capacidades da sua quarta geração de processadores Intel Core atingindo velocidades de transferência de 1240 MB por segundo Nova geração Thunderbolt a 20Gbps Com a nova tecnologia Intel “Falcon Ridge” (nome de código original), não será apenas a Apple – que tem já milhões de Macs no mercado com ligações Thunderbolt – a beneficiar, mas também muitos fabricantes de PC/Windows como a Asus, Lenovo, HP, Acer e NEC e fabricantes de motherboards como a Asus, Intel, Gigabyte e MSI, todos com suporte Thunderbolt integrado. Ao todo, a tecnologia da Intel foi licenciada por mais de 200 fabricantes em todo o mundo, existem já mais de 75 produtos certificados, incluindo cabos de preço mais acessível; e a Intel revelou que a velocidade de lançamento de novos produtos só não foi maior porque a indústria estava à espera de uma nova implementação em chip que resultasse mais económica. Foi isso mesmo que a Intel confirmou agora, explicando que a nova geração Thunderbolt 2, irá ser capaz de ampliar a cadência de dados para 20Gbps. Enquanto a actual geração utiliza uma arquitectura de 10Gbps bidireccional, em duplo canal de transmissão, a nova implementação do chip “Falcon Ridge” permite quatro canais, ou seja 20 Gbps bidireccional, mantendo a possibilidade de alimentar dispositivos até 10 watts e a compatibilidade total com a actual geração de dispositivos Thunderbolt – embora todos estes equipamentos existentes mantenham a velocidade de 10Gbps inalterada. Com esta nova geração, a Intel irá lançar já brevemente para o mercado (quarto trimestre de 2013) os novos chips controladores “Redwood Ridge” em versões de 4 canais e 2 portos e 2 canais e 1 porto, juntamente com melhoramentos ao chip “Cactus Ridge” já com suporte DisplayPort 1.2 e custos de implementação significativamente reduzidos, os quais irão acompanhar o lançamento da 4ª geração de processadores Intel Core, prevista para breve. Futuramente, a Intel lançará o chip “Port Ridge” que tem um encapsulamento com uma dimensão de aproximadamente 25% da área do Cactus Ridge, para implementações com um único porto. Uma evolução que permitirá que todos os computadores Mac e PC a partir de 2014 possam suportar transferências e processamento de vídeo 4K em tempo real sem qualquer dificuldade. Para a Apple, esta evolução do Thunderbolt para 20Gbps irá significar provavelmente a capacidade de passarmos a ter ecrãs “Retina” a 4K em todos os iMac e MacBook Pro já em 2014. Aliás, a Panasonic já tem um novo tablet de 20 polegadas com ecrã 4K, que é na verdade um verdadeiro PC com Windows 8 contido num ecrã extremamente fino. É importante também deixar claro que a tecnologia Thunderbolt usada nos computadores não irá afectar nem ser afectada pela utilização em paralelo de conectores USB 3.0 ou mesmo HDMI, tal como a Apple tem demonstrado. Serão usados para coisas diferentes. A questão, no âmbito das infra-estruturas de rede, é que os sistemas baseados em Thunderbolt continuarão tipicamente a potenciar “ilhas”, enquanto as redes Ethernet – cuja tecnologia já se prepara para passar dos 10 Gbps para 40 e mesmo 100 Gbps daqui a alguns anos – serão cada vez mais utilizadas para potenciar todos os processos de trabalho em sistemas empresariais. www.intel.com www.elektor-magazine.pt | Julho - Agosto 2013 | 9 A Elektor está preparada para o futuro e continua a preparar uma série de novidades para o seu rejuvenescimento. Os nossos sólidos alicerces vão permitir manter o nível de qualidade e a reputação que a equipa alcançou ao longo dos anos por tudo aquilo que tem produzido. Os nossos leitores, visitantes do site e clientes podem continuar a contar com o serviço, a confiança e a experiência. A Elektor mantém a sua posição como um dos portais líderes, plataformas e fóruns para técnicos de electrónica de todo o mundo. Os meios para chegar de formas ainda mais inovadoras aos nossos leitores, assim como a acessibilidade dos nossos serviços, estão assim a ser constantemente renovados para atender às suas actuais e futuras necessidades. Pela Equipa Editorial da Elektor Actualmente a Elektor é muito mais do que apenas as páginas impressas da revista com que tudo começou. Ainda que tenha sido pelo correr da tinta e pela impressão que começámos, muitos dos seus leitores consideram-se, acima de tudo, como membros da comunidade Elektor. Alguns estão connosco há mais de 25 anos, outros apenas há alguns meses. Muitos dos nossos leitores compravam a revista Elektor ocasionalmente nas papelarias ou pontos de venda, quando um projecto ou artigo anunciado correspondia a um determinado interesse em particular. Outros podem recordar-se da revista Elektor como um veículo que os incentivou a uma carreira na electrónica há muitos anos atrás. Sentimo-nos igualmente felizes quando orientamos leitores que ainda são estudantes, ou os informamos e apoiamos no desenvolvimento da sua capacidade profissional. Ao longo do tempo os serviços Elektor tiveram uma grande expansão, reflectindo os pedidos mais populares ou simplesmente impulsionados pela evolução da tecnologia. Temos a certeza de que já visitou o nosso site, pelo menos uma vez, ou comprou uma placa de circuito impresso ou um Kit na nossa loja online. Não ficaríamos surpreendidos de ver uma das nossas edições de Circuitos nas suas prateleiras, ou de encontrar o seu nome na lista de participantes de um dos nossos webinars ou competições de projectos electrónicos internacionais. Podemos até ter publicado um dos seus projectos para que toda a gente pudesse aprender e desfrutar desse trabalho. Entretanto, a indústria electrónica já descobriu o que a Elektor tem estado a cozinhar. Os fabricantes têm procurado activamente estabelecer contacto com os leitores através de nós para realizar testes de produto, oferecer amostras, organizar concursos e partilhar informação. Em alguns casos até para divulgar oportunidades de emprego. Cada vez mais os entusiastas da electrónica conhecem a Elektor mais através de outros media do que através da revista que nos deu nome e reconhecimento. Pode não se aperceber disso, mas ao acompanhar a Elektor faz parte de uma rede de quase um milhão de pessoas, espalhadas por 80 países que têm um gosto especial pela electrónica. No entanto, os nossos sites rece- 10 | Julho - Agosto 2013 | www.elektor-magazine.pt bem visitantes de todos os países porque o interesse pela electrónica é universal e cresce cada vez mais. Resumindo, a Elektor evoluiu e transformou-se numa comunidade de pessoas unidas pelo interesse na electrónica e nas tecnologias de informação. De facto, muito para além dos limites da edição da revista em papel. Consequentemente, não podemos continuar a utilizar o termo “leitor” ou “assinante” e em vez disso passámos a utilizar a expressão “membro”... do clube ELEKTOR. Para assinalar que os tempos são claramente outros, queremos que os nossos membros tenham acesso a todos os conteúdos que a Elektor hoje produz. E porque a Internet e as novas plataformas nos oferecem oportunidades fantásticas para optimizarmos a oferta dos nossos serviços, apresentamos a ELEKTOR.COMMUNITY: a comunidade de membros da Elektor. elektor community Em www.elektor.com.pt e nos diferentes domínios para cada língua, os membros portugueses da Elektor.COMMUNITY encontram todas as ligações aos diferentes serviços disponíveis. Através deste website é possível aceder à loja online Elektor.STORE, ao arquivo da Elektor e a informação actualizada diariamente sobre o sector. A estrutura permite seleccionar todas as opções existentes tradicionalmente na loja, como pesquisar artigos antigos, componentes, encomendar livros ou kits, adquirir créditos, entre outras opções. Tal como antes, poderá aceder a todas as secções de forma directa. elektor labs Está disponível um novo website onde pode deixar propostas para projectos, apresentar o seu próprio projecto aos seus pares, seguir os progressos (muito) além da revista impressa elektor post O nosso novo serviço de e-mail chama-se agora Elektor.POST e continua a distribuir as newsletters numa base regular, mas também dá acesso a vídeos e oferece convites para webinars e concursos. Além disso, o Elektor. POST acrescenta um projecto exclusivo a cada duas semanas que irá chegar automaticamente por e-mail. O que perfaz 25 projectos extra por ano, entregues via e-mail. Para quem? do seu ou de qualquer projecto, assim como apresentar projectos ainda em desenvolvimento, ou produtos testados e experimentados. Designa-se por Elektor.LABS. O Elektor.LABS é o coração pulsante da Elektor, onde os projectos são propostos e são desenvolvidos por toda a comunidade Elektor - onde o conhecimento é adquirido, apreciado e partilhado. Basta ir a www.elektor-projects.com elektor magazine A partir de agora, a revista – Elektor.MAGAZINE – passou a ser publicada 8 vezes por ano em edição regular. A Elektor.MAGAZINE tem um novo desenho, mais páginas e novas secções mas sobretudo, continua a oferecer os melhores projectos e artigos de divulgação que existem no mercado. Para além da edição extra de Projectos que irá cobrir os meses de Verão, temos agora outra edição especial, no início de cada ano. No total receberá 10 edições por ano. Além disso, a revista fica disponível para ser lida e consultada online num site dedicado aos assinantes – modelo GREEN Membership que será o único disponível para a edição portuguesa – onde pode ser feito também o download na íntegra para ser visualizada em qualquer plataforma, incluindo tablets. E já que estamos a falar de tablets, a revista Elektor Portugal poderá brevemente ser também encontrada na App Elektor para iOS e Android (login independente da assinatura). Para conhecer a Elektor. MAGAZINE visite a secção PT do site: www.elektormagazine.com A assinatura tradicional será substituída pelo cartão GREEN Membership Elektor que lhe dará acesso a: • Oito edições regulares da revista por ano, sempre com novos projectos e circuitos, agora com novas secções • Duas edições por ano da versão “especial” da Elektor • Um mínimo de 10% de desconto em todos os produtos e serviços da Elektor.STORE • Disponibilidade de placas de circuito impresso para todos os projectos Elektor; • Acesso directo aos Elektor.LABS • Elektor.POST enviado para o seu e-mail de contacto • Ofertas regulares exclusivas para os membros; A revista Elektor.MAGAZINE passa assim a estar disponível exclusivamente em formato digital, o que nos permite investir em mais e melhores conteúdos. Estamos certos que desta forma iremos poder continuar a oferecer a Melhor Revista Prática de Electrónica do Mundo. E já agora, associe-se a nós no facebook: www.facebook.com/Elektorportugal Onde poderá ficar a par de todas as novidades que tencionamos promover e terá acesso a promoções irresistíveis. A página da Elektor Portugal no facebook será, a partir de agora, a melhor forma de nos enviar uma mensagem, fazer uma consulta ou de interagir com todos os membros da comunidade Elektor na mesma língua. www.elektor-magazine.pt | Julho - Agosto 2013 | 11 • Hardware & Software Controlador inteligente para ventoinha de computador Controla no máximo 6 ventoinhas PWM Ivo Pullens (Holanda) Num PC moderno pode encontrar várias ventoinhas para retirar o calor gerado. Estas não podem ser sempre controladas individualmente pela motherboard do PC. Com a ajuda do circuito que aqui descrevemos, pode controlar activamente até seis ventoinhas, podendo a temperatura ser medida em vários locais do interior do PC através de alguns sensores. É utilizado um software no PC para configurar e monitorizar as ventoinhas, que comunica com o módulo controlador através de uma ligação USB. Há alguns anos atrás, a Intel criou uma especificação para ventoinhas de PC controladas via PWM através de 4 fios [1]. Estas ventoinhas são muito mais dispendiosas do que as bem conhecidas versões de 2 e 3 pinos, embora tenham como vantagem a possibilidade de controlo da velocidade de rotação através de um sinal PWM. Os conectores de 3 e 4 pinos também incluem um sinal de tacómetro que pode ser utilizado para enviar para a motherboard o valor instantâneo da velocidade de rotação da ventoinha. As motherboards dos PCs possuem 12 | Julho - Agosto 2013 | www.elektor-magazine.pt habitualmente apenas um conector que contém um sinal PWM, embora os PCs contenham várias ventoinhas. As outras ventoinhas têm de funcionar sempre a uma velocidade de rotação constante. E mesmo que se possam ligar várias ventoinhas PWM, não é habitualmente possível controlá-las individualmente a partir da motherboard. O circuito que aqui descrevemos consegue controlar a velocidade de rotação de até seis ventoinhas num PC, de forma segura e flexível, para que estas funcionem à velocidade de rotação mínima Controlador inteligente para ventoinha de computador necessária, mantendo o nível de ruído o mais baixo possível. sístor de saída estiver desligado. A malha R3/C2 é um filtro passa-baixo que suaviza (integra) o sinal proveniente da motherboard, para que a entrada analógica do microcontrolador possa ser utilizada para ler o sinal de controlo PWM proveniente da motherboard. Para os sensores analógicos de temperatura pode utilizar dois sensores NTC de 10 kΩ, que são ligados aos conectores K11 e K12. Em conjunto com as NTCs, as resistências R8 e R9 formam dois divisores de tensão que estão ligados às entradas ADC2 e ADC3 do microcontrolador. Se desejar, pode ligar um máximo de oito sensores de temperatura I2C a K10. R6 e R7 são as necessárias resistências de pull-up para o barramento I2C. O firmware foi testado com sensores MCP980x Circuito Como pode ver na Figura 1 o circuito é muito simples e consiste apenas num microcontrolador ATmega168 e alguns conectores para ligar as ventoinhas, os sensores, a ligação USB e a fonte de alimentação. As ventoinhas de 4 fios são ligadas directamente ao microcontrolador, porque podem receber directamente os sinais PWM gerados, sem a necessidade de mais processamento. As resistências de pull-up internas do microcontrolador asseguram que os sinais de tacómetro das ventoinhas (em colector aberto) sejam mantidos no nível alto da fonte de alimentação quando o tran- SENSE_IN K7 R3 4 FAN IN 3 C2 100k 2 +5V 2 I C TEMP SENSOR K10 C5 10k 4k7 4k7 SDA 3 SCL 2 1 +5V R8 DUTY_AN_IN 23 SENSE_IN 24 TEMP_AN0 25 TEMP_AN1 26 SDA 27 SCL 28 RESET 1 100n 21 AREF 7 20 VCC AVCC PC0(ADC0/PCINT8) PD0(RXD/PCINT16) PC1(ADC1/PCINT9) PD1(TXD/PCINT17) PC2(ADC2/PCINT10) PD2(INT0/PCINT18) PC3(ADC3/PCINT11) PD3(INT1/OC2B/PCINT19) PC4(ADC4/PCINT12) PD4(T0/XCK/PCINT20) PC5(ADC5/PCINT13) PD5(T1/OC0B/PCINT21) PC6(RESET/PCINT14) PD6(AIN0/OC0A/PCINT22) PD7(AIN1/PCINT23) IC1 ATMEGA168PA-PU R9 10k NTC CONNECTORS 10k 2 10k PB1(OC1A/PCINT1) TEMP_AN0 PB2(SS/OC1B/PCINT2) 1 PB3(MOSI/OC2A/PCINT3) 2 TEMP_AN1 GND 1 8 +5V K13 1 TACHO4/MISO 4 3 TACHO5/SCK 6 5 RESET K8 4 PWM5/MOSI +12V 3 2 1 +5VPWR J1 +5V 5V SELECT 16MHz +5V D– D+ GND 2 C1 10u +5VPWR USB_D+ 5 PWM0 6 USB_D- 11 PWM1 12 PWM2 13 TACHO2 14 TACHO3 15 PWM3 16 PWM4 17 PWM5/MOSI TACHO1 22p 1k K3 3 TACHO2 2 1 +12V R13 PWM3 1k 4 K4 3 1 TACHO4/MISO D1 4 K5 3 68R USB_D+ 1 +12V USB_D- PWM5/MOSI R15 68R TACHO5/SCK Mini-USB 1k 2 R1 3 R14 PWM4 1k5 R2 3V6 4 2 R5 D2 3 R12 PWM2 TACHO3 2 4 K2 1 +12V TACHO5/SCK +5V 1 4 2 +12V K9 1 4 1k 22 +5VUSB +5VUSB TACHO1 C4 22p 3 PSU CONNECTOR 10 X1 C3 2 ISP 9 TACHO0 3 19 PB4(SCK/PCINT5) PB7 XTAL2 AGND PB6 XTAL1 2 18 TACHO4/MISO PB4(MISO/PCINT4) K12 3 R11 PWM1 PB0(ICP1/CLKO/PCINT0) K11 K1 1 +12V C6 100n R7 4 4 2 R4 LOW PASS, 16Hz R6 1k TACHO0 100n 1 R10 PWM0 +5V DUTY_AN_IN Figura 2. O circuito consiste principalmente num microcontrolador ATmega168 e um grande número de conectores. 1k 4 K6 3 2 3V6 100160 - 11 +12V 1 www.elektor-magazine.pt | Julho - Agosto 2013 | 13 • Hardware & Software Lista de componentes Resistências: R1;R2= 68 Ω R3= 100 kΩ R4;R8;R9= 10 kΩ R5= 1,5 kΩ R6;R7= 4,7 kΩ R10a R15= 1 kΩ Diversos: X1= Cristal de quartzo 16 MHz J1= Barra de terminais de 3 vias com jumper K1a K6;K7= Conector de 4 pinos para ventoinha K8= Conector de alimentação de 4 pinos para PC, PCI K9= Conector mini USB-B, PCI K10= Barra de terminais de 4 vias K11;K12= Barra de terminais de 2 vias K13= Barra de terminais de 6 vias (2x3) Condensadores: C1= 10 µF/16 V, radial, passo 2,5 mm C2;C5;C6= 100 nF, passo 5 mm C3;C4= 22 pF PCI (Refª 100160-1), disponível na Guimocircuito (www.guimocircuito.com). Construção K1 K2 1 K12 R8 R10 3 J1 2 1 1 C1 C2 R3 IC1 C6 6 K13 Figura 2. Com esta placa de circuito impresso, a construção deste circuito torna-se muito fácil. K7 K10 D1 4 K9 R9 R7 R6 R4 C5 R1 X1 R2 R5 K8 R11 R12 R13 C4 C3 R14 D2 R15 K11 K3 K4 K5 K6 Semicondutores: D1;D2= Díodo Zener 3,6 V/400 mW IC1= ATmega168PA-PU, programado (Ref.ª 100160-41) da Microchip, mas também deve funcionar com sensores semelhantes como o TCN75, directamente ou com pequenas modificações. Quando o firmware arranca, este detecta automaticamente quantos sensores estão ligados ao barramento I2C. O jumper J1 é utilizado para seleccionar se a alimentação do microcontrolador vem do barramento USB ou do PC. Durante o desenvolvimento do firmware, quando não estão ligadas nenhumas ventoinhas, pode ser conveniente alimentar o circuito através do barramento USB, mas normalmente é utilizada a fonte de alimentação do PC (jumper nos pinos 2 e 3). Como o circuito não contém componentes SMD, é relativamente fácil construí-lo, especialmente se utilizar a placa de circuito impresso desenhada para este projecto (Figura 2). O conector grande (K8) é a versão macho do bem conhecido conector para o disco rígido do PC, produzido pela Molex. Se desejar, o cabo de alimentação também pode ser soldado directamente à placa. Os conectores oficiais para ventoinhas de 4 pinos (K1 a K7) podem ser difíceis de encontrar. No entanto, a versão de 3 pinos está muito mais disponível. O formato e as ligações de ambos os conectores são idênticas, pelo que podem ser ligadas ventoinhas de 3 pinos aos conectores de 4 pinos. Da mesma forma, se montar um conector para ventoinha de 3 pinos e, no local reservado para o quarto pino, montar um pino isolado, vai obter um conector de quatro pinos equivalente (Figura 3). Isto facilita a ligação de ventoinhas PWM sem o risco de as ligar incorrectamente. Firmware O firmware para o microcontrolador foi escrito em linguagem C e utiliza uma pilha USB baseada em software (V-Usb [2]) para comunicar com o PC. O firmware foi inicialmente desenvolvido para um microcontrolador ATmega88, mas depressa se verificou que a memória deste era demasiado pequena para acomodar todas as funções que eram necessárias. Por esta razão foi utilizado o ATmega168, que contém o dobro da memória flash. No entanto, ainda é possível compilar o firmware para o ATmega88, mas com funcionalidade reduzida (ver o ficheiro config.h no pacote disponível para download no site da Elektor [3]). Como mencionado na especificação da Intel para ventoinhas de 4 fios, estas devem ser controladas por um sinal PWM com uma frequência de cerca de 14 | Julho - Agosto 2013 | www.elektor-magazine.pt Controlador inteligente para ventoinha de computador 25 kHz, sendo que a velocidade de rotação deve seguir linearmente o ciclo de trabalho se este variar entre até 20% e 100% (para ciclos de trabalho inferiores a velocidade de rotação é indefinida). O ATmega168 contém seis saídas PWM, mas só duas destas (que podem ser controladas pelo temporizador de 16 bits Timer1) podem ser configuradas para uma frequência exacta de 25 kHz. As outras saídas PWM são controladas por temporizadores de 8 bits e podem ser configuradas para 7,8 kHz ou 62,5 kHz. É utilizado um pequeno truque para fazê-las funcionar à frequência necessária. São configuradas para funcionar à frequência mais baixa (7,8 kHz) mas depois é utilizada a interrupção de overflow do temporizador Timer1 para reiniciar os temporizadores de 8 bits, o que faz com que todas as saídas PWM funcionem a 25 kHz. Os impulsos provenientes dos tacómetros, que são utilizados para medir a velocidade de rotação das ventoinhas, são contados utilizando a interrupção de mudança de nível dos pinos de entrada. Na prática, as ventoinhas raramente funcionam mais rápido do que 6000 rotações por minuto, quando os tacómetros fornecem dois impulsos por rotação. Quando as ventoinhas rodam à velocidade máxima, o firmware tem de lidar com 1200 interrupções de mudança de nível por segundo. Parece muito, mas o ciclo principal é bastante simples, o que deixa bastante tempo para calcular os ciclos de trabalho. Este ciclo principal verifica, a cada dois segundos, se as ventoinhas estão paradas, por exemplo, devido a uma falha ou obstrução. Dependendo das configurações, uma ventoinha parada pode provocar a paragem do sinal tacómetro, assinalando assim à motherboard que a ventoinha parou. Qualquer função na motherboard que assinale um alarme quando existe uma falha na ventoinha, vai continuar a funcionar. Em seguida, os valores dos sensores de corrente são lidos, todos os cálculos são efectuados, e os valores dos ciclos de trabalho são escritos nos registos de comparação de saída dos temporizadores. Um intervalo de um segundo para o cálculo do novo valor para o ciclo de trabalho e parece muito no universo dos microcontroladores, mas é bastante adequado para controlar um processo de variação lenta como é a variação de temperatura no interior de um PC. O sinal tacómetro simulado para a motherboard tem de ser capaz de fornecer um máximo de 1200 impulsos por segundo, que não necessitam de ser assim tão exactos. Por esta razão os impulsos são gerados no ciclo principal, onde o estado do pino Especificações •Controlo individual autónomo de até seis ventoinhas PWM de 4 fios. •Medição da velocidade de rotação destas ventoinhas e detecção de ventoinhas paradas. •Suporta um máximo de 8 sensores para controlar a velocidade de rotação das ventoinhas: - 2 NTCs. - Sensores de temperatura I2C, compatíveis com MCP980x/TCN75. - A velocidade de rotação das ventoinhas também pode ser utilizada como sinal proveniente de um sensor. - Sensores externos, cujo valor pode ser configurado via USB. - O ciclo de trabalho do sinal externo para controlo das ventoinhas é igual ao gerado por uma motherboard. •A velocidade de rotação pode ser controlada de três formas: - Constante. - Controlo linear onde a velocidade de rotação depende do valor proveniente de um sensor. - Controlo PI que utiliza um sinal proveniente de um sensor e um valor desejado, para calcular a velocidade de rotação. •Configuração e monitorização através de uma ligação USB. •Biblioteca de software para utilizar em aplicações no PC para comunicar com o circuito, e uma aplicação para configurar e controlar o circuito para Windows e Linux. tacómetro é alternado entre o nível baixo e um estado de alta impedância, para simular a saída em colector aberto necessária. Com a ajuda do software no PC, a configuração actual do controlador pode ser armazenada na EEPROM, para que possa ser automaticamente carregada quando o circuito arrancar novamente. Uma grande parte do firmware consiste na pilha USB e nas rotinas para trocar mensagens com o PC. A comunicação em tempo-real com o PC é assegurada pela interrupção externa gerada pelo pino INT0, que tem a máxima prioridade. Software O software para o PC foi escrito em linguagem C++ e foi desenvolvido utilizando o Visual C++ 2010 Express gratuito da Microsoft. O interface gráfico utiliza wxWidgets, o que significa que pode ser utilizado em Windows assim como em Linux (e também com o OSX, mas isto não foi testado pelo autor). Foi utilizada a biblioteca LibUsb para comunicar com o circuito através de uma ligação USB. Foi utilizada uma biblioteca separada para a criação e troca de mensagens. Isto esconde os detalhes da comunicação entre o PC e o circuito, e promove a reutilização do código. Até agora já consegue configurar directamente a velocidade de rotação das ventoinhas ou ler os valores provenientes dos sensores. Figura 3. Adicionando um pino extra pode transformar um conector de ventoinha de 3 pinos num conector de 4 pinos para uma ventoinha controlada por PWM. www.elektor-magazine.pt | Julho - Agosto 2013 | 15 • Hardware & Software O interface gráfico consiste nos seguintes separadores: . Admin Aqui pode gerir a EEPROM: por exemplo, ler e escrever a configuração. Lembre-se de armazenar uma configuração adequada na EEPROM logo de início, caso contrário o circuito vai ter a configuração em branco aquando do arranque! Figura 4. Imagem do programa para PC usado para monitorizar e controlar as ventoinhas. . Sensor0 a Sensor7 Os separadores referentes aos sensores permitem-lhe atribuir a uma entrada sensora os sensores já ligados, e verificar os respectivos valores ao longo do tempo. . Fan0 a Fan5 Aqui pode configurar individualmente as ventoinhas. . Fan out Este separador é utilizado para configurar o sinal tacómetro simulado enviado para a motherboard. Antes de utilizar um sensor como controlador no circuito é necessário atribuí-lo a uma entrada sensora. A Figura 4 apresenta um exemplo de configuração para a ventoinha 0, que está ligada ao conector K1. Em cima à esquerda podem ser seleccionados o tipo de ventoinha (para que o software possa saber se podem ser utilizados o sinais tacómetro e/ou PWM) e o tipo de controlo. Neste exemplo o sensor I2C com o endereço 0 (Temp_I2C_Addr0) mede a temperatura do ar exterior que é aspirado para dentro do PC, e o sensor com o endeAcerca do autor Ivo Pullens é um freelancer que se especializou no desenvolvimento de software para sistemas embebidos. Trabalhou recentemente num grande projecto industrial para a produção de semicondutores e para o barramento de comunicação industrial. No seu pouco tempo livre desenvolve soluções, frequentemente baseadas em microcontroladores, para os problemas do dia-a-dia. Mais informações no seu site pessoal (em holandês): www.emmission.nl 16 | Julho - Agosto 2013 | www.elektor-magazine.pt reço 7 (Temp_I2C_Addr7) mede a temperatura no interior do PC. Como o próprio PC gera calor, não seria realista tentar obter uma temperatura dentro do PC igual à temperatura exterior. Assim, o controlador vai ser configurado para que a temperatura interior seja, no máximo, 2 ºC mais alta do que a temperatura exterior (configuração +2 à direita do valor desejado (setpoint)). O controlo PI (Proporcional+Integral) aqui seleccionado calcula continuamente a diferença entre a temperatura desejada (temperatura exterior + 2 ºC) e a temperatura medida no interior do PC. O controlador vai incrementar proporcionalmente a velocidade de rotação da ventoinha (utilizando o factor Kp) e acumular os erros de integração ao longo do tempo (factor Ki). A partir da Figura 4 pode ver que a ventoinha arranca lentamente com um ciclo de trabalho de 0%. Quando a temperatura interior (curva azul escura) ultrapassa a temperatura desejada (curva azul clara), o controlador assegura que a velocidade de rotação da ventoinha aumenta (curva verde, em rotações por segundo). Quando a temperatura desejada for novamente atingida, ao fim de algum tempo, a velocidade de rotação diminui gradualmente. Outra possível aplicação para este circuito é sincronizar as velocidades das várias ventoinhas, para minimizar as vibrações na caixa do PC. Para isto utilize um controlador PI, com a velocidade de rotação de uma das ventoinhas como sensor para todas as outras, e valores negativos para os factores Kp e Ki. No separador mais à direita pode configurar a fonte do sinal tacómetro simulado a enviar à motherboard: proveniente da ventoinha com a velocidade de rotação mais baixa ou copiado de uma das ventoinhas ligadas. Pode ser especificado um valor mínimo para a velocidade de rotação de cada ventoinha. Se a rotação descer abaixo deste limite, o software considera que essa ventoinha está parada e o sinal tacómetro enviado à motherboard é consequentemente interrompido. Os ficheiros para download no site da Elektor [3] contém o firmware para o microcontrolador e o software para o PC. (100160) Artigo original: Intelligent PC Fan Controller – October 2012 Internet [1] www.formfactors.org/developer/specs/ 4_Wire_PWM_Spec.pdf [2] www.obdev.at/products/vusb/index.html [3] www.elektor.com.pt/100160 Placa de controlo USB Placa de controlo USB Adaptador bidireccional USB-LPT Existe ainda, actualmente, muito equipamento electrónico projectado para funcionar com o tradicional porto de impressora (LPT) de um PC, mas a realidade é que este porto está quase virtualmente extinto nos PCs modernos. Com a ajuda de um ATmega88 e software adequado, é possível implementar uma ligação relativamente rápida entre um PC e uma porta LPT através de um porto USB. No passado, o porto LPT (ou Centronics) era usado frequentemente para controlar uma grande variedade de motores passo-a-passo, lâmpadas e relés, detectar a posição de interruptores de limite, e ler outros tipos de sinais. Disponibilizava um interface rápido e versátil. Os PCs modernos já não vêm equipados com este porto, foi sendo substituído pelo porto USB. Para tarefas de controlo ou medida, pode usar dispositivos como os conhecidos LabJack ou a placa Velleman K8055D. Estes são dispositivos fáceis de usar e controlar a partir da sua própria aplicação de software. Porém, ambos têm uma grande desvantagem: a velocidade. Estes dispositivos funcionam com o protocolo USB 1.1, o que significa que cada comando ou medida leva pelo menos 20 ms. Isto pode não parecer muito – até que precise de implementar algo que precisa de uma baixa latência, como controlar um motor passo-a-passo. Neste caso, precisamos de três comandos por passo, pelo que cada passo levaria cerca de 60 ms. Isto limita a velocidade máxima para 16 passos por segundo, o que é muito bastante lento. Opções Existe uma outra opção: pode usar um adaptador USB/série e ligá-lo a um microcontrolador. O microcontrolador recebe então os dados do PC a uma elevada velocidade (usando o protocolo USB 2.0) e utiliza esses dados para executar tarefas de controlo e medida. Estão disponíveis comercialmente uma série de diferentes dispositivos de conversão USB/série. Os melhores são fabricados pela FTDI, mas existem dispositivos igualmente satisfatórios da Silicon Labs (CP210x) e Prolific (PL2303). Este último dispositivo é frequentemente usado em muitos adaptadores USB/série comerciais. É provavelmente é o conversor mais usado. Se estiver à procura das diferenças entre estes conversores, vai descobrir algumas surpresas. Quando se usa um programa de teste para transmitir um grande número de bytes individuais, o conversor da FTDI consegue processar apenas 340 bytes por segundo, enquanto que o da Prolific e da Silicon Labs conseguem atingir os 1000 bytes por segundo. Isto faz uma grande diferença quando pretende controlar um motor passo-a-passo em tempo-real. Infelizmente, os conversores da Prolific e da Silicon Labs são muito difíceis de obter em pequenas quantidades. No entanto, no eBay estão disponíveis cabos conversores USB/série completos baseados no PL2303 ou no CP210x por preços na ordem dos 6 a 12 euros. Estes têm saídas compatíveis com níveis TTL, pelo que podem ser ligados directamente a um microcontrolador. Michiel ter Burg (Holanda) Hardware Para este projecto escolhemos um adaptador USB/série com um circuito integrado da Proli- www.elektor-magazine.pt | Julho - Agosto 2013 | 17 Software +5V R1 7 10k 1 1 JP1 28 5V RX GND AVCC PC6(RESET/PCINT14) PC0(ADC0/PCINT8) PC1(ADC1/PCINT9) PC5(ADC5/SCL/PCINT13) PC2(ADC2/PCINT10) PC3(ADC3/PCINT11) K1 TX 20 VCC PC4(ADC4/SDA/PCINT12) 4 3 2 2 3 1 IC1 PD0(RXD/PCINT16) PD2(INT0/PCINT18) PD1(TXD/PCINT17) PD3(INT1/OC2B/PCINT19) PD4(T0/XCK/PCINT20) PD5(T1/OC0B/PCINT21) PD6(AIN0/OC0A/PCINT22) PD7(AIN1/PCINT23) ATMEGA48/88/168-PU PB0(ICP1/CLKO/PCINT0) PB1(OC1A/PCINT1) 21 PB2(SS/OC1B/PCINT2) PB3(MOSI/OC2A/PCINT3) AREF PB4(MISO/PCINT4) PB5(SCK/PCINT5) GND PB6 XTAL1 8 9 X1 C4 C5 100n 10u 16V 23 24 25 26 27 4 5 6 11 12 K2 13 1 14 2 15 3 16 4 17 5 18 6 19 7 8 PB7 XTAL2 AGND 9 10 22 10 11 12 C3 4u7 16V C2 18.432MHz C1 22p 13 14 15 16 17 18 19 20 21 22 23 24 25 22p 120345 - 11 O software para o ATmega88(P) foi escrito em Bascom AVR (Prog 1). Quando o programa arranca, verifica se o jumper JP1 está presente. Se o jumper estiver presente, o programa entra no modo SMC. Quando um carácter é recebido no porto série, é colocado directamente na saída de 8 bits do porto LPT e o pino Enable/Strobe é levado por breves instantes ao nível lógico baixo. Se estiver ligado um interruptor de limite à placa SMCxx e o seu estado mudar, o resultado é enviado de volta para o PC. Se o jumper JP1 não estiver presente, o programa vai para o modo LPT. Neste caso, fica à espera de dados na entrada. A resposta varia dependendo do segundo carácter do conjunto de dados recebidos: se este for 1 ou 3, o valor do próximo carácter é colocado no registo 1 (saída de dados barramento de 8 bits) ou registo (saída de dados barramento de 4 bits) do porto LPT. Se o segundo carácter tiver o valor 2, o registo 2 (entrada de dados barramento de 5 bits) é lido e os dados resultantes são enviados de volta para o PC através do interface série e do conversor USB/série. Os dados podem então ser processados no PC. Controlo do PC fic (PL2303) e ligámo-lo a um ATmega88. Estes dois dispositivos comunicam entre si a uma taxa de 115.200 baud. Isto permite enviar algo do PC a uma velocidade de apenas 1 ms. O autor optou também por uma placa com motor passo-a-passo da Conrad (SMC1500/800) para controlar um motor passo-a-passo. Para além do barramento de dados de 8 bits, esta placa utiliza o sinal Enable para colocar os dados na saída da placa. Para fazer com que a nossa placa de controlo USB seja o mais geral possível, decidimos adicionar um jumper para permitir seleccionar entre o modo de funcionamento fast SMC ou o modo LPT normal. O hardware é muito simples: o conversor USB/ série é ligado aos pinos Rx e Tx do ATmega88 (ou ATmega88P). A frequência de relógio é fixada em 18,432 MHz através de um cristal de quartzo, que representa uma boa escolha para uma comunicação série a uma velocidade de 115.200 baud. O jumper para selecção dos dois modos é ligado ao pino de E/S do microcontrolador PC5, e os outros pinos de E/S são direccionados para o conector LPT. Isto dá-nos um porto LPT completo, pelo que podemos implementar todas as funções deste porto. 18 | Julho - Agosto 2013 | www.elektor-magazine.pt O PC vê a placa de controlo USB como uma parta COM normal, mas normalmente com um número mais elevado. O Visual Basic 6.0 apenas consegue processar portas COM com números entre 1 e 9, pelo que tem que usar o Gestor de Dispositivos para alterar o número da porta COM para essa gama. No Visual Basic, coloque um objecto COM no seu Form. Pode então usá-lo depois para enviar e receber dados série. Primeiro tem que configurar a porta COM com as configurações correctas: MSComm1.CommPort = COM port number (see Device Manager) MSComm1.Settings = “115200,N,8,1” MSComm1.RThreshold = 1 MSComm1.PortOpen = True No modo SMC apenas tem que enviar um byte de dados; a placa de controlo USB gera o sinal Enable/Strobe automaticamente: transmit = Chr(DataByte) MSComm1.Output = transmit Placa de controlo USB No modo LPT pode aceder a vários registos que correspondem aos registos do porto LPT. Podem ser lidos ou escritos individualmente: transmit = “#1” & Data & Chr(13) ‘ 8-bit data bus OUT MSComm1.Output = transmit temp = “?2” & Chr(13) 5-bit data bus IN MSComm1.Output = temp ‘ Observações finais transmit = “#3” & Data & Chr(13) ‘ 4-bit data bus OUT MSComm1.Output = transmit A placa de controlo USB envia uma resposta ao segundo comando acima. Pode ser controlado pelo seguinte pedaço de código em Visual Basic: Private Sub MSComm1_OnComm() incoming data Dim indata As String Dim Info As byte uma quantidade de potência limitada, pelo que deve restringir o número de circuitos integrados, ou LEDs, a controlar. Por outras palavras, não pode controlar um motor ou outro dispositivo de potência desta forma. A versão gratuita do Bascom AVR, que pode usar para compilar o software e programar o ATmega88, pode ser descarregada a partir da Internet [1]. A placa de controlo USB foi desenvolvida por amadores, para permitir controlar um pequeno torno mecânico em tempo-real utilizando o Visual Basic e a placa SMC1500/800. Os resultados podem ser visualizados num vídeo disponível no YouTube [2]. O código fonte para o firmware do ATmega88, um programa para testar a taxa de transmissão de dados, e um programa para enviar bits via o porto USB, está disponível gratuitamente no site da Elektor [3]. ‘ for If MSComm1.InBufferCount > 2 Then MSComm1.InputLen = 0 indata = MSComm1.Input indata1 = Mid(indata, 2, 1) Info = Asc(indata1) End If End Sub Coisas a ter em conta Internet [1] www.mcselec.com [2] http://www.youtube.com/watch?v=maxNgXA peOQ&feature=channel [3] www.elektor.com.pt/120345 Lista de componentes Resistências: R1= 10 kΩ F25 Condensadores: C1;C2= 22 pF C3= 4,7 µF/16 V, radial C4= 100 nF C5= 10 µF/16 V, radial 14 1 25 13 K2 IC1 Semicondutores: IC1= ATmega88(P) Diversos: X1= Cristal quartzo 18,432 MHz K1= Barra de terminais de 4 vias K2= Conector DB25, em ângulo, PCI JP1= Jumper para barra de terminais 2 vias C3 C1 X1 C2 JP1 R1 C4 C5 O PL2303 (construído num conector USB com cabo) está disponível no eBay por um preço entre os 4 e 8 euros. Certifique-se que está a adquirir a versão com um cabo de quatro pinos. O pino de 5 V é necessário para alimentar o circuito. Quando for programar o ATmega88(P), certifique-se que os fuse bits estão com a configuração correcta (veja os ficheiros disponíveis na Internet relativos a este projecto [3]). Se ligar a placa de controlo USB a um porto USB diferente, o computador pode atribuir um número diferente à porta COM da placa. Verifique isso, ou utilize sempre o mesmo porto USB. A tensão de alimentação para o microcontrolador e a tensão de funcionamento para a parta LPT são obtidas a partir do conversor USB/Série. Com esta configuração apenas está disponível (120345-1) Artigo original: USb Control Board July/August 2012 4 1 K1 PCI (Refª 120345-1), disponível na Guimocircuito (www.guimocircuito.com) [3]. www.elektor-magazine.pt | Julho - Agosto 2013 | 19 •Ideias para projecto Elektorcardi ♥ grama Android 1ª parte Sem fios, sem botões: Bluetooth e touch screen O título diz tudo – este artigo descreve um dispositivo de electrocardiograma que o leitor pode construir, usando um tablet ou smartphone Android como terminal sem fios para visualizar os electrocardiogramas. O projecto integra a combinação de um pequeno microcontrolador PIC para controlar um andar de entrada analógico com uma grande quantidade de software. Marcel Cremmel (França) em colaboração com Raymond Vermeulen (Elektor) 20 | Julho - Agosto 2013 | www.elektor-magazine.pt Cardiograma Especificações técnicas • Interface para telemóveis ou tablets Android via Bluetooth • Display deslizante para apresentação simultânea ou individual dos três terminais standard (DI, DII e DIII) e dos três terminais melhorados (aVR, aVL e aVF) • Adaptação automática à resolução do ecrã • Mede e apresenta o ritmo cardíaco • Indicação audível da batida cardíaca • Velocidade de scroll: 250/125/62,5 e 31,25 pixels por segundo • Ganho do display: ×1 ×1,2 ×1,5 ×2 ×3 e ×10 • Sensibilidade: 3,2 mV, conversão de 10 bits • Frequência de amostragem: 2 kHz • Rejeição de modo comum: > 100 dB Quando a Elektor publicou um dispositivo de electrocardiograma baseado numa consola de jogos GameBoy em 2006, o pequeno robô Android ainda nem sequer existia – ou, na melhor das hipóteses, estaria um estágio embrionário. Sete anos passados, e temos um vasto número de aplicações que o utilizam; aquando desta publicação, temos mais de 900 milhões de • Tensão máxima de contacto: ± 150 mV • Constante de tempo de alinhamento auto-adaptável • Resposta em frequência: 0,005 Hz a 170 Hz • Memória dinâmica para traço: 10 minutos • Gravação de ECG em memória flash (10 minutos) • Injecção periódica de sinal de calibração 1 mV/2 Hz • Alimentação via 2 pilhas de 1,5 V normais ou 1,2 V recarregáveis • Apresentação da tensão de bateria • Consumo médio: 5,4 mA (em standby: <4 µA) • Tempo de vida da bateria: 15 horas (células 1 Ah) • Pouco dispendioso dispositivos Android em circulação. A cada dia que passa, abrem-se novos horizontes para este pequeno companheiro verde. A Elektor congratula-se em estar a contribuir para esta saga que agora começou com uma aplicação que é bastante instrutiva, fascinante, e potencialmente útil para toda a gente: execute os seus próprios electrocardiogramas no seu smartphone ou tablet! www.elektor-magazine.pt | Julho - Agosto 2013 | 21 •Ideias para projecto os identificadores usados nos diagramas no código fonte. Os ficheiros dos projectos MPLAB e Android completos estão disponíveis no site da Elektor. R ECG T P Imagem médica e electrónica Q Figura 1. Correspondência entre a actividade eléctrica detectada e a fase do ciclo cardíaco. S auricular contraction diastole (repolarization) ventricular contraction 120107 - 12 Este acessório fisiológico consiste numa única (muito pequena) placa com 5,5×10 cm que suporta as secções analógica e digital do circuito. O nosso interface ECG está disponível na forma de um módulo pronto a usar ao qual apenas precisa de adicionar quatro eléctrodos e uma aplicação Android num smartphone ou tablet; não existe nenhuma ligação física entre este terminal e o O electrocardiograma da Elektor faz uso do processo inventado por Willem Einthoven (Elektor Nº 264, Dezembro de 2006 [1]) que envolve explorar a função cardíaca usando a imagem do fenómeno eléctrico produziu durante o ciclo cardíaco. O coração é um músculo autónomo – o único não controlado pelo cérebro. O nó sino-auricular, localizado na aurícula direita, faz disparar os impulsos do nervo que controlam os músculos do coração. Estes contraem (despolarização) e relaxam (polarização) para bombear o sangue. A contracção é provocada por uma alteração na polaridade eléctrica das membranas. Durante as fases de relaxamento, as cargas eléctricas são novamente equilibradas antes de ocorrer um novo estímulo. Os potenciais resultantes são transmitidos até à superfície da pele, onde podem ser detectados usando eléctrodos adequados. Com um posicionamento apropriado desses eléctrodos, um cardiologista é capaz de deduzir o Armazene e visualize os seus electrocardiogramas no seu smartphone ou tablet! interface, dado que utiliza uma comunicação Bluetooth! Como seria de esperar para um dispositivo moderno, este tem apenas alguns ajustes (três no total) e controlos (3 botões). Claramente, é o software que faz todo o trabalho. Vamos descrever este dispositivo em pelo menos dois artigos: 1. A electrónica: o nosso campo favorito. 2. O programa executado pelo microcontrolador PIC24, escrito em C no MPLAB (IDE e compilador gratuito da Microchip). 3. A aplicação Android, escrita em Java usando o SDK da Google. 4. Construção do interface, para se arrumar numa caixa do tamanho de um pequeno smartphone. A parte que diz respeito à computação é bastante significativa, pelo que não temos intenção de entrar em detalhes do código fonte; mas sim encorajar o leitor a abordar o mesmo, adaptá-lo, ou mesmo melhorá-lo, vamos descrever as funções do software. Para nos ajudar nesta tarefa, vai ter 22 | Julho - Agosto 2013 | www.elektor-magazine.pt comportamento mecânico (e possíveis disfunções!) do coração ao analisar a sua actividade eléctrica [2]. A Figura 1 mostra a relação entre a actividade eléctrica detectada e a fase do ciclo cardíaco: • Onda P: contracção das aurículas – o sangue das veias é forçado a entrar nos ventrículos. • Complexo QRS: contracção dos ventrículos – o sangue proveniente dos ventrículos é encaminhada para as artérias. Estas duas ondas são o que causam o som da batida do coração. • Onda T: repolarização dos ventrículos – os músculos dos ventrículos voltam para a sua posição de descansando. A posição dos quatro eléctrodos, um em cada pulso e tornozelo, é apresentada na Figura 2, que também descreve os terminais apresentados pelo dispositivo. Os terminais dos membros são posicionados na parte interior dos pulsos e tor- Cardiograma nozelos. Estes exploram o campo cardíaco num plano frontal (Figuras 2a e 2b). Estes três terminais formam um triângulo equilátero de Einthoven, sendo as polaridades de tal forma que D3=D2-D1. Traçar os eixos DI, DII e DIII até ao centro do triângulo permite construir um sistema de co-ordenadas (conhecido como o sistema de seis eixos de Bailey), que é muito útil para calcular o vector de activação no plano frontal (Figura 2c). Os seis terminais representam a actividade cardíaca de acordo com estes seis eixos. Ao analisar esta informação é possível estabelecer um diagnóstico. Os três eléctrodos activos LA (Left Arm, braço esquerdo), RA (Right Arm, braço direito) e LL (Left Leg, perna esquerda) detectam os terminais DI e DII; o quarto, RL (Right Leg, perna direita), é usado para definir a tensão de repouso dos outros três. A electrónica de interface amplifica as forças electromotrizes captadas pelos terminais I e II para gerar os sinais DI e DII necessários para produzir um electrocardiograma. Essas tensões são convertidas em quantidades digitais antes de serem transmitidas via Bluetooth para um dispositivo Android. A aplicação calcula os terminais em falta (DIII, aVR, aVL e aVF) a partir de DI e DII (Figura 2b) e apresenta-os. As imagens de ilustração deste artigo não nos deixam qualquer dúvida: os sinais são excelentes e o ruído muito baixo, uma vez que as componentes de frequência da linha de alimentação são residuais. DI LA RA LA DII LL DI DII DIII DII LL RL DIII 120107 - 13a Figura 2a. Terminais bipolares Standard. RA LA RL LL RA R LA RL R aVL aVL aVR LL R aVR aVL R aVF R aVF RA LA RL LL aVR = DII + DIII aVF = DIII + DI 2 aVL = DI - DII 2 R 2 120107 - 13b aVF Figura 2b. Terminais unipolares Standard ou terminais melhorados. Electrónica analógica A secção analógica do nosso ECG tem a função de amplificar as duas tensões bastante fracas captadas, por um lado, pelos eléctrodos activos LA e RA, e por outro, pelos eléctrodos LL e RA. Estes correspondem aos terminais DI e DII (Figura 2). Para obter uma gama dinâmica adequada depois da conversão A/D de 10 bits, precisamos de um ganho de 1.000 (ou seja, 60 dB). Isto é combinado com duas outras funções essenciais: compensação para a tensão de contacto DC dos eléctrodos (que pode ser superior a 100 mV, ou seja, 100 vezes o amplitude dos sinais em questão) e rejeição da frequência da rede eléctrica (60 Hz ou 50 Hz). Mais tarde, vamos voltar a este tema. O corpo humano e os eléctrodos onde se ligam os terminais são consideravelmente influenciados pelas fortes tensões ou diferença de tensão em relação à massa da instalação eléctrica do espaço DI DIII RA -90° aVR aVL aVR aVL -150° -30° 0° DI DIII aVF DII DI +120° DIII +90° aVF +60° DII 120107 - 13c Figura 2c. Sistema de coordenadas usado para calcular os terminais. circundante. Apesar da frequência de 60/50 Hz, a capacidade mútua, embora seja muito baixa, origina uma tensão relativamente elevada (frequentemente acima de 1 V) na pele do sujeito em relação à massa. À primeira vista, parece difícil isolar o sinal pretendido, uma vez que a sua amplitude é cerca de 1.000 vezes abaixo do sinal espúrio! Além www.elektor-magazine.pt | Julho - Agosto 2013 | 23 •Ideias para projecto FP5.1: IC10, R35, 36 C23, R25, 26, 27, 28, IC5B, C25 F5.2 : IC11, R37, 38 C24, R29, 30, 31, 32, IC6B, C26 FP6.1: IC8A, R46, 44, 45, 33 C30, C29, C21 F6.2: IC8B, R41, 42, 43, 34 C28, C27, C22 FP7: R62, 59, 60, 61 FP8: IC7A, C17, R24 FP1: R18, 19, 20, 23, D1, D2 FP2: IC9 FP3.1: IC4A - IC4B, R53, 54, 55 FP3.2: IC3A - IC3B, R57, 58, 56, P3 FP4.1: IC5A, R49, 40, 47, 50, P1 FP4.2 : IC6A, R51, 39, 48, 52, P2 P2HZ F1 F5.1 F2 F3.1 RA LL RL x 21 protecção em caso de desfibrilhação auto-zero LA CAL AI BI autozero x1 F4.1 F3.2 F4.2 x 21 F8 K x1 SI F6.1 F6.2 SII 4 autozero F7 F5.2 DI x49 x49 DII AII BII 120107 - 14 Figura 3. Diagrama de funções da secção analógica. disso, a frequência de 60/50 Hz cai bem dentro do espectro útil; pelo que a filtragem não tem qualquer utilidade. Dado o comprimento de onda a 50 Hz (6.000 km!), podemos aceitar que, como a pele é condutora, qualquer ponto na epiderme está ao mesmo potencial que todos os outros. Assim, no que diz respeito aos eléctrodos, esta é uma tensão de modo comum. Neste caso, a solução é óbvia: um amplificador de instrumentação diferencial com uma relação de rejeição de modo comum adequada (CMRR): CMRR ≥ Sp SECG + dB S N dB onde SP corresponde à amplitude do sinal espúrio: 1 V; SECG corresponde à amplitude do ECG: 1 mV; S/N corresponde à relação sinal/ruído: 40 dB necessários. Isto é, CMRR ≥ 60+40 = 100 dB Para além disso, a amplificador precisa de ter uma impedância de entrada muito elevada (>10 MΩ) e uma baixa tensão de desvio. É bastante tentador usar um circuito integrado especializado para isto (por exemplo, o ADS1294 da TI). Mas é também possível, sem fazer qualquer concessão em termos de qualidade, construir um 24 | Julho - Agosto 2013 | www.elektor-magazine.pt amplificador diferencial usando amplificadores operacionais TLC2252, um dispositivo rail-to-rail de baixa potência e de baixo ruído. A sua frequência de corte e slew rate são apenas modestos – mas mais do que suficientes para um sinal de ECG. A principal (mas aceitável) concessão nesta escolha é a resistência para optimizar o CMRR, que não pode ser dispensada. Funções da secção analógica Antes de analisar com mais detalhe o circuito de interface do ECG, vamos examinar a sua estrutura (Figura 3) e funções. Os quatro eléctrodos são ligados às entradas RA (braço direito), LA (braço esquerdo), LL (perna esquerda) e RL (perna direita). Como o electrocardiógrafo é às vezes usado em conjunto com um desfibrilhador, precisa de ser protegido contra as elevadas tensões geradas por este tipo de dispositivo: este é o trabalho da função F1. Sob condições normais, as tensões de saída desta função são iguais às da sua entrada. A protecção só entra em funcionamento se as tensões medidas excederem o nível da tensão de alimentação, ou seja, ±3,3 V. A função de multiplexagem F2 permite-nos substituir os sinais RA, LA e LL por um sinal de calibração P2HZ com uma amplitude de 1 mV e uma frequência de 2 Hz. O multiplexador é activado a pedido uma vez por minuto durante 10 segundos de modo a observar o sinal de calibração no ecrã. Quando estamos a estabelecer um diagnóstico, o sinal de calibração fornece uma referência de amplitude para as medidas do ECG. O amplificador de instrumentação é formado pelas funções F3 e F4. A função F6 é um filtro passa-baixo de 2ª ordem com uma frequência de corte de 170 Hz e um factor de amortecimento m = 0,71 (Butterworth). Isto atenua todas as componentes fora do espectro de frequências pretendido e serve também como um filtro anti-aliasing para o conversor A/D seguinte. O ganho total é obtido da seguinte forma: AD3 = 21×, AD4 = 1× e A6 = 49×. A referência de ganho corresponde à referência das funções: AD3 é o amplificador diferencial de F3 (F3.1 ou F3.2), e assim por diante. Em linha com os nossos objectivos, o ganho total é de 1029 vezes. O ganho nos primeiros dois andares é relativamente baixo de modo a aumentar a eficiência da função de auto-zero. As outras funções (F5, F7 e F8) suportam o amplificador de instrumentação para assegurar um funcionamento adequado. Os amplificadores Cardiograma pretendemos: as tensões de repouso na entrada dos amplificadores estão correctas, sem prejudicar a sua impedância de entrada intrínseca. Além disso, aparece um fenómeno natural mas muito inconveniente quando os eléctrodos estão montados: é gerada uma força electromotriz entre a pele e o metal do eléctrodo. Esta micro-bateria é muito fraca (algumas dezenas de mV) mas não é eliminada pelo amplificador de instrumentação. Antes pelo contrário: é amplificada! As funções F7 e F8 reduzem parcialmente este fenómeno, mas os desvios entre as saídas + e – de F3.1 e F3.2 ainda podem atingir alguns volts. Esses desvios são compensados através das funções F5.1 e F5.2, para evitar a saturação nos andares de F4.1, F4.2, F6.1 e F6.2. Figura 4a. Diagrama esquemático da parte analógica. R44 C34 1u 10V 4 8 8 C35 IC4 C36 IC5 1u 10V 4 1u 10V 4 8 IC6 4 C37 1u 10V 8 IC7 4 C38 C33 1u 10V 1u 10V IC4...IC7 = TLC2252AID 2 R49 47k 1 IC4.A R53 IC5.B R25 6 47M C25 10M 10k 100R R55 6 D1 A 2 1 5 5 4 4 R28 470k 12 +3V3 16 7 IC4.B 7 R50 47k R59 –3V3 3 RL 4 13 2 1 R20 10k 5 5 3 +3V3 A 16 D2 BAV99S 3 6 7 –3V3 4 5 1 2 C39 C40 100n 25V 100n 25V C17 X X1 Y0 Y Y1 Z0 Z Z1 VCC A B VEE C GND ENABLE 8 14 3 15 2 IC3.A C18 11 10 9 R23 1k C19 BN B2 TP9 3 R36 C23 B3 A0 A1 AN A2 100n 25V 13 A A3 VCC S0 S1 VEE GND ENABLE 8 10 AI 9 BI 6 100n 50V 100n 50V 5k 100n 50V R58 6 R61 6 5 IC3.B 7 R52 47k TP7 DII C22 7 IC6.B 6 R29 47M C26 R30 1u 10V R31 1 5 2 2M2 4 R32 470k 12 14 15 16 5 A R34 +3V3 11 6 7 IC8.B 5 +3V3 IC7.B 5 A 3 A 6 47n 25V 10M R56 470p 50V 28k7 C28 R39 47k R48 2k A C27 R42 R41 28k7 1 IC6.A P3 1n IC7.A 100n 25V 3 P2 2 C20 2 1 R51 47k R57 4 R24 390k +3V3 100n 25V B1 100n A 25V ➞ 1 50V –3V3 C42 B0 100k X0 DI R35 1M4 LL 10k R19 10k C41 IC10 CD74HC4052PW R43 45k3 2 TP6 R60 100k 1 LA IC9 DG4053AEQ-T1-E3 100k RA 12 9k1 3 100k 6 R18 K1 14 11 100k BAV99S 2M2 15 100k –3V3 2 100k +3V3 5 R27 R62 TP5 R22 1 R26 1u 10V R54 390k P2HZ A +3V3 R65 R21 330k R33 C21 100k –3V3 1 IC8.A 5 A 3 27R R40 47k R47 IC8 = LMC6482AIM 4 7 1u 10V R64 8 IC8 3 47n 25V 10k 8 2 para esquemático da parte digital e da fonte de alimentação 5k IC3 C31 C30 7 7 –3V3 C43 C44 100n 25V 100n 25V IC11 CD74HC4052PW R37 B0 B1 BN B2 TP8 3 C24 B3 A0 A1 AN A2 100n A 25V 330K A R45 28k7 R46 28k7 1 IC5.A 13 100n 25V R38 330k 1u 10V 2 10k P1 L9 30R@100MHz C32 470p 50V 1M R63 27R 45k3 +3V3 C29 1M4 3 330k operacionais são alimentados entre -3,3 V e +3,3 V. A tensão em repouso ideal para cada um dos três terminais é 0 V. O eléctrodo RL fixa a tensão média (ponto de funcionamento em repouso) para os eléctrodos activos através das funções F7 e F8. É apresentado que a tensão de saída de F7 é igual à média das tensões de RA, LA e LL. Esta é comparada por F8 com o ponto de ajuste de 0 V, e a tensão de erro amplificada produz a tensão no eléctrodo RL. Como não existe nenhuma corrente a fluir nos eléctrodos, as tensões em RA, LA e LL são iguais à de RL (excepto alguns poucos mV). Desta forma, criamos um verdadeiro loop pela pele: a média das tensões dos eléctrodos activos é mantida igual ao ponto de ajuste de 0 V. Isso é o que A A3 VCC S0 S1 VEE GND ENABLE 8 10 AII 9 BII 6 CAL 120107 - 11 www.elektor-magazine.pt | Julho - Agosto 2013 | 25 •Ideias para projecto +3V3 L4 L1 R6 4uH7 1M C6 1 T1 IC13 LTC1981ES5 4 GATE PSMN6R5 -25YLC 3 3 SHDN 100k S2 C13 C14 ON/OFF 33u 6V3 10u 6V3 L8 D3 30R@100MHz C3 C9 C10 100n 25V 10u 6V3 100n 25V C4 5 5 6 S1 7 CAL 11 3K3 VDD VDD IC1 MCLR RB15/RP15/AN9 RB0/PGD1/EMUD1/RP0 RB14/PMWR/RP14/AN10 RB1/PGC1/EMUC1/RP1 RB13/PMRD/RP13/AN11 RB2/RP2/SDA2/AN4 RB12/PMD0/RP12/AN12 RB3/RP3/SCL2/AN5 RB11/PMD1/RP11/TMS RB4/RP4/PMBE RB10/PMD2/RP10/TDI RB9/PMD3/SDA1/RP9/TDO DI 2 DII 3 10 P2HZ 12 PIC24FJ32GA002 RA0/AN0 RB8/PMD4/SCL1/RP8/TCK RA1/AN1 RA2/CLKI/OSCI RB7/PMD5/INT0/RP7 RA3/CLKO/OSCO/PMA0 RB6/PMD6/ASCL1/RP6 RA4/T1CK/PMA1 RB5/PMD7/RP5/ASDA1 DISVREG 19 VSS 8 VSS VCAP/VDDCORE 27 20 C2 para o esquemático da parte analógica ➞ F5.1 e F5.2 comparam os valores médios dos sinais SI e SII com uma referência definida. A tensão de erro é integrada usando uma constante de tempo seleccionada usando AI e BI (AII e BII respectivamente para o canal II) para obter a tensão DC de desvio a aplicar a F4.1 e F4.2. Esta compensação encontra-se em SI e SII. O loop assim formado mantém constantemente os valores médios de SI e SII e os seus respectivos pontos de ajuste. Coração do circuito Vai conseguir facilmente encontrar todas estas funções no diagrama do circuito analógico (Figura 4a). Os quatro eléctrodos estão ligados a K1. As resistências R18, R19, R20, R23 e os díodos integrados em D1 e D2 formam a função de protecção F1. A função de multiplexagem F2 é executada pelo multiplexador analógico IC9 (4053). A amplificação diferencial para cada canal (F3 e F4) é obtida usando a configuração clássica do amplificador de instrumentação: F3.1 = IC4A + 10u 6V3 26 25 BII 24 AII 23 STATUS 22 BI 21 AI 18 TX 17 16 RX RESET 15 14 SETBAUD 11 VCC R9 1k R10 1k R11 1k R8 1k R7 1k 19 9 10 14 13 5 3 4 16 15 MOD1 PIO2 SPI_MOSI PCM_IN SPI_CLK PCM_OUT SPI_MISO UART_TX SPI_CSB PIO5 PIO3 UART_RX RN42 RESET USB_D– PIO6 USB_D+ PIO7 PCM_CLK UART_CTS PCM_SYNC UART_RTS PIO4 30 31 32 1 AIO0 4 100n 25V GND 1 4 R12 C5 10u 6V3 28 PIO11 3 D4 HSMC-A461-V00M1 PIO10 3K3 10k 2 9 26 | Julho - Agosto 2013 | www.elektor-magazine.pt C8 10u 6V3 L2 100n 25V 13 RESET Figura 4b. Diagrama esquemático da parte digital e fonte de alimentação. C7 30R@100MHz R2 1 6 R4 4 GND NC 33u 6V3 GND EMUC1 TPS60403DBVT GND EMUD1 1u 10V PIO9 GND 30R@100MHz 1 +3V3 L3 HSMC-A461-V00M1 +3V3 OUT A R1 K2 C1 +3V3 30R@100MHz +3V3 MCLR C16 PIO8 100n 25V CFLY+ IC2 IN L7 GND 4 AIO0 1M C15 5 R13 10k BATT_LEV R17 GND VFB 2 30R@100MHz R3 2 R14 TP4 EN L6 5 POWEROFF 1M GDR GND R16 TP3 1 CFLY– 30R@100MHz VOUT IC12 MCP1640B(T) 5 VCC 2 SW 523k 100n 25V 2 VIN TP1 1u 10V 3 L5 1 6 K3 Vbatt- R15 300k 10u 6V3 Vbatt+ R5 10k C12 150R 30R@100MHz –3V3 C11 TP2 2 6 24 23 21 20 18 17 7 8 22 S3 12 28 29 33 34 25 RESET BT IC4B e F3.2 = IC3A + IC3B, em conjunto com F4.1 = IC5A e F4.2 = IC6A. O ganho do canal DII é ajustável através de P3 compensar a diferença para o outro canal. Até mesmo uma pequena diferença no ganho tem um impacto notável nos cálculos para os outros terminais. Os potenciómetros P1 e P2 permitem-nos optimizar a rejeição de modo comum para cada amplificador. Os andares F4 possuem uma realimentação negativa através do multiplexador IC10 (por exemplo, no canal DI), uma das resistências R25-R28 e o ampop IC5B ligado como integrador. Esta estrutura implementa a função F5.1 e actua na média da tensão DI através de IC5A de forma que a faz igual à tensão definida pelo divisor R35/R36 (e R37/R38para o canal DII, respectivamente). A constante de tempo para esta malha é seleccionada por uma função de software que controla o multiplexador IC10 (e IC11 no outro canal) Cardiograma através dos sinais AI e BI: • T1 = R28×C25 = 0,47 s • T2 = R27×C25 = 2,2 s • T3 = R26×C25 = 10 s • T4 = R25×C25 = 47 s Quando os eléctrodos são aplicados, é seleccionada a constante de tempo mais baixa para alcançar o ponto de funcionamento em repouso mais depressa. A constante de tempo é então incrementada à medida que nos aproximamos do ponto de funcionamento em repouso e termina no valor de 47 s, o que não interfere com os sinais do ECG. As tensões em repouso são diferentes entre DI e DII de modo a ser adequado para as formas esperadas para cada terminal, evitando assim a saturação no conversor A/D seguinte enquanto mantêm uma gama dinâmica adequada. O andar final em cada canal (IC8a e b) implementa um filtro passa-baixo de 2ª ordem. Este tem uma frequência de corte de 170 Hz e um ganho na banda passante de 34 dB. Este é um filtro de anti-aliasing para o conversor A/D que usa uma frequência de amostragem de 2 kHz. Isto é depois seguido por um filtro passa-baixo de 1ª ordem formado por R33 e C21, com uma frequência de corte de 160 Hz. A atenuação destes dois filtros para a frequência de Nyquist (1 kHz) é de cerca de 15 dB. Reparou que IC8 é alimentado entre +3,3 V e 0 V e não entre +3,3 V e -3,3 V como os outros ampops? Isto não é um erro: esta configuração protege as entradas analógicas do PIC24, que não suportam tensões negativas. Por causa da sua elevada sensibilidade, a secção analógica é muito sensível a interferências de todo o tipo, em particular pela produzida pela secção digital e pela fonte de alimentação comutada. A construção da placa de circuito impresso foi projectada para manter estas três secções bem longe umas das outras. Para além disto, as malhas R63/ C32 e R64/C31 atenuam a ondulação residual nas linhas de alimentação da secção analógica. Para a parte digital do circuito, o diagrama (Figura 4b) está bastante claro, pelo que dispensa qualquer diagrama de blocos. PIC24FJ32GA002 Das variantes do PIC24 existentes, escolhemos o PIC24FJ32GA002, um tipo de nível de entrada com um encapsulamento SOIC de 28 pinos (Figura 4b). O seu relógio interno de 8 MHz (sem precisar de nenhum componente externo) fornece uma capacidade de 4 MIPS e uma precisão de 2%, adequado para esta aplicação. Para esta frequência, o consumo de corrente é de aproximadamente 5,4 mA sendo bastante razoável para alimentação através de bateria. Módulo Bluetooth RN-42 O módulo RN-42 da Roving Networks (Figura 4b) é compacto, de baixo consumo, e pré-classificado como sendo um módulo Bluetooth híbrido OEM de classe 2. A Roving Networks foi recentemente adquirida pela Microchip. A antena embutida permite ter um alcance de cerca de 20 m. Suporta, entre outras coisas, o protocolo RFCOMM-SPP usado nesta aplicação, para velocidades de transferência de dados até 240 Kb/s. Neste caso, apenas usamos 16 Kb/s. O perfil de porta série SPP (Serial Port Profile) permite facilmente estabelecer um tipo de comunicação série assíncrona duplex, sem fios. Os sinais RX e o TX do circuito de acoplamento da UART do microcontrolador é simplesmente ligado ao seu equivalente no módulo Bluetooth. Desta forma, as sequências geradas no TX no formato série assíncrono são transferidas transparentemente para o terminal ligado. Reciprocamente, as mensagens enviadas do terminal Android aparecem no mesmo formato na entrada RX. São usados alguns sinais adicionais para controlar o módulo: O sinal STATUS (ESTADO) indica o estado da ligação Bluetooth: Ligado (1) ou Interrompida (0). A entrada de RESET permite inicializar o módulo caso seja necessário. A entrada PIO7 (SETBAUD) permite seleccionar a taxa de transferência de dados: • 1 ➞ 9600 baud, • 0 ➞ 115.2 Kbaud Figura 4c. Foto do módulo Bluetooth da Roving Networks (agora Microchip) usado. As resistências de 1 kΩ em série com estes sinais estão conforme as recomendações de protecção de E/S do fabricante. O LED D4 pisca para indica o estado do módulo: 10 Hz: configuração em progresso 2 Hz: fase de inicialização 1 Hz: o módulo pode ser identificado steady: ligação estabelecida www.elektor-magazine.pt | Julho - Agosto 2013 | 27 •Ideias para projecto Um projecto para o seu coração! Fonte de alimentação Para um circuito tão simples, a estrutura da fonte de alimentação (Figura 4b) formada por IC13, IC12 e IC2 é bastante complexa, mas ainda assim garante uma tensão simétrica estabilizada (±3,3 V) até à última gota de energia disponível nas duas pilhas de 1,5 V do tipo AA ou das duas pilhas recarregáveis de 1,2 V. Está fora de questão alimentar este dispositivo a partir da rede eléctrica! O transístor T1, associado ao cima dispositivo IC13, protege a electrónica no caso de inversão da polaridade da bateria: a resistência R6 limita a corrente em IC13, T1 é desligado assim como o seu díodo interno. Quando a polaridade está correcta, o dispositivo IC13 é alimentado correctamente. Este é contro- verdadeiramente desligado. O único consumo do circuito é o do modo standby de IC13 e IC12, isto é, menos de 4 µA. Se pressionar S2 leva a entrada /SHDN de IC13 ao nível alto. A saída GATE faz com que T1 entre em condução com uma tensão que é três vezes superior à sua tensão de alimentação, graças a um triplicador interno. Isto permite reduzir drasticamente a RON de T1. O terminal -ve é ligado a GND. A saída GRD de IC13 também vai para o nível alto e habilita IC12. Isto, por sua vez, gera a tensão de +3,3 V a partir da bateria. O inversor IC2 é então alimentado ligando a linha de alimentação de -3,3 V. Desta forma o interface é alimentado. O microcontrolador começa então a processar o código e tem que seguir rapidamente a acção de carregar em S2 que o utilizador efectuou colocando o sinal /PowerOff no nível alto (1). O processo de desligar é controlado a partir do terminal Android quando o utilizador sai da aplicação: o sinal /PowerOff é ajustado para L. O IC13 entra então em processo de desactivação e coloca a sua saída GDR ao nível zero para inibir IC12 e assim desligar a alimentação. Os conversores comutados permitem obter uma eficiência global de quase 90% e funcionam (não por muito tempo) com pilhas descarregadas até 0,8 V. Na próxima edição, vamos apresentar o software, a aplicação Android e a placa, em conjunto com a forma de implementar o dispositivo. Vai ver que é incrivelmente simples! (120107) lado pelo sinal /PowerOff do microcontrolador. Se o interface estiver desligado, o PIC24 não é alimentado pelo que não pode aplicar um nível alto no sinal /PowerOff. Consequentemente, a entrada /SHDN está ao nível baixo, em particular por causa de R14. A saída GATE de IC13 fica então ao nível baixo e T1 ao corte. Porém, o seu díodo de protecção (flyback) está em condução (a corrente consumida flui para GND através do terminal -ve) e IC12 é alimentado. Nestas condições, a saída GRD de IC13 está no nível zero, inibindo o conversor comutado IC12, que dessa forma não gera a tensão de alimentação de 3,3 V. Consequentemente, o inversor IC2 que fornece os -3,3 V não funciona. O interface está 28 | Julho - Agosto 2013 | www.elektor-magazine.pt Artigo original: Android Elektorcardioscope (1) July/August 2013 Internet [1] GBECG, Elektor Nº 264, Dezembro de 2006: www.elektor.com.pt/050280 [2] Curso de cardiologia: http://goo.gl/mSr20 [3] www.elektor.com.pt/120107 [4] Android Apps, programming step by step, Stephan Schwark, www.elektor.com/android [5] http://www.siteduzero.com/informatique/ tutoriels/apprenez-a-programmer-en-java ou http://goo.gl/OVZQY (em francês) [6] Site do autor: http://electronique.marcel.free. fr/ (em francês) LED Lighting Controller Controlador de luz ambiente LEDs RGB para criar ambientes As fitas de LEDs coloridas estão actualmente disponíveis a custos acessíveis, em todo o tipo de cores e tamanhos. Com este circuito controlador é possível estabelecer as suas próprias cores e até configurar e processar programas completos de iluminação. O controlador funciona a bateria, por isso pode ser usado em lugares sem acesso directo a electricidade. Este circuito foi originalmente desenvolvido para controlar fitas de LEDs coloridas vendidas numa conhecida cadeia sueca de móveis. São disponibilizadas com um simples controlador que permite selecionar manualmente um número limitado de cores. Esta restricção motivou o autor deste projecto a desenvolver um controlador DIY com mais capacidades. O resultado foi um controlador de luz ambiente adequado para todos os LEDs RGB e fitas de LED com capacidade para funcionar desde os 12 V e com uma resistência em série para limitação de corrente. Uma vez que no local em que foi feito o projecto não estava disponível uma fonte de alimentação, este controlador acabou por ser concebido para funcionar com uma bateria de 12 V. As características do circuito podem ser consultadas no quadro. Circuito Como se pode ver na Figura 1, o circuito é bastante simples. O autor escolheu o microcontrolador PIC16F887 pela sua EEPROM integrada (que permite um armazenamento adequado dos programas de iluminação), grande capacidade E/S e conversor A/D integrado. Apesar do PIC16F877A ser mais usado, para esta aplicação foi escolhido um outro muito semelhante por ter uma configuração específica de conversor A/D que permite usar as entradas RAO e RA1 ADC sem ter que utilizar as entradas RA2 e RA3 para tensão de referência. Aqui, o RC3 está ligado ao interruptor S1, o que permite que o estado de carregamento da bateria seja mostrado no LCD de duas formas diferentes. O conector K6 é o conector ICSP para a programação In-Circuit do microcontrolador. O cristal X2 fornece ao microcontrolador um sinal de relógio de 20 MHz. Esta velocidade relativamente elevada de frequência de relógio é necessária porque é dividida internamente por 4 pelo controlador. Os 5 MHz resultantes são essenciais para a função de controlo PWM implementada no software. O mostrador LED de 2 linhas de 16 caracteres (que pode ser adquirido no Serviço Elektor) está ligado à porta RB. Se usar um tipo diferente de LCD, pode mudar a polaridade da tensão de alimentação da iluminação de fundo do LCD (se necessário) através de pontes nas posições J1 e J2. O transístor T2 desliga a iluminação se não existir nenhuma entrada do utilizador durante 10 segundos. O contraste pode ser ajustado com P1. Ao contrário da maioria dos circuitos com LCD, neste é usado um controlo de 8 bits em vez de 4 bits. Trata-se apenas de uma opção de concepção uma vez que o microcontrolador tem vários pins E/S disponíveis. A intensidade das cores dos LEDs ligados é determinada pelo regulador de modulação de largura de pulso PWM (Pulse Width Modulation). Ainda que o controlador disponha de saídas PWM suficientes, o autor não as utilizou para facilitar o desenho da placa de circuito impresso do protótipo. Por esta razão a função PWM é programada em software. O controlo dos LEDs é feito com MOSFET de potên- Goswin Visschers (Holanda) www.elektor-magazine.pt | Julho - Agosto 2013 | 29 •Domótica | Controlador de Iluminação LED Características • Intervalo da tensão de alimentação de 11 a 15 V. • Compensação da intensidade luminosa com uma tensão de alimentação decrescente. • Mostrador LCD de 2 linhas com 16 caracteres. • Mais de 13 opções possíveis de combinações de cor com valores RGB ajustáveis. • Possibilidade de escolher 3 programas de luz diferentes com 20 mudanças de cor. A duração máxima de cada cor, assim como da transição para a cor seguinte é de 255 s. Ambos os tempos podem ser programados em passos de 1 s. • Execução contínua de um dos 3 programas. • Aviso sonoro de bateria descarregada com encerramento automático das fitas de LEDs. • Indicação LED da carga restante na bateria. Figura 1. Esquema do controlador de luzes RGB com um PIC16F887 como elemento central. • Circuito de carga de bateria integrado com comutação automática de carga lenta. • Bloqueio para crianças para evitar mudanças de configuração das cores ou programas. • Possibilidade de controlar um controlador através de um conversor RS232/USB. +5V RE1.B 3 C4 C7 100n 100u 16V 470n C8 R7 4 D3 C9 5 3k9 C3 100n 3k9 C2 1u 16V 6 1u 16V 7 1N4148 8 9 10 15 16 17 18 19 20 RE3/MCLR/VPP RA3/AN3/VREF+/C1IN+ RS R/W E DB0 DB1 DB2 1k RB4/AN11 PIC16F887-I/P RE2/AN7 RD7/P1D RD6/P1C RD5/P1B RC0/T1OSO/T1CK1 RC1/T1OSI/CCP2 RD4 RC2/P1A/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RD0 RC7/RX/DT RD1 OSC1 13 OSC2 X1 R17 38 RB6/PICSPCLK RB7/ICSPDAT 39 40 15p R13 1 2 R12 T4 2 T5 3 4 5 K4 6 7 8 4 9 2 3 3x IRL540NPBF 2 3 1 30 | Julho - Agosto 2013 | www.elektor-magazine.pt K3 3 1 +5V 1 4 10k 10k R14 4 ENTER K5 4 28 1 27 24 ENC3 25 26 BACK 5 R20 4 1 BZ1 3 2 +5V CBUS4 +5V CBUS3 VCC10 CBUS2 +3V3 CBUS1 GND CBUS0 CTS RESET R1 DCD RXD DSR TXD DTR RTS D6 23 3 2 Submenu_2 23 USB Serial Bridge Module 4 2 MODE SELECT 2 Submenu_1 5 K8 MOD-110533 DIL K2 3 1 3 S1 T3 5 10k R15 1k 4 R19 29 31 Menu ENC1 R18 C6 20MHz 15p 1 R16 ENC2 30 VSS 14 BC547 36 37 RB5/AN13/T1G RE1/AN6 +5V 35 RB2/AN8 RE0/AN5 1 T2 34 RB1/AN10/C12IN3– RA5/AN4 +5V 33 RB0/AN12/INT C5 BATTERY DISPLAY LEDC VO 21 RD2 RB3/AN9/PGM/C12IN2– RA4/T0CKI/C1OUT 1 R22 22 RD3 IC2 RA2/AN2/VREF–/CVREF/C2IN+ +5V 1N4148 BACKLIGHT J2 D5 D4 10 11 12 13 14 15 16 32 RA1/AN1/C12IN0– 12 BC547 9 J1 VDD RA0/AN0/ULPWU/C12IN0– +12V T1 8 47R VDD VSS RE1.A 7 10k 10k 10k 10k 2 470u 16V 6 10k 11 1 C1 5 100n 1N5400 12V Battery 4 P1 R6 R4 3 10k 2A T 2 10k K7 IC1 LM7805 D2 F1 R5 1 +5V C10 R3 VCC +5V +12V 10k +5V 1k +12V VSS +5V Power R21 LC DISPLAY 2 x 16 LEDA 5 DB7 4 DB6 3 DB5 2 DB4 1 K6 CHILD LOCK DB3 10k S2 PGC 0W5 PGD 5W 1N5400 LCD1 47R GND 3A15 F R11 VCC K1 R10 MCLR 1R R9 10k R1 10k R2 10k R8 D1 F2 1N4148 22 21 20 19 18 17 16 15 Elektor - 110533 USB 110406 - 11 LED Lighting Controller v i c e.c om .e l e k ww r p c bs er to w Figura 2. Os controlos e o LCD são também montados na Placa de Circuito Impresso. cia T3, T4 e T5 que comutam com níveis de sinal TTL. As fitas de LEDs RGB (4 unidades no máximo) estão ligadas aos conectores K2 a K5. Cada MOSFET pode fornecer facilmente vários amperes sem necessidade de uma refrigeração adicional. Bz1 é um alarme com oscilador integrado, pelo que o fornecimento de tensão de alimentação é suficiente para que faça ruído. Para os elementos de controlo utilizam-se 3 codificadores rotativos com botões incorporados. RA0 e RA1 do microcontrolador servem de entradas para a conversão A/D. RA0 mede a tensão da bateria e RA1 detecta se a tensão é superior a 14 quando é ligado um carregador de baterias. Os divisores de tensão R5/R4 e R6/R7 reduzem a tensão de modo a ser compatível com a capacidade de tensão do microcontrolador. C8 e C9 eliminam a ondulação indesejada. No esquema também se pode ver um módulo de conversão para USB (Elektor BOB [1]), o qual pode ser ligado a um PC. O circuito pode ser controlado remotamente com a ajuda de vários comandos num programa emulador. Para mais informações sobre este tema é possível consultar o manual de instruções disponível para download gratuito no site Elektor [2]. Lista de componentes Resistências: R1 = 47 Ω/0,5 W R2 = 1 Ω/5 W R3,R5,R6,R8...R14,R16...R19 = 10 kΩ R4,R7 = 3,9 kΩ R15,R20,R21 = 1 kΩ R22 = 47 Ω P1 = ajustável 10 kΩ, horizontal Condensadores: C1 = 470 µF/16 V, radial C2,C3,C10 = 100 nF C4 = 100 µF/16 V, radial C5,C6 = 15 pF C7 = 470 nF C8,C9 = 1 µF/16 V, radial Semicondutores: D1,D2 = 1N5400 D3,D4,D6 = 1N4148 T1,T2 = BC547B T3,T4,T5 = IRL540 (International Rectifier, Farnell 8651078) IC1 = LM7805 IC2 = PIC16F887 programado (Ref.ª 110406-41) D5 = LED vermelho, 3 mm Diversos: X1 = cristal de quartzo de 20 MHz F1 = fusível de 2 A T, com suporte para PCI F2 = fusível de 3,15 AT com suporte para PCI BZ1 = besouro DC (com oscilador integrado) RE1 = relé SPDT de 12 V/2 A (por exemplo, Finder 40.31.7.012.0000, Farnell 1169158) MOD1 = conversor Elektor USB/Série BOBFT232R [1] S1,S2 = interruptor deslizante, em ângulo, PCI (por exemplo, C&K OS102011MA1QN1, Farnell 1201431) S3,S4,S5 = codificador rotativo com interruptor integrado (por exemplo Alps, EC12E2424407, Farnell 1520813) K1,K7 = bloco de terminais de aperto de 2 vias, PCI, passo 5 mm K2,K3,K4,K5 = barra de terminais de 4 vias K6 = barra de terminais de 5 vias LCD1 = LCD 2x16 caracteres, com iluminação de fundo (Refª 120061-71) J1,J2 = barra de terminais de 3 vias, com ponte de ligação Barra de terminais de 40 vias para IC2 PCI (Refª 110406-1) disponível na Guimocircuito – www.guimocircuito.com [2] www.elektor-magazine.pt | Julho - Agosto 2013 | 31 •Domótica | Controlador de Iluminação LED A estabilização da tensão de alimentação é feita com um popular 7805, alguns condensadores (IC1, C1...C4) e um díodo (D2) para a protecção contra inversão de polaridade. O valor do fusível F1 incorporado no regulador depende da carga. Se são usadas fitas de LEDs de 2 metros é suficiente um fusível de 2 AT, mas é aconselhável verificar cada caso e obviamente que deve ser feito quando todas as cores estão a ser usadas na sua intensidade máxima. Liga-se a bateria ao conector K7, e em K1 o adaptador de rede que tem que ser capaz de fornecer 15 V (2 A no mínimo). O transístor T1 controla o relé RE1, que por sua vez liga a resistência R1 quando tem que carregar a bateria. O tipo de relé não é essencial desde que os seus contactos possam ser ligados a mais de 2 A e a tensão da bobina exceda os 12 V. Pode saber mais sobre este assunto na secção Funcionamento, mais abaixo. O circuito em si consome apenas 25 mA durante a utilização, mas com o LCD iluminado de fundo aumenta para 50 mA. Placa de circuito impresso A Figura 2 mostra a placa de circuito impresso do controlador de luzes desenhada no laboratório da Elektor. Foram utilizados componentes convencionais, pelo que os leitores com pouca experiência em soldar não vão ter dificuldades. Todos os componentes são montados na face dos componentes. Com um alicate plano dobram-se os terminais do estabilizador e os MOSFETs, para que fiquem agarrados à placa depois de terem sido soldados. Estes componentes não necessitam de dissipadores para um uso normal. É aconselhável colocar o microcontrolador (disponível pré–programado) num suporte adequado. Se quiser utilizar a ligação série para o PC terá também que colocar o conversor USB/Serie BOB-FT232R, o qual pode ser montado directamente na placa ou colocado sobre duas barras de terminais SIL de 9 vias. Software O programa do circuito foi escrito em ANSI C usando MPLAB e compilado com o compilador C da Hi-Tech que, no modo de licença de teste está completamente funcional (válido durante 45 dias). Neste caso em concreto a versão lite do compilador não é adequada porque não proporciona uma suficiente optimização, resultando num código executável que é demasiado grande para a memória de 8 kB do microcontrolador. No site da Elektor [2] estão disponíveis para download gratuito os 32 | Julho - Agosto 2013 | www.elektor-magazine.pt códigos fonte e hexadecimal, bem como o desenho da placa de circuito impresso. Pode também encomendar o controlador pré-programado através do Serviço Elektor. A parte mais importante do software é a rotina de atendimento à interrupção ISR (Interrupt Service Routine). Esta rotina foi optimizada com a ajuda da função stopwatch do MPLAB de modo a minimizar o seu tempo de execução. A ISR está dividida em varias sub-rotinas que podem ser executadas a cada 100 µs, 5 ms, 100 ms ou 1 s. A cada 100 µs é chamada a ISR que, com a ajuda dos contadores, se encarrega de que as sub-rotinas são executadas nos outros momentos mencionados. Para poupar memória foi usado, numa primeira fase, um contador que determinava os momentos de 1 ms e 100 ms. Durante cada chamada de interrupção (cada 100 µs) era calculado o módulo (o resultado é o que resta de uma operação de divisão). Se o resultado era 0 tinha passado 1 ms. Durante a depuração com o stopwatch aconteceu que o cálculo do módulo requeria tanto tempo que foi mais sensato utilizar um contador adicional para determinar os intervalos de 1 ms. A regulação automática da iluminação funciona da seguinte forma: a frequência normal do PWM é de 100 Hz com 11 V. No caso de a tensão da bateria ser maior que 11 V significa que os LEDs se iluminam mais intensamente com o mesmo ciclo de trabalho. Um método muito mais simples é manter igual o tempo em que os LEDs estão acesos e reduzir a frequência de PMW com uma tensão mais alta. Isto significa que se faz o cálculo uma única vez para o mesmo resultado. A diferença entre uma frequência de 100 HZ ou 90 HZ não é visível. Outra parte do software que causou problemas ao programador foi o código para “fundir” as cores. Teoricamente, o cálculo é muito simples: com o valor actual PWM de cada cor, calcula-se a diferença com o valor PWM do passo seguinte e divide-se o resultado pelo tempo de transição. Depois aumenta-se ou diminui-se o valor PWM para cada cor em cada passo durante o intervalo de transição (neste caso, o tempo de transição expressa-se em passos de 100 ms). O resultado desta divisão é geralmente uma fracção decimal, o que significa que tem que se utilizar uma variável tipo float para calcular e armazenar o número. Os microcontroladores PIC16F são apenas de 8 bits, pelo que o compilador teria muita dificuldade com as variáveis em vírgula flutuante. Isto resultou em problemas de temporização e erros no código LED Lighting Controller compilado. A solução para este problema foi relativamente simples: a multiplicação e divisão de números inteiros requer menos tempo e memória que números decimais. Assim, a diferença dos valores PWM de cada cor é primeiro multiplicada por 100 e depois dividida pelo tempo de transição, como é possível verificar no seguinte código (ver Listagem 1). Em cada passo durante o intervalo de transição (cada 100 ms) é calculado o valor PWM correspondente e depois dividido por 100. O resultado é um número inteiro arredondado a duas casas decimais, e não um número decimal (ver Listagem 2). Graças a esta solução um microcontrolador de 8 –bit pode efectuar transições de cores sem problemas significativos de desempenho. Funcionamento Ao ligar o controlador aparece o nome e número da versão no ecrã e um segundo depois o menu fica disponível. Usar o controlador é muito intuitivo, mas também pode consultar um manual em inglês [2] que está disponível para download gratuito no site da Elektor. Pode navegar por todo o menu através do codificador rotativo ENC1. Primeiro vê as três opções Run Program <x> (x de 1 a 3) para a execução de programas pré-programados. Seleccione um dos 3 programas e carregue ENTER (interruptor ENC2). Para voltar ao menu carregue em BACK (interruptor ENC3). A opção do menu Charge Battery permite verificar o nível de carga da bateria. Primeiro liga-se um carregador de baterias de 15 V e depois selecciona-se esta opção. Deste modo é accionado um relé que faz um atalho para a resistência R1, fluindo assim mais corrente para a bateria. Neste caso, as tiras de LED são desligadas para prevenir eventuais estragos causados pela excessiva entrada de corrente. O relé é desligado quando a tensão da bateria atinge os 13,8 V. Isto diminui a tensão do carregador de bateria para o seu nível de carga mais reduzido e as tiras de LED são outra vez ligadas. Battery Charge mostra a carga restante da bateria em passos de 10%. Este valor é determinado medindo a tensão da bateria e mostrando-a em percentagens, sendo que 0% corresponde a 11 V e 100% a 13,8 V. O LED D5 mostra o estado de carga da bateria. Se a bateria está cheia (13,2 V), o LED está sempre aceso. Se a bateria começa a ficar vazia pisca 1 segundo com uma frequência que depende da restante carga de bateria, sendo que se estiver prestes a ficar descarregada o LED acende apenas por breves instantes. Quando a bateria está tão fraca que nem acende o LED, começa a soar um alarme. O interruptor S2 funciona como bloqueio para crianças quando está fechado. Neste caso não estão disponíveis as opções de menu Edit Program <x> e Edit <color>. Para configurar uma das cores, selecciona-se Edit <color>, carrega-se em ENTER e usa-se os codificadores rotativos para configurar o vermelho, verde e azul entre 0 e 100% com passos de 1%. Listagem 1 fade_step_red = current_red_value - next_red_value; fade_step_green = current_green_value - next_green_value; fade_step_blue = current_blue_value - next_blue_value; fade_step_red = fade_step_red * 100; fade_step_green = fade_step_green * 100; fade_step_blue = fade_step_blue * 100; fade_step_red = fade_step_red / fade_time; fade_step_green = fade_step_green / fade_time; fade_step_blue = fade_step_blue / fade_time; Listagem 2 tmp_red_value = fade_tmr * fade_step_red; tmp_green_value = fade_tmr * fade_step_green; tmp_blue_value = fade_tmr * fade_step_blue; tmp_red_value = tmp_red_value / 100; tmp_green_value = tmp_green_value / 100; tmp_blue_value = tmp_blue_value / 100; red_value = next_red_value + tmp_red_value; green_value = next_green_value + tmp_green_value; blue_value = next_blue_value + tmp_blue_value; Carregue em ENTER novamente para guardar a nova configuração ou BACK para voltar ao menu sem gravar a nova configuração. A configuração de um programa é feita seleccionando Edit Program <x> e carregando em ENTER. Selecciona-se a cor com o ENC1, o tempo de paragem com o ENC2 e configura-se o tempo de transição com ENC3. (110406) Artigo original: Ambience Lighting Controller January & February 2013 Internet [1] www.elektor.com.pt/110553 [2] www.elektor.com.pt/110406 www.elektor-magazine.pt | Julho - Agosto 2013 | 33 •Rádio & TV Excitador para FM banda larga Saída de 130 mW Sjef Verhoeven, PE5PVB (Holanda) A maioria dos transmissores de rádio dos amadores não são projectados para transmitir sinais de áudio de alta-fidelidade em banda larga. Contudo, o excitador de FM de banda larga (430-440 MHz) descrito aqui cumpre essa tarefa, com uma largura de banda de áudio de de 20 Hz a 100 kHz. Características técnicas • Gama de frequências de 430–440 MHz em passos de 25 kHz. • Largura de banda de áudio de 20 Hz a 100 kHz. • Tempo de sincronização PLL inferior a 1 s. • Tensão de alimentação de 12–15 V. • Consumo de corrente aproximado de 250 mA para uma potência de saída de 130 mW. Já quase toda a gente no mundo brincou em alguma altura com walkie-talkies. Estes são estupendos para ter agradáveis conversas sem fios, mas as ligações de rádio deste tipo sofrem de uma pobre qualidade e do facto de apenas uma pessoa só poder falar de cada vez. Os radioamadores autorizados têm comunicado desta forma 34 | Julho - Agosto 2013 | www.elektor-magazine.pt desde os primeiros dias. Com a escolha correcta dos equipamentos, frequência e antena, os radioamadores podem ligar-se uns com os outros no mundo inteiro de várias formas. Mas que opções existem se quiser estabelecer uma ligação com uma boa qualidade de som? Neste artigo descrevemos o projecto de um excitador FM de áudio de banda larga completo para a banda de 430-440 MHz. O sinal de saída não é muito diferente do que pode encontrar numa radiodifusão de FM VHF, o que significa que a banda de áudio é aproximadamente de 20 Hz a 100 kHz. Graças a esta largura de banda de áudio, é bastante fácil estabelecer sessões de conversação áudio com vários transmissores e relativamente baixa distorção. Isto é muito seme- Excitador para FM banda larga lhante ao Teamspeak ou outras ferramentas de conversação, mas sem jitter, distorção devido aos codecs, ecos e atrasos. Com as antenas certas, a altura da antena e possivelmente um amplificador, pode facilmente efectuar ligações com boa qualidade de serviço (QoS) a uma distância de algumas dezenas de quilómetros, ou até mesmo 350 quilómetros com as condições climatéricas adequadas. Uma licença de radioamadorismo da classe adequada é necessária para operar este excitador. Pode obter essa licença nas autoridades locais, em Portugal essa entidade é a Anacom. Entre outras coisas, isto significa que a utilização deste transmissor não se destina a radiodifusão de música para qualquer tipo de audiência. Normalmente, são administrados exames técnicos para licenças de radioamadorismo. Em muitos países, alguns voluntários fornecem um pequeno treino sobre questões relacionadas com a emissão de rádio. No site da Anacom pode encontrar toda a informação relevante sobre esta questão. Para receber o sinal pode usar um receptor com capacidade para receber o sinal de FM de banda larga. Um conversor que converte a banda de 430-440 MHz para uma faixa de frequências mais baixa na gama dos 90-100 MHz, é frequentemente usado. Assim, é possível usar depois um simples rádio FM normal para escutar o sinal. Dicas para construção • Utilize apenas condensadores cerâmicos, mesmo para valores acima de 1 µF. • A maior parte das resistências e condensadores são do tipo SMD 0805, mas existem alguns 1206. • Se fizer a sua própria placa de circuito impresso, garanta que tem vias suficientes. Isto é particularmente importante em torno da secção de RF. • Utilize bobinas sem núcleo de ferrite. Isto é especialmente importante no andar de oscilação, uma vez que a ferrite é uma conhecida fonte de ruído. • Instale todo o circuito dentro de uma folha de metal para blindagem. A placa de circuito impresso deve ser desenhada com dimensões standard. • Primeiro, prepare a folha de metal para blindagem (furos para DC, conectores de áudio e RF). Depois, monte a placa na caixa de metal e solde-a em volta em ambas as faces. Monte os componentes apenas depois de a placa estar totalmente fixada na caixa metálica. Diagrama do circuito Optámos por usar um oscilador Colpitts para gerar o sinal de RF para o excitador. Este é construído em torno de um MOSFET de dupla porta (T2). Este oscilador funciona à frequência de transmissão. Num oscilador Colpitts, a frequência é determinada por um circuito ressonante paralelo que consiste num divisor de tensão capacitivo e uma bobina. Neste caso os condensadores C23 e C25 formam o divisor de tensão e L4 corresponde à bobina. A bobina consiste num pequeno pedaço de cabo coaxial fino, que funciona essencialmente da mesma forma que uma stripline. A modulação devido à vibração mecânica pode ser evitada usando um cabo relativamente flexível, como o RG174. Para que o circuito oscile é necessária existir realimentação, sendo esta fornecida pela resistência R25. Muitos circuitos osciladores Colpitts utilizam uma realimentação directa sem resistência, mas a experiência mostra que um pouco de resistência torna o circuito mais estável, com uma frequência mais limpa. O condensador ajustável TR2 serve para permitir ajustar • Alimente o circuito a partir de uma fonte de alimentação limpa de ruídos espúrios. Algumas fontes de alimentação comutadas possuem componentes de frequência na tensão de saída e que são perfeitamente audíveis como ruído ou zumbido. Uma fonte de alimentação convencional é sempre preferível. www.elektor-magazine.pt | Julho - Agosto 2013 | 35 •Rádio & TV VR4 UA78M05IDCY +5VVR4 +5VVR3 220n R41 33R +5VVR4 C45 P2 470R 14 2 1 17 4 3 18 6 5 1 16 VDD RA0 8 7 10 9 12 11 13 14 13 12 16 15 11 18 17 10 20 19 9 MCLR RA1 RA6 RA2 RA3 IC4 RA7 RA4 16 4 12 15 13 2 2 3 1 PIC16F628A -I/P RB7 RB6 RB5 8 100n 1k R43 R35 470R K1 R39 R42 LED1 10k 100n R48 R37 10k 100n 4k7 C44 4k7 C43 4k7 R38 R36 C42 4k7 +12V DC IN RB4 RB0 RB3 RB1 RB2 5 C47 C46 220p 220p 3 11 6 10 7 9 VDD X0 14 X X1 IC5 Y0 15 Y Y1 Z0 4 Z Z1 CD4053BPW RG3 A B C VEE VSS 7 8 VSS 6 INH 5 VR1 UA78M05IDCY +5VVR3 R19 +5VVR1 TP3 +12V 100n 220n VR3 L78L05ACUTR 1 8 2 7 3 6 4 5 BCP54 T5 PA MODULE T4 TP4 C50 +12V +9VVR2 R45 0R C13 R46 0R VR2 L78L09ACUTR C16 R44 2k2 0R 2k2 +12V CON2 TP8 BC857 +5VVR3 R47 100n C49 C17 C36 C38 C39 C40 10u 220n 10u 100n 100p P3 10k 100n +5VVR3 +9VVR2 R21 33k 120nH 10u R29 C30 L11 120nH 10n R24 100k 4p7 0R R12 100k R13 L2 330nH 10u C10 R6 100n 2k2 R3 82k L4 R17 220R 25p R1 270R R2 270R 4 5 6 7 Figura 1. Diagrama esquemático da placa do circuito principal com o microcontrolador e a secção de RF. 36 | Julho - Agosto 2013 | www.elektor-magazine.pt CP Q1 VCC IC1 TP7 DRIVE RF1 Q2 RF2 SDA 4p7 SCL P3 P7 P4 P6 270R 22k 270R BZX84-B10 TP9 16 C8 13 L3 100p 14 SP5511S P0 11 VEE 15 TP6 R33 PMBT3904 1u 100n P5 10 9 8 C7 1n 1n C18 82p R16 C6 22R R10 R14 R18 150R +5VVR1 3 R31 R28 C4 1k TR1 C41 330nH R26 4p7 T1 12 3.2MHz L8 C25 6p VD RF OUT GND R5 C9 2u2 2 RF IN BF998 +12V D1 220n 1 TR2 D4 C2 X1 10R 120nH GND R25 Coax 10k C12 C1 4R7 BF998 8p2 1k TP1 R32 C24 C15 R8 IC3 ADA4743 56p 1k 10p D3 T3 1k C20 5p6 56p 33k D2 R11 680R 470R P1 C19 L12 TP5 C37 100p T2 220R 330nH 10u R9 25V R40 R15 L1 300R 100p 82R C11 R7 4k7 C33 C31 150R R4 D2...D4 = BB135 100p 100k LF IN R20 C14 10n 22k C22 JMP1 10n R30 R27 22k C5 R23 R34 C34 47R 100R L7 33k R22 C28 120nH IC2 MGA31189 1 3 RF IN RF OUT GND 2 C21 100p C23 C26 C29 10p 100n 2u2 TR3 L5 L6 L9 10p L10 6nH8 27nH 27nH 6nH8 C27 C32 C35 8p2 12p 8p2 RF OUT 120267 - 11 Excitador para FM banda larga LCD1 VSS VDD VL RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 LED+A LED-C 2 x 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +5V +5V LED2 R49 470R LOCK 19 17 15 13 11 9 7 5 3 1 S1 LED3 K1 C52 C53 C51 100n 100n 100n PWR 20 18 16 14 12 10 8 6 4 2 o oscilador para a gama frequências pretendida. Os díodos D3 e D4 são varicaps controlados por uma tensão de controlo. Isto permite efectuar uma sintonia da frequência electricamente numa gama de aproximadamente 30 MHz. Como este circuito é um excitador FM, precisamos e conseguir modular a frequência do sinal da portadora de acordo com a amplitude e frequência do sinal de áudio. Isto é efectuado com a ajuda de um díodo varicap D2. Variando a tensão neste díodo variamos a capacidade do circuito LC, o que causa uma varação na frequência. Para manter a modulação o mais linear possível, optámos por usar díodos varicap diferentes para a sintonia e modulação. Para evitar grandes diferenças na profundidade de modulação entre as frequências mais baixas e as mais altas, o díodo varicap para a modulação é alimentado por um divisor de tensão de alta impedância que consiste em R11 e R12, com C12 adicionado para melhorar a estabilidade do circuito. A bobina L1 previne a excessiva carga capacitiva no circuito de modulação, que poderia causar com que o oscilador deixasse de funcionar. O condensador C14 efectua o desacoplamento HF para a entrada de modulação e adicionalmente garante que o caminho superior da modulação não afecta a frequência ressonante do circuito oscilador. Finalmente, os componentes C5, R4, R7, R8 e R9 efectuam a pré-ênfase. Se necessário, pode aumentar o valor de R8 para reduzir a atenuação da pré-ênfase. O projecto foi desenhado para uma pré-ênfase de 50 µs. Um andar tampão na entrada do oscilador, também implementado usando um MOSFET de porta dupla (T3), mantém a carga na saída do oscilador o tão uniforme quanto possível de modo a manter a estabilidade do sinal RF. O sinal RF, com uma potência de aproximadamente 1 mW, é ligeiramente atenuado para ter uma boa adaptação ao próximo andar de amplificação. Nos anos mais recentes, o mercado tem sido inundado por uma enorme variedade de circuitos integrados monolíticos para micro-ondas (MMICs). Estes dispositivos são especificamente projectados para ampliar sinais na gama de frequências das micro-ondas. A vantagem principal destes circuitos integrados é que eles facilitam a amplificação dos sinais de RF sem ter de usar circuitos sintonizados. Isto evita a complexidade dos circuitos, reduz o espaço ocupado na placa de circuito impresso, e reduz também consideravelmente o custo final de todo o circuito. Para o nosso circuito optámos por usar MMICs da Avago ROTARY ENCODER +5V Technologies, em parte porque se adequam perfeitamente bem ao nosso circuito e por outro lado porque é importante escolher MMICs que estão facilmente disponíveis no mercado. O primeiro MMIC IC3 (ADA4743) amplifica o sinal RF para aproximadamente 40 mW. Este sinal é atenuado e depois aplicado ao MGA31189 (IC2). Este MMIC tem uma potência de saída nominal de 250 mW. Contudo, neste circuito limitámos a tensão de alimentação de IC2 a um máximo de 4,2 V (fornecida pela combinação de T4 e T5), pelo que a potência de saída vai ficar um pouco mais abaixo, cerca de 120 a 130 mW. Este é um bom nível de potência para excitar um amplificador final, que em muitos casos será um módulo RF de potência. Para ajustar a frequência desejada e mantê-la o mais precisa possível é usada uma PLL. Isto envolve passar a frequência de transmissão por um divisor de frequência e comparar o sinal de saída com um sinal de referência. Se existir alguma diferença, uma tensão de controlo tenta ajustar a frequência para reduzir essa diferença até que o sinal de RF dividido e o sinal de referência estejam em fase. No nosso circuito esta tensão de controlo é aplicada aos díodos varicap (D3 e D4) depois de filtrada por um filtro. O filtro é essencial e deve ser dimensionado para evitar que a PLL responda muito rapidamente. Isto porque o oscilador é modulado em frequência, onde a frequência deve variar de acordo com o sinal de áudio aplicado. Se a PLL res- 120267 - 12 Figura 2. A secção do controlo de operação inclui um codificador rotativo e um módulo LCD de 2x16 caracteres. www.elektor-magazine.pt | Julho - Agosto 2013 | 37 •Rádio & TV Figura 3. A placa de circuito impresso tem componentes em ambas as faces. ponder muito rapidamente, a qualidade de som do sinal modulado será afectada. É assim muito importante encontrar um bom equilíbrio entre a máxima largura de banda (aproximadamente 180 kHz) e estabilidade da frequência. Neste circuito usámos um SP5511 ou TSA5511 (IC1) para a PLL. Estes dispositivos estão facilmente disponíveis no mercado e a preços competitivos. Os circuitos integrados da PLL foram originalmente projectados para serem usados em circuitos de sintonia de televisão (incluindo sintonizadores de satélite). São muitas vezes vistos em televisores de modelos mais antigos, gravadores de vídeo ou receptores de satélite. O incremento na frequência mais pequeno que esta PLL consegue gerar é 50 kHz com um cristal de 3,2 MHz. Contudo, o que nós pretendemos neste circuito é um passo de 25 kHz. Isto pode ser facilmente obtido usando a segunda harmónica do sinal RF como entrada da PLL. Este sinal é retirado entre IC3 e IC2 usando uma bobina de acoplamento. A PLL é controlada por um microcontrolador PIC16F628A (IC4) através de um barramento I²C. Uma grande desvantagem desta PLL é que gera algum acoplamento entre o barramento I²C e o circuito de excitação e carga. Isto resulta num som com zumbido no sinal de áudio com a frequência de relógio do barramento I²C. A intenção do autor era poder não só controlar o excitador mas também o amplificador de potência (se usado), ou qualquer outro tipo de hardware, através do barramento I²C. Os dados para isto, que em todo o caso não se destinariam à PLL, também seriam audíveis. No projecto 38 | Julho - Agosto 2013 | www.elektor-magazine.pt actual este problema foi resolvido colocando um HEF4053 (IC5) entre o barramento I²C e o circuito integrado da PLL. Quando os dados do barramento I²C não se destinam à PLL, a ligação I²C para a PLL é bloqueada. Esta é uma solução muito barata e eficiente. O excitador é controlado usando um codificador rotativo com um botão de pressão integrado. Em conjunto com dois LEDs e o módulo LCD (Figura 2), está localizado numa placa separada ligada a K1. Em operação, simplesmente selecciona a frequência de transmissão e depois pressiona o codificador rotativo para confirmar. A respectiva informação é enviada para a PLL, e o estado da PLL lido. Quando a PLL indica que a diferença de fase entre o sinal RF dividido e o sinal de referência é zero, esta informação é enviada para o microcontrolador. O microcontrolador ilumina então o LED2 (indicador de sincronismo da PLL). Liga também a tensão de alimentação do MMIC final, de modo que o excitador apenas coloque o sinal de RF na saída quando estiver a funcionar à frequência de transmissão pretendida. A tensão de alimentação do MMIC final pode ser ajustada com o potenciómetro P3, o que permite reduzir a potência de saída para o nível desejado até aproximadamente 1 mW. Isto faz com que este excitador seja adequado para usar com uma grande variedade de amplificadores de saída de potência. O conector de 8 pinos CON2 pode ser usado para ligar um dispositivo externo a controlar pelo microcontrolador, como, por exemplo, um amplificador de saída. Quando o autor começou a trabalhar neste projecto, não estava especialmente familiarizado com a programação de microcontroladores. Começou por usar o PIC Simulator IDE. Este é um ambiente de desenvolvimento de software muito simples que utiliza a sua própria versão Basic. A boa coisa deste software é que inclui um simulador completo, pelo que consegue simular o software antes de o carregar num microcontrolador. A desvantagem consiste nas opções de cálculo, que são muito limitadas. Para evitar tornar as coisas muito complicadas, o autor optou por trabalhar com outros dois contadores diferentes. Um Excitador para FM banda larga desses contadores trata da leitura de frequência, enquanto que o outro efectua a divisão. Por outras palavras, se aumentar a frequência de transmissão no LCD em 25 kHz, o contador responsável pela divisão é incrementado de uma unidade. Nos extremos superior inferior da gama de frequências coberta pelo excitador (430 MHz e 440 MHz), o contador para a divisão é carregado com um valor predefinido. Toda a informação necessária para este projecto (desenhos das placas de circuito impresso, lista de componentes, ficheiros com o código fonte e hexadecimal para o microcontrolador) está disponível no site da Elektor [1]. Figura 4. Em conjunto com o microcontrolador e vários conectores, uma pequena porção de cabo coaxial que actua como bobina para o oscilador é montado na face inferior da placa. Funcionamento O excitador é controlado usando um único codificador rotativo com um botão de pressão integrado. O leitor selecciona uma nova frequência rodando o botão do codificador. Quando faz isto, aparece a palavra TUNE no canto esquerdo do mostrador. Quando pressiona o botão do codificador, a nova frequência é armazenada em memória e o excitador sintonizado para esta nova frequência. Quando a PLL estiver sincronizada, o LED sincronismo acende e o andar de saída é ligado. Se a PLL não conseguir sincronizar, o LED de sincronismo permanece apagado e á apresentada a indicação PLLERR. Se a PLL não receber nenhuns dados do barramento I²C, é apresentada a indicação I2CERR. Em ambos os casos o microcontrolador vai continuar a tentar configurar a PLL até que esta obtenha o sincronismo. Construção Quando construir circuitos de RF, especialmente em UHF, é muito importante manter todas as ligações o mais curtas possível. O nível de massa deve também ser mantido o mais possível ao nível de massa idêntico em todo o plano de massa. É por isso que existem tantas vias de ligação de um lado para o outro na placa de circuito impresso no plano de massa (Figura 3). Se quiser fazer a sua própria placa de circuito impresso, é muito importante incluir estas vias de passagem. A placa foi desenhada para caber dentro de uma caixa de folha de metal com uma dimensão de 74 x 148 mm, disponível comercialmente. A placa deve ser soldada à folha de metal da caixa ao longo de todas as extremidades no topo, dos lados e no fundo. Isto garante uma óptima ligação à massa. Uma caixa de fabrico caseiro feita de material plástico não é adequada para este circuito. O procedimento de construção usado pelo autor é o seguinte: primeiro, fixe a placa de circuito impresso à caixa de folha de metal e instale no chassis todos os componentes necessários. É recomendado um conector SMA para a ligação da antena. Se usar um conector sem ser SMD, este pode facilmente ser soldado à caixa. Isto também elimina a necessidade de usar parafusos. Os conectores para a tensão de alimentação e a entrada de áudio podem ser montados em qualquer localização que quiser. Um conector do tipo RCA é uma boa escolha para a ligação de áudio. Todos os componentes SMD estão localizados num dos lados da placa de circuito impresso, enquanto que as três barras de pinos, o pequeno cabo coaxial e o microcontrolador estão na outra face. A Figura 4 mostra uma visão detalhada da stripline. Esta consiste num pequeno cabo coaxial flexível com cerca de 4 cm de comprimento, com ambas as extremidades soldadas à placa. Numa das extremidades o condutor central e a malha são unidos e soldados à placa de circuito impresso. Na outra extremidade a malha deve ser dividida em duas e soldada à massa como se mostra na foto, com o condutor central soldado ao terminal entre esses dois pontos. Depois disso deve montar o circuito secção a secção. Comece pela secção do oscilador. Verifique que oscila na gama dos 400-500 MHz. Pode usar um frequencímetro ou um analisador de espectro para isso. Depois, monte os componentes para o andar tampão e os dois andares amplificadores MMIC. Forneça uma ligação temporária para a fonte de alimentação para o último MMIC de www.elektor-magazine.pt | Julho - Agosto 2013 | 39 •Rádio & TV Figura 5. A placa de controlo é muito simples e fácil de construir. Contudo, note que o conector de 2x10 vias para a ligação à placa principal deve ser montado na parte traseira. forma que também possa funcionar. Verifique que a secção de RF funciona recorrendo a milivoltímetro de RF ou outro instrumento adequado. Se a secção de RF funcionar correctamente, pode então montar a PLL e o microcontrolador. Utilize um suporte de 18 pinos para o microcontrolador, e programe o microcontrolador antes de o inserir no suporte. Os controlos são localizados numa placa de circuito impresso separada como se mostra na Figura 4. A montagem dessa placa é muito simples e directa. Todos os componentes (excepto um) são montados na face dos componentes. Pode usar um conector de 16 pinos para ligar o mostrador LCD. Na face inferior da placa de circuito impresso, monte um conector de 20 pinos para ligar a K1 na placa de circuito impresso principal usando um flat-cable de 20 vias. Ajuste Ligue o excitador (com o mostrador LCD) à tensão de alimentação. Ajuste P2 para obter o contraste pretendido para o LCD. Depois, ajuste a frequência para 435 MHz. Usando uma chave de ajuste cerâmica ou de plástico, rode lentamente TR2 até a frequência de transmissão ser de 435 MHz. Meça a tensão em TP1 e rode TR2 até a tensão medida ser de aproximadamente 6 V. Agora pode usar um frequencímetro ou analisador de espectro para ajustar a frequência de transmissão para exactamente 435,0 MHz com TR1. 40 | Julho - Agosto 2013 | www.elektor-magazine.pt Em seguida, ajuste P3 para uma saída de potência RF máxima. Em seguida tem que ajustar o filtro elimina-banda. É necessário um analisador de espectro para isso. Meça a segunda harmónica a 870 MHz e ajuste TR3 para uma potência de saída mínima. Se não tiver um analisador de espectro, pode usar um milivoltímetro RF e ajustar TR3 para obter uma saída de potência máxima. Contudo, deve ter em mente que neste caso a filtragem não será a óptima. Isto tem que ser depois afinado no amplificador de potência ligado ao excitador. Verifique que o excitador funciona correctamente tanto para 430 MHz como ara 440 MHz. Coloque um jumper na posição pré-ênfase e ligue uma fonte de áudio, como, por exemplo, um leitor de CD. Depois ajuste P1 para uma amplitude de saída de áudio óptima sem distorção. O excitador de FM está agora pronto para usar. Percebemos que alguns radioamadores possam não ter muita experiência na soldadura de componentes SMD à mão. Para quem tiver interesse, o autor está disposto a montar e ajustar várias placas de circuito impresso a um preço razoável. Se estiver interessado, por favor, contacte directamente o autor em [2]. (120267-I) Artigo original: Wideband 70-cms FM Exciter January & February 2013 Internet [1] www.elektor.com.pt/120267 [2] [email protected] Pontos de ajuste P1 Profundidade de modulação (áudio) P2 Contraste do LCD P3 Potência de saída TR1 Sintonia fina (oscilador de referência) TR2 Sintonia larga (oscilador RF) TR3Filtro elimina banda Notch segunda harmónica Pontos de teste TP1 Tensão de controlo PLL TP2 Sinal de modulação depois de pré-ênfase TP3 Tensão do oscilador (9 V) TP4 Tensão do andar de controlo (5 V) TP5 Tensão do andar de saída (0–4 V) TP6 Saída do divisor de frequência PLL TP7 Frequência de referência PLL Amplificador de transcondutância Amplificador de transcondutância Entrada de tensão, saída de corrente Um amplificador de transcondutância é um amplificador diferencial especial onde a corrente de saída depende da diferença das tensões de entrada. Com a ajuda de um AD844, fabricado pela Analog Devices, torna-se simples criar um circuito deste tipo. Um amplificador de transcondutância como este pode ser usado como um andar amplificador versátil para uma grande variedade de funções de medição, tal como vai ver neste artigo. O ampop AD844 foi projectado principalmente para utilizar em aplicações com realimentação de corrente, mas graças à sua estrutura pode também ser usado para configurações de malha aberta como fonte dependente. Por causa disto, é muito simples usar este ampop como uma fonte de corrente controlada por tensão (amplificador de transcondutância), que pode ser usado em vários aspectos de funções de medida. Este artigo descreve o funcionamento interno do AD844, assim como o projecto e construção de um pré-amplificador usando este circuito integrado e alguns exemplos da sua aplicação. Funcionamento do AD844 Na Figura 1 apresentamos um diagrama funcional do AD844. O buffer B1 é usado para obter um entrada positiva (+) de alta impedância e uma entrada negativa (–) de baixa impedância. A corrente Iin gerada no circuito interno está também disponível no pino externo TZ, a saída do conversor V/I (também designada como trans- condutância). A corrente Iin no pré-amplificador serve para controlar componentes ou malhas externas. É colocada uma tensão na saída TZ através de B2. As resistências R1 a R4 e os condensadores C1 a C3 existem para compensar o comportamento não ideal do ampop. Os valores apresentados no diagrama são provenientes da documentação da Analog Devices [1]. AD844 R1 C1 2p 10M R3 B1 C2 (Holanda) C3 3M 4p5 B2 I in Wim de Jager I in R4 15R 2p R2 Vo TZ 50R 120433 - 11 Figura 1. Diagrama funcional do AD844. www.elektor-magazine.pt | Julho - Agosto 2013 | 41 • Teste & Medida R6 R9 R11 22k 1k5 4R7 P1 R8 D1 100R 3V9 R1 100k NEG. IN 220n 2 1k 3 1k R4 O projecto do pré-amplificador (Figura 2) inclui um circuito que fornece uma compensação da corrente em repouso, um circuito de corte para proteger a entrada positiva (POS.IN) e um detector de sobrecarga para a tensão de saída (Vo). Para todas as aplicações apresentadas neste artigo a entrada negativa (NEG.IN) encontra-se ligada à massa. O sinal de entrada POS.IN está ligado à entrada positiva do AD844 através de R2. 1N4148 470n R3 Projecto do pré-amplificador C2 R2 POS. IN +15V D2 C1 100R depende de R3||C3, que corresponde a uma frequência de corte a 3 dB de f3dB ~ 12 kHz para os valores apresentados no circuito. IC1 7 4 5 18k Vo R o = 16 6 AD844 ZTZ = 6M // 10p TZ D3 R i = 68 D6 D8 1N4148 R7 D4 100R 3V9 D10 C3 220n 3V9 D5 D7 R5 R10 R12 22k 1k5 4R7 D5...D8 = 4x Figura 2. Diagrama do circuito completo do amplificador, usando um AD844. D9 BAT43 –15V 120433 - 12 Quando é aplicada uma tensão diferencial Vin entre o terminal positivo e negativo, a função de transferência é dada por Iin/Vin = 1/R2 = 20 mA/V. Quando não existe nenhuma carga ligada a TZ, Ao = R3/R2 = 60.000. A largura de banda IC1 78L15 D2 TR1 +15V 1N4005 Figura 3. A fonte de alimentação utiliza um adaptador AC. Através de uma rectificação de meia-onda obtemos uma fonte de alimentação simétrica a partir de um único enrolamento de secundário. 12V...15VAC C2 230VAC (115VAC) 42 | Julho - Agosto 2013 | www.elektor-magazine.pt 470u 35V C1 D1 1N4005 470u 35V 79L15 IC2 –15V 120433 - 13 A tensão máxima permitida entre os terminais de entrada é 5 VDC e o circuito de corte constituído por D1-D4, R9 e R10 protege a entrada contra uma sobrecarga. Escolhemos díodos de silício do tipo 1N4148 para D2 e D3. Não foram escolhidos díodos Schottky para este caso porque estes têm uma corrente inversa relativamente grande, o que levaria a um desvio de tensão DC não desejado. Quando é usada uma resistência de ¼ W para R2, a tensão máxima de entrada pode ser 20 VDC. É também possível usar uma resistência de filme de metal de 1 kΩ/2 W, caso em que seria possível ter 50 VDC. Grandes valores para R2 têm um impacto negativo na resposta em frequência. Quando é usado um condensador de acoplamento, o circuito de corte desempenha um papel importante para impedir que se registe qualquer dano ao AD844, devido ao pico de corrente que ocorre quando o condensador é carregado. Foi escolhido um valor de 1 mA/V para a transcondutância, o que leva a uma resistência R3 = 1 kΩ. A resistência R4 compensa o efeito de Ri. Com um valor de 1 kΩ a corrente de entrada para uma tensão de 5 VDC é de 5 mA, o que corresponde ao valor máximo de acordo com as especificações do AD844. Com esta configuração o AD844 funciona de forma óptima. A resistência de entrada é determinada principalmente por R1. A corrente em repouso da entrada positiva do ampop gera uma tensão aos terminais de R1 de 10 mV quando a ligação POS.IN está em aberto. Como o desvio do ampop é muito pequeno, pode ser útil compensar o efeito da corrente de repouso em certas aplicações (acoplamento AC ou fontes de alta impedância). Como a direcção da corrente de repouso pode variar devido ao efeito das tolerâncias nos circuitos com- Amplificador de transcondutância plementares, a gama de ajuste do circuito em torno de P1 foi projectada para se situar entre -23 mV e +23 mV. As resistências R7 e R8 garantem um caminho de baixa impedância entre o cursor de P1 e a massa. Quando a entrada POS. IN é excitada por uma fonte de baixa impedância não é necessário efectuar nenhum tipo de compensação. Este circuito não é adequado para compensar o desvio interno do AD844. TZ corresponde à saída da fonte de corrente controlada por tensão assim como entrada para o buffer B2 interno da Figura 1. Na saída TZ pode ligar qualquer tipo de componente (também semicondutores) ou malha. Uma vez que não existe qualquer realimentação não existem quaisquer problemas de estabilidade. A impedância ZTZ introduz um erro na medição, mas o valor deste erro é muito pequeno para a maioria das aplicações. A tensão em TZ(Vo) é fornecida pelo buffer B2. Com a ajuda do circuito constituído pelos díodos D5 a D10 é acrescentado um detector de sobrecarga. A tensão V o é rectificada através de um rectificador de onda completa implementado pelos díodos D5 a D8 (são usados díodos Schottky devido à sua baixa tensão de condução directa e o seu bom desempenho para altas frequências), sendo que a saída é depois aplicada ao circuito série do díodo zener D9 e LED D10. Quando o LED se acende significa que a distorção do sinal de saída está acima de 0,5% devido ao limite máximo de saída é excedido; quando o LED acende com uma luz muito brilhante significa que o nível de distorção é bastante severo. Os filtros R11/C2 e R12/C3 são importantes para a estabilidade do AD844. A Analog Devices recomenda que estes filtros sejam incluídos em qualquer projecto. tar um problema. Os reguladores de tensão IC1 e IC2 fornecem uma tensão de saída estável e garantem também uma protecção contra sobrecargas (máximo de 100 mA) e curto-circuitos. Figura 4. Interior do protótipo construído pelo autor. Implementação A Figura 4 mostra a caixa usada no protótipo, esta é feita de alumínio com uma placa de cobre estanhado no interior. A pequena camada estanhada desta placa é usada como plano de massa para soldar as ligações de massa. Para as entradas e saídas foram usados conectores BNC, com conectores do tipo banana para as ligações de TZ. O suporte para o ampop AD844 está montado numa pequena placa que pode ser produzida facilmente pelo leitor. Os díodos D5 a D8 foram soldados na placa onde foi montado o suporte de circuito integrado. P1 consiste num potenciómetro cermet de 15 voltas, que pode ser usado para ajustar com precisão a compensação em repouso. Os transístores bipolares complementares no interior do AD844 têm uma frequência de transição fT elevada, o que faz com que a disposição dos fios e pistas tenha que ser desenhada com especial cuidado para prevenir eventuais oscilações parasitas. O plano de massa em Fonte de alimentação Para a fonte de alimentação usámos um adaptador de rede (Figura 3). A tensão do secundário é de 12 VAC/500 mA. Quando o circuito está apenas ligeiramente carregado, como o caso, a tensão do secundário do transformador sobe para cerca de 15 VAC, o que é mais do que suficiente para esta aplicação. De modo a obter uma fonte de alimentação simétrica de ±15 V a partir de um único enrolamento de secundário foi necessário utilizar uma rectificação de meia onda. Com a utilização de condensadores electrolíticos de filtragem de valor muito elevado isto não deverá represen- 0.60Vrms/div 10kHz Top: 6.00Vrms/div Phase: +/- 180deg 36deg/div 120433 - 14 1MHz Figura 5. Medição da impedância de uma bobina, efectuada com um osciloscópio USB com um gerador de funções integrado. 0,6 V/div corresponde a 6 kΩ/div, com o máximo de 6 V a corresponder a 60 kΩ. www.elektor-magazine.pt | Julho - Agosto 2013 | 43 • Teste & Medida carga) para um valor em que a tensão em TZ seja também cerca de 500 mV. Para esta frequência o valor do ganho é 1 pelo que é possível calcular o valor de C usando a fórmula R = 1/ωC, onde obtemos C = 1/ωR. –5V D1 BAT43 T1 TZ BD139 R1 Figura 6. Circuito para efectuar medidas num transístor NPN. 120433 - 15 VS 1R conjunto com pequenas ligações são a melhor garantia para um bom desempenho nas altas-frequências e estabilidade. Medições no pré-amplificador O efeito do desvio interno do AD844 foi medido com um micro-amperímetro, ligado em TZ, quando os terminais de entrada se encontravam curto-circuitados. O valor medido foi de 0,1 µA, o que bastante baixo. Se for necessário, o desvio pode ser ainda mais reduzido usando o circuito de compensação descrito na documentação do AD844. Com a entrada POS.IN em aberto a corrente de funcionamento em repouso da entrada positiva (+) gera uma tensão aos terminais de R1 de 10 mV, o que resulta numa corrente de 10 µA em TZ. Este valor é muito maior do que o valor de desvio pelo que faz sentido incluir o circuito de compensação de funcionamento em repouso descrito aqui no artigo. Com este circuito é possível reduzir a corrente para valores abaixo de 0,1 µA. A resposta AC sem qualquer carga ligada a TZ foi medida para um sinal entrada de 0,5 mV a 500 Hz. O ganho registado foi de 6.000. Como 1 mA/V × RTZ = 6.000, temos que RTZ = 6 MΩ. A frequência de corte a -3 dB situa-se nos 2,5 kHz (ω × RTZ × CTZ = 1, pelo que CTZ = 10 pF). O valor medido para Ri foi de 68 Ω. Para Ro o valor foi de 16 Ω. Medições em condensadores e bobinas Ligue um condensador em TZ e um gerador de onda sinusoidal em POS.IN. Depois ajuste a amplitude para, digamos, cerca de 500 mV e a frequência (de preferência de um valor elevado para um mais baixo para evitar qualquer sobre- 44 | Julho - Agosto 2013 | www.elektor-magazine.pt Como exemplo, se para um condensador ligado o ganho unitário ocorre para uma frequência de 16 kHz, e uma vez que R = R3 = 1 kΩ, então pela fórmula anterior temos para o valor de C 10 nF. Quando usámos um medidor LCR Voltcraft 9036 para medir o mesmo condensador obtemos um valor de 10,47 nF. Para a medição da auto-indutância recomendamos também uma tensão no gerador de cerca de 500 mV. Neste caso, a frequência deve ser ajustada de baixo para cima para evitar sobrecargas. Quando ligámos uma bobina com núcleo toroidal obtivemos o ganho unitário para uma frequência de 56 kHz. Neste caso ωL = R e L = R/ω = 2,84 mH. Quando usámos o medidor LCR obtivemos um valor de 2,86 mH. É também possível calcular a auto-capacidade do enrolamento de uma bobina (Cp) a partir da frequência para a qual ocorre a auto-ressonância. Para esta bobina em particular esta frequência situa-se em 360 kHz. Uma vez que Cp = 1/ω02L, o valor calculado foi 69 pF. Contudo, para obter o valor correcto precisa de deduzir CTZ = 10 pF, o que significa que o valor real é de Cp = 59 pF. Na situação de auto-ressonância a impedância é igual à resistência equivalente paralelo, que pode ser determinada a partir do ganho medido. O valor do ganho é 38, de onde podemos deduzir Rp = 38 × R3 = 38 × 1 kΩ = 38 kΩ. Medições de impedância com o Velleman PCSGU250 O osciloscópio USB PCSGU250 da Velleman contém um gerador de funções integrado. É possível usá-lo como um analisador de circuitos com o software adequado. Com esta combinação é possível criar diagramas de Bode onde o módulo e argumento da função de transferência de um circuito electrónico são apresentados como uma função da frequência. O conversor V/I deste pré-amplificador permite medir o módulo e argumento de uma impedância. Este tipo de medida é chamada por vezes de vector de impedância porque a fase também é medida. Na Figura 5 pode visualizar as características de impedância Amplificador de transcondutância e fase da bobina usada anteriormente. A fase é de aproximadamente 90º para cerca de 200 kHz, o que é de esperar para uma bobina. A 370 kHz podemos ver a auto-ressonância, para a qual é possível determinar a resistência paralelo equivalente. Como a amplitude do gerador é de 100 mV, a escala vertical para o módulo (Y) é 6 kΩ/ divisão. Neste caso, o valor medido para Rp foi de 34 kΩ. Figura 7. Este é o resultado no ecrã do osciloscópio quando se efectuam medições no circuito da Figura 6. Horizontal 1 mA/div, vertical 0,2 A/div. Medições em semicondutores Uma saída de corrente é também útil para medir as características em semicondutores, como os transístores bipolares. Um circuito de medição para um transístor NPN é apresentado na Figura 6. A tensão de alimentação de -5 V no emissor permite ligar a resistência de medição (R1) à massa. A tensão aos terminais desta resistência (1 Ω) é proporcional à corrente do colector. O terminal TZ do pré-amplificador é ligado à base do transístor. A corrente de base é igual a 1 mA/V. O díodo Schottky D1 protege o transístor T1 contra tensões inversas elevadas. O gráfico β foi obtido com um osciloscópio (Figura 7), na vertical temos a tensão aos terminais de R1 e na horizontal a tensão em POS.IN. A escala vertical é de 0,2 V/div, que correspondem a 0,2 A/div para a corrente de colector. A escala horizontal é de 1 V/div que corresponde a 1 mA/div para a corrente de base. Como o sinal em Vs é negativo o modo de inversão (que pode não estar disponível em todos os osciloscópios) foi seleccionado para obter uma apresentação positiva. A partir do gráfico pode determinar que para Ic = 400 mA o ganho de corrente é β = 118. O segundo exemplo é para realizar medições num díodo de zener (Figura 8). A escala horizontal é de 0,5 V/div, o que corresponde a 0,5 mA/div para a corrente que atravessa o díodo de zener. A escala vertical é de 1 V/div, que corresponde à tensão aos terminais do díodo de zener. Para uma corrente de 2 mA a tensão de zener é igual a 3,6 V, o que corresponde exactamente ao que se esperava pelas especificações. Figura 8. Resultado no ecrã do osciloscópio quando se efectuam medições num díodo de zener. Horizontal 0,5 mA/div, vertical 1 V/div. e é igual a 1,6 MHz. As medições confirmaram estes valores. Uma possível utilização para o pré-amplificador consiste em melhorar a sensibilidade de um qualquer equipamento de medida. Buffer O buffer de saída pode também ser usado como um seguidor de tensão independente, com TZ como entrada e POS.IN ligado à massa. A largura de banda é de cerca 10 MHz. A impedância de entrada é igual a ZTZ = 6 MΩ//10 pF e a resistência de saída é Ro = 16 Ω. A tensão de saída máxima é de 5 Vrms com uma distorção THD de 0,7% (para 1 kHz). A corrente de saída máxima é de 80 mADC estando o circuito protegido contra curto-circuitos. Pré-amplificador Pode ser criado um pré-amplificador com acoplamento DC muito facilmente ligando uma resistência de carga (RL) em ZT. Por exemplo, com RL = 10 kΩ o ganho é dado por RL / R3 = 10. A largura de banda pode ser calculada por RL||CTZ (120433) Artigo original: Transconductance Amplifier December 2012 Internet [1] www.analog.com www.elektor-magazine.pt | Julho - Agosto 2013 | 45 •Hardware & Software Domina as FPGAs (3) Contar até 100 com 250k portas lógicas Clemens Valens (Elektor) Da última vez vimos como configurar um projecto ISE para programar o módulo de desenvolvimento FPGA Elektor, utilizando uma aplicação exemplo que faz piscar um LED. Neste artigo vamos ver como configurar uma estrutura de projecto hierárquica, com componentes desenvolvidos por si. Como aplicação exemplo para este artigo, foi escolhido um simples contador cima/baixo com um mostrador LED de 7-segmentos, com dois dígitos. Neste artigo também vamos ver como definir os pinos no módulo directamente no User Constraint File (UCF) sem utilizar a ferramenta PlanAhead. Aqui vamos novamente No ISE Project Navigator abra o projecto “Hello World” utilizado no segundo artigo desta série, e clique em File -> Copy Project…. Introduza um nome para o novo projecto (part3, neste exemplo) e escolha a opção Exclude generated files from the copy, porque vamos gerar tudo desde o início. Tudo o que nos interessa neste ponto é criar um projecto com as configurações correctas 46 | Julho - Agosto 2013 | www.elektor-magazine.pt para o módulo FPGA Elektor. Escolha também a opção Open copied Project, porque pode poupar alguns cliques no rato. Clique em OK e aprecie a imagem que aparece enquanto o ISE prepara o novo projecto, abrindo-o logo depois. Para criar um projecto herárquico, tem de limpar a maior parte dos itens no nível superior. Copie o circuito do nível superior para um novo ficheiro, que aqui se chamou clock. Para fazer isso, clique Domina as FPGAs com o botão direito do rato no símbolo FPGA, no separador Design e seleccione New Source…, depois seleccione Schematic, introduza o nome do ficheiro, clique em Next e depois em Finish. Pode agora utilizar as habituais operações de copiar e colar do Windows para copiar o conteúdo do nível superior para o ficheiro clock. Assegure-se que o marcador CLK_IN, com o respectivo buffer IBUFG, permanece no nível superior, assim como os marcadores LED1_OUT e LED2_OUT (assumindo que fez o trabalho de casa; caso contrário só encontra o LED1_OUT) com os respectivos buffers OBUF e ligações de barramento. No esquemático clock tem agora de adicionar uma etiqueta de E/S para fornecer uma terminação correcta à entrada de relógio que acabou de cortar. Coloque um marcador de E/S, como descrito no segundo artigo desta série, e atribua o nome CLK ao marcador que junta as entradas de clock (C). Mais tarde vai ligar os LEDs no nível superior da mesma forma do que no exemplo “Hello World”. O nosso objectivo é construir um contador cima/ baixo que seja controlado pelo sinal de clock proveniente do componente clock. Para isto não necessitamos do sinal CLR, pelo que podemos ligá-lo directamente ao nível baixo na FPGA, utilizando para isso um pino. Isto pode ser feito de várias formas; foi escolhida a opção que utiliza uma resistência de pull-down para o sinal permanecer utilizável. Pode encontrar a resistência de pull-down na lista Symbols depois de clicar no botão Add Symbol (ou seleccionar o separador Symbols) e depois seleccionando General em Categories. Arraste a resistência de pull-down para o esquemático e coloque-a no marcador CLR. Criar um componente Grave todos os ficheiros que ainda não foram gravados (marcados com um * no ISE). Abra o separador Design e seleccione o ficheiro clock na lista Hierarchy. Se necessário, clique no sinal + junto a Design Utilities, na janela Processes, para abrir o item. Faça duplo clique na entrada Create Schematic Symbol. Posteriormente, depois de o ISE acabar de processar a tarefa, deve ver um grande sinal de visto junto à entrada Create Schematic Symbol. O seu novo componente foi agora adicionado ao topo da lista Categories no separador Symbols. Aí vai ver uma nova entrada com o nome do caminho do projecto, que neste exemplo é <C:\work\FPGA\part3>. Depois de ter seleccionado esta entrada, aparece um componente clock na janela Symbols em baixo, que Figura 1. A versão A do componente clock tem muitas entradas e saídas desnecessárias, que foram removidas para dar origem à versão B. Figura 2. Diagrama esquemático do nosso componente clock. Figura 3. Componente clock no módulo do nível superior. pode colocar no nível superior da forma habitual. Depois de fazer isto analise bem o componente (Figura 1A). Como pode ver, o componente tem muitas entradas e saídas cujos nomes começam com XLXN_. Estas não são necessárias para este projecto, pelo que podemos simplificar um pouco o componente. Remova todas as etiquetas desnecessárias e respectivos fios de ligação no ficheiro clock.sch (Figura 2). Seleccione o separador Design, depois seleccione o módulo clock e coloque-o no nível superior mas com um novo nome (que inclua “clock”). Clique com o botão direito do rato em Create Schematic Symbol na janela abaixo, seleccione Process Properties…, e escolha a opção Overwrite Existing Symbol. Clique em OK, e depois clique novamente com o botão direito do rato em Create Schematic Symbol seleccionando em seguida ReRun. Espere até que o ISE acabe a tarefa, e depois vá a top.sch. Aqui ainda pode ver a versão anterior do símbolo, mas se clicar neste o ISE vai abrir a janela Obsolete Symbols onde pode editar o símbolo. Seleccione clock, clique em Update, e depois clique em OK para fechar a janela. www.elektor-magazine.pt | Julho - Agosto 2013 | 47 •Hardware & Software Figura 4. Contador BCD cima/baixo de 4 bits derivado a partir de um contador binário de 4 bits. Agora o símbolo aparece como na Figura 1B. Ligue o símbolo como apresentado na Figura 3, e depois execute a função Implement Top Module clicando no botão que contém um triângulo verde ou clicando com o botão direito no módulo top. Vão aparecer alguns avisos do tipo Xst:753 no ecrã: WARNING:Xst:753 - “C:/work/FPGA/ part3/top.vhf” line 1962: Unconnected output port ‘Q’ of component ‘CB16CE_MXILINX_top’. Figura 5. O descodificador BCD de 7-segmentos é um circuito combinatório puro. Estes avisos são relacionados com as saídas não ligadas dos componentes presentes no módulo clock. Embora tentemos sempre evitar os avisos, parece que o ISE - ou mais precisamente, XST – não tem nenhuma forma útil de contornar 48 | Julho - Agosto 2013 | www.elektor-magazine.pt estes avisos. Em relação a isto, a Xilinx diz que estes avisos podem ser ignorados se as saídas que não estão ligadas não forem necessárias [2]. Mesmo assim, é um pouco irritante ter um triângulo amarelo junto à entrada Synthesize-XST no separador Design. Felizmente, o resto da implementação só tem sinais de visto verdes. A seguir: gerar um ficheiro de bitstream clicando com o botão direito do rato em Generate Programming File, copiando depois o ficheiro para o cartão SD no módulo FPGA Elektor, como descrito no segundo artigo desta série. Reinicie o módulo FPGA Elektor e, se fez tudo correctamente, vai ver os LEDs a piscar como anteriormente. Se isto acontecer está pronto para continuar a construir o projecto. Caso contrário tem de encontrar o problema e resolvê-lo. Construir um contador BCD As bibliotecas ISE contêm muitos tipos de contadores, mas são todos binários e o que necessitamos aqui é de um contador decimal. Isto significa que temos de o construir. O nosso contador tem de contar em ambas as direcções – para cima e para baixo. Para evitar esforço de projecto desnecessário, vamos basear o nosso trabalho o mais possível em componentes existentes nas bibliotecas ISE. Procurando um pouco encontramos o contador CB4CLED: um contador cima/ baixo de 4 bits com capacidade de carregamento paralelo. Este é o único contador cima/baixo disponível, pelo que vai ter de servir. Este contador conta de 0 a 15 ou de 15 a 0, pelo que temos de modificá-lo para que conte de 0 a 9 ou de 9 a 0. Isto pode ser feito carregando no contador o novo valor inicial quando este atingir o fim da contagem. Por exemplo, quando contar no sentido ascendente e atingir o valor 9, tem de ser carregado o valor 0 no próximo impulso de relógio; e se estiver a contar no sentido descendente e atingir o valor 0, tem de ser carregado o valor 9. Podemos utilizar uma configuração inteligente que retira os valores iniciais do sinal Up/Down. Assim só é necessário um único inversor, como está apresentado na Figura 4 (note os sinais Up e D0-D3). Tem de ser gerado um sinal de carregamento quando o contador atinge o fim de contagem correspondente à direcção de contagem. Foram utilizadas duas portas lógicas AND para detectar os valores finais de contagem 0 e 9. Está disponível uma grande variedade de portas lógicas AND nas bibliotecas ISE, e pode escolher aquelas que Domina as FPGAs têm a quantidade exacta de entradas inversoras e não inversoras. Isto poupa algum trabalho nas ligações. Os dois sinais de carregamento são combinados utilizando uma porta lógica OR para gerar o sinal L. O contador CB4CLED responde a este sinal no próximo flanco ascendente do sinal de relógio C, que é exactamente o que pretendemos. Lembre-se que a saída do contador muda sempre depois do flanco ascendente do sinal de relógio. Nada acontece instantaneamente; existem sempre pequenos atrasos devidos aos tempos de propagação no interior das portas lógicas. No flanco ascendente seguinte do sinal de relógio, o nível activo do sinal L é carregado no flip-flop FDC e o contador CB4CLED carrega o novo valor inicial. Como resultado, o sinal L fica inactivo pouco tempo depois, fazendo com que a saída do flip-flop fique inactiva no próximo impulso de relógio. Consequentemente, aparece sempre um impulso na saída do flip-flop FDC depois de o contador atingir o fim da contagem. Este impulso pode ser utilizado como sinal de relógio para um possível contador seguinte. O flip-flop FDC é mais importante do que possa parecer à primeira vista, porque permite controlar directamente um contador seguinte com o sinal L. Contudo, se fizer isto, o ISE vai gerar uma mensagem de erro durante a implementação: WARNING:PhysDesignRules:372 - Gated clock. Clock net XLXN_116 is sourced by a combinatorial pin. This is not good design practice. Use the CE pin to control the loading of data into the flip-flop. Nesta mensagem, XLXN_116 é o nome do marcador, que depende do circuito. Como indica o aviso, não é recomendado utilizar sinais combinatórios como sinais de relógio em projectos com FPGAs (e em outros circuito lógicos complexos). Por “combinatórios” entendem-se sinais que são inteiramente gerados por um conjunto de operações lógicas (portas lógicas) sem nenhum andar de relógio, e cujos tempos de atraso dependem da quantidade de portas lógicas pelas quais o sinal passa. Estes tempos de atraso podem ser variáveis ou mal definidos, pelo que não há a garantia de que o sinal seja sincronizado pelo sinal de relógio principal. Como resultado, podem ocorrer estados indefinidos (como picos) que podem causar problemas. O sinal L é um sinal combinatório. Pode sincronizá- -lo injectando-o na entrada de um flip-flop que é controlado pelo sinal de relógio principal, o que provoca o desaparecimento do aviso. Depois de acabar o circuito, pode transformá-lo num componente como descrito anteriormente. Figura 6. Contador BCD de um único dígito com saídas para um mostrador de 7-segmentos. Descodificador de 7-segmentos Para juntar ao nosso contador, necessitamos de um descodificador de 7 segmentos com saídas para um mostrador LED de 7 segmentos. Não foi encontrado nenhum nas bibliotecas ISE, pelo que vai ter de construir um. Este tipo de componente é bastante simples, mas volumoso devido às quatro entradas (BCD) e sete saídas. O circuito construído no laboratório da Elektor, construído unicamente com portas lógicas, é apresentado na Figura 5. Outra opção seria utilizar uma look-up table (LUT), mas não foi utilizada esta opção. Este componente pode permanecer puramente combinatório porque não gera nenhuns sinais que necessitem de ser sincronizados pelo sinal de relógio. Desenhe este circuito num novo ficheiro de esquemático e transforme-o num componente. Contador de 7-segmentos Pode agora utilizar os dois componentes que acabou de implementar para construir um novo componente: um contador com um controlador de 7-segmentos integrado. Comece por criar um novo ficheiro de esquemático, e depois arraste o contador BCD cima/baixo e o descodificador de 7 segmentos para este ficheiro. Ligue-os um ao outro como apresentado na Figura 6. As saídas do componente counter_updown_bcd4 não estão distribuídos de forma lógica, o que faz o esquemático parecer desarrumado. Até agora não sei como forçá-los a organizarem-se numa determinada sequência. www.elektor-magazine.pt | Julho - Agosto 2013 | 49 •Hardware & Software É melhor configurar temporariamente esses pinos para níveis lógicos bem definidos. No final, o seu esquemático deve parecer-se com o da Figura 7. Neste exemplo os contadores são controlados a uma frequência de 7,6 Hz (saída de clock Q3), mas pode considerar demasiado rápido. Se assim for seleccione outra saída à sua escolha. A hierarquia no separador Design está completa, com o dispositivo acima do nível superior e os componentes abaixo deste (Figura 8). Editar o ficheiro UCF Figura 7. Diagrama do nível superior do contador cima/baixo de dois dígitos. Depois de acabar o esquemático, pode transformá-lo num componente. Depois disto pode ver que os dois outros componentes são apresentados por baixo do novo componente no separador Design do ISE. A estrutura hierárquica está a tomar forma. Projecto completo Figura 8. Estrutura do projecto hierárquico. Agora que todos os componentes estão construídos, já pode juntá-los no nível superior. Em conjunto com o componente clock, necessita de dois contadores de 7-segmentos. Atribua um OBUF a cada saída que vá ser ligada a um pino da FPGA. Excepto para o sinal CLK, não são necessários buffers para as entradas, mas deve atribuir-lhes etiquetas. Atribua também uma etiqueta à saída CEO não utilizada do segundo contador de 7 segmentos e outra etiqueta ao barramento Q(7:0), para evitar o aparecimento de avisos XST:753 relativos às saídas não ligadas. Também necessita de saber que o ISE liga a pinos da FPGA às etiquetas não ligadas presentes no nível superior. Pode verificar isto utilizando um osciloscópio para testar os pinos não ligados da FPGA. Isto significa que deve pensar bem antes de ligar circuitos “sensíveis” aos pinos da FPGA sem os controlar explicitamente a partir do interior (por exemplo, se pretender fazer isto mais tarde). 50 | Julho - Agosto 2013 | www.elektor-magazine.pt Tudo o que tem de fazer agora é ligar o circuito aos pinos da FPGA. Para isso pode utilizar o ficheiro UCF ligado ao módulo top. Abra o separador Design e, se necessário, expanda a janela top clicando no sinal +. Deve ver agora o item top.ucf. Faça duplo clique neste e espere que o ISE abra o ficheiro. Pode ver agora um simples ficheiro de texto que contém as definições dos pinos atribuídas no segundo artigo desta série. É um pouco caótico, mas não é muito difícil de entender. Cada pino está ligado a um marcador através de uma variável LOC. Naturalmente, o nome do marcador deve estar presente no projecto. “LOC” significa localização, e inclui o número do pino da FPGA. Cada pino também tem um IOSTANDARD, que é sempre o mesmo para o módulo FPGA Elektor: LVCMOS33. Não há distinção entre entradas e saídas. Alguns pinos também podem ter os atributos PULLUP ou PULLDOWN, que se referem a uma das resistências de pull-up ou de pull-down da FPGA. Os marcadores CLK_IN, LED1_OUT e LED2_OUT são sempre as mesmas para o módulo FPGA Elektor, pelo que as pode agrupar no princípio do ficheiro e deixá-las como estão. Os outros marcadores podem ser apagados ou editados, porque são diferentes dos necessários. Pode adicionar comentários começando uma linha com o símbolo #. Quando atribuir os pinos, lembre-se que o pino 37 (pino 13 da FPGA) só pode ser uma entrada. A primeira parte da lista deste exemplo é assim: # Hardwired pins NET “CLK_IN” LOC = P32; NET “CLK_IN” IOSTANDARD = LVCMOS33; NET “LED1_OUT” LOC = P90; NET “LED1_OUT” IOSTANDARD = LVCMOS33; NET “LED2_OUT” LOC = P91; NET “LED2_OUT” IOSTANDARD = LVCMOS33; Domina as FPGAs # 7-segment display 1 NET “DISPLAY1_A” LOC = P15; NET “DISPLAY1_A” IOSTANDARD = LVCMOS33; NET “DISPLAY1_B” LOC = P16; NET “DISPLAY1_B” IOSTANDARD = LVCMOS33; … Implementar o projecto Agora tem tudo o que necessita para gerar um ficheiro de bitstream para a FPGA. Para fazer isto, clique no botão Implement Top Module (leia o primeiro artigo desta série, se necessário) e espere até que o ISE termine a tarefa. Infelizmente vai ver alguns avisos, mas (felizmente) pode ignorá-los. Avisos do tipo: WARNING:Xst:653 - Signal <dummy> is used but never assigned. indicam uma falha do próprio XST, porque este cria marcadores auxiliares para construir o descodificador de 7 segmentos, mas não faz muita coisa com estes. O passo Place & Route (PAR) também gera um aviso: WARNING:Route:455 - CLK Net:Q_3_OBUF may have excessive skew because de erro durante a implementação. Há alguma forma de fazer o ISE fazer as actualizações automaticamente? Continua No próximo artigo desta série vamos abordar a simulação deste projecto. Durante esse processo é provável que possamos encontrar uma linguagem de descrição de hardware (HDL): VHDL ou Verilog. Figura 9. Dois mostradores de 7-segmentos ligados ao módulo FPGA Elektor, montados no laboratório da Elektor. (120743) Artigo original: Taming the beast (3) – March 2013 É difícil de entender o que fazer com este aviso, porque não há nada a seguir a “because”. A justificação para este aviso é um mistério. Por agora vamos simplesmente ignorá-lo e esperar que o circuito não tenha um problema real de atraso de propagação excessivo. Depois seleccione Generate Programming File para gerar o ficheiro de bitstream, atribua-lhe o nome config.bin, e copie-o para o cartão SD presente no módulo FPGA Elektor. Reinicie o módulo e, se o tiver ligado como apresenta a Figura 9, vai ser iniciada a contagem. Pode controlar o contador configurando os níveis de tensão dos pinos 27 (reset, activo a 1), 28 (parar, activo a 0) e 29 (cima/baixo, cima = 1, baixo = 0). Os dois LEDs presentes no módulo vão piscar como no projecto anterior. Internet [1] www.elektor.com.pt/120743 [2] www.xilinx.com/support/answers/14065.htm O módulo de desenvolvimento FPGA Elektor já montado e testado está disponível através do Serviço Elektor: www.elektor.com.pt/120099. Trabalho de casa Construa um descodificador de 7-segmentos utilizando LUTs. Lembre-se que sempre que editar um componente, não pode apenas gerá-lo mas tem de o actualizar no esquemático de nível superior. Caso contrário vai receber mensagens www.elektor-magazine.pt | Julho - Agosto 2013 | 51 •Montagem Fechadura com abertura por padrões Reconhecimento de formas para controlo de acesso David Ardouin [5] Desde a (França) mecânicos do passado; revolução dos ecrãs tácteis, os contactos frágeis e ruidosos passaram a ser uma coisa os seus equivalentes capacitivos são muito mais atractivos e têm muito mais vantagens. Todavia, julgando pela fina presença desta tecnologia nos circuitos publicados pela Elektor, muitas pessoas ainda necessitam de ser convencidas do seu valor. É por isso que aqui é proposta, não apenas uma abordagem de entretenimento para desmistificar o assunto e permitir-lhe fazer algumas experiências, mas também uma forma de o encorajar a utilizar interfaces tácteis numa aplicação séria e bem projectada, utilizando o método de detecção QTouch da Atmel. Depois de desenvolver um interface táctil num contexto profissional, o autor queria partilhar a sua experiência na forma de um módulo de demonstração de tecnologia capacitiva. Com a moda dos smartphones utilizando o sistema operativo Android, e com o famoso código de acesso com padrões, seria importante modernizar os sistemas de introdução de código via teclado: em vez de introduzir um código num teclado de 9 52 | Julho - Agosto 2013 | www.elektor-magazine.pt teclas, desenha-se um padrão geométrico com o dedo. Este Teclado com Padrões é elegante, táctil e iluminado, capaz de memorizar dois padrões separadamente, cada um contendo de quatro a nove sensores. O reconhecimento de um destes códigos torna possível activar através de um relé qualquer circuito que pretenda. Antes de aprofundar mais este projecto, vamos analisar o princípio de funcionamento dos inter- Fechadura com abertura por padrões faces tácteis. Os leitores mais experientes vão lembrar-se que a Elektor já publicou uma vasta gama de contactos capacitivos de todos os tipos, na época em que só existiam técnicas analógicas. Era uma aventura fascinante, mas os resultados eram muitas vezes decepcionantes. Graças à utilização de microcontroladores, a eficácia das técnicas actuais, como aquela aqui descrita, excede em muito as tentativas anteriores. a Limites e vantagens Pergunta: o que é um sensor capacitivo? Dependendo da sua utilização, os interfaces tácteis distinguem-se uns dos outros de acordo com o seu grau de liberdade, um termo muito utilizado pelos engenheiros mecânicos. Os detectores mais simples são os botões de pressão e os interruptores, para os quais a liberdade é reduzida quase a zero. Estes controlos são referidos como tendo “zero dimensões”, o que significa que só têm dois estados: activo ou inactivo, aberto ou fechado, 0 ou 1. Os sensores aqui utilizados são sensores capacitivos (Figura 1a) e fornecem um comando simples do tipo tudo-ou-nada. Os interfaces tácteis fornecem a possibilidade de um melhor tipo de comando, por exemplo, um comando linear proporcional ao movimento de dedo a deslizar por uma superfície, de uma extremidade para outra. Estamos a falar de um botão deslizante, mas é um movimento unidimensional, que nos permite variar apenas uma variável, que não tem necessariamente de ser numa linha recta; pode ser circular, como num famoso leitor de mp3 – falamos assim de um botão rotativo (Figura 1b). Se a zona táctil for uma área, onde o dedo é livre de se movimentar em todas as direcções, como num ecrã de um smartphone, é possível modular duas variáveis ao mesmo tempo (Figura 1c). Esta técnica, embora muito semelhante às outras duas, está para além do alcance deste artigo. A grande vantagem da utilização de teclas ou deslizadores capacitivos recai na total liberdade de disposição dos elementos de comando, etiquetas, e b Figura 1. Interruptor simples com 0 dimensões (a), ou uma superfície táctil com botão deslizante com 1 dimensão (b), ou uma superfície táctil com duas dimensões (c). c pictogramas utilizados. Sem contar com o aspecto de alta tecnologia, muitas vezes referido como mais atractivo do que os velhos botões redondos ou quadrados, um sensor táctil também tem a vantagem de ser completamente selado; não se gasta e é fácil de iluminar a partir do interior. Se está a pensar utilizar teclas tácteis num projecto controlado por um microcontrolador da Atmel, e tem alguns pinos disponíveis, incluir teclas capacitivas tem apenas o custo de alguns componentes passivos e um pouco de espaço na placa de circuito impresso. Algumas revisões de física Um condensador consiste em dois eléctrodos condutores separados por uma camada isolante chamada dieléctrico. A dimensão dos eléctrodos, a distância entre estes, e o material que compõe o dieléctrico são adaptados de acordo com o valor de capacidade necessário. Para assegurar uma boa sensibilidade, temos de obter Acerca do autor Quando eu era pequeno sonhava em ser um “faz-tudo” como o meu pai. Este sonho de infância nunca me abandonou, graças às aulas de desenho e de tecnologia no ensino básico, e muitos projectos construídos a partir de revistas. Depois, virei-me para a electrónica: um diploma em ciências no ensino secundário e depois 5 anos de Faculdade na escola de engenharia ESEO em Angers, permitiram-me construir a minha carreira sem diminuir o meu entusiasmo. Entre os papéis de pai e marido, encontrei tempo livre suficiente para aperfeiçoar algumas ideias que povoam a minha cabeça, assim como construir alguns modelos de aviões. www.elektor-magazine.pt | Julho - Agosto 2013 | 53 •Montagem Figura 2. Eléctrodos simples (a) e acoplados (b). a a maior diferença possível entre os valores de capacidade correspondentes à ausência e à presença do dedo. Esta variação é na ordem de algumas dezenas de pF, pelo que se quisermos que o nosso detector seja fiável, temos de obedecer a algumas regras. Figura 3. Disposição dos eléctrodos acoplados do circuito táctil. Figura 4. Detalhes de um eléctrodo. 54 | Julho - Agosto 2013 | www.elektor-magazine.pt b Dois tipos Para uma detecção capacitiva, habitualmente são utilizados dois tipos de eléctrodos, cada um com as suas vantagens e desvantagens. O primeiro é o mais simples (Figura 2a): consiste numa área condutora com cerca de 10 mm de diâmetro, uma resistência e um condensador – sem esquecer o material isolante, para formar a superfície sensitiva. Este tipo de bloco funcional pode ser duplicado para criar quantos botões desejar, desde que o microcontrolador que controla o teclado tenha a quantidade necessária de pinos, 2n+1 pinos, onde n é o número de teclas. Este eléctrodo forma um dos lados do condensador: é ao mesmo tempo transmissor e receptor de cargas eléctricas. O dedo forma o segundo eléctrodo: quando se aproxima o dedo da tecla, o valor de capacidade do condensador aumenta consideravelmente, e esta diferença pode ser detectada. Ao contrário do que se pensa, não é necessário haver uma ligação à terra para que se detecte o toque. A Atmel chama a este primeiro método detecção QTouch ou Teclas Auto-Capacitivas. Quando a quantidade necessária de teclas excede as dez teclas, é preferida uma segunda técnica (QMatrix), com eléctrodos acoplados (Figura 2b). Cada sensor inclui um eléctrodo controlador (X) e um eléctrodo receptor (Y). Na ausência de detecção, parte da carga eléctrica emitida pelo eléctrodo X é recebida pelo eléctrodo Y, mas, assim que o dedo se aproxima, desequilibra este sistema capturando parte da carga eléctrica e reduzindo assim o valor de capacidade medida. Colocando estes eléctrodos num formato de matriz é possível criar até 64 teclas com apenas 8 Xs e 8 Ys. Combinando adequadamente a disposição de três sensores, cada um destes métodos torna possível produzir botões deslizantes ou rotativos. Contudo, o projecto destes eléctrodos entrelaçados requer Fechadura com abertura por padrões um cuidado especial. Estas considerações especiais estão detalhadas no documento [1], onde pode encontrar as regras relativas a este assunto. Na etapa de projecto é crucial obter o mais baixo valor de capacidade na ausência de detecção, pelo que tem de manter tudo bem afastado dos sensores, especialmente planos de massa. Para os eléctrodos da matriz, temos de ter bastante cuidado com o traçado das linhas Y. As linhas X são menos sensíveis a interferências. Princípio de funcionamento A nossa superfície táctil contém nove teclas capacitivas, dispostas numa matriz XY. O quadrado com 3x3 é o ideal (Figura 3). A divisão em duas placas de circuito impresso tem duas razões: reduz o espaço utilizado, enquanto isola o mais possível as pistas sensitivas dos acoplamentos parasitas com outros componentes. O projecto dos eléctrodos foi optimizado para um material isolante com 3 mm de espessura, e o formato do entrelaçamento fornece o máximo acoplamento entre os eléctrodos sensores, mas nada o impede de adaptar este traçado às suas necessidades (Figura 4). A dimensão ”e” representa a espessura do material isolante colocado sobre as teclas. Os LEDs D1-D9, com formato SMD 1206, são colocados ao contrário, na face das soldaduras, para permitir que cada zona seja iluminada por um orifício. Isto significa que cada zona pode ser iluminada individualmente. Os condensadores C1-C9, ligados em paralelo, são essenciais: sem eles a sensibilidade era menor. Por último, os cinco conectores J1-J5 fazem a ligação entre estas duas placas de circuito impresso, veiculando os sinais X e Y em conjunto com os dois terminais para cada LED. A biblioteca QTouch utilizada no microcontrolador AVR da Atmel simplifica a electrónica (Figura 5a) necessária para fazer os sensores funcionarem. Durante a fase de aquisição dos sinais presentes nas teclas, o eléctrodo controlador (X) é excitado por uma sequência de impulsos rectangulares de alta-frequência. As cargas emitidas por este plano de cobre são parcialmente colectadas pelo eléctrodo Y adjacente e são acumuladas nos condensadores C19-C21 através das resistências R14-R16. No fim da sequência de impulsos, é iniciado um temporizador interno do microcontrolador para medir o tempo de descarga dos condensadores através das resistências R11-R13. Quando se aproxima o dedo durante um ciclo de aquisição, o dedo vai absorver parte da carga eléctrica normalmente armazenada no condensador. No fim da sequência de impulsos, a tensão aos terminais do condensador vai ser mais baixa e consequentemente o tempo de descarga medido pelo temporizador vai ser menor. Este clássico e comprovado ciclo de medição é então repetido pelo microcontrolador para cada combinação X-Y. Como não há especificações para a precisão, o microcontrolador é controlado a 8 MHz pelo seu oscilador interno. A atribuição de pinos do microcontrolador à matriz de eléctrodos é restringida por alguns factores, que não vão ser aqui referidos. Felizmente, a Atmel fornece o software AVR QTouch Studio para o guiar neste passo. Os eléctrodos X são controlados através das resistências R8-R10 que reduzem as emissões de energia electromagnética. O valor destas resistências não é crítico. As saídas PD5 e PB0 do microcontrolador controlam os relés RL1 e RL2 através de transístores MOSFET pouco dispendiosos, utilizando também os díodos de roda livre D10 e D11. Estes por vezes já estão embutidos nos relés, mas é preferível ligá-los em separado para que se possa adaptá-los para outros dispositivos. Duas das entradas do microcontrolador permitem ao sistema aprender os padrões que vão ser reconhecidos. Por razões de segurança, estes têm Bónus: Piano com padrões As minhas filhas (18 meses e 3 anos) adoram brincar com o protótipo da fechadura por padrões, mas esta nem sempre se mostra totalmente “contente” e, por vezes, acende o LED central. Confrontado com a frustração das minhas aprendizas de electrónica, converti a fechadura electrónica simplesmente substituindo o relé RL1 por um pequeno altifalante de 8 Ω, em conjunto com uma resistência de 22 Ω (Figura 9). Algumas linhas de código depois nasceu o Piano de padrões, para o deleite delas e dos seus ouvidos! As frequências fundamentais produzidas correspondem às notas entre o dó médio (525 Hz) e o ré da oitava imediatamente acima (1180 Hz), e até lhe permite tocar pequenas músicas. Experimente, é divertido! www.elektor-magazine.pt | Julho - Agosto 2013 | 55 •Montagem L1 SW VOUT 5 C14 C11 4u7 16V C10 4u7 16V 3 R3 100n GND R1 2 3 C12 4 FB 2 28 V+ C15 C13 4u7 16V R2 100k 4 P12 100n 4u7 16V P13 P14 P15 U2 150k VCC_33 ENABLE_5V 2 1M2 DDC EN P16 P17 VCC_50 P18 P19 R23 R7 4k7 R6 4k7 4k7 Q5 P20 R5 P21 4k7 Q4 P22 25 SDA Q6 26 Q3 BSN20 BSN20 27 SCL 4 BSN20 J7 1 LED1...LED3 VBAT U1 TPS61070 1 J6 1 BSN20 1 MAX6956 AAI P23 SDA P24 SCL P25 P26 AD1 P27 AD0 P28 P29 ISET R4 P30 P31 GND GND 5 5 6 6 7 8 9 10 J8 1 11 2 12 LED4...LED6 6 BT1 VCC_50 4uH7 0A75 3 13 4 14 5 15 6 16 17 18 19 20 1 21 2 22 3 23 4 24 5 J9 LED7...LED9 VCC_33 6 2 3 R11 R12 R13 470k 470k 470k 47k VCC_33 3 R9 2 1 R8 19 22 1k 3 6 1k 4 18 VCC AVCC PA0 PC0 PA1 PC1 PA2 PC2 PA3 PC3 PC4 1k U3 PC5 PC6 PC7 12 ENABLE_5V VCC_33 13 14 MOSI 15 2 1 MISO 16 4 3 SCK 17 6 5 RESET 7 8 J10 ISP ATtiny88-AU PB0 PD0 PB1 PD1 PB2 PD2 PB3 PD3 PB4 PD4 PB5 PD5 PB6 PD6 PB7 GND 5 PD7 GND 23 24 27 SDA 28 SCL 29 20 C19 C20 C21 4n7 4n7 4n7 30 R15 31 32 1 2 R16 VCC_33 9 Figura 5. Diagrama do circuito do painel táctil para reconhecimento de padrões. a 56 | Julho - Agosto 2013 | www.elektor-magazine.pt 1k 1 1k 3 J12 2 R17 100k 100k 1 10 11 21 J13 2 D11 D10 CONFIG RL1 J14 7 8 1 14 2 D31A3100 6 BAT46W-V BAT46W-V 1k Q1 R19 R21 BSN20 100n 1k R18 6 D31A3100 OUT 2 100n VCC_50 2 RL2 Q2 100n R14 7 14 1 C18 26 VCC_50 8 C17 25 3 J15 C16 ELECTRODES Y ELECTRODES X J11 R10 VCC_33 R22 R20 100k 100k 1k OUT 1 BSN20 120579 - 11 Fechadura com abertura por padrões C1 D1 100n J1 1 LED7...LED9 2 3 C2 D2 100n 4 5 6 C3 C4 ELECTRODES X D3 100n J2 X0 1 2 3 X1 X2 D4 100n J4 1 LED4...LED6 2 3 C5 D5 100n 4 Y0 5 6 Y1 C6 Y2 C7 D7 100n ELECTRODES Y D6 100n J3 1 Y3 2 Y4 3 Y5 Y6 Y7 J5 1 LED1...LED3 2 3 C8 Y8 D8 100n 4 5 6 C9 D9 100n 120579 - 12 de ser “escondidos”. Os padrões são programados inserindo o jumper J13 depois de ligar o circuito. A optimização feita no consumo de energia permite fazê-lo apenas com duas pilhas do tipo AAA. O ATtiny88, que passa a maior parte do tempo adormecido, é alimentado directamente a partir das pilhas. O seu temporizador watchdog interno desperta-o a cada 1200 ms para que se possa executar o ciclo de aquisição de sinais das teclas. Se for detectada uma presença, o ATtiny88 entra no modo activo e liga o barramento de 5 V para activar o regulador de tensão U1 e componentes a ele associados. Este barramento alimenta os relés e os LEDs azuis, cuja queda de tensão directa de 3,3 V é demasiado elevada para que os LEDs sejam alimentados directamente a partir das pilhas. Ao contrário de outros conversores elevadores, o TPS61070 tem a vantagem de desligar completamente a sua saída no modo de espera, consumindo apenas 0,5 µA! Para que um painel táctil como este seja atractivo, não necessita apenas de ser iluminado, mas a sua iluminação tem de ser dinâmica seguindo os movimentos do dedo. Os LEDs são controlados pelo microcontrolador (Figura 5b), mas este não consegue fornecer directamente a corrente para os LEDs. Esta tarefa é executada por um MAX6956, que torna possível controlar até 20 saídas com uma corrente constante, e configurá-las individualmente através de um barramento I2C. A corrente máxima disponibilizada por U2 é limitada por R4 para cerca de 20 mA por saída. Como o MAX6956 não tem um modo de espera de baixo consumo, a sua alimentação é cortada quando o circuito está em repouso. Os transístores Q3-Q6 formam dois deslocadores de nível de tensão bidireccionais que permitem a comunicação I2C entre U2 e U3, que são alimentados a tensões diferentes. Mais, evitam também que U2 seja alimentado pelos pinos SDA e SCL quando a alimentação está cortada. Os MOSFETs BSN20 são particularmente adequados para este ambiente de baixa tensão, graças à sua baixa tensão de comutação porta/fonte (VGS). O jumper J10 é o conector compatível com ISP que permite programar e fazer diagnósticos ao microcontrolador localmente. Soldadura e montagem b Todos os componentes devem estar disponíveis a partir de fornecedores locais ou online. Os componentes são quase todos SMD, mas foram escolhidos os encapsulamentos maiores www.elektor-magazine.pt | Julho - Agosto 2013 | 57 •Montagem Lista de componentes Circuito principal Resistências (SMD 1206) R1;R17;R18;R20;R22= 100 kΩ R2= 150 kΩ R3= 1,2 MΩ R4= 47 kΩ R5;R6;R7;R23= 4,7 kΩ R8;R9;R10;R14;R15;R16;R19;R21= 1 kΩ R11;R12;R13= 470 kΩ Condensadores (SMD 1206) C10;C15a C18= 100 nF/50 V C11a C14= 4,7 µF/16 V C19;C20;C21= 4,7 nF/50 V Bobinas: L1= 4,7 µH/0,75 A, por exemplo, tipo SRR3011-4R7YL da Bourns; 1828144 da Farnell Semicondutores: U1= TPS61070DDC (Texas Instruments) Ref.ª Newark/Farnell 1461062 U2= MAX6956AAI (Maxim IC) Ref.ª DigiKey MAX6956AAI+T-ND U3= ATtiny88-AU (Atmel) programado, Ref.ª Newark/Farnell 1704570 D10;D11= BAT46W-V Q1a Q6= BSN20, Ref.ª Newark/Farnell 1081309 Figura 6. Placas de circuito impresso. 1206 para facilitar a soldadura aos mais inexperientes. Comece por separar as duas placas de circuito impresso (Figura 6) utilizando uma rebarbadora, uma pequena serra, etc. Comece por inserir os componentes na placa superior que contém os interruptores, os nove LEDs e os nove condensadores. Para ter a certeza que estes estão bem alinhados antes de os soldar, ligue os conectores macho e fêmea de J1-J5, J7-J9, e de J10-J12 das placas empilhadas. É difícil soldar U2 e U3: o autor utilizou o método de força bruta, que envolve soldar todos os pinos em conjunto utilizando um grande pedaço de solda, sem se preocupar com curto-circuitos. Depois utiliza-se uma malha de dessoldar para retirar a solda em excesso, deixando apenas o mínimo necessário para unir os pinos ao cobre. A montagem mecânica dos sensores capacitivos necessita de um cuidado especial, porque são retro-iluminados. Depois de alguma procura, foi encontrada uma folha de acrílico de 58 | Julho - Agosto 2013 | www.elektor-magazine.pt 3 mm de espessura (também conhecido como Perspex® ou plexiglass) em www.crylite-shop. com (www.plexiglas-shop.com), que permite a difusão da luz proveniente dos LEDs nos orifícios de cerca de 15 mm de diâmetro (ver lista de componentes). Para que as teclas funcionem correctamente não pode haver espaço livre entre a placa de circuito impresso e o dieléctrico (a folha de acrílico – não vale a pena tentar sem esta, porque não vai funcionar!). Estas duas camadas foram fixadas utilizando fita adesiva transparente com cola dos dois lados. Uma fina camada de adesivo epoxy em toda a superfície também funciona. Pode experimentar com outros materiais, transparentes ou não, desde que sejam isolantes – como vidro, por exemplo, que é o dieléctrico ideal. O projecto destes sensores está optimizado para uma espessura de 3 mm. Se o seu dieléctrico tiver uma espessura diferente, a detecção vai ser menos bem sucedida. Fechadura com abertura por padrões Diversos: J6= Suporte para 2 pilhas do tipo AAA, por exemplo 2468 da Keystone, Ref.ª Newark/farnell 1650679 J7;J8;J9= Barra de terminais de 6 vias J10= Barra de terminais de 2x3 vias J11;J12;J13= Barra de terminais de 3 vias J14;J15= Bloco de terminais de aperto para PCI, passo 5,0mm, por exemplo CTB5202/2 da CamdenBoss, Ref.ª Newark/Farnell 1717001 RL1;RL2= Relé do tipo reed, por exemplo D31A3100 da Celduc, Ref.ª Newark/Farnell 1214549 PCI (Refª 120579-1), disponível na Guimocircuito (www.guimocircuito.com). Folha de acrílico, dimensão 60x60x3 mm, PLEXIGLAS LED Branco WH72 GT (truLED), www.plexigla-shop.com ou www.acrylite-shop.com. Circuito táctil Condensadores: (SMD 1206) C1a C9= 100 nF/50 V Semicondutores: D1a D9= LED azul, SMD 1206, por exemplo KPTD3216QBC-D da Kingbright, Ref.ª Newark/ Farnell 8530050 Diversos: J1;J4;J5= Barra de terminais de 6 vias J2;J3= Barra de terminais de 3 vias Os conectores J1-J5 têm de ser inseridos de forma a que os seus pinos não estejam ao mesmo nível que a placa capacitiva. Têm de ser soldados na face em que vão ser inseridos, caso contrário a folha de acrílico vai ter de ser cortada à volta dos contactos. Isto não seria prático nem elegante. Para indicar a posição (e a forma) dos sensores pode utilizar vinil com adesivo ou tinta em spray e máscaras. As dimensões do painel frontal sugerido são um bom ponto de partida, antes de utilizar a sua criatividade. Firmware e biblioteca QTouch A simplicidade do projecto do hardware para os detectores capacitivos é possível principalmente devido à utilização de vários algoritmos relativamente elaborados, presentes na biblioteca QTouch. Esta trata, por exemplo, da calibração periódica automática das medições e acompanha as lentas variações das condições ambientais (humidade). Também torna possível comparar 120579 - 17 Figura 7. Sugestão para o desenho do painel frontal. www.elektor-magazine.pt | Julho - Agosto 2013 | 59 •Montagem Abram alas para o condensador Este interface de sensores capacitivos não tem nada em comum com as versões resistivas utilizadas nos receptores de GPS antigos, que utilizavam duas películas condutoras sobrepostas e separadas por um pequeno intervalo. A mais pequena pressão exercida pelo dedo era suficiente para fazer contacto, permitindo a detecção do dedo. A sensibilidade deste tipo de painel táctil era medíocre quando comparada com a dos painéis que utilizam técnicas capacitivas. Não há aqui nada mecânico, abram alas para o condensador! valores provenientes de teclas adjacentes, armazenando só o maior valor, o que se torna útil quando as áreas sensitivas são mais pequenas que os nossos dedos (algoritmo Adjacent Key Suppression ou AKS). Por último, para evitar o fenómeno de “tecla presa” (activação sem contacto com o dedo), pode ser configurada uma duração máxima, para além da qual é efectuada uma nova calibração. Estes parâmetros podem ser ajustados no ficheiro touch_config.h. O autor manteve os valores por defeito. A configuração dos números das teclas, a sua sensibilidade, e o grupo AKS onde pertencem, está definida na função QT_config_keys no ficheiro QTouch.c. O código fonte do firmware, com comentários detalhados, está disponível em [3]. A incorporação da biblioteca QTouch tem de seguir as regras ditadas pelo documento [2] e está ilustrada pelo fragmento de código apresentado na Figura 8. No arranque, o sistema é inicializado chamando as funções QT_config_sensors, qt_init_sensing, e QT_set_parameters. Depois disto, é executada uma medição de cada vez que for chamada a função qt_mesure_sensores. Se for detectada uma variação no valor de capacidade, a biblioteca efectua várias medições sucessivas para confirmar se uma das teclas foi activada. Repetir as medições desta forma é vital para a fiabilidade das medições, enquanto se mantém um tempo de resposta rápido. Se o estado do botão mudar, é actualizada a variável u16_flagStatus, e é chamada a macro GET_SENSOR_STATE() para indicar o estado de ambos. A frequência das medições depende do firmware utilizado, e é um compromisso entre capacidade de resposta, tempo ocupado pelo processador, e consumo de energia. Para obter uma resposta que parece seguir correctamente o movimento do dedo na superfície sensitiva, foi escolhido um período de aquisição de 50 ms, que torna a detecção muito rápida. Para uma aplicação mais convencional onde as teclas são activadas uma de cada vez, este tempo de atraso pode ser aumentado para 100 ms ou até 200 ms. Acima disso, o utilizador vai considerar a detecção lenta ou até errática. 60 | Julho - Agosto 2013 | www.elektor-magazine.pt O restante software em torno da detecção dos valores dos sensores é implementado numa máquina de estados, que é demasiado grande para representar aqui, mas recomenda-se que a descarregue do site referente a este artigo [4] para a poder estudar. A implementação da biblioteca QTouch ocupa entre 2 kB e 4 kB da memória de programa, dependendo das configurações, e também ocupa cerca de 250 bytes de RAM. Também faz uma utilização ocasional do temporizador Timer1, pelo que é melhor evitar a sua utilização durante as fases de medição. O código completo para a Fechadura por padrões, compilado utilizando o IAR Embedded Workbench, ocupa pouco menos de 6 kB de memória de programa e 500 bytes de RAM, e cabe perfeitamente na memória do ATtiny88. Utilização e programação A segurança fornecida por este sistema é um compromisso entre capacidade de resistência à sabotagem e velocidade de desbloqueamento. Seria pouco inteligente confiar a este sistema a segurança da sua porta de entrada. Mas controlar a utilização do seu PC já é uma tarefa mais adequada para este sistema. Foi para este tipo de aplicação que se optou por uma alimentação 100% auto-contida, para deixar em aberto o máximo de opções. A alimentação a partir de baterias como estas impõe alguns compromissos para atingir um tempo adequado de duração da carga das baterias. Os relés, os maiores consumidores de energia, só são activados durante meio segundo depois de ser reconhecido um padrão. Esta forma de funcionamento é adequada para substituir o botão ligar/desligar de um PC ou para controlar uma porta eléctrica. Se pretender alimentar o circuito permanentemente com uma alimentação estabilizada, tudo o que tem de fazer é modificar algumas linhas de código para fazer os LEDs e os relés funcionarem permanentemente. Assim que é alimentado, o sistema entra no modo de espera com os LEDs desligados, mas faz medições periódicas. Se detectar a presença Fechadura com abertura por padrões #include "QTouch.h" #include "touch_api.h" void main(void){ // Configure the Sensors as keys or Keys With Rotor/Sliders in this function QT_config_sensors(); // initialise touch sensing qt_init_sensing(); // Set the parameters like recalibration threshold, Max_On_Duration etc QT_set_parameters(); do{ // Autonomous loop which performs capacitive sensing every 50ms if (g_u8_flagMeasure){ g_u8_flagMeasure = 0; do{ // one time measure touch sensors u16_flagStatus = qt_measure_sensors(g_u16_current_time_ms_touch); //Set flag if multiple measurements are required by library u16_flagBurst = u16_flagStatus & QTLIB_BURST_AGAIN; } while(u16_flagBurst); } // One touch is in detect if (u16_flagStatus & QTLIB_IN_DETECT){ u16_touchState = 0; //Find the touched key number for (i=0; i<9; i++){ //Check if this key is in touch if (GET_SENSOR_STATE(i)) u16_touchState |= (1<<i); } } else u16_touchState = 0; //Process keys if (u16_touchState){ //Look for which key is touched for (i=0; i<9; i++){ if (u16_touchState & (1<<i)){ u8_ledCurrent[i] = LED_CURRENT_HIGH; //Update corresponding led MI_PlayTone(i); //Play Tone } else u8_ledCurrent[i] = LED_CURRENT_LOW; } } else { for (i=0; i<9; i++){ u8_ledCurrent[i] = LED_CURRENT_LOW; } MI_StopTone(); } LED_Update(u16_ledValue, u8_ledCurrent); //Update led current } } while (1); //Timer 0 interrupt function, called every 50ms __interrupt void MI_Timer0Interrupt(void){ //Here every 50ms g_u16_current_time_ms_touch += 50; g_u8_flagMeasure = 1; return; } Figura 8. Chamada e utilização da biblioteca QTouch. Este extracto do código vem do software PatternPiano (Figura 9), uma variante com uma estrutura semelhante, mas mais simples e mais fácil de entender. www.elektor-magazine.pt | Julho - Agosto 2013 | 61 •Montagem padrão contendo de quatro a nove pontos. Depois de memorizado o código, o interface entra no modo de “adormecimento”. Pode remover o jumper e utilizar a fechadura. VCC_50 LS1 D10 PD5 R BAT46W-V Q1 8Ω 0W2 22R R19 R20 1k BSN20 100k 120579 - 13 a Figura 9. Converter a Fechadura de padrões num Piano de padrões. b de um dedo em qualquer zona por mais de 1,2 s, desperta e acende progressivamente os LEDs. O utilizador pode então introduzir o código de desbloqueio. Se o padrão geométrico estiver correcto, é apresentado brevemente um O e o relé correspondente é ligado. Se o padrão estiver incorrecto, vai ser apresentado um X. O utilizador tem três tentativas para introduzir o código correctamente, depois das quais a fechadura é bloqueada e o LED central é aceso durante 10 s. Depois disto a fechadura retorna ao modo de “adormecimento”. Para programar um novo padrão, quando se liga o circuito pela primeira vez ou caso se esqueça, desligue a alimentação e depois insira o jumper J1: entre os pinos 1 e 2 para a primeira saída, ou entre os pinos 2 e 3 para a segunda saída. Ligue novamente a alimentação (mantendo o jumper ligado), desperte a fechadura colocando o dedo em qualquer botão, e depois introduza o novo Figura 10. Para facilitar a montagem da folha no teclado, solde os conectores no lado inferior para que estes não sobressaiam. 62 | Julho - Agosto 2013 | www.elektor-magazine.pt O eléctrodo Y está ligado a J3/J12. Evite tocar neste local ou colocar objectos de metal perto deste, para não perturbar a detecção. Em modo de espera, o projecto consome cerca de 5 µA. A cada 1200 ms consome 2,4 mA durante 8 ms. Desta forma, a corrente média em modo de espera vale cerca de 21 µA – assim, utilizando duas pilhas do tipo AAA, a carga das pilhas dura vários anos! Os códigos de acesso são armazenados na EEPROM, estando assim guardados mesmo se a alimentação for removida. (120579) Artigo original: Pattern Lock – April 2013 Internet [1] Atmel – guia de projecto para o sensor QTAN0079: www.atmel.com/Images/ doc10752.pdf [2] Atmel - biblioteca QTouch Library 5.0: www. atmel.com/Images/doc8207.pdf [3] Atmel – QtouchStudio: www.atmel.com/tools/ QTOUCHSTUDIO4_3_1.aspx [4] www.elektor.com.pt/120579 [5] [email protected] R&S®RTO de 600MHz O mais novo membro da família de Osciloscópios R&S Rapidez na detecção de sinal numa gama de aquisição extremamente elevada, uma excelente fiabilidade de sinal, uma interface de utilizador intuitiva: os modelos R&S RTO de 1 GHz e 2 GHz de largura de banda são uma nova realidade em Osciloscópios Digitais. Por forma a oferecer estes recursos a mais utilizadores, a Rohde&Schwarz criou um novo modelo de 600 MHz (disponível em 2 e 4 canais) para a sua família de osciloscópios de alto desempenho. Os novos modelos de 600 MHz (R&S®RTO1002 e R&S®RTO1004) são uma solução única que permite aos utilizadores realizarem análises complexas em profundidade, mesmo na gama mais baixa da largura de banda. Saiba mais em: www.scope-of-the-art.com • Curso Curso Arduíno Parte 3b: Sensores comunicam com telefones Android Na edição anterior apresentámos uma série de ferramentas para trabalhar com o Android e o Arduino Mega ADK. Nesta edição vamos um passo mais à frente nesse processo, mostrando-lhe como ler sensores ligados ao Arduino, no telemóvel. Com todas as ferramentas de desenvolvimento em posição, executar o código no seu telemóvel e fazer com que o mesmo comunique com o Arduino será muito fácil, pode começar seguindo os exemplos que acompanham as bibliotecas do ADK! • Módulos TinkerKit: potenciómetro e botões de pressão (também opcional). David Cuartielles (Espanha) e Andreas Goransson (Suécia) Os dispositivos Android estão por todo o lado. Existem diversas abordagens no que respeita à criação de aplicações para esses dispositivos. No nosso caso, vamos continuar a explorar a utilização do Processing [1] como ferramenta para escrever, compilar e carregar o código em telemóveis Android. Nota: para este artigo precisa mesmo de ter um telemóvel Android para testar como funcionam as coisas. Fizemos um esforço extra para ter a certeza que o código era compatível com a versão mais recente do SO Android, na altura em que escrevemos este artigo era a versão 4.1. Dica: descarregue o código apresentado neste artigo a partir do site da Elektor, dado que apenas estamos a mostrar excertos desse código no artigo. Onde estamos Componentes Continuando com os testes da edição anterior, os componentes necessários são: • Placa Arduino Mega ADK ou Arduino Uno com USB Host Shield. • Telemóvel Android com o sistema operativo Android OS 2.3.4 ou mais recente (o SO mais recente é melhor). • Cabo USB e microUSB. • TinkerKit Shield (isto é opcional, pode utilizar uma breadboard e fios). 64 | Julho - Agosto 2013 | www.elektor-magazine.pt Por esta altura já deve ter um certo conhecimento do modo Google Accessory e como os acessórios dizem aos dispositivos Android para arrancar com uma determinada aplicação quando se ligam. Deve estar familiarizado com o Processing, a ferramenta de aprendizagem Java, e já deve ter criado e carregado pequenas aplicações para o seu telemóvel ou tablet. O próximo passo é criar novas aplicações que tiram proveito da conectividade entre o Arduíno – como um acessório – e o seu dispositivo Android. Curso Arduíno Biblioteca USB Host O Android Open Accessory Protocol (AOAP) é o que determina como o seu dispositivo Android e a sua placa Arduino podem “falar” um com o outro. Tecnicamente, a placa Arduino consiste num USB Host, enquanto que o telemóvel é um cliente USB. Os dispositivos Android, como a maioria dos dispositivos topo de gama que por aí andam, possuem um periférico que implementa a funcionalidade USB On The Go. De acordo com esta, o mesmo conector USB (actualmente conector microUSB) pode funcionar como um cliente USB (como um rato ou teclado) ou como USB Host (como o do seu computador pessoal). O AOAP estabelece que os acessórios agem como dispositivos Host enquanto que os dispositivos Android agem como clientes. Isto permite que o dispositivo Host alimente o dispositivo cliente com electricidade (a sua placa Arduino vai estar a recarregar o seu telemóvel enquanto este estiver ligado), entre outras funcionalidades. Para estabelecer a comunicação entre os dois, vimos no artigo anterior que precisa de executar a biblioteca USB Host como parte do seu código Arduino. Pode verificar um dos exemplos para a biblioteca para confirmar se está instalada. Nota: utilize o menu para navegar: “File/Examples/USB Host”, se não encontrar esses exemplos significa que não instalou a biblioteca USB Host no Arduino. Verifique os ficheiros disponíveis para este artigo [3] e instale a biblioteca; vai precisar dela. A Figura 1 mostra o hardware envolvido. Configuração experimental: O lado do processing Vamos primeiro analisar o software que precisa para programar as suas aplicações Android: • Android SDK com todas as actualizações até à versão mais recente versão de APIs. • Processing 2.0b3 ou mais recente (se tiver lido o primeiro artigo, vai verificar que actualizamos para a versão mais recente, deve fazer o mesmo nesta altura). • Ferramenta Arduino ADK para o Processing. • Biblioteca Arduino ADK USB para o Processing. O último item daquela lista é o que vai estar em falta se experimentou com o artigo da edição anterior. Esse foi omitido intencionalmente na altura. Precisa da biblioteca complementar para o USB Host do lado do Processing para ter a certeza Figura 1. Arduino Mega ADK com o kit Tinker Shield e telemóvel. Figura 2. Arduino Mega ADK ligado a um PC e a um telemóvel. de que a sua placa consegue comunicar com o seu telemóvel. Designamos essa biblioteca como “Arduino ADK USB”. A secção seguinte explica como instalá-la; a Figura 2 mostra o hardware. Instalação da biblioteca Arduino ADK USB para Android Dentro dos ficheiros para este artigo vai encontrar uma pasta com o nome “Processing” que contem uma subpasta com o nome “libraries”. Deve copiar o conteúdo dessa pasta para dentro da sua pasta libraries do Processing. Esta última está localizada dentro da pasta sketckbook do Processing, armazenada normalmente em “My Documents/Processing” para computadores Windows, ou “Documents/Processing” para Mac e Linux. Esta biblioteca vem com quatro exemplos. Recomendamos que inicie os acessórios de um desses exemplos, o que facilitará a sua vida. Comecemos por experimentar o exemplo digitalWrite. Neste caso vai estar a ligar a sua placa Arduino ao telemóvel e quando tocar no ecrã acende-se um LED que está ligado na sua placa. Se deixar de tocar no ecrã, o LED apaga-se. www.elektor-magazine.pt | Julho - Agosto 2013 | 65 • Curso Listagem 1. Exemplo DigitalWrite da biblioteca USB do Arduino. #include <AndroidAccessory.h> // accessory descriptor. It’s how Arduino identifies itself to Android char accessoryName[] = “DigitalWrite”; // your Arduino board char companyName[] = “Arduino SA”; // led variables int ledPin = 10; // counters long timer = millis(); // initialize the accessory: AndroidAccessory usb(companyName, accessoryName); void setup() { // start the connection to the device over the USB host: usb.begin(); // configure the LED pin as output DigitalWrite Cada exemplo tem duas partes. A primeira corre na placa Arduino, trata da comunicação de e para o telemóvel, enquanto executa acções noutros pinos da placa. A segunda parte é o código a ser compilado no Processing e que vai ser executado no interior do dispositivo Android. Esta aplicação vai ler e escrever dados na ligação de cabo do telemóvel assim como executar também algumas acções no ecrã ou ler um dos sensores do telemóvel como a câmara fotográfica, o acelerómetro, etc. Vamos primeiro analisar o código do Arduino, abra o seu Arduino IDE e digite o código da Listagem 1. Lembre-se de o carregar para a placa depois de terminar! Listagem 2. Sketch do Processing que vai detectar quando se toca no ecrã. import cc.arduino.*; // create the ADK object ArduinoAdkUsb arduino; void setup() { // Lock PORTRAIT view orientation( PORTRAIT ); // initialize the ADK object arduino = new ArduinoAdkUsb( this ); if ( arduino.list() != null ) arduino.connect( arduino.list()[0] ); } void draw() { // Draws a filled rect based on arduino connection state connected( arduino.isConnected() ); } 66 | Julho - Agosto 2013 | www.elektor-magazine.pt Curso Arduíno pinMode(ledPin, OUTPUT); } void loop() { // print to USB 10 times per second if(millis()-timer>100) { if (usb.isConnected()) { // is the USB connection open? if (usb.available() > 0) { // is there data? char val = usb.read(); // ‘a’ turns the LED on, ‘b’ off if( val == ‘a’ ) digitalWrite( ledPin, HIGH ); else if( val == ‘b’ ) digitalWrite( ledPin, LOW ); } timer = millis(); } } } Este exemplo vai estar à escuta no porto USB. Assim que o telemóvel se ligar à placa Arduino, a função usb.isConnected() vai devolver uma resposta afirmativa. Quando o telemóvel começar a enviar dados, a função usb.available() vai devolver um valor diferente de zero, que o Arduino vai então ler e armazenar na variável val. Deve acontecer algo muito semelhante ao apresentado na Figura 3. No lado do Processing vai precisar de escrever um programa que verifique o evento de alguém tocar no ecrã. Se existir uma ligação sobre o cabo, o telemóvel vai então enviar ‘a’ para indicar que alguém começou a tocar no ecrã. Envia um ‘b’ para indicar que o dedo deixou o ecrã. Estamos a detectar os eventos de ‘começar’ e ‘terminar’ de tocar no ecrã uma vez que não queremos “inun- public boolean surfaceTouchEvent(MotionEvent event) { if ( arduino.isConnected() ) { if ( event.getAction() == MotionEvent.ACTION_DOWN ) arduino.write(‘a’); else if ( event.getAction() == MotionEvent.ACTION_UP ) arduino.write(‘b’); } // if you want the variables for motionX/motionY, // mouseX/mouseY etc. // to work properly, you’ll need to call // super.surfaceTouchEvent(). return super.surfaceTouchEvent(event); } […] www.elektor-magazine.pt | Julho - Agosto 2013 | 67 • Curso Figura 3. O LED acende-se quando se toca no ecrã. dar” o porto de comunicação com mensagens. Abra o seu Processing IDE e procure pelo exemplo adk_digitalWrite. Vai encontrá-lo no menu “Examples/Contributed Libraries/ArduinoADKUsb” se tiver instalado a biblioteca correctamente (Listagem 2). O código apresentado na Listagem 2 é mais ou menos auto-explicativo. Uma parte que pode achar um pouco infeliz é a definição do método surfaceTouchEvent(Motion-Event event). O Java é uma linguagem de programação muito potente e neste caso permite escrever por cima de alguns dos métodos existentes. Sempre que tocar no ecrã do Android, o sistema é configurado para chamar aquela função específica (surfaceTouchEvent(MotionEvent EVENT)). Se escrever por cima no seu programa (basicamente, só tem que reescrever) pode fazer que que faça tudo o que quiser. Neste caso, detectámos dois dos muitos eventos do sistema: MotionEvent.ACTION_DOWN (o equivalente a começar a tocar no ecrã) para enviar o ‘a’ para o Arduino e MotionEvent.ACTION_UP (o mesmo para quando se deixa de tocar no ecrã) para enviar o ‘b’. GIF animado na Internet e usá-lo para replicar o que vai ver neste exemplo. A única condição é que precisa do gif animado exportado como diferentes frames. Deve nomeá-las da seguinte maneira: S00.gif, s01.gif, s02.gif… Claro que pode usar a mesma imagem que estamos a usar no nosso artigo. Conseguimos que um desenhador criasse para nós um pequeno coelho que aparece a sair de um chapéu. O objectivo deste exemplo é criar um pequeno jogo interactivo onde vai usar sensores (um botão e um potenciómetro) para interagir com o pequeno coelho no ecrã do telemóvel, como na Figura 4. Nesta altura é melhor começar a olhar para o código que vai correr dentro do telemóvel. O primeiro passo é construir uma animação dentro do Processing. Se estiver habituado ao Android, pode tentar portar a biblioteca GIFdecoder que usámos na edição passada para reproduzir GIFs animados dentro da sua aplicação para Android. Como queremos manter a programação o mais simples possível de entender, a maneira como recomendamos que efectue a animação do seu Coelho é muito simples: deve criar um array de imagens projectado para conter as frames que pretende que façam parte da animação. Este conceito é baseado no exemplo do Processing Animated Sprite de James Paterson [2] (Listagem 3) [3]. Nota: a Listagem 3 não mostra a classe Animation que vai abrir todas as imagens com o nome de s00.gif, s01.gif, etc. Recomendamos que verifique toda a listagem de código que vem com o exemplo Elektor_Simple_Animation. Vai também ver uma pasta com o nome data dentro do sketch do Processing que contém todas as imagens que fazem parte da animação (54 no total). Configuração final Um pouco mais de diversão Assim que tiver o primeiro exemplo a funcionar… porque não construir algo um pouco mais divertido? A Internet está cheia de gatos pelo que decidimos criar a aplicação Elektor_Miau na edição anterior. Quisemos fazer um comentário divertido e, ao mesmo tempo, mostrar que é possível começar a fazer coisas mais atractivas do que o clássico exemplo “Hello World” quando se está a aprender a programar. Esta edição queremos construir algo novo e encorajar o leitor a aprender a fazer pequenas animações usando o Processing. Pode ver qualquer 68 | Julho - Agosto 2013 | www.elektor-magazine.pt Em seguida, modificámos o exemplo para incluir a biblioteca que controla a comunicação USB. Recomendamos que associe o código anterior com o exemplo adk_analogRead. O resultado vai-se parecer com o código apresentado na Listagem 4, que pode obter no site da Elektor [3]. Existem algumas coisas no exemplo que precisam de ser salientadas. Primeiro, existe um array chamado delays[i]. Este é responsável por controlar o tempo que cada frame é exibida na animação. Cada vez que carrega uma nova frame, também altera a duração de temporização na condição millis() – timer > delays[index]. Pensamos que deverá efectuar experiências com os Curso Arduíno números nesse array para ver como os mesmos afectam a animação. Lembre-se que devem existir tantos números quantas as frames existentes na animação. Existe também um array keyFrames[i] que contem a lista das frames da animação que estão à espera de uma acção do utilizador para o filme continuar. Neste caso vamos detectar quando os botões são pressionados. A animação vai parar nessas frames até o utilizador pressionar o botão ligado ao TinkerKit Shiled como se mostra na Figura 5. Se analisar a linha que verifica quantos bytes chegaram da placa Arduino, nós verificámos arduino. available() >= 3 para ver quando recebíamos 3 bytes, a informação está codificada da seguinte forma: • Byte 0: tem de ser 255, consiste num marcador que usamos para distinguir quando o bloco começa. • Byte 1: consiste no valor do potenciómetro; vai desde 0 a 254. • Byte 2: valor do botão; 0 ou 1. O valor do potenciómetro vai ser usado para mudar a cor de fundo do ecrã, enquanto que o botão vai activar a próxima sequência de animação. Nota: utilize a ferramenta Arduino ADK USB (menu Tools/Arduino ADK no IDE do seu Processing) para fazer o upload deste programa para o seu telemóvel. Aparece uma janela de diálogo. No campo de texto com o nome model, introduza o nome da aplicação que chamou no IDE do Arduino. O último parâmetro é usado para seleccionar a versão do SDK para o seu tipo de acessório. Se o seu telemóvel ou tablet estiver a correr o Android 3.0 ou outro mais recente, deve seleccionar SDK v12; SDK v10 é apenas para dispositivos Android a correr a versão 2.3.4. No infeliz caso do seu dispositivo Android estar a correr a versão 2.3.3 do SO, ou anterior, não vai conseguir utilizar o modo de acessório. Finalmente, o código para o Arduino é praticamente uma réplica do exemplo adk_analogRead adicionando o byte marcador extra, limitando a leitura analógica a 254 e adicionando o botão. O ciclo para este programa é apresentado na Listagem 5 [3]. Por favor, verifique todo o código que pode obter nos ficheiros disponibilizados no site da Internet da Elektor, na pasta “Arduino/code”. Figura 4. Algumas imagens do nosso filme do coelho (rabbit movie). Figura 5. Botão e potenciómetro ligados ao kit Tinker Shiled. Finalizando Com este artigo terminamos a nossa introdução ao Android e como este se liga ao Arduino. Deve estar pronto a criar novos projectos, construir robôs onde o seu telemóvel pode fazer parte da inteligência, ou integrar sensores que não estão incluídos no seu dispositivo Android. Se criar algum projecto interessante usando algum do nosso código não hesite em dizer-nos algo em [email protected], estamos interessados em conhecer esses projectos e a dar a conhecer os mesmos ao resto da comunidade. (120573) Artigo original: Arduino on Course (3b) – December 2012 Referências [1] Projecto Processing: http://processing.org [2] Animação usando múltiplas imagens com o Processing: http://processing.org/learning/topics/sequential.html [3] www.elektor.com.pt/120573 Agradecimentos O nosso muito obrigado para a equipa da Circuits@Home pelo seu primeiro trabalho numa biblioteca USB Host para Arduíno, e para Philip Lindsay pelo seu trabalho na depuração da colecção inicial de bibliotecas oficiais Arduino para Android. Agradecemos ainda a Rodrigo Calvo pela sua ajuda na melhoria do funcionamento da biblioteca USB para trabalhar com dispositivos Android 4.1, e Laura Balboa pelo seu trabalho de ilustração. www.elektor-magazine.pt | Julho - Agosto 2013 | 69 •Ideias para projecto Sensor de humidade Útil para o quarto de banho Leo vander Linde (Nova Zelândia) IC1 78L05 1 V+ 3 100n C1 7 100n IC2 B1 100n 1000u 16V IC2 = NE556 IC2A THR OUT TR 5 R3 12 220k 8 C6 K3 P1 3n3 115V 230V 10 R IC2B THR TR OUT 9 R4 3 1k 11 C5 DIS CV 4 R DIS 3 6 6VAC 2 x 110V / 2 x 6V 350mW Block AVB 0,35/2/6 220k 13 CV 2 B40C1500 R2 220k K1 V+ R1 1 TR1 6VAC C2 + C3 2 C4 14 IC3 1 K2 4 S101S06 2 Load 100n + C7 100k 1000u 16V 120463 - 11 Lista de Componentes Resistências: R1;R2;R3= 220 kΩ R4= 1 kΩ P1= ajustável de 100 kΩ, horizontal Condensadores: C1;C2;C4;C5= 100 nF C3;C7= 1000 µF/16 V, radial C6= 3,3 nF Semicondutores: B1= Ponte rectificadora B40C1500 IC1= 78L05 IC2= NE556 IC3= S101S06V (Sharp), relé de estado sólido Diversos: Tr1= transformador AC secundário 2 x 6 V, 350 mA (Block tyoe AVB 0,35/2/6), montagem PCI K1; K2= Bloco de terminais 2 vias PCI, passo 7,5 mm K3= Barra de terminais de 2 vias Sensor: Hygrosens SHS A2 PCI (Refª 120463-1), disponível na Guimocircuito (www.guimocircuito.com). 70 | Julho - Agosto 2013 | www.elektor-magazine.pt Este circuito foi projectado pelo autor para ligar automaticamente uma ventoinha no quarto de banho quando a humidade fica muito elevada. O circuito detector consiste principalmente num temporizador CMOS duplo, um sensor de humidade resistivo e um relé de estado sólido. O temporizador IC2A está configurado como oscilador de um 1 kHz com a ajuda de R1 e C6. O sinal de saída é depois aplicado ao sensor de humidade através da resistência R3, que se encontra ligado a K3 e à entrada de disparo do segundo temporizador (IC2B). Em série com o sensor temos um condensador (para prevenir a polarização do sensor como consequência da tensão de desvio DC) e uma resistência ajustável (para ajustar a sensibilidade). Como resultado da característica de resistência exponencial (<20 kΩ a 75% HR, <100 kΩ a 93% HR e <150 kΩ a 95% HR), a resistência do sensor vai ficar suficientemente elevada com o aumento da humidade, de forma que o sinal de saída de IC2A vai fazer disparar o segundo temporizador IC2B (configurado como multivibrador monostável). Este segundo temporizador vai depois ligar a ventoinha de extracção de ar através de um relé de estado sólido (IC3). Desde que a humidade permaneça num valor elevado a ventoinha vai permanecer em funcionamento. Quando a humidade decresce existe um ponto para o qual IC2B já não recebe o sinal de disparo. O temporizador vai fazer com que a ventoinha funcione durante mais quatro minutos e depois desliga-a. Quando o circuito é alimentado pela primeira vez a ventoinha vai funcionar imediatamente durante quatro minutos. Depois disso, a ventoinha apenas vai funcionar quando a humidade no quarto de banho for muito elevada. Tendo como objectivo a segurança, a fonte de alimentação para o circuito consiste num transformador AC seguido por uma ponte rectificadora, um condensador electrolítico para filtragem e um regulador. Este método evita que o sensor (que tem que estar montado no antena para banda de aviação quarto de banho) tenha uma tensão perigosamente elevada. Foi desenhada uma pequena placa de circuito impresso para este circuito, bastante simples de montar (uma vez que apenas são usados componentes convencionais). Certifique-se que instala a ligação de selecção da tensão de rede AC num local adequado. Por causa da elevada humidade existente no quarto de banho é essencial que o circuito seja montado numa caixa à prova de água. Se tiver sorte, a caixa da ventoinha poderá ser larga o suficiente para acomodar também esta placa. Contudo, o sensor propriamente dito tem de ser colocado num local onde estará em contacto com o ar húmido. A ligação do circuito não requer nenhuma explicação adicional: a tensão AC é ligada a K1 (que estava originalmente ligado directamente à ventoinha), a ventoinha está agora ligada a K2. Usando o potenciómetro P1, encontre a configuração adequada de forma que a ventoinha ligue quando a humidade relativa do ar esteja acima de aproximadamente 90%. (120463) Artigo original: Humidity sensor – January/February 2013 Antena para banda de aviação Ideal para 108-137 MHz Gert Baars (Holanda) Esta antena do tipo Zepp ou pólo em J fornece excelentes resultados em combinação com o circuito de escuta para aviões na banda dos 108-137 MHz apresentado também nesta edição. Pode ser feita a partir de um cabo coaxial convencional, como o RG58 ou o RG174 mais estreito, mas também podem ser usados cabos mais largos como o RG8 ou RG213. A antena consiste num dipólo de meia onda e dois bocados de cabo coaxial que transformam a sua impedância em 50 Ω. Para construir a antena, comece por cortar dois bocados de cabo coaxial – um com um comprimento de 12 cm e outro com um comprimento de 36 cm, mais um centímetro para as ligações. Faça um curto-circuito numa das extremidades do cabo mais curto soldando a blindagem ao terminal interior. Ligue a outra extremidade em paralelo com o bocado de cabo mais comprido e um bocadinho de nada de cabo para ligar à entrada do circuito de escuta de aviões. Pode também usar um conector para isto. Na outra extremidade do cabo coaxial mais comprido, solde o condutor interior ao chicote de antena com um comprimento de 117 cm. Isto pode ser feito a partir de um fio rígido com um diâmetro de 1 mm (18 AWG) ou outro material semelhante, e pode ser fixado em qualquer lugar dentro de casa. Para utilizar ao ar livre, pode usar um tubo de PVC para acomodar a antena. (120678) Artigo original: Aviation Band Antenna January/February 2013 Rx www.elektor-magazine.pt | Julho - Agosto 2013 | 71 •Doméstico 7-uP: Relógio com alarme/ interruptor temporal Parte 1 Michael J. Bauer Embora o objectivo principal do projecto 7-uP seja criar um relógio digital (Austrália) com alarme e com funcionalidades melhoradas, uma funcionalidade chave é a capacidade de automatizar o funcionamento de dispositivos existentes no escritório ou no quarto, controlando, por exemplo, lâmpadas, computador e periféricos, e equipamento audiovisual. Alguns entusiastas podem também pensar em algumas formas engenhosas de utilizar este dispositivo para os acordar nas manhãs dos dias de trabalho! Este projecto começou a partir da frustração que o autor tinha com o rádio-despertador, que apesar de ser de uma marca conhecida, e dispendioso, tem um funcionamento bastante incómodo e não tem a maior parte das funcionalidades que ele prefere utilizar. Sempre que levantava a questão entre amigos ou colegas de trabalho, parecia que todos os despertadores (e rádios-despertadores) não correspondiam de alguma forma às expectativas dos utilizadores. Aqui está um resumo das queixas que ouviu frequentemente acerca dos despertadores das pessoas inquiridas… • Esquecer de ligar o alarme antes de ir para a cama (porque teve de ser desligado de manhã). • Rádio-despertador não sintonizado adequadamente, ou o volume ter sido diminuído não podendo ser ouvido quando activado. • Aborrecido ritual de mudar a hora do relógio ou do alarme, tipicamente utilizando um botão para as “horas” e outro para os “minutos”. Manter pressionado um botão (e às vezes dois) provoca a mudança automática dos minutos ou das horas, mas na maior parte dos casos demasiado rápido ou lento. 72 | Julho - Agosto 2013 | www.elektor-magazine.pt • A hora do alarme é a mesma todos os dias, seja fim-de-semana, Sábado ou Domingo (a maior parte das pessoas necessita de acordar mais cedo nos dias úteis do que no fim-de-semana, e algumas pessoas trabalham em part-time ou por turnos que variam todos os dias). • O intervalo de tempo snooze é fixo (tipicamente 7 a 9 minutos) e não pode ser ajustado. • É incómodo ter de pressionar o botão de snooze para silenciar o alarme. Era óptimo ter uma opção que fizesse o alarme tocar durante alguns segundos, depois desligar-se durante alguns minutos, e repetir o processo até ser cancelado. • O mostrador é demasiado brilhante à noite e demasiado fraco de dia. • Existe um interruptor para ajustar o brilho do mostrador, mas tem um funcionamento incómodo. Porque é que o relógio não pode ajustar automaticamente o brilho para se adaptar à luminosidade ambiente? • Não gosto de acordar com o rádio pela manhã, mas será que não existe um despertador que faça um som mais interessante? (Ou melhor, que permita a escolha de sons diferentes?) Relógio com alarme/interruptor temporal Os projectos faça-você-mesmo não podem competir com a produção em massa, mas existe uma grande satisfação em fazer algo melhor! • As crianças gostam de brincar com os botões do despertador. As configurações das horas ou do alarme podem ser modificadas acidentalmente. • O botão de snooze é demasiado pequeno, ou mal localizado, ou difícil de operar no escuro. • Não faz o café. Quantas destas queixas se aplicam ao seu despertador? As lojas de electrodomésticos não tinham um despertador que cumprisse a quantidade suficiente de requisitos presentes na lista acima. Então, sendo um engenheiro electrónico, decidi projectar e construir o “despertador ideal”. Versão melhorada do despertador digital De seguida apresenta-se o conceito para um despertador digital que cumpre os objectivos pretendidos… O objectivo principal é combinar funcionalidades melhoradas com facilidade de utilização, enquanto se tenta colmatar muitas das lacunas dos produtos comerciais. Este projecto não foi feito para competir em termos de custo com os produtos produzidos em massa. Os projectos faça-você-mesmo não podem competir com a produção em massa, mas existe uma grande satisfação em fazer algo melhor. Um interface com o utilizador intuitivo (painel de controlo) que contém um mostrador, alguns botões de pressão, e um controlo rotativo para configuração quando o despertador não estiver ligado a um PC. Os controlos locais devem ser projectados principalmente para configurar o alarme e para seleccionar a informação apresentada, em vez de fazer configurações avançadas. A programação do calendário de interruptores temporais para 7 dias, se necessária, é feita de forma mais conveniente através de uma aplicação para Windows e uma ligação USB. O painel frontal deve ter um grande mostrador de 4 dígitos, para apresentar a hora actual e mais alguns indicadores iluminados, tais como PM, 24h, A1-A4, S1-S4, MON, TUE, WED, etc. Os indicadores de alarme (A1, A2, A3 e A4) apresentam o estado dos quatro eventos de alarme diários. Outro conjunto de indicadores (S1, S2, S3 e S4) apresenta o estado ligado/desligado das saídas dos interruptores temporais. O brilho do mostra- dor deve ser variável, e de preferência controlável por um conjunto de opções configuráveis pelo utilizador, por exemplo sensor de luminosidade ambiente (automático), ou por evento de alarme (modo de poupança de energia), ou manualmente utilizando o painel de controlo. A função de alarme deve ter um conjunto de opções configuráveis pelo utilizador, por exemplo sons de alarme, volume inicial, volume máximo, volume auto-incremental (opção rampa), número de repetições de alerta, intervalo entre repetições de alerta, etc. Deve haver uma boa selecção de sons de alarme já programados, que podem ser modificados pelo utilizador. Pode ser programado um som de alarme diferente para cada evento de alarme que ocorra no calendário de alarmes para os 7 dias, se o utilizador desejar. Idealmente, os sons de alarme seriam ficheiros de áudio (codificados em PCM/MP3), descarregáveis através da ligação USB, fornecendo uma qualidade de áudio com baixa distorção (isto pode ser uma opção extra, porque o custo adicional pode não ser justificável para muitos entusiastas). A função snooze pode ter dois modos de funcionamento. No modo snooze clássico, o som de alarme é silenciado temporariamente através de um botão de pressão, mas é reactivado depois de um tempo pré-programado (por exemplo, 10 minutos). A repetição da activação do alarme mantém-se até ser cancelada (por exemplo, pressionando o botão snooze três vezes rapidamente) ou até expirar um tempo pré-programado. Em alternativa, no modo snooze auto-repetitivo, a activação do alarme vai acontecer automaticamente a intervalos pré-programados (por exemplo, 10 minutos), durante um certo número de vezes, sem a intervenção do utilizador, até se desligar automaticamente. Pressionando uma única vez o botão de snooze, as activações sucessivas vão ser canceladas. Em qualquer dos modos snooze, seria necessário desligar o alarme todas as manhãs e ligá-lo novamente antes de ir para a cama! No modo de funcionamento normal, o controlo rotativo pode ser um controlo manual do brilho do mostrador. Nos modos de ajuste da hora e de configuração, no entanto, o controlo rotativo pode ser utilizado para ajustar convenientemente os dados apresentados. www.elektor-magazine.pt | Julho - Agosto 2013 | 73 •Doméstico Tem de ser fornecido algum meio para confirmar o próximo alarme pendente, até 48 horas. Pressionando o botão snooze/cancelar (quando não existe nenhum alarme activo) pode entrar no modo verificação de alarme, no qual são apresentados a hora e o dia do próximo alarme pendente. E se o botão for mantido pressionado, por exemplo, durante dois segundos, o som atribuído ao alarme pendente pode ser ligado para poder ser verificada a intensidade sonora. Levando este conceito um passo à frente, o controlo rotativo pode ser utilizado para ajustar a intensidade sonora, enquanto um par de botões de pressão podem ser utilizados para modificar o efeito sonoro. Para os entusiastas da tecnologia, o despertador deve ser ligado a um PC (via USB) e suportar uma variedade de acessórios ligados aos conectores de E/S presentes no painel traseiro. Estes fornecem interruptores que podem ser utilizados para ligar/ desligar dispositivos a horas pré-programadas, e/ ou ligá-los quando o alarme é activado. Estes dispositivos podem ser: campainha de alarme, lâmpada de mesa-de-cabeceira, rádio, TV, fervedor eléctrico, máquina de café, PC, periféricos do PC, etc. Em todos os casos os canais dos interruptores temporais devem ser configuráveis independentemente e podem ter tempos de ligar/desligar diferentes para cada dia da semana. Deve ser fornecida uma bateria de segurança para manter a hora e a data do despertador no caso de falha de energia. Quando a carga da bateria chegar a um mínimo utilizável, deve ser emitido um aviso. Todas as opções configuráveis pelo utilizador, parâmetros, calendário semanal de ligar/desligar/alarme, etc., devem ser preservados numa memória não volátil. As configurações do utilizador podem ser descarregadas de/para o PC utilizando uma aplicação para Windows. Quando estiver ligado a um PC, o despertador deve sincronizar automaticamente a sua hora e data com o relógio de tempo real interno do PC que, por seu lado, pode ser sincronizado pela hora da Internet. Para além de fornecer um interface gráfico com o utilizador (GUI) para Windows para configurar o calendário de alarmes, etc., o porto USB também deve permitir actualizações de firmware. Esta capacidade é essencial para suportar futuras melhorias e correcção de erros. Introdução técnica O hardware essencial consiste num módulo principal, num módulo com o mostrador, um controlo rotativo, um altifalante, e num botão snooze/can- 74 | Julho - Agosto 2013 | www.elektor-magazine.pt celar. Ambos os módulos que contêm o hardware básico não contêm componentes SMD, para facilitar a montagem dos componentes aos entusiastas que têm menos jeito para soldar e/ou material limitado. O microcontrolador está inserido num suporte (PLCC de 52 pinos) pela mesma razão. O módulo principal contém um gerador de sons simples de baixo custo. O nível de áudio (envolvente de amplitude quando se liga/desliga e volume geral) é controlado digitalmente pelo microcontrolador utilizando PWM. Com a ajuda de um firmware inteligente, que pode introduzir efeitos de modulação de amplitude ou de frequência, este gerador pode produzir uma boa variedade de sons, desde os mais agradáveis até aos insuportáveis. É fornecida uma selecção de 16 sons pré-definidos com o firmware genérico. O utilizador pode construir sons alternativos modificando os parâmetros de formato sonoro armazenados na EEPROM. Todas as partes podem ser colocadas numa caixa já feita, ou numa caixa projectada e construída por si. A caixa standard consiste num modelo CM6225 da PACTEC, mas também está disponível a baixo preço uma réplica feita na China. As placas de circuito impresso foram projectadas para caber na caixa standard (Assembly Instructions no pacote para download). Embora os sete botões de pressão sejam normalmente montados no topo do módulo do mostrador, para que sejam acessíveis a partir da frente do painel superior, podem ser localizados em qualquer outro local, por exemplo num pedaço de placa para protótipos ligado ao módulo do mostrador. Este tipo de disposição permite variações criativas ao desenho da caixa. A expansão de hardware é possível através de um módulo intermédio opcional que é ligado ao módulo principal através de um conector para flat-cable. Isto torna possível a extensão da funcionalidade do despertador, ou utilizar a plataforma de hardware para uma aplicação completamente diferente. No futuro, o autor poderá desenvolver um módulo intermédio para gerar áudio digital PCM/MP3 de alta-fidelidade. O módulo vai incluir um circuito integrado descodificador de MP3 e uma memória flash série para armazenar os ficheiros de som. O firmware é baseado no sistema operativo ALERT (Low-End Real-Time) desenvolvido pelo autor. Quem construir o projecto pode escolher entre escrever (e partilhar) o seu próprio firmware ou descarregar uma versão genérica gratuita. O código fonte está disponível em [1] para os leitores que desejem modificar ou expandir o firmware para as suas próprias aplicações. Relógio com alarme/interruptor temporal Funcionalidades do Relógio com alarme/interruptor temporal 7-uP • Utilização fácil e conveniente. • Controlos locais e menu de configuração intuitivos. • Controlo rotativo (codificador rotativo) para facilitar a configuração da data e da hora. • Confirmação de alarmes pendentes e de intensidade sonora com apenas um toque. • Múltiplos eventos de alarme e calendário semanal (7 dias). • Programação de até quatro eventos de alarme num período de 24 horas. • Tempos diferentes de alarme para cada dia, se desejado. • Opções para snooze/cancelar versáteis. • Modo clássico – o alarme toco continuamente até ser cancelado por um botão. • Modo de repetição automática – o alarme toca em intervalos periódicos, até ser cancelado. • Intervalo de tempo de snooze ajustável (em ambos os modos). • Mostrador com brilho variável, com opção de escolha dos modos de controlo. • Sensor de luminosidade ambiente. • Activado por alarme ou temporizador. • Configuração manual – ajustar o brilho com controlo rotativo. • Sons de alarme de alta qualidade programáveis. • Possibilidade de escolha de uma variedade de sons de alarme “interessantes” já programados. • Modificar os sons já programados ou criar os seus próprios sons. O hardware é baseado no microcontrolador AT89C5131 da Atmel. Este microcontrolador foi escolhido porque estava disponível num encapsulamento PLCC (com suporte), tem uma generosa quantidade de memória flash para programa (32 kB) com EEPROM de dados separada (1 kB), tem um módulo USB interno, é popular e está disponível a baixo custo (cerca de 7 dólares na Digi-Key). Mais importante, o AT89C5131 tem um bootloader para programar a memória flash através da ligação USB, sem necessitar de um programador adicional. A única desvantagem do AT89C5131é ter um núcleo 8051, que é (na opinião do autor) uma das piores arquitecturas para microcontroladores já desenvolvidas! Isto não é relevante se estiver a programar em linguagem C e tiver acesso a memória flash suficiente para compensar o conjunto de instruções ineficiente (para ser justo, o conjunto de instruções da arquitectura 8051 é bastante eficiente se utilizar o bloco de registos principal, isto é RAM abaixo do endereço 0xFF, mas é horrivelmente ineficiente se utilizar os blocos de RAM estendida). Para os projectistas de firmware faça-você-mesmo, está disponível um compilador de linguagem C para desenvolvimento de código para a arquitectura 8051 (procurar “SDCC 8051 compiler” no Google). No geral, o AT89C5131 é uma boa • Atribuir diferentes sons a eventos de alarme diferentes. • Ligação USB a um PC #. • Sincronizar o relógio ao sistema de hora e data do PC (hora da Internet). • Guardar e restaurar opções de configuração, eventos de alarme e calendários de interruptores temporais ^. • Possibilidade de descarregar actualizações (melhoramento de funcionalidades e correcção de bugs). • Ligações para dispositivos controlados por interruptores temporais e por interruptores de alarme. • Quatro canais independentes para interruptores temporais com calendário Ligar/Desligar de 7 dias. • Controlo de dispositivos AC (lâmpadas, rádio, TV/Vídeo, computador e periféricos)*. • Saída activada por alarme para controlo de dispositivos de despertar externos. • Temporizador auxiliar (decrescente) com respectiva saída de controlo. • Ligar automaticamente periféricos do PC quando é detectada energia no barramento USB. * Necessita de relés de estado sólido opcionais para controlar equipamento AC. # A ligação ao PC utiliza a aplicação de porta COM Virtual USB-CDC, ^ Facilitado por uma aplicação gráfica para Windows, a ser desenvolvida também acessível utilizando o HyperTerminal. por terceiros. escolha para um projecto faça-você-mesmo, especialmente para os entusiastas que não dominam a soldadura de componentes SMD. Para um produto comercial com um projecto semelhante, poderia escolher-se um microcontrolador diferente, por exemplo, um MC9S08-JM60 da Freescale ou até um microcontrolador ARM de 32 bits (porque os custos são comparáveis com muitos dispositivos de 8 bits). Todos os componentes estão disponíveis nos maiores fornecedores tais como a Farnell/ Avnet, Digi-Key, Mouser, etc. A maior parte dos componentes deve estar disponível nas lojas de electrónica locais (provavelmente a preços mais elevados). Cuidado com as altas taxas de entrega cobradas por fornecedores de outros continentes. Funcionamento geral Requisitos da fonte de alimentação O despertador foi projectado para funcionar a partir de uma pilha de 9 V. O circuito do despertador consome menos de 100 mA (com o brilho do mostrador configurado para um valor normal). É recomendada uma fonte de alimentação comutada para minimizar o consumo de energia da rede eléctrica AC. O despertador tem um circuito integrado regulador de tensão comutado de 5 V para uma eficiência óptima. www.elektor-magazine.pt | Julho - Agosto 2013 | 75 •Doméstico Figura 1. Legenda dos botões de pressão do painel superior. Este despertador também pode ser alimentado a partir do porto USB (V bus = 5 V DC). A fonte de alimentação DC externa (+VEX), disponível nos conectores para dispositivos externos, vem directamente da entrada de 9 V, pelo que não está disponível quando se está a alimentar o circuito via USB. Consequentemente, os dispositivos que necessitem da fonte alimentação de 9 V não vão funcionar. A bateria de segurança mantém o despertador a funcionar quando este está desligado de ambas as fontes de alimentação: USB e 9 V. Bateria de segurança O despertador não foi projectado para utilizar a bateria de segurança em funcionamento normal. A bateria serve apenas para prevenir a perda da hora e da data quando ocorre uma falha de energia ocasional na rede eléctrica; também permite desligar momentaneamente o despertado para o mudar de localização, por exemplo para o ligar a um PC. Enquanto está a funcionar só com a bateria de segurança, só estão activas as funções que mantêm a hora e a data. A bateria de segurança contém três pilhas do tipo AA, que podem ser do tipo alcalino de 1,5 V ou do tipo recarregável de 1,2 V. O microcontrolador funciona com a tensão da bateria numa gama entre 3,3 V e 5 V. A tensão da bateria é monitorizada continuamente pelo microcontrolador quando o despertador está alimentado pela fonte de alimentação DC de 9 V. É fornecido um interruptor para desligar a bateria de segurança para quando o despertador fique desligado por um longo período de tempo. Figura 2. Legenda do mostrador do painel frontal. Fonte de alimentação DC suplementar Os conectores Dispositivo Alarme e Dispositivo Interruptor Temporal fornecem uma fonte de alimentação DC protegida, alimentada a partir da entrada DC de 9 V. A corrente fornecida pela fonte de alimentação DC externa está limitada em cerca de 0,5 A através de um fusível rearmável. A saída de controlo comutada por alarme consegue fornecer até 0,5 A a um dispositivo DC (por exemplo, uma campainha, lâmpada, rádio, etc.). 76 | Julho - Agosto 2013 | www.elektor-magazine.pt Download do firmware O firmware é programado na memória flash para programa através da ligação USB, utilizando a aplicação FLIP (Flexible In-System Programmer) da Atmel. A versão mais recente do software FLIP e a documentação para o utilizador pode ser descarregada do site da Atmel. Para iniciar o bootloader USB do dispositivo, mantenha pressionado o botão ISP (In-System Programming), e depois pressione o botão de reset. O mostrador deve apagar-se. Ligue o cabo USB ao PC. Inicie a aplicação FLIP. Siga as instruções da aplicação FLIP da Atmel. Interface de comandos com o host O firmware contém um protocolo de comunicação que tem como função principal transferir dados de/para um PC host através da ligação USB. O protocolo é baseado num simples formato de linha de comandos, daí o nome “interface de comandos com o host HCI (Host Command Interface). Como o protocolo utiliza caracteres ASCII imprimíveis, o interface pode ser acedido utilizando um emulador de terminal (por exemplo, o HyperTerminal) para a interacção com o utilizador. O interface pode ser utilizado interactivamente para configurar opções do despertador, parâmetros, etc. As opções de configuração avançadas, não acessíveis a partir do “interface local com o utilizador” (painel de controlo), podem ser configurados utilizando o interface de comandos com o utilizador em conjunto com o HyperTerminal, ou uma aplicação para o GUI do Windows (TBD). O porto de dispositivos USB é visto pelo PC como um porto COM virtual. O software da aplicação no Windows pode comunicar com o despertador através de chamadas a funções API para os portos COM do Windows (open, read, write, etc.). Um comando é composto por duas letras (mnemónica de comando) e um conjunto de argumentos fornecidos pelo utilizador (argumentos). Alguns comandos não têm argumentos. Deve ser inserido um único espaço entre os argumentos, quando existe mais do que um (incluindo o nome do comando com as duas letras). Geralmente, o protocolo não é sensível a maiúsculas. Não há um mecanismo para editar a linha de comandos, mas utilizar ESC ou Ctrl-X faz cancelar a linha de comandos. É fornecido um breve sumário dos comandos quando se introduz o comando de ajuda, HE. São fornecidos comandos para depuração para assistir os projectistas no desenvolvimento do Relógio com alarme/interruptor temporal Tabela 1. Funções dos botões de pressão. seu próprio código para o firmware, e para os interessados no funcionamento interno do microcontrolador e do firmware. Para mais detalhes sobre o protocolo procure o manual do utilizador que está no pacote gratuito para download em [1]. Funcionamento do painel de controlo – uma visão geral A Figura 1 apresenta a disposição standard dos botões de pressão ao longo do painel superior do despertador. O botão SNOOZE/CANCELAR também está localizado no painel superior. Os botões de pressão, o mostrador LED e o codificador rotativo formam o interface local com o utilizador. A maior parte das operações e das configurações são acessíveis através do interface local com o utilizador. Algumas das mais esotéricas funções para o utilizador são ajustáveis somente através da ligação USB. Ao contrário da maior parte dos despertadores, o nosso mostrador apresenta o dia da semana. Quando se configura um alarme, o utilizador pode escolher em que dia(s) da semana o alarme vai ser activado. Outros indicadores LED apresentam o estado ligado/desligado dos quatro eventos de alarme (A1-A4) e das quatro saídas dos interruptores temporais (S1-S4). O painel de controlo (Figura 2) permite a configuração manual das saídas dos interruptores temporais. A maior parte dos botões de pressão têm mais do que uma função. A função efectuada quando se pressiona um botão é dependente do contexto da operação. Por exemplo, no modo de apresentação da hora actual, pressionar os botões [+] ou [-] selecciona um item diferente, por exemplo, segundos, ano, data (mês e ano), etc. Num modo de configuração, os botões [+] e [-] podem ser utilizados para incrementar ou decrementar um valor numérico, ou para navegar através de uma lista de itens, por exemplo, os dias da semana. No geral, num modo de configuração, um dígito ou um LED a piscar indicam que um item pode ser alterado pressionando um botão ou rodando o controlo rotativo. O botão SAIR deixa uma operação de configuração sem alterar nada. A Tabela 1 apresenta um resumo das operações do “interface local com o utilizador” (painel de controlo). A coluna da esquerda contém as operações que podem ser efectuadas a partir do modo de apresentação da hora actual. Para os detalhes completos de funcionamento, leia o manual do utilizador no pacote para download. Botão de pressão pressionado ou Acção resultante outra entrada TEMPORIZADOR/ RELÓGIO É apresentado o Temporizador Decrescente (tempo inicial ou remanescente, mm.ss). A partir daqui o Temporizador Decrescente pode ser configurado e iniciado. VERIFICAÇÃO DE ALARME É iniciado o modo Verificação de Alarme. É apresentado o tempo configurado do evento de alarme seleccionado (A1..A4). Aqui o alarme seleccionado (hora e dia da semana) pode ser reprogramado, habilitado ou desabilitado. Os botões [+] e [-] seleccionam o dia da semana para o alarme a ser configurado. O botão LIGAR/DESLIGAR comuta o estado do alarme. Pressionar o botão SNOOZE no modo VERIFICAÇÃO DE ALARME permite a alteração do efeito sonoro e da sua intensidade. INTERRUPTOR TEMPORAL É iniciado o modo INTERRUPTOR TEMPORAL. Pode ser comutado o estado do canal de interruptor temporal seleccionado (S1-S4) (desligando temporariamente o horário de interruptores temporais programado). CONFIGURAR, durante mais de 3s É iniciado o modo de configuração da Hora. O controlo rotativo ajusta as horas e depois, se for pressionado o botão CONFIGURAR, são ajustados os minutos. Pressione novamente o botão CONFIGURAR para gravar as alterações, ou pressione o botão SAIR para deixar tudo inalterado. MENU, É iniciado o modo de Configuração de Menu. durante mais de 3s Aqui podem ser ajustadas várias opções de utilizador e parâmetros. Os botões [+] e [-] permitem navegar através do menu. [+] ou [-] A hora actual muda para os segundos, ou para a data (ano, mês, dia). Pressionando [+] navega através dos itens na sequência: Segundos (ss.cc), Ano (20xx), Data (MM dd), e depois novamente para a hora actual. Pressionando [-] inverte-se a sequência. O botão CONFIGURAR pode ser pressionado para configurar algum dos itens apresentados. SNOOZE/ CANCELAR Confirmação de alarme: é apresentada a hora do próximo evento de alarme (habilitado) pendente, até às próximas 48 horas. Se mantiver pressionado o botão (>2s), é activado o som do alarme. Pressionar o botão CONFIGURAR enquanto mantém pressionado o botão SNOOZE permite a alteração do tipo e da intensidade do alarme. Controlo rotativo (enquanto é apresentada a hora actual) É ajustado o brilho do mostrador. Dependendo das opções seleccionadas, esta configuração pode ser retida até ao próximo ajuste, ou pode mudar novamente automaticamente. No segundo e último artigo desta série, vamos discutir o diagrama esquemático e a construção do despertador. (100149) Artigo original: The 7-uP Alarm Clock/Time-Switch January & February 2013 www.elektor-magazine.pt | Julho - Agosto 2013 | 77 •Passatempo & Modelismo Circuito para escuta de comunicações aeronáuticas Para os entusiastas de aviões, e em particular os spotters, é sempre interessante ouvir as comunicações entre as aeronaves e as torres de controlo. Com este receptor é fácil ouvir todo o tráfego na banda de aviação civil. É fácil de construir, tem Gert Baars (Holanda) apenas um ajuste de hardware, e até pode ser controlado a partir de um PC com um porto USB. É sempre interessante ouvir as comunicações entre as aeronaves e as torres de controlo. Mesmo que estas consistam habitualmente em informações standard acerca da posição ou instruções aos pilotos para descolar ou aterrar; é bastante emocionante – é quase como estar sentado no cockpit junto ao piloto. Em conjunto com os entusiastas que consideram fascinante escutar as comunicações aeronáuticas, os spotters de aviões gostam de escutar as comunicações para descobrir que tipo de avião está a aterrar ou a preparar-se para descolar. Claro, existem circuitos de escuta para comunicações aeronáuticas já feitos e a preços razoáveis, mas continua a ser interessante construir um e divertir-se com ele. O circuito que aqui descrevemos consiste num projecto bastante simples, mas fornece uma grande quantidade de funcionalidades graças ao microcontrolador integrado, que lhe permite controlar o circuito e programar as frequências a partir de um PC. Considerações Para manter o circuito razoavelmente simples, o varrimento é limitado à banda de aviação civil (108-137 MHz). A banda de aviação civil foi originalmente dividida em canais com intervalos de 25 kHz, que mais tarde foram actualizados para 78 | Julho - Agosto 2013 | www.elektor-magazine.pt 8,33 kHz (25/3). Na prática, este esquema é raramente utilizado. O circuito aqui descrito pode ser sintonizado com uma resolução de 1 kHz, para que nunca divirja mais de 330 Hz da frequência desejada. A largura de banda desejada para sinais AM é aproximadamente de 6 kHz. Estão assim determinados os requisitos mínimos para o nosso circuito de varrimento. Para evitar a necessidade de implementar um teclado e um mostrador, optou-se por substituir estes componentes por um terminal. O circuito comunica com um PC através de uma ligação série (USB), onde é apresentado um interface de controlo que utiliza o HyperTerminal. Pode utilizar o PC para programar as frequências e configurar vários parâmetros. Para o andar de recepção escolheu-se uma abordagem relativamente simples com um único circuito integrado – um receptor FM superheterodino de conversão simples, que está configurado como receptor AM utilizando o detector de nível de sinal como detector AM. Num receptor superheterodino de conversão simples são geradas frequências imagem que têm de ser suprimidas. Isto é tão mais simples quanto maior for a distância entre a frequência recebida e a frequência imagem, o que torna necessária a utilização de uma frequência intermédia de valor elevado. A frequência intermédia mais alta possível com o circuito integrado Circuito para escuta de comunicações aeronáuticas Portátil e com interface USB Funcionalidades • Programável em ambiente Windows. • 100 frequências programáveis em memória. • Gama de recepção de 108-137 MHz (AM). • Sensibilidade de 0,2 µV com uma relação sinal/ruído (S+N/N) de 6 dB. • Taxa de varrimento de 5 canais por segundo. • Função de varrimento automático com programação de frequência. • Sintonia manual possível com botões cima/baixo. receptor utilizado é de 25 MHz, aproximadamente. Embora uma frequência de 27 MHz esteja dentro da gama utilizável, os filtros para esta frequência são habitualmente dispendiosos e difíceis de encontrar. Optou-se aqui por dois filtros simples em escada com cristais de quartzo de 27 MHz – no total quatro cristais de quartzo custando cerca de 1 euro cada. A vantagem de utilizar uma frequência intermédia de 27 MHz, com a frequência do oscilador local abaixo da frequência de recepção, é que as frequências imagem pertencem a uma gama entre 54 MHZ e 83 MHz, imediatamente abaixo da banda de radiodifusão FM em VHF. Nos receptores é habitualmente implement ada a sintonia utilizando uma PLL ou DDS, mas para simplificar o mais possível optou-se por uma solução mais simples para este projecto. Uma opção é utilizar uma malha de captura de frequência (FLL). Com esta abordagem, o microcontrolador mede a frequência do VFO, compara-a no firmware com a frequência desejada, e ajusta-a utilizando um conversor D/A. Depois de alguns testes concluiu-se que esta abordagem funciona bastante bem se o conversor D/A tiver uma resolução suficientemente elevada, para permitir pequenos ajustes na frequência. A entrada do contador do microcontrolador não admite frequências muito elevadas, pelo que foi inserido um divisor de frequência entre o oscilador e o microcontrolador. Isto resulta num circuito com poucos e simples componentes. O cir- www.elektor-magazine.pt | Julho - Agosto 2013 | 79 •Passatempo & Modelismo +5V IC5 78L05 1 C15 3 2 100n IC3 2 C16 LM317 3 100n 7 C18 C10 10p BFR92 2 RF BYPASS 3 C25 10n 100nH 4 C23 100p 1 CBUS4 2 CBUS3 3 VCIO +3V3 CBUS2 4 5 CBUS1 RXD CBUS0 TXD BOB-FT232R 6 RESET 7 8 9 CTS DCD RI DSR RTS DTR 2 100k 16 11 TXD 14 LIMITER IN IF AMP OUT 56uH 7 17 100n R4 C22 47k C17 220u 16V R5 19 C29 47k 4n7 C41 C33 C31 C27 100n 100n 100n 220p R8 47k P2 C20 C19 T1 2n2 C26 RSSI 3 50k VOL 2 2n2 1 10u 16V 6 CTR12 10 + 0 1 2 4 IC6 CT MC74AC 4040D CT=0 5 6 7 8 9 10 GND 8 47u 16V 4 7 C36 BS170 47n IC1 V+ 11 5 7 2 6 7 1 4 VDD IC4 REF 3 DIN LDAC DGND R10 2 SCLK MAX5201 5 2 1 CLR OUT 10 CS AGND 3 9 4 8 5 6 6 11 12 13 4 13 12 14 15 1 R1 C1 100n 9 3 K2 AUDIO MUTE C4 3 T2 C35 5 78L05 VCC 220R 8 IC8 10 100n 11 15 L2 C12 VTUNE 13 16 BFR92 V+ GND R6 10p 14 GND 100n 820R RSSI OUT 12 C39 R3 2u2 16V 1n C21 12k 22p +9V 0 C7 220R LM386-N3 RXD +5V R9 * 12 15 C24 L3 D2 BB204 17 22p + 1 R7 18 +5V 27MHz K1 4 100n 10p 3 MOD1 13 C45 56p C47 16 IC7 SA615 RF IN C34 6 VCC X5 IF AMP DEC L5 C40 5 C46 IF AMP DEC 1n 27MHz LIMITER DEC 12p T3 18 IF AMP IN 1 X4 MUTE IN 20 C30 100p C38 22p MIXER OUT 120k C37 22p R12 330R 100n 27MHz XTAL OSC R11 C32 ANT C42 56p C44 XTAL OSC GND X3 LIMITER DEC 27MHz ANT1 C43 1N4001 ADJ R2 100n X2 D1 1 6 21 220R L4 20 7 AVCC VCC ADC5 RESET ADC4 ADC3 PD0 IC2 PD1 PC2 PD2 PC1 PD3 PC0 PD4 PB5 T1 PB4 OC0A PD7 ATMEGA88 PB3 PB2 PB1 AREF PB0 100n 28 26 25 23 8 C11 C13 9 X1 100p 100n 40p 20MHz C5 C6 C3 10u 16V 100n 100n 10u 16V 19 18 17 16 15 14 L1 100mH 10 22 F/16 C28 C2 100k SQUELCH 24 GND XTAL1 XTAL2 GND 3uH3 150k 27 C14 C8 C9 22p 100n 100n R14 R15 1k D3 1k D4 HOLD SQUELCH S3 S1 S2 100696 - 11 Figura 1. Diagrama esquemático do receptor, com a parte analógica em cima e a parte digital em baixo. Os três reguladores de tensão fornecem tensões de alimentação estáveis para as várias partes do circuito. cuito tem apenas três botões de pressão, um controlo de volume e um controlo de limiar de detecção. Tudo o que necessita para tornar este dispositivo portátil é programar as frequências e as configurações através de um PC. Como funcionalidade extra, tem um modo de funcionamento no qual varre automaticamente as frequências e programas existentes na memória. Isto envolve regular o nível de limiar de detecção, reiniciar o scanner no modo de varrimento, 80 | Julho - Agosto 2013 | www.elektor-magazine.pt e esperar até que o varrimento esteja concluído. Neste modo o scanner varre automaticamente a banda de aviação, uma frequência de cada vez, armazenando na memória cada frequência onde detecte sinal. Andar de recepção O receptor (Figura 1) é construído em torno de um circuito integrado NE615 (SA615). Este componente é uma versão melhorada da com- Circuito para escuta de comunicações aeronáuticas binação de um NE602 (misturador e VFO) com um NE604 (amplificador de frequência intermédia, limitador e detector de FM). A detecção de FM não é relevante para este projecto, pelo que não são utilizados alguns pinos deste componente. No entanto, o circuito integrado tem uma saída para um detector de nível de sinal (RSSI), que fornece uma tensão proporcional ao nível do sinal. Este sinal é dividido em dois: um para a saída de áudio (com filtragem de banda estreita para supressão de ruído), e outro para detecção de sinal pelo microcontrolador. Isto permite ao microcontrolador parar a procura se detectar um sinal activo. Para melhorar a recepção, o sinal proveniente da antena é filtrado e amplificado antes de ser injectado no circuito integrado receptor. Neste é misturado com o sinal gerado pelo VFO, que é sintonizado utilizando um díodo varicap duplo. O resultado é uma frequência intermédia de 27 MHz, que é filtrada por um par de filtros em escada com cristal de quartzo (X2-X5), com uma largura de banda de 6 kHz aproximadamente. A frequência intermédia não é exactamente 27 MHz, mas sim 26,998 MHz. Isto pode ser modificado nos parâmetros de configuração, mas a configuração standard da frequência intermédia é de 26,998 MHz. Os cristais têm de ter as frequências fundamentais idênticas, mas um desvio de alguns kHz é tolerável e pode ser compensado ajustando os parâmetros de configuração se necessário. Não utilize cristais de terceira harmónica (fundamental de 9 MHz). O sinal gerado pelo VFO é injectado, através de um andar de ganho (T2), num 74AC4040 (IC6) configurado como divisor por 16. A gama de frequências do VFO situa-se entre 81 MHz e 110 MHz. O limite superior de frequência da entrada do contador do microcontrolador é de 8 MHz, pelo que é necessário um factor de divisão mínimo de 14. O sinal da saída de áudio de IC7 (pino 7) está ligado ao potenciómetro de controlo de volume P2 através de algumas resistências, e do FET T1 para a função MUTE. O controlo de volume faz passar o sinal pelo pequeno circuito integrado amplificador de áudio (IC8, um LM386), que pode controlar directamente um pequeno altifalante de 4Ω ou de 8Ω. A combinação de sinais digitais e analógicos (RF) torna necessária uma extensa regulação das ten- Bandas de aviação Se pretender projectar um scanner para comunicações aeronáuticas, tem de considerar à partida que gama de frequências este deve ser capaz de receber. A maior parte das comunicações aeronáuticas tem lugar nas bandas de aviação civil (108-137 MHz) e militar (230-400 MHz), ambas moduladas em amplitude (AM). No entanto, também é utilizada modulação SSB nas bandas HF (3-30 MHz) para comunicações aeronáuticas. Para este scanner foi decidido limitar a gama de frequências de recepção à banda de aviação civil. Esta banda é utilizada para comunicações entre os controladores aéreos e as aeronaves, entre as aeronaves, e entre as aeronaves e as companhias aéreas ou veículos terrestres. sões de alimentação. São utilizados três reguladores de tensão para este efeito. IC3 fornece uma tensão de alimentação limpa de 6 V para toda a secção de RF. A secção digital tem o seu próprio regulador de 5 V, fornecidos por IC1, e IC6 tem uma tensão de alimentação separada fornecida por IC5 (um 78L05). Microcontrolador O ATmega88 (IC2) tem de cuidar de várias tarefas. Este mede a frequência proveniente do VFO, dividida por 16 por um contador com um tempo de atraso de 16 ms, retornando os valores medidos em kHz. O VFO é controlado por um conversor D/A de 16 bits: um MAX5201 (IC4), que foi escolhido por ter os 16 bits necessários ao projecto. Com uma largura de banda de 29000 kHz e 216 passos de quantificação, a resolução é de 440 Hz, aproximadamente. Isto é aceitável para sintonizar com a precisão adequada uma largura de banda com uma frequência intermédia de 6 kHz. As outras duas razões significativas para escolher este dispositivo são a saída do amplificador rail-to-rail e o seu interface de controlo série. A memória EEPROM do microcontrolador tem espaço suficiente para armazenar mais de 100 frequências, o que é mais do que necessário, mas também pode seleccionar segmentos de frequência, tais como 5 segmentos de 20 frequências. Duas entradas do conversor A/D do microcontrolador são utilizadas para medir o nível do sinal e o valor regulado pelo potenciómetro de limiar de detecção (pinos 28 e 27). Estes valores são comparados com os valores de referência internos, e baseado nos resultados destas comparações, o sistema pára ou continua a procura. Os LEDs D2 e D4 fornecem informação acerca do limiar de detecção e do tempo de espera durante a procura. Estão presentes três botões de pressão www.elektor-magazine.pt | Julho - Agosto 2013 | 81 •Passatempo & Modelismo Figura 2. A placa de circuito impresso consiste em duas secções que podem ser separadas se desejado, dependendo da caixa escolhida. (S1-S3), que podem ser utilizados para algumas funções, como por exemplo bloquear um canal durante a procura. O conversor USB/FT232R [1], que já foi utilizado em vários projectos da Elektor, é ligado aos pinos 2 e 3 do microcontrolador. É reservado espaço para este módulo na placa de circuito impresso. Este conversor permite ao scanner ser ligado a um PC através de um cabo USB. Firmware Figura 3. O protótipo está um pouco descuidado mas funciona bem. O firmware permite que o hardware do scanner funcione correctamente. O ciclo principal lê sequencialmente as frequências presentes na memória EEPROM. Para cada frequência, tem de se subtrair a frequência intermédia para determinar a frequência do VFO. Aqui não é possível introduzir directamente a frequência, devido ao princípio de funcionamento da FLL. Por esta razão, a frequência é configurada utilizando o método das aproximações sucessivas. Utilizando um conversor D/A de 16 bits são necessárias 16 medições, cada uma com uma duração de 16 ms. Embora isto torne a procura mais lenta, permite que o projecto fique mais simples do que seria se fosse utilizada uma PLL ou DDS. Depois de configurada a frequência, o firmware analisa a saída RSSI para determinar se foi detectado um sinal. Se sim, é desligado o sinal MUTE e o sinal de áudio é encaminhado para o altifalante. Se o sinal desaparecer, a frequência é monitorizada durante um intervalo de tempo configurável e, passado este tempo, a procura continua e é lida uma nova frequência armazenada na EEPROM, sendo configurado o VFO com a nova frequência. Esta frequência é mantida durante o tempo de espera e quando se está a ouvir uma determinada frequência. A memória tampão de entrada e o estado dos botões de pressão são lidos durante a procura. Isto permite a leitura de comandos provenientes do terminal e, se o botão de pressão S1 estiver pressionado, o canal actual é evitado e a frequência correspondente é marcada com um B na EEPROM. O canal é assim bloqueado, o que pode ser desejável se o scanner ficar bloqueado nessa frequência, talvez pela presença de uma portadora sem conteúdo. Este bloqueio pode ser efectuado a partir do terminal. O scanner tem um conjunto de configurações standard (como o valor da frequência intermédia), que são lidas da memória EEPROM aquando do arranque. Isto permite a configuração destes parâmetros, directamente no scanner ou utilizando o terminal. Construção A Figura 2 apresenta o desenho da placa de circuito impresso para o scanner de comunicações aeronáuticas. Esta é dividida numa secção analógica e numa secção digital, que podem ser sepa- 82 | Julho - Agosto 2013 | www.elektor-magazine.pt Circuito para escuta de comunicações aeronáuticas radas se necessário, dependendo de como vão ser montadas na caixa. Se separar as duas secções, vai ter de as juntar através de fios (cinco ligações por fio e mais uma ligação para a massa entre as duas secções). É melhor começar por soldar os componentes SMD, porque é a tarefa mais difícil. Depois disso pode encaixar e soldar os suportes para os circuitos integrados e os componentes convencionais. Os dois potenciómetros são montados na caixa e ligados ao circuito por pequenos pedaços de fio isolado. A bobina L5 é a única bobina que tem de bobinar manualmente. Para isto, enrole quatro espiras de fio prateado com cerca de 1 mm de diâmetro (18 AWG), na parte lisa de uma broca de 7 mm. Depois estique a bobina até esta atingir um comprimento de cerca de 7 mm, e solde-a na placa de circuito impresso. Corte um pouco de espuma e insira-a na bobina para evitar vibrações. Finalmente, insira o microcontrolador já programado, o LM386, e o conversor USB/ FT232R na placa de circuito impresso. Quando seleccionar uma caixa, lembre-se de deixar algum espaço para os potenciómetros, para um pequeno altifalante, e para uma pilha de 9 V ou um conjunto de pequenas pilhas. Os botões de pressão devem ser acessíveis do exterior (uma opção é inseri-los em pequenas extensões tubulares). Também necessita de montar um conector BNC para a antena. Para utilização exterior, pode ligar uma antena de ¼ de comprimento de onda, com um comprimento de 60 cm. Para utilização interior pode ligar uma antena mais eficiente, como aquela que é descrita algures nesta edição. Ajustes Perto do cristal gerador de relógio para o microcontrolador está um condensador variável de 40 pF, que permite ajustar a frequência de relógio para 20,0000 MHz exactos, permitindo uma sintonia de precisão. Regule-o para uma posição intermédia para iniciar o ajuste. Este pode ser ajustado medindo a frequência à saída do 74AC4040 e utilizando o comando T para configurar o scanner para uma frequência fixa. Esta frequência, depois de lhe subtrair o valor da frequência intermédia e de a dividir por 16, deve estar presente à saída do divisor de frequência. Depois de configurar exactamente esta frequência, utilize o comando T para configurar uma frequência de recepção, e depois verifique se o valor da frequência intermédia presente Lista de componentes Resistências (SMD 0805) R1= 150 kΩ R2;R6;R10= 220 Ω R3= 820 Ω R4;R5;R8= 47 kΩ R7= 100 kΩ R9= 12 kΩ R11= 120 kΩ R12= 330 Ω R14;R15= 1 kΩ P1= potenciómetro 100 kΩ, linear P2= potenciómetro 50 kΩ, logarítmico Condensadores (SMD 0805) C1;C4a C9;C11;C12;C15;C16;C18;C21;C31;C32;C33;C39;C41;C48= 100 nF C2;C3;C29= 10 µF/35 V, radial C10= 2,2 µF/63 V, radial C14;C42;C44;C45;C47= 22 pF C17= 4,7 nF C19;C20= 2,2 nF C22= 220 µF/16 V, radial C23;C24;C40= 10 pF C25;C28;C30= 100 pF C26;C38= 1 nF C27= 220 pF C34= 10 nF C35= 47 µF/16 V, radial C36= 47 nF C37= 12 pF C43;C46= 56 pF C13= ajustável de 8,5 pF-40 pF (Murata TZB4P400AB10R00) Bobinas L1;L5= 10 nH (SMD 0805) L2= 56 µH L3= 4 espiras de fio 18 AWG prateado, comprimento 8 mm, diâmetro interior 7 mm L4= 3,3 µH (SMD 0805) Semicondutores D1= 1N4001 D2= BB207 (TO236) D3;D4= LED de baixa corrente, 3 mm T1= BS170F (SOT23) T2;T3= BFR92A (SOT23) IC1;IC5= 78L05 IC2= ATmega88-20PU, programado (Refª 100969-41) IC3= LM317 (SOIC-8) IC4= MAX5201AEUB+ IC6= 74AC4040 (SOIC-16) IC7= SA615D (SOIC-20) IC8= LM386 (DIL-8) Diversos X1= Ccristal de quartzo 20 MHz X2a X5= Cristal de quartzo 27 MHz , ressonância na fundamental (Citizen CS1027.000MABJ-UT) S1;S2;S3= Botão de pressão 6 mm (Multicomp MC32830) 2 barras de terminais de 2 vias Suporte DIL de 28 pinos para IC2 Suporte DIL de 8 pinos para IC8 2 suportes SIL de 10 pinos, passo 2,54 mm (para conversor USB/FT232R BOB) Conversor USB/FT232R BOB (Refª 110553-91) [1] Altifalante 4Ω ou 8Ω PCI (Refª 100696-1), disponível na Guimocircuito (www.guimocircuito.com). www.elektor-magazine.pt | Julho - Agosto 2013 | 83 •Passatempo & Modelismo Funcionamento A seguinte imagem é enviada ao terminal quando se liga o scanner: ****************** Airband scanner startup ****************** Command key functions: H S B T R F I N W M P -help (this page) -show stored frequencies <fn> -block on/off, fn is freq. number F(6) -tune to frequency(kHz) -scanner run/stop fn F(6) -store frequency(kHz) fn = freq. no. Fif(5) -IF frequency (kHz) <nf> -#frequencies to scan (1-100) <Tw> -scanning wait time (x 0.5 s) <fn> -memory start from freq. no. fn <nr> -#passes (2-15) for autom. search current settings: Fif Twait #Freqs. Mem.start #Srch.pas = = = = = 26998 2 20 1 5 Fn 1 Até agora, o circuito está no modo de procura, e o número de frequência é indicado em baixo no ecrã. Para introduzir comandos, introduza primeiro “R <Enter>”. Este comando faz parar o scanner e permite-lhe introduzir comandos compostos apenas por uma letra. A maior parte destes são auto-explicativos depois de os experimentar uma vez. O comando “S <Enter>” apresenta as frequências numa tabela. A primeira e última frequências da tabela podem ser configuradas com os comandos M e N, respectivamente. Estas configurações também determinam as frequências inicial e final utilizadas para a procura. Adicional- mente, também pode definir segmentos de frequência com estes parâmetros. Nesse caso, é utilizado um segmento configurado pelos limites M e N (por exemplo, frequências entre 1 e 20). A gama do segmento pode ser alterada utilizando o terminal, por exemplo para as frequências entre 40 e 59. Isto permite que as 100 frequências programáveis sejam divididas em segmentos. O scanner também pode adquirir frequências automaticamente. Por exemplo, se tiver introduzido um número de frequências (entre 1 e 40) que não podem ser sobrepostas, pode configurar M nos parâmetros de configuração está correcto. Isto pode ser ajustado com o comando I se necessário. A gama de sintonia pode ser verificada utilizando o comando T para configurar a frequência para 108000 e para 137000. Se a frequência apresentada no monitor for demasiado elevada, a bobina do VFO (L2) tem de ser encurtada um pouco apertando-a ligeiramente. Se frequência 84 | Julho - Agosto 2013 | www.elektor-magazine.pt for demasiado baixa, a bobina tem de ser ligeiramente esticada. As frequências apresentadas no terminal têm de ser exactamente iguais às frequências configuradas pelo comando T. Os ficheiros com o código fonte e hexadecimal para o microcontrolador podem ser descarregados gratuitamente da página referente a este projecto [2]. Para construir o scanner estão dis- Circuito para escuta de comunicações aeronáuticas para 40 e N para 40. O potenciómetro de limiar de detecção tem de ser regulado adequadamente para um funcionamento normal. Se mantiver pressionado o botão S2 enquanto liga o scanner, o LED de Espera (D3) vai acender. O scanner vai então varrer 1160 canais (correspondentes a (137000 – 108000)/25) várias vezes. Este número de vezes pode ser configurado com o comando P. No fim do varrimento, as frequências encontradas são programadas com os números de frequência entre 40 e 80. Depois disto o LED D3 é apagado. O resultado pode ser visualizado utilizando o comando S depois de reiniciar o scanner. Num teste efectuado a cerca de 48 km de um aeroporto, com P configurado para 6 e utilizando 20 frequências, virtualmente todas as frequências (incluindo torre de controlo, aproximação, partida, radar e outras frequências habituais) foram encontradas automaticamente em meia hora. As frequências são automaticamente ordenadas pelo número de vezes que são encontradas, com a mais encontrada programada na primeira localização de memória, a próxima mais encontrada na posição 2, etc. O scanner também pode ser utilizado a partir do terminal como receptor normal, utilizando o comando T. Por exemplo, introduzir “T 122400” sintoniza o receptor para 122,400 MHz, que é apresentada no terminal em conjunto com a intensidade do sinal recebido. Modos Procura O scanner inicia a procura a partir da memória logo após o arranque. O LED de limiar de detecção (D4) é aceso quando o sinal excede o limiar de detecção, e o LED D3 é aceso quando o scanner deixa de detectar sinal. Se o sinal deixar de ser recebido, o LED D4 é apagado, mas pode continuar a ouvir durante o tempo de espera. O LED D3 é apagado após o tempo de espera ter expirado e a procura começa novamente. A frequência pode ser “congelada” regulando o potenciómetro de limiar de detecção para o valor mínimo. O número de frequência em memória é constantemente enviado para o terminal durante a procura. Se durante a procura for encontrado um sinal contínuo e a procura parar, a frequência detectada pode ser bloqueada pressionando o botão S3. Isto marca a frequência na memória com um B, que só pode ser apagado a partir do terminal. Receptor Se mantiver pressionado o botão S3 durante pelo menos 1 segundo depois de ligar o scanner, este entra no modo Receptor. O receptor pode ser sintonizado com os botões S1 e S2 (cima e baixo, respectivamente), e o controlo de limiar de detecção funciona de forma normal. O LED D3 indica quando forem atingidas as frequências máxima ou mínima. Quando o scanner for iniciado no modo Receptor, a frequência de recepção é inicialmente configurada para a frequência mínima. O botão S3 actua como uma função “próximo” neste modo, fazendo o receptor aumentar progressivamente a frequência até encontrar um sinal que exceda o limiar de detecção. Quando isso acontece, a procura é parada e o LED D3 é aceso. Quando o botão S1 é pressionado novamente, o LED D3 é apagado e o receptor procura o próximo sinal. Quando é atingida a frequência máxima a procura continua, mas a partir da frequência mínima. Varrimento Se mantiver pressionado o botão S2 durante pelo menos 1 segundo depois de ligar o scanner, o LED D3 é aceso e o scanner começa a procurar frequências com actividade intermitente. Durante este varrimento, os sinais com actividade contínua são filtrados e as frequências com actividade intermitente são seleccionadas em intervalos de 25 kHz. O número de vezes que a banda completa é varrida pode ser configurado a partir do terminal utilizando o comando P. Cada ciclo de varrimento dura 7 minutos, pelo que o tempo de varrimento com P=2 é de 14 minutos. Configurar P=6 é uma boa opção (tempo de varrimento de 42 minutos). Os melhores resultados são obtidos com P=15, mas tem de esperar quase duas horas. No final do varrimento as frequências encontradas são programadas na memória, o LED D3 é apagado e o receptor tem de ser reiniciado. São programadas N frequências, a começar na localização M (ver descrição dos comandos M e N). É importante ajustar o potenciómetro de limiar de detecção para um valor adequado (com a ajuda do LED D4) antes de iniciar o varrimento. As frequências resultantes não são detectadas antes de o scanner ser reiniciado. As frequências não são armazenadas na EEPROM até o LED D3 ser apagado, pelo que nada acontece se o scanner for desligado prematuramente. poníveis no Serviço Elektor o microcontrolador já programado e a placa de circuito impresso. (100696) Artigo original: Aviation Scanner January & February 2013 Internet [1] www.elektor.com/bob [2] www.elektor.com.pt/100696 www.elektor-magazine.pt | Julho - Agosto 2013 | 85 •Alimentação & Carregadores Conversor elevador de tensão PWM Para cima, em cima… Com uma tensão de entrada entre 8 V e 16 V, este circuito produz uma tensão de saída ajustável até 42 V, com aproximadamente 1 A. Este circuito pode, por exemplo, ser utilizado para carregar até três baterias de chumbo de 12 V em série. aos terminais desta. Esta tensão induzida fica em série e é adicionada à tensão de alimentação do circuito, provocando o aparecimento de uma corrente que atravessa o díodo, fazendo com que a energia seja armazenada no condensador. Podemos dizer que a energia armazenada no campo magnético da bobina – armazenada principalmente no núcleo de ferrite – é transferida através do díodo para o condensador, no intervalo de tempo de nível baixo da comutação. Aqueles que pretenderem explorar mais aprofundadamente este assunto podem ler a introdução [1]. Wolfgang Schmidt (Alemanha) Um conversor elevador converte uma tensão de baixo valor numa tensão de saída de valor superior. O circuito consiste numa bobina, num condensador, num díodo e num interruptor (transístor) que é ligado e desligado por um sinal PWM. Um ciclo de comutação de período T tem um intervalo de tempo no nível alto t1 e um intervalo de tempo no nível baixo T - t1. Durante o intervalo de tempo de nível alto o interruptor está fechado (diagrama inferior Figura 1). A tensão de entrada Ue está presente aos terminais da bobina L1 e, se a fonte de tensão de entrada Ue tiver uma impedância de saída suficientemente baixa para produzir uma corrente linearmente crescente IL que atravessa a bobina, esta vai armazenar energia com um valor crescente no seu campo magnético. Quando se abre o interruptor, o campo magnético presente na bobina vai induzir uma tensão inversa 86 | Julho - Agosto 2013 | www.elektor-magazine.pt Circuito A Figura 2 apresenta o circuito do conversor elevador que contém L1, D1, C8 e o transístor MOSFET T1. Um microcontrolador ATmega8-16PU da Atmel, em conjunto com o firmware adequado, produz o sinal PWM para comutar o estado do MOSFET T1. O sinal PWM está disponível no pino PB1 a uma frequência de 66 kHz, e é produzido pelo modo interno fast-PWM. A tensão de saída é controlada pelo ciclo de trabalho do sinal PWM, sendo que o microcontrolador tem de conseguir medir a tensão de saída para controlar o sinal PWM. Esta realimentação de tensão é efectuada através do divisor de tensão formado por R6, R7 e P2. O potenciómetro P2 é necessário, porque a folha de características indica que a tensão de referência tem de estar entre 2,3 V e 2,9 V, pelo que P2 permite algum grau de calibração do circuito. Se os valores das resistências não Conversor elevador de tensão PWM permitirem um ajuste suficiente, ou se o valor de R7 (43 kΩ) for difícil de encontrar, podem ser feitos ajustes no firmware para compensar isto. Para calibrar o circuito pode utilizar um voltímetro de precisão para medir a tensão de saída e ajustar o potenciómetro até que o valor apresentado corresponda ao do voltímetro de precisão. O conversor A/D interno do microcontrolador fornece uma resolução de 10 bits. O firmware calcula a tensão utilizando um divisor de tensão formado por R7+P2 (47 kΩ) e R6 (2,7 kΩ). É assim conseguida uma resolução de medida de 46 mV (((49,7 kΩ/2,7 kΩ)x2,56 V)/1023). A tensão apresentada no mostrador LCD de 2x16 caracteres varia em passos de 0,04 V ou 0,05 V. Os conversores elevadores que utilizam esta topologia não têm nenhum limitador de corrente interno. Para reduzir a possibilidade de sobrecarga, foi incluída uma resistência sensora R5 no pino de massa da saída, cuja queda de tensão é medida pela segunda entrada do conversor A/D do microcontrolador. O firmware pode assim regular o ciclo de trabalho do sinal PWM para reduzir a corrente de saída antes de o conversor entrar no modo descontínuo. As malhas RC formadas por C10 e C11/R8 suprimem ruídos de radiofrequência que possam afectar as entradas do conversor A/D. O LCD é uti- lizado para apresentar Ue Ua L parâmetros operacionais, através de um menu, tais como a tensão e a cor20V 12V rente de saída. O circuito tem três botões de presL discharge são: S1 reinicia o microcontrolador, enquanto S2 Ua Ue L1 e S3 fornecem um controlo para incrementar/ 12V 20V decrementar a tensão de saída. Pressionar ambos os botões em simultâneo L charge 120460 - 12 força o firmware a entrar no modo de limite de corFigura 1. rente como apresentado no mostrador. Neste As duas fases do processo modo, S2 e S3 podem ser utilizados para increde elevação de tensão. mentar/decrementar o valor limite de corrente. Pouco tempo depois da última interacção nos botões de pressão, o mostrador volta a apresentar o valor da tensão. O LED D3 indica que está presente a tensão de entrada. Se este estiver apagado, o fusível F1 pode estar queimado, indicando que o circuito pode estar a consumir demasiada corrente, ou que a fonte de alimentação externa pode ter problemas. O LED D2 indica que o limite de corrente está activo. +5V 10k GND DOWN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4R7 10k 7 VCC AREF 2 3 4 5 6 11 12 13 17 PB3 (MOSI/OC2) 18 PB4 (MISO) 19 PB5 (SCK) X1 +5V MOSI MISO SCK RESET 1 3 5 K5 2 4 6 ISP 8 R4 UP 22 C8 1000u 63V R6 2k7 R3 ATmega8-16PU 14 PB0 (ICP) 15 PB1 (OC1A) 16 PB2 (SS/OC1B) JP1 R2 10R XTAL2 MBR 3100G T1 PC0 (ADC0) PD0 (RXD) PD1 (TXD) PC1 (ADC1) IC1 PD2 (INT0) PC2 (ADC2) PD3 (INT1) PC3 (ADC3) PC4 (ADC4/SDA) PD4 (XCK/T0) PC5 (ADC5/SCL) PD5 (T1) PD6 (AIN0) PC6 (RESET) PD7 (AIN1) 10 10n 100n 21 20 L1 100uH AVCC 23 24 25 26 27 28 1 C10 GND 2 R7 43k 2k7 K4 R5 0R22 1 2 100n JP2 R10 P1 C2 C1 100n R1 1k5 42V 100n XTAL1 10k D1 R8 +5V C5 GND 10n 3 9 P2 1 2 C6 1000u 25V POWER C11 K3 C7 D3 K2 100n R9 10k 12V 1 2 7805 1 5A T C9 +5V IC2 F1 1 2 10k K1 VSS VDD VL RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 LED-C LED+A LCD1 TC1602C-01YA0_A00 2 x 16 IRL540NPbF S2 UP S3 DOWN S1 RESET D2 PB2 C4 C3 22p 22p X1 = 16MHz 120460 - 11 Figura 2. Conversor elevador controlado por microcontrolador. www.elektor-magazine.pt | Julho - Agosto 2013 | 87 •Alimentação & Carregadores Montagem O botão de reset é montado directamente no módulo, porque só vai ser utilizado ocasionalmente. Os botões de pressão S2 e S3 estão ligados aos terminais Cima, GND e Baixo através de fios. Pode montar botões próprios para placa de circuito impresso num pequeno pedaço de placa para protótipos, ou escolher botões para painel e montá-los directamente na face frontal da caixa. Os dois LEDs devem ser montados num local visível. O potenciómetro P1 fornece o ajuste de contraste do mostrador LCD. O jumper JP2 habilita a iluminação de fundo do LCD e pode ser substituído por um interruptor, se desejado. É utilizado um dissipador de calor com alhetas para manter os transístores MOSFET a uma baixa temperatura: é suficiente utilizar um dissipador com uma resistência térmica de 21 ºK/W para uma corrente de saída de 1 A. Pode ser utilizada a versão standard ou a versão TO220 para o díodo D1. Analise a folha de características correspondente para respeitar a polaridade correcta do encapsulamento TO220. O condensador electrolítico C7, e particularmente C8, utilizados no circuito de comutação requerem alguma atenção. A uma frequência de comutação de 66 kHz é importante utilizar os condensadores de baixas perdas especificados na lista de componentes. Os condensadores electrolíticos standard não são adequados para esta aplicação. Para testar o conversor elevador PWM no laboratório, o módulo LCD foi montado directamente através de uma barra de terminais, que foi inserida num conector presente na orla da placa de circuito impresso do conversor. Isto é o ideal para testes, mas quando o módulo for inserido numa caixa o módulo LCD pode ser montado, por exemplo, na face das soldaduras. Introduza um pequeno quadrado de material isolante entre o módulo LCD e a placa de circuito impresso para evitar curto-circuitos. Para a programação do microcontrolador é ligado um conector ISP standard a K5. É necessário alimentar o microcontrolador a partir do regulador de tensão IC2 (7805) durante o processo de programação. A tensão de alimentação presente no pino 2 de K5 é utilizada pelo adaptador de programação (AVRISP mkII, por exemplo) para determinar a tensão de alimentação do microcontrolador (3,3 V ou 5 V). Durante a fase de programação, as valores presentes nas saídas do microcontrolador são indefinidos, pelo que é incluído um jumper na ligação 88 | Julho - Agosto 2013 | www.elektor-magazine.pt à porta do transístor MOSFET T1. Este deve ser removido durante a programação para assegurar que T1 se mantém desligado. Caso contrário T1 podia ser ligado através do pino PB1 e curto-circuitar a tensão de alimentação, queimando o fusível. A resistência R3 liga a porta de T1 à massa quando JP1 está removido, para assegurar que T1 se mantém desligado. Lembre-se de remover este jumper aquando da programação! A resistência R2 reduz a instabilidade no ponto de comutação introduzida pela alta capacidade da porta do MOSFET T1. A capacidade da porta do MOSFET T1 introduz um atraso sempre que este for ligado ou desligado. Isto provoca um aumento da dissipação de energia em T1, porque o canal criado entre a fonte e o dreno não comuta instantaneamente entre os estados ligado e desligado, mas passa por uma etapa resistiva na qual T1 dissipa mais energia. Utilizando uma maior corrente de comutação já é possível remover a carga acumulada na porta de T1, o que resulta em menores tempos de comutação com menor dissipação de calor. Uma saída standard do ATmega8 pode apenas fornecer cerca de 30 mA, sendo uma fonte de corrente relativamente fraca. A tensão máxima na saída é limitada pelos valores de tensão máximos suportados por D1 e T1. Estes dois componentes são alguns dos principais candidatos a serem substituídos se pretender melhorar as especificações do circuito. Este circuito, como está construído, serve apenas para mostrar como pode ser construído um conversor elevador, e agir como estímulo para futuros melhoramentos. Trabalho em curso; firmware O código fonte actual foi escrito em BASCOM-AVR, e está disponível gratuitamente no site da Elektor [2]. Na forma está escrito, este implementa um regulador de tensão muito simples, havendo muito espaço para melhoramentos. Estes melhoramentos incluem alguns pontos críticos, tais como um verdadeiro carregador de baterias de chumbo com várias etapas de carregamento. A corrente de entrada é aproximadamente 3,5 vezes mais elevada do que a corrente de saída, daí a utilização de um fusível lento de 5 A na entrada. O protótipo foi testado em duas baterias de chumbo diferentes. Foi notado um curioso comportamento durante os testes: com uma corrente de carga de 0,2 C, por exemplo (que é relativamente elevada para uma bateria de chumbo e Conversor elevador de tensão PWM Lista de Componentes Bobinas: L1= 100 µH/5 A, 20%, radial 25 mm, passo 8 mm (7447070 da Würth Elektronik, Ref.ª Avnet/Farnell 2082537) Resistências: R1,R3,R9= 10 kΩ/250 mW, 5 % R2= 10 Ω/250 mW, 5 % R4,R6= 2,7 kΩ/250 mW, 5 % R5= 0,22 Ω/1 W, 5 % R7= 43 kΩ/600 mW, 1 % R8= 1,5 kΩ/250 mW, 5 % R10= 4,7 Ω/250 mW, 5 % P1,P2= potenciómetro 10 kΩ/ 150 mW, 20 %, horizontal Diversos: F1= Fusível 5A, lento, com suporte para placa de circuito impresso JP1,JP2= Barra de terminais de 2 vias, com jumper K1a K4= Conector AMP Plug, PCI K5= Barra de terminais de 2x3 vias Condensadores: S1= Interruptor táctil, 6x6 mm, C1,C2,C5,C6,C9= 100 nF/63 V, SPST-NO 5 %, cerâmico, passo 5 mm S2,S3= Botão de pressão, PCI ou 7 mm ou painel* C3,C4= 22 pF/50 V, 5 %, PC1,PC2,PC3= Terminal passo 5 mm para soldadura, Ø 1,3 mm C7= 1000 µF/25 V, 20 %, (para S2 e S3) Figura 3. Placa de circuito impresso do conversor elevador. radial, Ø12,5 mm, passo 5 mm X1= Cristal de quartzo de 16 MHz, (EEUTP1E102 da Panasonic, Semicondutores: HC49/US, 50 ppm, Ccarga 18 pF Ref.ª Avnet/Farnell 1890543) D1= MBR3100G LCD1= LCD 2x16 caracteres C8= 1000 µF/63 V, 20 %, radial, Ø16 mm, D2= LED vermelho 3 mm (Ref.ª 120061-71) passo 7,5 mm D3= LED verde 3 mm (UPW1J102MHD da Nichicon, T1= IRL540NPbF Dissipador de calor do tipo FK230SAL1 Ref.ª Avnet/Farnell 2112865) IC1= ATmega8-16PU programado (Fischer Elektronik) C10,C11= 10 nF/100 V, 10 %, (Ref.ª 120460-41) PCI (Refª 120460-1), disponível na passo 5 mm, cerâmico IC2= 7805 Guimocircuito (www.guimocircuito.com). .e l e k ww r p c bs om to v i c e.c w Nesta segunda etapa, chamada absorption-fase, a bateria vai ficar quase completamente carregada a cerca de 98%; e a etapa final, float-fase, requer que a tensão aos terminais das células seja reduzida para 2,23 V por célula. A bateria pode agora ficar ligada ao carregador nesta fase sem as células produzirem gases. Pode estar a pensar o que aconteceu à quarta etapa: esta só é necessária quando a bateria está profundamente descarregada (abaixo de 1,75 V por célula). Neste caso a bateria é reavivada utilizando uma pequena carga até a célula atingir o limiar inferior de tensão. Se esteve a trabalhar em melhoramentos no firmware deste projecto, ou se começou mas chegou a um impasse, visite a nossa página de projectos [4] e partilhe as suas experiências! er gel), a tensão aos terminais da bateria caiu rapidamente depois de ter atingido o valor máximo que foi configurado, e o carregador desligou-se. Na prática, para utilizar este software é necessário observar o processo de carga e saber quando terminar o ciclo de carga. Este software, como está escrito, não fornece um interface com o utilizador que forneça uma selecção de métodos sofisticados para carregar baterias. O objectivo deste projecto é demonstrar como pode ser construído um desses carregadores e, devido à natureza aberta do projecto e do firmware, dar a oportunidade aos leitores interessados de fazer as alterações pretendidas e implementar os seus próprios melhoramentos. Sugestão: um ciclo completo de carga de uma bateria de chumbo (gel) consiste em duas a quatro etapas [3]. Uma bateria (não totalmente) descarregada pode ser carregada na etapa bulk-fase utilizando uma corrente constante (é razoável utilizar de 0,1 C a 0,2 C), até ser atingida uma tensão de 2,4 V por célula (isto é o máximo que se pode atingir com o firmware actual – neste ponto, a bateria vai estar aproximadamente carregada a 80%). Agora a tensão está limitada à tensão final presente aos terminais das células, enquanto se mede a corrente de carga até esta cair abaixo de um décimo do valor máximo. (120460) Artigo original: PWM Step Up Converter July/August 2013 Internet [1] Teoria de fontes comutadas: http://schmidt-walter.eit.h-da.de/smps_e/smps_e.html [2] www.elektor.com.pt/120460 [3] Como carregar baterias de chumbo: www. batterystuff.com/kb/articles/battery-articles/ battery-basics.html#9 [4] www.elektor-projects.com www.elektor-magazine.pt | Julho - Agosto 2013 | 89 •Alimentação & Carregadores Carregador para telemóvel com células de NiMH Com o Elektor USB Power Pack Ton Giesberts (Elektor) O objectivo deste projecto é permitir que baterias recarregáveis standard do tipo AA, como as NIMH, possam efectivamente carregar dispositivos portáteis tais como smartphones e tablets, através de um conector USB. Quantas baterias utilizar? O circuito tem de produzir 5 V e conseguir fornecer até 1 A de corrente de saída. Quatro baterias NIMH acabadas de carregar fornecem uma tensão bem acima de 5 V, pelo que é prudente utilizar apenas três baterias. No entanto, os 5 V fornecidos por uma ligação USB são nominais, sendo a gama real entre 4,35 V a 5,40 V. Embora isto seja favorável à utilização de 4 baterias, desejamos produzir uma tensão de alimentação precisa de 5,00 V, porque alguns projectistas utilizam a tensão USB como referência (limite isto a aplicações não críticas). Vão então ser utilizadas três baterias. Conversor elevador TPS61030 Em números, há provavelmente mais carregadores para baterias NIMH do que para baterias de iões de lítio (Li-ion) ou de polímeros de lítio (LiPo). Se pretender utilizar estas últimas tem de integrar o circuito de carga, tornando o conjunto de baterias mais complexo e dispendioso. Manter as baterias separadas da caixa ainda permite a utilização de baterias Li-ion ou LiPo. Felizmente, as suas tensões iniciais (3,6 V a 3,7 V) são quase iguais à de três baterias NIMH em série. E também, utilizando um suporte para baterias separado, pode substituir as baterias descarregadas por outras carregadas sem ter primeiro de as carregar ou abrir a caixa. Isto é uma grande vantagem se o seu telemóvel, tablet, etc., necessitar urgentemente de ser carregado e se estiver num local remoto. 90 | Julho - Agosto 2013 | www.elektor-magazine.pt A tensão mais baixa do conjunto de três baterias implica a utilização de um suporte mais pequeno, mas também de um conversor elevador. A Texas Instruments disponibiliza um excelente dispositivo: o TPS61030. Este é um conversor elevador síncrono com um interruptor interno de 4 A e uma eficiência de 96% (dependendo da tensão de entrada e da corrente de saída). Este conversor tem um comparador de bateria fraca (opcional) que previne a descarga excessiva das baterias. Um bloqueio de baixa tensão (1,6 V) previne o mau funcionamento do conversor. A tensão de referência interna é de 0,5 V, o que facilita o cálculo do divisor de tensão adequado à tensão de saída pretendida. São utilizados valores de 1,8 MΩ para R3, e 200 kΩ para R4. De acordo com a folha de características, é necessário um condensador em paralelo com R3, para estabilidade, apenas se o valor de R4 for significativamente menor que 200 kΩ. Aqui é utilizado um condensador de 10 pF só por segurança. A resistência R2 deve ser suficientemente baixa para eliminar a corrente de entrada do compara- USB Power Pack 2k7 GND 1 47k 200k 3 PGND 4 PGND 5 PGND 11 330k 6 5 1M8 1M8 200k 18k 1M 1k5 1k 10k dor (cerca de 10 nA): é recomendado um valor de Medições e especificações 500 kΩ. O valor de referência do comparador é de Gama de tensões de entrada . . . . . . . . . . 3,3 – 4,1 V 500 mV com uma histerese de 10 mV. Foi escoCorrente de entrada máxima . . . . . . . . . . . 1,7 A (Vin = 3,33 V) lhido um limiar de 1,1 V para definir uma bateria Tensão de saída . . . . . . . . . . . . . . . . . . . . 4,93 V (sem carga) completamente descarregada. Os valores de 1,8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4,92 V (carga de 0,3 A) MΩ para R1 e de 330 kΩ para R2 resultam num . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4,82 V (carga de 1 A) valor teórico de 3,23 V para o limiar. Se a tensão Limiar de bateria descarregada. . . . . . . . . . 3,25 V total da bateria cair abaixo deste limiar, a saída Protecção contra sobretensões. . . . . . . . . . 4,0 V do comparador comuta para o nível baixo. Esta Eficiência. . . . . . . . . . . . . . . . . . . . . . . . . 95 % (Vin = 3,52; saída 0,3 A) saída é utilizada para desligar a saída do circuito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 % (Vin = 3,52; saída 1 A) O desacoplamento da tensão de entrada através Corrente de alimentação (sem carga) . . . . . 4,5 mA (Vin = 3,6 V) de C1 e C2 está de acordo com as recomendações LED de alimentação é ligado a . . . . . . . . . . 1,6 V da folha de características. O desacoplamento da Perdas medidas com corrente de saída de 1 A: tensão de saída depende da ondulação máxima Aos terminais de T1 e de T3 (em separado). . . . 23 mV (corrente de entrada de 1,7 A) presente na saída. O ideal são alguns mV, mas a Entre L2 e o conector USB na placa de circuito impresso 85,3 mV resistência série equivalente (ESR) dos condenAos terminais de IC2. . . . . . . . . . . . . . . . . 80 mV sadores em particular, assim como o desenho da Ligação USB (em separado). . . . . . . . . . . . 13 mV placa de circuito impresso, resultam na prática num valor superior. Teoricamente, a ondulação deve ser cerca de 1 mV com um condensador de 220 µF na saída. Na prática, foram medidos 60 mV com cargas elevadas (funcionando o dispositivo aos terminais de C5 (3,50 V de entrada, carga de em modo descontínuo). O conversor só funciona 1 A). O condensador C5 tem uma ESR esperada quando a tensão de saída cair abaixo do limiar de 20 mΩ a 100 kHz. A frequência de comutação configurado. Para cargas pequenas a ondulação é bastante superior, e a elevada corrente de comuda tensão de saída aumenta ligeiramente. Sem tação produz uma maior ondulação de tensão. carga, foi observada uma onda em dente de serra Para suprimir os ruídos gerados pela comutação com um período de 150 ms. Ao aumentar a carga foi colocada uma bobina com núcleo de ferrite a ondulação melhorou rapidamente. (L2) em série com o circuito de saída, reduzindo assim a ondulação da ten+VBATT S1 são na saída. O condensador final (C8) reduz ainda R9 R8 R11 BT1 mais esta ondulação. R12 Para calcular o valor D2 BC847B C9 5V1 T2 K2 1 da bobina foi tida em 0W5 120u D3 6V3 PCB1 conta uma variação de R10 2 C10 T1 T3 10% da corrente média 1n máxima que percorre a bobina. Para 3,20 V a DMS3016SSS-13 DMS3016SSS-13 For Hammond 1593K enclosure corrente média na bobina é perto de 2 A. Utilizando R5 D1 a fórmula presente na +VBATT L1 L2 K1 folha de características 1 SW 15 8 1 3 VOUT OUT IN R7 10uH R3 14 2 2 0.022ohm/3.5A (SLUS534E), obtemos um SW VOUT C3 IC2 70ohm@100MHz 7 13 5 3 6 VBAT DM VOUT EN R1 valor de cerca de 10 µH. IC1 4 10p C2 9 C1 4 6 12 EN TPS61030 FB DP CS O pino Sync pode ser utiTPS2511 10u 100n 7 2 ILIM_SET 10 lizado para operar o conLBI LBO PAD R6 R4 R2 C5 C6 C4 C7 C8 PAD versor em vários modos. 8 SYNC GND 100n 10u 2u2 220u 120u Foi seleccionado o modo 6V3 6V3 Power Save conectando 120631 - 11 este pino à massa, o que melhora o desempenho www.elektor-magazine.pt | Julho - Agosto 2013 | 91 •Alimentação & Carregadores TPS2511: controlador para carregamento USB É utilizado um circuito integrado especial para controlar a saída: o TPS2511. A Texas Instruments chama de controlador de porto de carga USB dedicado e interruptor de potência com limite de corrente. Aqui fica o porquê: não é suficiente colocar apenas 5 V num conector USB para o dispositivo funcionar. É óptimo que os fabricantes de dispositivos electrónicos equipem cada vez mais os seus equipamentos com conectores de carregamento USB, mas é improvável que os carregadores sejam compatíveis com plataformas e fabricantes diferentes. Por exemplo, alguns dispositivos necessitam de tensões específicas nas linhas de dados ou simplesmente uma ligação (resistência) entre as linhas de dados para poder reconhecer a presença de um carregador (porto de carga dedicado – DCP). O TPS2511 suporta três dos protocolos mais comuns: • Especificação de Carregamento USB de baterias, versão 1.2 (BC1.2). • Standard YD/T 1591-2009 da indústria chinesa de telecomunicações. • Modo de divisão. Para uma exaustiva descrição de todas as possibilidades do TPS2511 veja a respectiva folha de características (SLUSB18). O TPS61030 pode fornecer 2 A para uma tensão de bateria de 3,3 V, e o TPS2511também pode fornecer esta corrente. Com uma corrente de saída de 1 A e uma tensão de entrada de 3,3 V este conversor consome ainda 1,7 A. Esta corrente mais que duplica com uma corrente de saída de 2 A, devido à existência de maiores perdas. E a capacidade das baterias cai para maiores correntes de saída. É por isto que o TPS2511 é configurado para funcionar como um carregador de 5 W. Os pinos DP e DM são ligados respectivamente às linhas D- e D+ do conector USB. O limite de corrente é configu- 92 | Julho - Agosto 2013 | www.elektor-magazine.pt rado marginalmente mais alto do que o necessário (R6 = 47 kΩ), prevenindo que o TPS2511limite prematuramente a tensão de saída. O pino Current Sensing Report não é utilizado da forma esperada: em vez de compensar a perda de tensão alterando a realimentação do conversor (que não é realmente necessário com uma corrente de saída máxima de 1 A), este pino é utilizado para controlar um LED (D1). D1 é ligado quando mais de metade da corrente de saída máxima está a ser consumida. A corrente consumida pelo LED é pouco mais de 1 mA. Como já foi mencionado, a saída do comparador de bateria fraca controla o pino EN (Enable) do TPS2511. Desta forma, a tensão de saída é desligada se as baterias estiverem descarregadas. A resistência R5 é necessária porque a saída do comparador está no estado de alta impedância quando não está activo. Protecção contra sobretensões e inversão de polaridade As baterias estão ligadas à placa de circuito impresso através de terminais de aperto. Na prática, é possível ligar as baterias ao contrário. Para prevenir danos no circuito e obter virtualmente perdas nulas quando as baterias são ligadas correctamente, é utilizado um MOSFET de potência de canal N (T1), ligado propositadamente ao contrário. Quando se ligam as baterias com a polaridade correcta, o díodo formado entre o corpo e o substrato está a conduzir, a tensão presente na porta é positiva em relação à da fonte, através de R12, e o MOSFET T1 está plenamente em condução. Não há problema com a corrente que circula da fonte para o dreno. Se as baterias forem ligadas com a polaridade invertida, a tensão da porta é negativa, o MOSFET T1 está ao corte, e o díodo formado entre o corpo e o substrato bloqueia efectivamente a tensão da bateria. A tensão máxima permissível para a porta do MOSFET utilizado é de 12 V, que constitui a tensão máxima a que o circuito consegue resistir. Com uma corrente de entrada de 1,7 A a queda de tensão no MOSFET é de apenas 23 mV (medidos no protótipo). Para evitar a utilização de um interruptor robusto e dispendioso, a protecção contra sobretensões é combinada com um interruptor mais pequeno – logo menos dispendioso. Quando a tensão aplicada for demasiado elevada, o díodo zener D2 vai ligar um transístor NPN (T2), que por sua vez anula a tensão da porta do MOSFET T3, que está ligado de forma convencional. O díodo zener USB Power Pack Caixa 66,22x67,22x28,00 mm (1593KBK da Hammond Manufacturing) Parafusos para placa (4x6,35 mm auto-roscantes, 6,4 mm, 1593ATS50 Hammond Manufacturing) 3 pilhas do tipo NiMH PCI (Refª 120631-1), disponível na Guimocircuito (www.guimocircuito.com). .e l e k ww r p c bs v i c e.c que a placa de circuito impresso está inserida na caixa de plástico (ABS) mencionada acima. Finalmente: não toque na junção R3/C3/R4 com o circuito em funcionamento. Este ponto está em alta impedância e qualquer ruído introduzido aqui pode causar a destruição de IC1. to er A placa de circuito impresso foi especificamente desenhada para uma caixa da Hammond Manufactoring (ver lista de componentes). É pouco dispendiosa e fácil de adaptar à nossa aplicação. A placa de circuito impresso é fixada com quatro parafusos auto-roscantes, e as tampas inferior e superior são fixadas com parafusos de maior comprimento. Os painéis frontal e traseiro são separados, tendo que se fazer três furos apenas num deles. Os furos para o conector USB e para o interruptor devem ser alinhados com os componentes da placa de circuito impresso, e o mesmo acontece para os furos correspondentes aos dois LEDs na tampa superior. A localização exacta do furo para os cabos do suporte da bateria externa não é crítica. Há bastante margem, podendo este ser localizado em qualquer lugar. Também pode ser utilizada uma ficha jack de potência – há espaço no outro painel. Evite resistências de contacto extra se possível, porque estas vão reduzir a eficiência global do conversor. Os furos para fixar a placa de circuito impresso também são utilizados para ligar os planos de massa inferior e superior. Tenha cuidado com o furo junto ao terminal de aperto K2: este furo não está ligado à massa, está conectado à ligação entre T1 e T3. Ligar esta ligação à massa não vai causar nenhum dano, vai apenas provocar o arranque do circuito. Os outros três furos estão ligados à massa, sendo que o furo junto a IC2 é especificamente a massa da saída. Assume-se Resistências: (0805; 125 mW) R1,R3= 1,8 MΩ/1 % R2= 330 kΩ/1 % R4,R5= 200 kΩ/1 % R6= 47 kΩ/1 % R7= 2,7 kΩ/5 % R8= 10 kΩ/5 % R9= 1 kΩ/5 % R10= 18 kΩ/5 % R11= 1,5 kΩ/5 % R12= 1 MΩ/5 % Condensadores: C1,C6= 10 µF/10 V, 20 %, X5R, 0805 (LMK212 BJ106MG-T da Taiyo Yuden) C2,C7= 100 nF/50 V, 10 %, X7R, 0805 C3= 10 pF/50 V, ±0,5 pF, C0G/NP0, 0805 C4= 2,2 µF/6,3 V, 10 %, X5R, 0805 C5= 220 µF/6,3 V, 20 %, SMD, Ir=2,8 A (PCS0J221MCL1GS da Nichicon) C8,C9= 120 µF/6,3 V, 20 %, SMD, Ir=2,8 A (PCS0J121MCL9GS da Nichicon) C10= 1 nF/50 V, 10 %, X7R, 0805 Bobinas: L1= 10 µH/5 A, 0,025 Ω, 20 % (74477110 da Würth Electronics) L2= núcleo de ferrite, 70 Ω a 100 MHz, 3,5 A, 0,022 Ω, 0603 (BLM18KG700TN1D da Murata) Semicondutores: D1,D3= LED vermelho 3 mm (baixa corrente) D2= Díodo zener de 5,1 V/0,5 W (SOD123), MMSZ5231B-7-F da Diodes Inc IC1= TPS61030PWPG4 (Texas Instruments) IC2= TPS2511DGN (Texas Instruments) T1,T3= DMS3016SSS-13 (SO8) T2= BC847B Diversos: K1= Conector USB, tipo A, fêmea, PCI, SMD K2= Bloco de terminais de aperto de 2 vias, passo 3,81 mm (MKDS 1/2-3.81 da Phoenix Contact) S1= Interruptor deslizante SPDT, em ângulo, 100 mA (C OS102011MA1QN1 da &K Components) BT1= Suporte para 3 pilhas do tipo AA, 2475 da Keystone + clip (HH3449 da BUD Industries) w Construção Lista de componentes om de 5,1 V já está a conduzir abaixo da tensão de zener especificada. Com uma tensão de 3,60 V na bateria, a corrente que atravessa D2 é de cerca de 12 µA. Com 4,25 V é cerca de 30 µA. Esta pode ser medida facilmente através de R9, que previne que a corrente que atravessa o díodo zener provoque o efeito de avalanche quando a tensão de entrada exceder cerca de 5,70 V. Se a protecção contra sobretensões actuar demasiado cedo (devido à possível tolerância do díodo zener), pode adaptar R10, tendo em mente que um valor baixo corresponde a um limiar alto. Esta protecção é necessária caso se ligue um adaptador de tensão AC – com uma tensão inferior a 12 V – ou uma bateria de 9 V. O TPS61030 consegue suportar 7,00 V (máximo absoluto; recomendado 5,50 V). O problema do conversor elevador é que a tensão de saída sobe quando a tensão de entrada excede a tensão de saída regulada (5,00 V nominais). (120631) Artigo original: Charge-a-Phone on NiMH July/August 2013 www.elektor-magazine.pt | Julho - Agosto 2013 | 93 Amplificador/atenuador para medida universal Para portátil ou PC Um computador é um dispositivo muito versátil para efectuar medições (de áudio) graças à placa de som que está no seu interior. Infelizmente, a entrada de áudio existente nos portáteis é normalmente muito sensível para medir tensões AC mais elevadas. Neste caso, um pequeno circuito amplificador/atenuador pode ser útil. Michiel ter Burg (Holanda) Se construir ou reparar equipamento de áudio nem sempre precisa de um osciloscópio. Qualquer tensão ou corrente directa pode ser medida com um multímetro. Pode fazer muito mais se tiver um modelo melhor que seja também capaz de medir pequenas tensões AC. Para medições mais avançadas como resposta em frequência ou distorção é bastante mais útil utilizar a placa de som do computador combinada com software adequado. Um portátil pode inclusive funcionar sem estar ligado a uma tomada de rede AC, o que significa que pode evitar malhas 94 | Julho - Agosto 2013 | www.elektor-magazine.pt de massa e zumbidos durante as medições. Contudo, um portátil possui, por norma, uma entrada com uma sensibilidade muito elevada (microfone), pelo que é preciso implementar alguns divisores de tensão para se conseguir efectuar as medidas. Este amplificador de medida foi desenhado especialmente para essas situações. Tem um atenuador de entrada ajustável e uma impedância de entrada de 1 MΩ, pelo que desta forma podem ser usadas pontas de prova de osciloscópio com atenuadores integrados para medir tensões AC ainda maiores. Amplificador/atenuador para medida universal O sinal de entrada é em primeiro lugar atenuado e depois amplificado para obter a função de transferência pretendida. A entrada tem acoplamento DC. O sinal de entrada é atenuado por um factor de 10 com a ajuda do potenciómetro logarítmico P1, e com P2 o sinal pode ser ainda mais atenuado. Os condensadores C1 e C2 garantem o desacoplamento DC após os atenuadores de entrada para prevenir grandes constantes de tempo causadas por pontas de prova de alta impedância. Isto é seguido por um andar de amplificação (construído em torno de IC1.A e IC1.B). Os potenciómetros P3 e P4 são usados para variar o ganho deste andar entre 1 e 100 vezes. Tenha em consideração o valor GBP (produto ganho por largura de banda) para o ampop usado. O autor tentou usar, numa primeira fase, um LM258 e um TS912, que deveriam ter um GBP de cerca de 1 MHz (típico). Na prática, foi medida uma largura de banda de 15 kHz com o ganho fixado em 30, com uma tensão de alimentação de 9 V. Isto significa que o GBP era de 450 kHz, embora isto possa ser compensado através do software de medida. O melhor ampop é o TS922 (com um GBP de 4 MHz) que consegue processar toda a banda de áudio com um ganho de 100. Este foi o ampop usado no protótipo construído pelo laboratório da Elektor. A alimentação é obtida a partir de uma pilha de 9 V que tem a sua tensão dividia num valor negativo e outro positivo, com a componente de massa a meio. O LED2 funciona como um LED indicador de baixo nível de tensão (tem que ser de um tipo que acende com uma tensão de 2,5 V); a resistência R15 faz com que V+ P3 D1 R1 K2 100k lin. C1 1M8 R2 1N4148 3 100n R7 1M8 P1 D2 100k log. R6 R5 1M 1k 2 1 IC1.A R13 10k 1M R14 4k7 1N4148 3 5 IC1 = TS922 V- 4 V+ 2 1 P4 D3 R3 K3 K1 100k lin. C2 1M8 R4 1N4148 3 100n R10 1M8 P2 D4 100k log. R8 R9 1M 1k 2 1 IC1.B R11 10k 1M R12 4k7 1N4148 V+ D5 V- 1N4148 R15 LED2 3k9 BT1 D6 C3 D7 10u 8 IC1 D8 9V 4x 1N4148 4 D9 C4 LED1 10u 120272 - 11 V- A placa de som de um computador consiste numa boa ferramenta se tivermos um software de medida adequado! o LED se ilumine quando a tensão na pilha está acima dos 7 V. As entradas dos ampops estão protegidas contra tensões de entrada elevadas, ou contra descargas electrostáticas, através de díodos, uma vez que nunca sabemos que tensões podemos encontrar num circuito de áudio desligado, especialmente quando se usam válvulas! Foi desenhada uma placa de circuito impresso para este projecto, com espaço para todos os componentes incluindo os conectores e potenciómetros. Os desenhos da placa podem ser descarregados gratuitamente da Internet [1]. Foram usados componentes standard para facilitar a construção do projecto. Os potenciómetros são colocados na face das soldaduras e aparafusados à placa, sendo depois dobrados os terminais dos mesmos antes de serem soldados aos pinos de soldadura. www.elektor-magazine.pt | Julho - Agosto 2013 | 95 Lista de componentes Resistências: R1a R4= 1,8 MΩ R5;R9= 1 kΩ R6;R7;R8;R10= 1 MΩ R11;R13= 10 kΩ R12;R14= 4,7 kΩ R15= 3,9 kΩ P1;P2= potenciómetro 100 kΩ, logarítmico P3;P4= potenciómetro 100 kΩ, linear Condensadores: C1;C2= 100 nF, MKT, passo 5 mm C3;C4= 10 µF/16 V, Ø 6 mm, passo 2,5 mm Semicondutores: D1a D9= BAT48 (DO35) IC1= TS922IN (ampop duplo, DIP8) LED1;LED2= LED verde, 5 mm Diversos: K1= Ficha Jack 3,5 mm estéreo (Lumberg 1503-09) K2;K3= Conector BNC, em ângulo, PCI (TE connectivity 1-1337543-0) BT1= Suporte para pilha de 9 V 9V PCI (Refª 120272-1), disponível na Guimocircuito (www.guimocircuito.com). Como os potenciómetros logarítmicos de entrada podem divergir em cerca de ±20% é melhor efectuar a calibração dos mesmos depois estarem montados na caixa. A calibração destes deve ser efectuada em passos de 10 dB (um factor de 3,1623) usando o software de medida. Primeiro, marque os pontos de calibração num pedaço de papel colocado sobre o potenciómetro, e depois passe o desenho para o computador e crie um painel com um aspecto profissional. Durante a calibração, os potenciómetros P3 e P4 devem ser ajustados para um ganho de um, o que é usado normalmente para sinais de entrada muito pequenos que ainda precisam de alguma amplificação. (120272) Artigo original: Universal Measurement Amplifier/Attenuator – July/August 2012 Internet [1] www.elektor.com.pt/120272 96 | Julho - Agosto 2013 | www.elektor-magazine.pt Os Elektor.LABS, tal como a redacção da Elektor ficam no sul da Holanda, numa pequena localidade denominada Limbricht, muito perto da fronteira com a Alemanha, por um lado e com a Bélgica, pelo outro... E este edifício histórico é mesmo onde tudo acontece... Bem-vindos aos elektor ! labs Olá a todos! Acompanhem-nos nesta visita aos Elektor.LABS onde (quase) tudo acontece. Hoje os .LABS têm as suas portas abertas para todos, mas se quiser voltar a visitar-nos vai precisar de um cartão de Membro ou de um convite. Dessa forma poderá visitar os Elektor.LABS sempre que quiser. Sigam-nos, por favor. O Elektor LABS é o local onde decorre a verdadeira acção. Esqueça a contabilidade ou a gestão, o .LABS, ou como pronunciamos “dot-labs” é o coração pulsante da sua comunidade electrónica favorita, conhecida como Elektor. As pessoas que trabalham no .LABS não só são tão atraentes como as nossas secretárias, como também sabem muito mais de electrónica. Aqui à minha direita (vossa esquerda) por exemplo, temos Ton G. como em “Gee Ton, que som fantástico!” Apesar de ele não gostar de fazer alarido sobre o seu dom, Ton é um excelente designer de amplificadores de áudio, altamente dotado, que transvaza literalmente de conhecimento e experiência. Se tiver alguém tiver alguma pergunta a fazer, coloque-a ao Ton. Nós também o fazemos. No canto mais afastado temos o Luc ou Lucky Luc. Chamamos-lhe Luc sortudo porque ele consegue sempre que os seus projectos funcionem. Não me perguntem como é que ele o faz, mas consegue-o sempre. Luc é um homem pacato que desenvolve profundas e suculentas reflexões sobre a electrónica. Se o tratar com simpatia acabará por ouvir algumas das suas ideias. A seguir temos o Eduardo Corral que vem às vezes até cá ao castelo, porque é de Madrid. Ao contrário do Ton e do Luc, o Eduardo é daqueles que vibra sempre com as tecnologias e chips que vão surgindo e é um entusiasta do hardware open source. Absorve informação d e p r o d u t o co m o uma esponja e está sempre ansioso por ensinar. Quando não está a trabalhar nos projectos, dedica-se à Elektor em Espanha. www.elektor-magazine.pt | Julho - Agosto 2013 | 97 www.elektor-projects.com Agora, nestas fotos temos a equipa Sunil. Sim, estão na Índia. A nossa equipa indiana S3-Express produz projectos electrónicos como nós gostamos, electrónica bem temperada para manter o interesse dos projectos. Ao ter acesso aos laboratórios .LABS pode falar com os Sunil sempre que quiser, basta deixar-lhe um comentário no site. Desculpe, qual é a pergunta? Ah, pensava que os Elektor LABS eram apenas laboratórios obscuros escondidos num castelo? Não podia estar mais longe da verdade! Os Elektor LABS são muitos laboratórios obscuros escondidos em muitas garagens, quartos, sótãos, empresas, escolas, universidades e em muitos outros espaços espalhados por todos os cantos do mundo. Os Elektor LABS não estão geograficamente limitados, funcionam à escala mundial. Temos Ivan de São Petersburgo, na Rússia, que é especialista em aplicações baseadas em microcontroladores. Um pouco mais além temos Gina e Nina de Lima, no Peru e Païkan no Japão... O quê? Gostaria de ajuda para o desenvolvimento de um medidor da velocidade do vento sem componentes móveis? Excelente. Para isso deve aceder ao site Elektor LABS e publicar o seu projecto ou proposta. Escreva uma descrição resumida do que pretende ou do que está a fazer, de modo a que as outras pessoas possam entender o projecto e lhe possam responder. Não se esqueça de juntar imagens – as pessoas gostam de fotografias ou esquemas e de facto estes elementos tornam as coisas mais atractivas. O site Elektor LABS está desenhado para ajudar a reunir as pessoas. Os Membros com interesses semelhantes ou que sabem como resolver determinado problema podem contribuir para o seu projecto. Juntos podem criar, desenvolver, e concluir designs de projectos simples ou complexos. Já visitou o site .LABS? Lembro-me de ter visto um projecto de um equipamento de avaliação da velocidade do vento. Devia vê-lo pois é um projecto muito interessante. E existem vários outros projectos estrela na página principal dos projectos. É crucial classificar os projectos, porque os mais populares serão identificados pelos nossos editores e eventualmente podem vir a originar um artigo para a revista com a ajuda do proprietário do projecto. E sabe o que ainda é melhor nesta circunstância? Se o seu projecto for publicado na Elektor Magazine poderá receber por isso! Não só irá ter o seu nome na revista Elektor como ainda poderá levar o seu parceiro(a) a jantar para celebrar a publicação do projecto sem se preocupar com o preço... Publique o seu artigo e obtenha reconhecimento, fama e quem sabe... fortuna! Mas não são apenas os projectos com 5 estrelas que conseguem ser publicados na revista. Nem toda a gente gosta da Lady Gaga, das Spice Girls ou dos Beatles, certo? Algumas pessoas gostam de coisas mais alternativas. Por isso, se os nossos editores considerarem que um determinado projecto, mesmo que não tenha atraído muita atenção, é realmente interessante, podem decidir publicá-lo na revista. Qualquer pessoa pode tornar-se autor, qualquer um pode fazer dinheiro a partir de uma ideia ou da sua paixão, todos podem ser Elektorizados! Os Elektor LABS não se resumem a projectos de electrónica populares. Tratam da electrónica em todas as suas formas, sabores e aparências. Algumas dessas formas e sabores são concursos de electrónica e oferta de produtos. Como já deve ter reparado pela nossa revista e sites, a Elektor organiza actividades especiais numa base regular nas quais pode participar e ganhar prémios. Quem contribuir activamente para alguns dos projectos poderá ganhar Kits de Desenvolvimento completos só por usar a sua inteligência e ajudar os projectos a avançar. Seja inteligente e ganhe! Espaço aos Autores Técnicos para Livros Elektor Ah... e para os especialistas em hardware, software, áudio, teste e medida, etc, com boas ideias para livros técnicos, estamos interessados em conhecer ideias para novos livros. A Elektor edita livros técnicos e os nossos livros são vendidos em todo o mundo através da revista Elektor e serviços como a Amazon e outros. A Elektor está interessada em receber propostas de autores novos ou consagrados, a quem oferecemos generosas condições em termos de royalties. Uma oportunidade ideal para trabalho freelance, feito ao ritmo próprio e com confiança. Onde cada autor tem a total liberdade para refinar o seu trabalho com a precisão e o detalhe que se exige. E nem sequer é preciso ter experiência com livros. Temos uma equipa experiente para ajudar na revisão final, paginação e toda a logística. Por isso, porque não enviar-nos uma proposta? E com isto terminamos a nossa visita guiada aos Elektor LABS. Tal como verificaram, os Elektor LABS são muito mais do que um laboratório de electrónica, é um meio para alcançar o topo da nossa paixão. Quando tiver a sua própria chave para os Elektor LABS pode visitar-nos e regressar as vezes que quiser. Se quiser discutir algum assunto com algum dos colaboradores aqui mencionados, ou com qualquer outra pessoa que esteja activa no website, insira uma mensagem junto do projecto em que está interessado. Nós encorajamo-lo a fazê-lo. Ah, uma última coisa. Quando sair, não se preocupe com as luzes ou com a bancada de soldar, porque o Elektor LABS está aberto 24/7 durante todo o ano. (120608) 98 | Julho - Agosto 2013 | www.elektor-magazine.pt O seu projecto de electrónica exige Sistemas Analógicos de Baixo Consumo? A Microchip tem a resposta... A Microchip oferece o maior portfólio de produtos analógicos de baixo consumo com suporte para uma enorme variedade de aplicações. Com mais de 800 produtos únicos e autónomos que respondem a aplicações desde gestão térmica, gestão de corrente, gestão de bateria, sinais mistos, sistemas lineares, interfaces e soluções de prevenção e segurança. Amplificadores Operacionais MCP6441/2/4 ■ Corrente quiescente de 450 nA por canal Reguladores Lineares de Tensão (LDO) MCP1710 COMECE DESDE JÁ A TRABALHAR NO SEU PROJECTO ANALÓGICO DE BAIXO CONSUMO! www.microchip.com/analog ■ Corrente quiescente de 20 µA ■ Tensão operacional a partir de 1,4V ■ Encapsulamento DFN de 2 × 2 mm ■ Encapsulamentos miniaturizados SOT-23 e SC-70 ■ Estabilizados com condensador cerâmico Reguladores de Comutação Regulador Boost Síncrono MCP16251/2 Conversores Analógico-para-Digital MCP342X ■ Tensão de arranque de 0,8V ■ Corrente quiescente de 145 μA ■ Corrente quiescente < 4 µA ■ Resolução até 18 bit ■ Desacoplamento real de carga ou bypass de Entrada para Saída ■ Tensão operacional a partir de 2,7V Placa de avaliação MCP3421 Weight Scale Demo Board (MCP3421DM-WS) ■ Saída > 100 mA com 1,2 VIN e 3,3 VOUT O nome e logo Microchip, os logos Microchip, dsPIC, MPLAB e PIC são marcas registadas da Microchip Technology Incorporated nos E.U.A. e outros países. Todas as restantes marcas mencionadas neste documento são propriedade dos respectivos donos. ©2013 Microchip Technology Inc. Todos os direitos reservados. ME1033BPor/04.13