68
[ Analógico Digital Microcontroladores & Sistemas Áudio Teste & Medida ] Mensal EDIÇÃO PORTUGUESA N.º 327 Curso Áudio DSP parte 7 www.elektor.com.pt Março 2012 www.elektor.com.pt Gerar sinais de precisão utilizando um microcontrolador ATtiny Análise de wavelets Na plataforma PIC32 da MikroElektronika Electrónica para principiantes 1.ª parte: Díodos e LEDs AVR Software Defined Radio 5 601073 016407 00327 GRUPO EDITORIAL PREÇO: 4,60 (Cont.) Personal Download for , Marcps | copyright Elektor

PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

  • Upload
    others

  • View
    27

  • Download
    13

Embed Size (px)

Citation preview

Page 1: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

[Analógico Digital Microcontroladores & Sistemas Áudio Teste & Medida ]

Mensal EDIÇÃO PORTUGUESA N.º 327

Curso Áudio DSP parte 7

www.elektor.comwww.elektor.com.pt

Março 2012

www.elektor.com.pt

Gerar sinais de precisão utilizando um microcontrolador ATtiny

Análise de waveletsNa plataforma PIC32 da MikroElektronika

Electrónica para principiantes1.ª parte: Díodos e LEDs

AVRSoftware Defined Radio

5 601073 016407

0 0 3 2 7

GRUPO EDITORIAL

ESPAÑA - PORTUGAL - BRASIL

PREÇO: € 4,60 (Cont.)

713487

Personal Download for , Marcps | copyright Elektor

Page 2: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

Aliatron - Sistemas e Equipamentos Técnicos, Lda.Parque da Colina - Quinta de Santo André

2660-327 Santo António dos Cavaleiros – Loures – Portugal

Tel: (+351)219898410 – Fax: (+351)219898419Email: [email protected] - Web: www.aliatron.pt

Micros e Placas PIC, dsPIC, ARM, AVR, 8051, PSoC etc.

Kits de Desenvolvimento de Jogos, tipo Nintendo

DEAR Robot Robôs Diversos

Motores e Servos

Baterias e Carregadores

Ferramentas Diversas Livros Técnicos

Arrumaçãop/ Electrónica

Software TécnicoDiverso

Placas de Arranque FPGA/CPLD

Circuitos ImpressosLinha Básica

Soluções de Automação

Sensores deVários Tipos

DAQ Aquisição de Dados

Energias Renováveis

As melhores marcas esperam por si na Aliatron713487

Personal Download for , Marcps | copyright Elektor

Page 3: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

Pe ri o di ci da de: Men sal (11 ve zes, edi ção du pla em Ju lho/Agos to)Di rec tor: Jorge BentoEdi tor: Bolina Portugal, Lda.Eng. Responsável: Carlos ReisCoordenação Editorial: Cândida LuziaRe dac ção: Al fre do San tos, João Cristóvão, Jo ão Mar tins, Luís Pereira, Ricardo Madureira

PU BLI CI DA DEAccount: Patricia Brazãopatricia.brazao@edi to ri al bo li na.com

PRO DU ÇÃOPa gi na ção e pré-im pres são: Pau la Ser ra, Pedro Soares

Es tra da Na ci o nal n.º 10, Km 108.32135-114 Sa mo ra Cor reia

Lote 1A - Palhavã - 2894-002 Alcochete

Bolina Portugal, Lda.

Fundador: António BentoAd mi nis tra ção: Jor ge Ben to, Hélder LemosDirector Editorial: João MartinsDirector Financeiro: Pedro LemosCon ta bi li da de:

SE DE E RE DAC ÇÃO

2795-240 Linda-a-Velha

E-Mail: jo ao.mar tins@edi to ri al bo li na.com

PRO PRI E DA DES E DI REI TOSA pro pri e da de do tí tu lo Elektor Elec tró ni ca é de Bolina Portugal,

go de Di rei tos de Au tor e não po dem ser to tal ou par ci al men te re pro - du zi dos sem a per mis são pré via por es cri to da em pre sa edi to ra da re- vis ta. A Elektor Elec tró ni ca en vi da rá to dos os es for ços pa ra que o ma -

ne ces sa ria men te às opi ni ões dos edi to res.

DI REI TOS DE RE PRO DU ÇÃO©Elektor International Media b.v.

NL-6114 ZG Susteren The Netherlands

www.elektor.nl

Elektor Bra silEditorial Bolina Brasil Ltda., Alameda Pucuruí, 51-59 Bloco B 1030 Tamboré - Barueri - São Paulo - 06460-100 - Brasil

elektor@fben to bra sil.com.br

e EUA.

IN TER NA TI O NAL EN QUI RI ESPle a se ad dress all en qui ri es to the edi torE-mail: jo ao.mar tins@edi to ri al bo li na.com

Ti ra gem: De pó si to Le gal n.º 7313/84ISSN 0870-1407R. C. So ci al n.º 110 523Preço: 4,60 €

CIR CU LA ÇÃO E AS SI NA TU RAS

Elektor Elec tró ni ca

2795-240 Linda-a-Velha

O nú me ro no qual se ini cia a as si na tu ra cor res pon de ao mês se guin te ao da re cep ção do pe di do de as si na tu ra nos nos sos ser vi ços En vi ar pa ga men to em che que à or dem de Bolina Portugal, Lda. ou au to ri zar dé bi to atra vés de car tão de cré di to. AS AS SI NA TU RAS SÓ SE RÃO PRO CES SA DAS APÓS RE CEP ÇÃO DO PA GA MEN TO.

NÚ ME ROS ATRA SA DOSUse o cu pão Ser vi ço Elektor ou en vie car ta com pa ga men to:

por en vio). Não se fa zem en vi os à co bran ça.SER VI ÇO AS SI NAN TESTel.:+351 214 131 600

as si nan tes@edi to ri al bo li na.com

Exem pla res 11 (1 du plo) 22 (2 du plos)Por tu gal € 42,50 € 77,50Eu ro pa € 66,50 —Res to do Mun do € 79,70 —

GRUPO EDITORIAL

4

Indice

Março 2012n.º 327

Elektor perto de siEstabelecimentos de electrónica onde também pode comprar a sua revista Elektor:

Alfa Elektor Braga

Alfa Elektor Guimarães

Alfa Elektor Lisboa

Aquário Braga

Aquário Porto

Dimofel

Servelec

Supertécnica

HARDWARE & SOFTWARE48 Scilab

RÁDIO & TV12 SDR AVR (1) Software Defined Radio

MONTAGEM 54 Sistema de barramento doméstico

(The Bus!) 7

INFORMAÇÃO 22 Análise de wavelets

39 Controlador ARM Stellaris biológico

42 Utilize o SPICE

TESTE & MEDIDA 46 Monitorizador de tensão económico

CURSO 28 Electrónica para principiantes (1)

32 Curso Áudio DSP (7)

PASSATEMPO & MODELISMO08 Simulador de farol miniatura 10 Luzes pisca-pisca para carros miniatura

MOTORES & FERRAMENTAS20 PCB Prototyper na prática

Personal Download for , Marcps | copyright Elektor

713487

Page 4: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

NOTÍCIAS

4 03-2012 elektor

Conversores de potência sixteenth-brick ideais para aplicações de baixo perfil A Ericsson introduziu dois novos conversores DC/DC de potência isolados, que cumprem o standard industrial sixteenth-brick e fornecem uma corrente de saída até 20 A, ou uma potên-cia de saída equivalente a 100 W. A nova série PKU-C foi desenvolvida em resposta à cres-cente procura de aplicações de potência de IT e de comunicações, que estão a migrar de módulos de potência de múltiplas saídas para conversores intermédios de barramento total-mente regulados, requerendo módulos DC/DC compactos, poupando espaço para componen-tes principais e fornecendo ainda uma espes-sura menor que 9 mm para aplicações de baixo perfil.A série PKU-C, desenhada para funcionar com uma gama de tensões de entrada entre 36 V e 75 V, é projectada principalmente para aplica-ções que são alimentadas por um barramento central de 48 V. No entanto, devido ao seu desempenho de potência eficiente e flexível, a série também é adequada para uma vasta gama de aplicações industriais, de controlo de processo e automação.Uma aplicação chave para estes dispositivos é nos equipamentos de armazenamento local de dados descentralizado que requerem 12 V e 5 V para alimentar discos. Os projectistas destas aplicações ganham uma significativa liberdade de desenvolvimento com a combinação dos novos PKU4104C de 12 V e PKU4105C de 5 V. As aplicações tradicionais de média potência, e especialmente os sistemas de armazenamento

descentralizado com discos, utilizaram conver-sores DC/DC de múltiplas saídas, mas a opti-mização dos custos e as exigências de entrada mais rápida no mercado levaram à migração para arquitecturas de barramentos intermé-dios de tensão.Como os dispositivos PKU-C são isolados e têm uma saída flutuante, os dois módulos podem ser combinados para alimentar os barramentos de 12 V e de 5 V em aplicações de aglomerados de discos que requeiram uma potência maior que 100 W. Adicionalmente, os projectistas podem combinar o PKU4104C de 12 V com o regulador de tensão digital BMR462 3E* da Ericsson para gerar o barramento de 5 V numa aplicação de disco único.Os dispositivos, disponíveis num footprint six-teenth-brick, standard industrial, com dimen-sões de 33x22,9x8,5 mm (baixo perfil), forne-cem até 100 W, com uma eficiência de 92,7% a 50% de carga e com saída de 12 V, garantindo uma baixa dissipação de calor e um reduzido consumo de energia. A série PKU-C também fornece um extraordinário desempenho tér-mico para aplicações que têm um arejamento limitado. A série fornece um desempenho completo até 80 ºC com uma circulação de ar de 3,0 m/s, e, nas condições mais desfavorá-veis, fornece a potência máxima com convec-ção natural até 65 ºC. Fornecendo um MTBF (Mean-Time-Before-Failure) de 4,27 milhões de horas, os dispositivos PKU-C cumprem os requerimentos de segurança de acordo com a norma IEC/EN/UL 60950-1, fornecendo um iso-lamento nas E/S de 1500 V (DC) e várias outras características de protecção: protecção contra

sobretensões nas saídas (OVP), desligamento no caso de tensão baixa na entrada, protecção contra temperatura excessiva (OTP), protecção contra curto-circuitos nas saídas, e saídas pré--polarizadas. A série PKU-C está disponível em formato SMD (versão SI) e standard (versão PI). www.ericsson.com/powermodules

Novo controlador de matrizes 4x4 CapSense® ExpressTM da Cypress para aplicações com tecladosA Cypress Semiconductor Corp. anunciou o novo dispositivo CY8CMBR2016 que permite aos projectistas implementar sistemas com matrizes de botões capacitivos até 4x4 botões, sem ter de escrever firmware ou utilizar novas ferramentas de software. Uma matriz é um aglomerado de colunas e linhas de botões tipi-camente encontrado em aplicações com tecla-dos numa variedade de aplicações industriais. Esta é o novo dispositivo da linha de controla-dores tácteis capacitivos CapSense® Express da Cypress, que alavanca o revolucionário algoritmo SmartSense da Cypress, eliminando completamente a necessidade de sintonia do circuito, sendo a única solução que fornece compensação ambiental em tempo real.O CY8CMBR2016 suporta os protocolos host de interface e standards industriais, “keypad scan” e “truth table”, permitindo aos clien-tes alavancar o firmware do seu processa-dor principal. O dispositivo também admite toques simultâneos, sendo perfeito para apli-cações de matrizes que requeiram toques em vários botões em simultâneo para inserir vários modos de interface com o utilizador. O CY8CMBR2016 funciona com tensões entre 1,71 V e 5,5 V, tornando-o ideal para uma vasta gama de aplicações com bateria, reguladas ou não, fornecendo uma corrente em funciona-mento de 15 μA/botão. Este é ideal para apli-cações tais como painéis de segurança, tecla-dos de leitores de cartões, teclados de leitores biométricos, painéis de controlo de alarmes de incêndios, termóstatos, electrodomésticos, assim como qualquer sistema que requeira até 16 botões capacitivos individuais. O SmartSense Auto-tuning optimiza dinamica-mente a capacidade de referência e detecta o limiar de cada botão. Também ajusta a gama de sensibilidade capacitiva óptima no arranque e em tempo real quando as condições ambien-tais mudam, incluindo temperatura, humidade e ruído. Eliminar a necessidade de sintonia traz vantagens significativas aos pequenos e gran-

713487

Personal Download for , Marcps | copyright Elektor

Page 5: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

NOTÍCIAS

Circuitos Impressos

des fabricantes, poupando tempo de projecto e eliminando perdas que possam ocorrer até com pequenas variações nas tolerâncias de fabrico. Estas vantagens são largamente multi-plicadas para os clientes, com um footprint glo-bal de fábrica e uma cadeia de distribuição. O SmatSense Auto-tuning elimina a necessidade de testes adicionais requeridos pelas soluções concorrentes para compensar variações nas PCIs e sobreposições. O dispositivo fornece um funcionamento fiá-vel nas condições mais adversas e assegura uma imunidade superior aos ruídos conduzi-dos e radiados. Também integra um regulador de tensão para compensar o ruído da fonte de alimentação, assim como filtros para ruídos espúrios.A caixa de ferramentas de projecto incluída for-nece recursos detalhados para assegurar um desempenho óptimo do CapSense, e as fun-

cionalidades de debug de sistema avançadas permitem aos clientes produzir directamente os projectos e reduzir o tempo de entrada no mercado. www.cypress.com/go/capsense

O primeiro Selective Soldering Workshop da ACE esgotou; há mais planeados para o segundo trimestre Levou quase uma semana, mas o primeiro Selective Soldering Workshop da ACE Produc-tion Technologies esgotou; agora o presidente Alan Cable planeia mais. “Esperávamos que o nosso programa fosse bem recebido mas, since-ramente, não esperávamos que fosse vendido tão rápido”, disse.O curso de fins de Março de 2012 é o primeiro

de uma série de cursos práticos de dois dias desenhados para educar e melhorar os conhe-cimentos de trabalho dos formandos no pro-cesso de soldadura selectiva. Os cursos foram construídos em resposta aos vários pedidos de clientes e amigos, e são ministrados na fábrica da ACE em Spokane, Washington, EUA.“Na década passada o processo de soldadura selectiva provou poupar bastante trabalho em relação à soldadura manual, com uma qualidade superior. Contudo há muito que aprender para dominar este processo e retirar deste o máximo de benefícios”, disse Alan Cable.O bem conhecido especialista de processo Bob Klenke da ITM Consulting lecciona a parte teó-rica do curso. “O Bob é respeitado como espe-cialista em todas as técnicas de soldadura com ênfase no processo de soldadura selectiva”, disse Alan Cable. “O dia é dividido em duas metades; o Bob lecciona em metade do tempo, e o balanço é feito no laboratório da ACE com a nossa equipa de especialistas. Isto fornece a combinação certa de teoria e de experiência prática que os formandos necessitam.” Os manuais e materiais de referên-cia também são fornecidos.Este curso é dirigido para operadores de equi-pamento, técnicos de loja, engenheiros de processo, assim como para pessoal de fabrico e qualidade com experiência em montagem de componentes SMD e standard, que queiram aumentar os seus conhecimentos na imple-mentação e resolução de problemas; mais importante, este dá aos formandos a perspec-tiva de como implementar e optimizar o pro-cesso de soldadura selectiva da forma mais efectiva. O curso ensina o essencial da solda-dura selectiva e descreve as variáveis do pro-cesso que servem de guia para melhorar a flexi-bilidade, a fiabilidade e a qualidade fornecidas pelo equipamento de soldadura selectiva. O

713487

Personal Download for , Marcps | copyright Elektor

Page 6: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

NOTÍCIAS

currículo é baseado em prática real, definindo a compreensão dos limites dos componentes, das restrições de distâncias, requerimentos tér-micos e fiabilidade de junções de soldadura, que asseguram o conhecimento completo do processo de soldadura selectiva.www.ace.protech.comContacto: [email protected]

Intersil: família de transmis-sores/receptores RS-485/RS-422, a tensão mais baixa da indústria, potência mínimaAs novas séries ISL3261x de transmissores/receptores RS-485/RS-422 são projectadas para cumprir os orçamentos de potência res-tritos de aplicações com bateria ou de sensores remotos. Esta nova família, que funciona com uma tensão de alimentação industrial baixa de 1,8 V e consome menos de 150 μW, é a solu-ção óptima para projectistas que necessitam de aumentar a duração da bateria e/ou reduzir o tamanho da sua fonte de alimentação.A série ISL3261x inclui os transmissores ISL32613/14 e os receptores ISL32610/11/12, que funcionam com tensões entre 1,8 V e 3,6 V, e com taxas de transmissão até 256 kbps. Todos os dispositivos desta série fornecem uma protecção ESD de 16,5 kV e funcionam até 125 ºC, tornando-os ideais para ambientes hostis e aplicações com sensores alimentados com baterias ou com painéis solares.

Os transmissores ISL32613E/14E consomem até duas ordens de grandeza menos corrente quando funcionam a 1,8 V do que a 3,6 V. Os receptores ISL32610/11/12E têm pontos de comutação simétricos (±200 mV) e histerese aumentada. Os pontos de comutação simé-tricos eliminam a distorção de ciclo de traba-lho introduzida por receptores do tipo “full--failsafe”, enquanto que uma maior histerese aumenta a imunidade ao ruído.As correntes de barramento ultra baixas de ±40 μA permitem mais de 256 transmissores numa rede, enquanto cumpre as especifica-ções RS-485 (carga máxima de 32 unidades).Características e especificações dos disposi-tivos: Baixa corrente de funcionamento em

repouso máxima de 80 μA para transmisso-res e de 110 μA para receptores; Vasta gama de tensões de alimentação entre 1,8 V e 3,6 V para uma máxima flexibilidade;Protecção ESD de 16,5 kV para uma fiabilidade melhorada em ambientes hostis; Gama indus-trial de temperaturas estendida até 125 °C.Os transmissores e receptores da série ISL3261x estão disponíveis em encapsulamen-tos SOT-23.www.intersil.com/products/deviceinfo.asp?pn=ISL32613E www.intersil.com/products/deviceinfo.asp?pn=ISL32610E

Fontes de alimentação fiáveis até 2500 WAs séries fleXPower X15 e XM15 de fontes de alimentação AC-DC configuráveis e com múl-tiplas saídas da XP Power são adequadas para as aplicações médicas e de IT/industrial de alta potência. A série X15 cumpre a especifi-cação de segurança, reconhecida internacio-nalmente, EN/UL 60950 para aplicações de IT e industriais. A série X15, cumprindo os exigen-tes requisitos da 3ª edição de standards médi-cos de segurança e tendo baixas fugas, é ade-quada para aplicações de diagnóstico médico e equipamentos de TAC e RM.Capazes de fornecer 1500 W com baixa ten-são de entrada, e 2500 W com alta tensão de entrada (>180 VAC), estas unidades com-pactas, arrefecidas por ventoinha, medindo 279,4x127x127 mm têm uma densidade de potência até 0,55 W/cm3. A abordagem do chassis mecânico das séries flexPower e X15 fornece 20 ranhuras para módulos de saída de 2 ou 3 ranhuras. Os módulos, disponíveis

6 03-2012 elektor

713487

Personal Download for , Marcps | copyright Elektor

Page 7: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

com saídas simples ou duplas, cobrem todas as populares tensões de saída nominais entre 3,3 V e 60 VDC, numa variedade de correntes de saída. A capacidade para colocar as saídas em paralelo, para obter mais potência, ou em série, para obter tensões de saída incomuns, fornece aos engenheiros de projecto centenas de diferentes combinações de saída.Está disponível uma saída auxiliar, sempre ligada, de 5 V/1 A para alimentar circuitos lógicos ou de controlo, no sistema final, sem a necessidade de uma fonte de tensão adicional ou conversores step-down. Os sinais de moni-torização e de controlo incluem AC OK, Falha de Energia, DC OK, Inibição Glo-bal, Falha de Ventoinha e Módulo OK/Inibido.Está disponível um controlo opcio-nal de velocidade de ventoinha para reduzir a velocidade da ventoinha, e o ruído associado, para níveis baixos de potência.A série fleXPower está disponível em seis níveis de potência de 400 W a 2500 W e fornece uma fonte de energia de alta eficiência num formato configurá-vel para reduzir o tempo de entrada no mercado.As séries fleXPower X1 e XM15 estão disponí-veis nos distribuidores regionais aprovados, ou directamente na XP Power, e vêm com 3 anos de garantia.www.xppower.com

Siemens expande portfolio de switchs industriais com solução de redundânciaA divisão Industry Automation, do sector

Industry da Siemens, expandiu o seu portfolio de produtos de rede industrial com uma solu-ção redundante, que permite tornar as redes ethernet industriais mais rápidas. Os novos switchs de rede SCALANCE X-200RNA foram desenvolvidos para todas as aplicações e secto-res em que é necessária redundância de rede. Além do interruptor Scalance, a Siemens tam-bém disponibiliza o pacote de software RNA Softnet-IE, através do qual os computadores podem ser ligados a redes paralelas.A Siemens oferece agora uma solução base-ada no protocolo de redundância paralela (PRP) de acordo com a IEC 62439-3. Os pon-tos de acesso do SCALANCE X-200RNA permi-tem ligar, sem atrasos, um ou dois segmentos da rede ou terminais sem funcionalidade PRP, através de duas redes paralelas. Um ponto de acesso duplica a mensagem e faz uma cópia em cada uma das redes. As duas LANs podem ter estruturas diferentes – estrela, anel ou árvore. As duas redes separadas e o procedi-mento PRP garantem a transmissão segura e pontual. O tempo de reconfiguração exigido por outros procedimentos de redundância, que utilizam apenas uma rede física, passa a ser desnecessário. Os sectores da energia, indús-tria farmacêutica, química e vários processos de automação são alguns exemplos possíveis de aplicação destes equipamentos.Adicionalmente, os SCALANCE X204RNA podem ser em plástico ou metal, o que lhes

permite funcionar em condições ambientais adversas. O pacote de software Softnet-IE RNA pode ser usado para ligar computadores em redes redundantes a baixo custo, com base no PRP, ou seja sem custos adicionais de pro-gramação. Com este software, um computa-dor pode estabelecer uma ligação redundante em duas redes LAN, tal como os switchs SCA-LANCE X- 200RNA.www.siemens.com/industry

RS Espanha e Portugal nomeia novo Country ManagerA RS Components (RS), marca comercial da Electrocomponents plc, distribuidor de pro-dutos electrónicos e de manutenção, anunciou que Ana Ma Belda Martín foi nomeada como Country Manager para Espanha e Portugal. Ela será responsável por desenvolver as vendas e manter a posição da RS como distribuidor nes-tes dois mercados estratégicos.

Ana Ma Belda Martín tem um amplo conheci-mento nas áreas de Vendas e Marketing, adqui-rido ao longo de muitos anos de experiência em gestão de equipa, trabalhando em várias funções directivas para empresas internacio-nais na Espanha. Ela também possui um back-ground em Finanças e Controlo Interno. Antes de entrar na RS, Ana assumiu várias funções de gestão senior: trabalhou 13 anos na IBICO-GBC-ACCO Group, chegando a ser

Country Manager e em 2008 entrou na Novaline Plus Iberica como Gerente Geral antes de aceitar o novo desafio com a RS.A RS está confiante de que com seu amplo conhecimento e experiência Ana contribuirá significativamente para satisfazer as necessidades dos clientes da RS e assim impulsionará ainda mais o sucesso no mercado ibérico.“Em nome da RS Europa desejo a Ana o melhor na sua nova função. Espanha e Portugal são mercados muito importan-tes para a RS na Europa. Existe um poten-cial enorme para nós aqui e vemos que

a nossa abordagem centrada no cliente é muito apreciada. Tenho sorte por podermos contar com pessoas apaixonadas pelo seu trabalho como Ana para maximizar o nosso sucesso. A RS sabe que os funcionários motivados e comprometidos são essenciais para a implementação bem-sucedida da nossa estratégia europeia”, afirmou Klaus Göldenbot, Regional General Manager da região EMEA.www.rs-components.com

NOTÍCIAS

elektor 03-2012 7

Ana Ma Belda Martín é a nova Country Manager da RS Components para Espanha e Portugal

713487

Personal Download for , Marcps | copyright Elektor

Page 8: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

PASSATEMPO & MODELISMO

8 03-2012 elektor

Simulador de farol miniaturaRotação do feixe sem partes móveis

A rotação do reflector num farol real é vista por um observador como um lento incre-mento do brilho durante o tempo em que o feixe se aproxima. No instante em que o feixe passa na direcção do observador, o bri-lho é muito forte e depois decai.Para simular isto, o brilho de uma pequena lâmpada (ou LED) tem de aumentar e decair periodicamente, função que é replicada por uma onda triangular. Para a lâmpada brilhar realisticamente é necessário sobrepor ao ponto máximo desta onda triangular um impulso de grande amplitude.No circuito (Figura 1), o gerador de onda triangular, que tecnicamente é um gerador combinado de onda triangular e rectan-gular, é formado por dois ampops (IC1A e IC1B). IC1.A é configurado como compa-rador e IC1B como integrador, cuja saída é acoplada à entrada do comparador através de R5. Na saída de IC1A obtém-se uma onda rectangular e na saída de IC1B obtém-se uma onda triangular. O pico da onda trian-gular faz comutar a saída de IC1A do nível baixo para o nível alto. Neste flanco ascen-dente, através de C2 e T2, o circuito inte-

Leo Szumylowycz (Alemanha)

Simular realisticamente

o feixe rotativo de um farol

é um grande desafio para

construtores de modelos

em pequena escala. Construir

uma pequena lâmpada rotativa

com o sistema óptico é uma

tarefa exigente e um anel

de LEDs, como alternativa,

também não é realista.

A engenhosa solução aqui

descrita começou em software como um projecto para microcontrolador. Posteriormente, o autor atingiu

o mesmo resultado sem o microcontrolador, mantendo um pequeno número de componentes.

1

3

2

IC1A7

5

6

IC1B

4

8

OUT3

THR6

DIS7

TR2

R4

CV

5

81

IC2

NE555

R1

4k7

R2

3k3

P1

2k5

C1

100n

R4

100k

P2

1M

63V

C3

4u763V

C4

4u7

R3

22k

R5

10k

T1

BC337

R6

1k

D1

R7

120R

T2BC337

R8

10k

D2

1N4148

P3

500k

R11

10k

C5

470n

R9

2k2

C2

2n2

T3

BC337

R10

1k

IC1

C6

10n

63V

C7

100u

S1 +5V...+15V

0

100202 - 11

IC1 = LM358

Figura 1. O circuito contém um gerador de onda triangular feito com dois ampops, e um temporizador NE555 utilizado como monostável.

Personal Download for , Marcps | copyright Elektor

713487

Page 9: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

PASSATEMPO & MODELISMO

grado temporizador NE555 (IC2, configurado como monostá-vel) fornece um breve impulso na sua saída, que liga T3, e per-mite aumentar bastante a corrente que atravessa o LED durante um breve instante. O potenciómetro P3 determina a duração do pico de brilho do LED, enquanto que P2 determina a fre-quência da onda triangular (a simulação do período de rotação do feixe de luz).

P1 é utilizado no divisor de tensão do comparador para con-trolar a amplitude da onda triangular e consequentemente a variação do brilho. Assim é possível configurar o período em que o LED está apagado, que num farol real corresponde à fase em que o feixe está a iluminar o lado oposto ao do observador. O ciclo de iluminação é sequencialmente: escuridão – brilho crescente – breve impulso de brilho máximo – brilho decres-cente – escuridão e assim sucessivamente.

ConstruçãoUtilizando os valores sugeridos, o circuito é fácil de construir sem utilizar uma placa de circuito impresso feita à medida. A Figura 2 mostra o protótipo construído nos laboratórios da Elektor. Dada a larga gama de tensões de alimentação (5 V a 15 V) é importante ter algum cuidado na escolha das resistências em série (R6 e R7) para o LED e adaptá-las à corrente máxima do LED ou da lâmpada. Para T1 e T3 é melhor escolher transísto-res NPN com uma corrente de colector mais elevada. O BC337 sugerido tem um valor para ICmax de 800 mA, permitindo a utilização de LEDs de alto brilho e lâmpadas miniatura. Para T2, um BC547 é uma escolha adequada.

No protótipo, o valor apresentado para R6 foi substi-tuído por 56 Ω. Utilizando um LED amarelo e uma ten-são de alimentação de 12 V foram medidos os seguin-tes consumos de corrente: 2,73 mA (mínimo) e 17 mA (máximo).

(100202)

Artigo original: Lifelike Lighthouse – November 2011

Figura 2. Protótipo construído nos laboratórios da Elektor, para teste.

Personal Download for , Marcps | copyright Elektor

713487

Page 10: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

PASSATEMPO & MODELISMO

10 03-2012 elektor

Luzes pisca-pisca para carros miniaturaCom dois LEDs azuis

As ambulâncias, os carros de polícia e bombeiros, estão equipados com indica-dores ópticos e sonoros. Como nos mode-los de carros se tenta imitar o mais possí-vel a realidade, era interessante adicionar--lhes umas luzes de emergência (a sirene

não é tão importante, porque podíamos fartar-nos ao fim de alguns minutos).As luzes de emergência originais das ambulâncias e outros veículos utiliza-vam sistemas mecânicos, mas nos nos-sos dias foram substituídos por disposi-

tivos de estado sólido que controlam as luzem em certos padrões. Com a ajuda do circuito simples que aqui apresentamos pode simular os padrões mais comuns de duas lâmpadas, com um par de LEDs azuis. Com este padrão, um dos LEDs

Ludwig Libertin (Áustria)

Com a ajuda de uma mão cheia de componentes pode criar luzes de emergência azuis

para utilizar em modelos de ambulâncias e carros de polícia. São utilizados dois LEDs

azuis para imitar os efeitos de luzes que existem normalmente em veículos reais.

713487

Personal Download for , Marcps | copyright Elektor

Page 11: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

PASSATEMPO & MODELISMO

11elektor 03-2012

pisca duas vezes numa rápida sucessão, e depois o outro pisca também duas vezes, repetindo-se o ciclo. Na prática, e depen-dendo do país, existem algumas variações deste padrão, mas para modelos de car-ros esta é uma imitação aceitável.Este circuito utiliza componentes simples e é muito fácil de construir. Considerando o espaço disponível nos modelos de car-ros, pode criar uma versão com compo-nentes SMD.

CircuitoO componente central do circuito (Figu- ra 1) é o bem conhecido 4060, um oscila-dor/contador CMOS. Como tem um osci-lador interno, é apenas necessário adicio-nar componentes passivos (C2, R2 e R3) para determinar a frequência de oscilador pretendida. Com os valores apresentados no circuito, a primeira saída do contador (Q3, pino 7) tem uma frequência de 8 Hz e a saída Q5 (pino 4) tem um quarto desta frequência: 2 Hz.Com a ajuda de dois transístores, os sinais nas saídas Q3 e Q5 são combinados de tal forma que cada LED pisca duas vezes, e permanece apagado durante o tempo em que o outro LED pisca duas vezes. T2 e T3 funcionam como uma porta NAND para D2, pelo que este LED vai acender durante dois impulsos de Q3 quando a saída Q5 estiver no nível alto. T1 controla o LED D1 e, devido à forma inteligente como é utili-zado, actua como uma porta NAND para as saídas Q3 e Q5, assim como um inver-sor para Q5. Isto pode ser visualizado na Figura 2. O consumo médio de corrente deste protótipo é de cerca de 6 mA para uma tensão de 12 V. O circuito consegue funcionar com um mínimo de 7,5 V, mas o brilho dos LEDs diminui e D2 fica com um brilho inferior ao de D1, devido à liga-ção série entre T2 e T3.O circuito pode ser utilizado para outras aplicações: se utilizar a saída Q4 em vez de Q5 cada LED pisca uma só vez por ciclo, alternadamente; se utilizar a saída Q6, cada LED vai piscar quatro vezes por ciclo.O circuito pode ser construído facil-mente num pedaço de placa para protó-tipos, desde que haja espaço suficiente

no modelo. A alternativa é desenhar uma placa com componentes SMD para este circuito.

(100201)

Artigo original: Flashing Light for Model Cars – November 2011

A

B

C

D100201 - 12

Figura 2. Este diagrama temporal ajuda a explicar como funciona o circuito e quais são as funções dos transístores.

168

37

45

54

66

111

714

813

915

122

133

CTR14

RCX11

12

!G

CX9

RX10

CT=0

CT

IC14060

C2

100n

R3

100k

R2

39k

R1

10k

T2

R5

10k

R4

10k

R6

10k

R7

1k

R8

1k

R9

1k

T3

T1

D1 D2C1

100n

+12V

3 x BC547B

+12V

0

C3

100n

100201 - 11

C

A

B

D

Figura 1. Os componentes mais importantes do circuito são o circuito integrado 4060 e os três transístores.

713487

Personal Download for , Marcps | copyright Elektor

Page 12: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

12 03-2012 elektor

SDR AVRGerar sinais de precisão utilizando um microcontrolador ATtinyMartin Ossmann (Alemanha)

1ª parte

Os microcontroladores AVR

da Atmel são muito

populares, no mínimo,

pelas suas ferramentas

de desenvolvimento

gratuitas

disponíveis.

Nesta série de

artigos vamos mostrar

como estes microcontroladores podem

ser utilizados para tarefas de processamento

digital de sinais. Os assuntos vão desde o mais simples

até ao mais complexo, tornando esta série de artigos adequada

para iniciados, e, ao verdadeiro estilo Elektor, focada em exemplos práticos.

Pode construir o hardware por si próprio ou pode adquirir os módulos através

do Serviço Elektor, e o software (código fonte) está disponível também

para download, como habitualmente, no site da Elektor.

713487

Personal Download for , Marcps | copyright Elektor

Page 13: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

13elektor 03-2012

Serviço Elektor

Refª 100180-71).232

Refª 110553-91).

Refª 080083-71).

100180-11.zip

Primeiro vamos começar com um resumo do que vai ser abordado nesta série. O primeiro módulo, que inclui um ATtiny2313, um oscilador de 20 MHz e um conversor digital/analógico R-2R, vai ser utilizado para construir um gerador de sinais. O segundo módulo capta sinais do ar: este contém todo o hardware necessário para construir um rádio SDR (Software Defined Radio), com um inter-face RS232, um LCD, e um oscilador a cristal controlado por tensão (VCXO), que pode seguir um sinal de referência. O terceiro módulo fornece uma antena activa de ferrite. O software para estes projec-tos foi escrito utilizando o compilador GCC WinAVR no AVR Studio e pode ser descarregado como código fonte em C ou como fichei-ros do tipo hexadecimal.

Esta série de artigos é construída em torno de exemplos práticos. Pode antecipar geradores de sinais sinusoidais e rectangulares, um voltímetro RMS, experiências em FM, AM e PM; filtros FIR e IIR, transmissão de dados sem fios, recepção de sinais DCF, mensagens meteorológicas RTTY, transmissões de rádio em ondas longas da BBC e muito mais!

Antes de começar, um pequeno aviso: as lâmpadas economiza-doras (fluorescentes) são baseadas em reguladores comutados que espalham interferências em todas as bandas de onda longa. É aconselhável desligar estas lâmpadas e utilizar lâmpadas incan-descentes (ou de halogéneo) antes de testar os circuitos mais sensíveis.

Módulo gerador de sinaisO módulo gerador de sinais é baseado num microcontrolador AVR a funcionar a 20 MHz, e um conversor D/A R-2R para produ-zir as tensões de saída. Não sendo uma novidade, vai ser mostrado como este pode ser utilizado numa vasta gama de aplicações. Em particular, vai ser utilizado para gerar sinais modulados em fase e em frequência, úteis para testar outros circuitos. Para uma maior

Personal Download for , Marcps | copyright Elektor

713487

Page 14: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

14 03-2012 elektor

precisão, o gerador de sinais vai ser ligado a uma fonte de sinal externa, que segue um standard de frequência como o sinal ale-mão DCF77 a 77,5 kHz ou o sinal francês TDF a 162 kHz. O circuito do gerador de sinais é apresentado na Figura 1. O componente principal é o microcontrolador ATtiny2313, tendo um conversor D/A R-2R ligado ao seu porto B. O sinal de saída analógico está presente em K3. Note que a impedância de saída do circuito é relativamente elevada: 10 kΩ. A saída PWM do microcontrolador (OC1A) também está disponível em K4. Esta saída vai ser utilizada

para gerar ondas rectangulares com frequências até algumas centenas de kHz, assim como para modular outros sinais. Outra saída PWM (OC0B) está presente em K5 (PWM-LF) através de um filtro passa-baixo, formado por R19 e C3: este é adequado para gerar sinais analógicos de baixa frequência.O microcontrolador funciona a 20 MHz através de X1, sendo uma boa ideia escolher um cristal com uma precisão relativamente elevada (50 ppm ou melhor). É mais fácil tes-tar cristais de tipos ou frequências diferentes se utilizar um suporte. O jumper JP2 permite a utilização de um sinal de relógio externo, que pode ser ligado a K2 (EXT-CLK).O software do gerador de sinais permite algum grau de configura-ção externa utilizando a UART do microcontrolador. Os pinos rele-vantes estão ligados a um conector no módulo (que está disponível no Serviço Elektor na forma de um kit que inclui todos os componentes). O conector é adequado para ligar o conversor USB/Série BOB-FT232 [1]. JP1 permite obter a alimentação atra-vés da ligação USB quando o módulo está ligado a um PC: neste caso não é necessário um adaptador de tensão adicional.A montagem da placa de circuito impresso (Figura 2) não deve apre-sentar dificuldades: todos os com-ponentes são comuns. Convém uti-lizar suportes para o microcontro-lador e para o cristal. Certifique-se que os conectores de programação K6 e K7 têm a polaridade correcta. A programação pode ser efectuada utilizando o AVRprog [2] da Elektor. É importante utilizar a configuração

correcta para os fusíveis: o código fonte fornece isto em conjunto com as opções para o compilador em cada caso.

Gerador sinusoidal DDSA primeira aplicação é um simples gerador sinusoidal programado em C. O sinal de relógio para a amostragem é produzido num dos temporizadores internos do microcontrolador, com a respectiva interrupção habilitada. A rotina de atendimento à interrupção é responsável por calcular a próxima amostra da sinusóide (Figu-

PB1(AIN1/PCINT1)

PB0(AIN0/PCINT0)

PB3(OC1A/PCINT3)

PB4(OC1B/PCINT4)

PB2(OC0A/PCINT2)

PD2(CKOUT/INT0)

PB7(SCL/PCINT7)

PB6(DO/PCINT6)

PB5(DI/PCINT5)

ATTINY2313PA2(RESET)

PA0(XTAL1)

PA1(XTAL2)

PD3(INT1)

PD5(OC0B)

PD0(RXD)

PD1(TXD)

PD6(ICP)

PD4(T0)

IC1

VCC

GND

10

20

19

18

13

12

14

15

16

17

11

9

8

7

1

5

4

2

3

6

R3

20k

R5

10k

R7

10k

R9

10k

R11

10k

R13

10k

R1510

k

R17

10k

R18

20k

R16

20k

R14

20k

R12

20k

R10

20k

R8

20k

R6

20k

R4

20k

K4

SQUARE

K5

PWM-LF

R19

1k

C3

10n

K3

SINE

K7

12

34

56

ISP6

K6

10

12

34

56

78

9

ISP

JP3

VCC

VCC

20.000MHz

EO

H

X1

JP2

K2

VCC

R2

1k

S1

RESET

CLK-SEL

EXT-C

LK

BO

B-F

T23

2R

+5VUSB

TX

RX

GND

C1

100n

100180 - 11

JP1

PW

D-S

EL

+5VUSB

K1

PO

WER

R1

1k

D1

C2

100n

VCC

D2

+5V

SC

K

MIS

O

MO

SI

EX

T

RE

SE

T

BAT85

Figura 1. Diagrama do circuito do gerador de sinais.

713487

Personal Download for , Marcps | copyright Elektor

Page 15: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

15elektor 03-2012

ra 3). Considerando a k-ésima amostra S[k] e chamando p[k] à fase desta amostra, temos:

S[k] = sin (p[k]).

Entre cada amostra e a seguinte, a fase é incrementada de um valor constante d (incremento de fase):

p[k+1] = p[k] + d.

Num gerador sinusoidal perfeito, estes cálculos têm de ser exac-tos, o que não é prático. Então, na prática, o sintetizador DDS (Direct Digital Synthetiser) armazena o valor corrente da fase

DDSp, com uma precisão finita e como um número de m bits, no acumulador de fase. O período completo da sinusóide corres-ponde à variação deste valor de 0 até 2m-1. É utilizada a mesma precisão para armazenar o incremento de fase e para a operação de soma de fase.O próximo passo é converter o valor de fase na correspondente amostra da sinusóide. Isto é realizado utilizando uma tabela que armazena um período completo da sinusóide. Se fossem armaze-nados todos os 2m valores possíveis para o acumulador de fase, a tabela seria gigantesca: na prática são utilizados os primeiros n bits (n<m) do acumulador para indexar a tabela, que agora só necessita de 2n amostras. Os valores armazenados na tabela são arredondados para amostras S[k] de r bits, onde r é o número

Lista de componentesResistências:R1;R2;R19= 1 kΩR5;R7;R9;R11;R13;R15;R17= 10 kΩR3;R4;R6;R8;R10;R12;R14;R16;

R18= 20 kΩ

Condensadores:C1;C2= 100 nF/100 VC3= 10 nF

Semicondutores:D1= BAT85 (díodo Schottky)D2= LED verdeIC1= ATtiny2313-20PU programado

Diversos:S1= Botão de pressãoK4;K5= Barra de terminais de 2 viasJP3= Barra de terminais, de 2 vias,

com jumperJP1;JP3= Barra de terminais de 3 vias,

com jumper

K1;K2;K3= Conector de 2 vias, em ânguloBOB= Conector de 4 vias, em ânguloK6= Conector ISP de 10 viasK7= Conector ISP de 6 viasX1= Cristal de quartzo 20 MHz (com quatro suportes Harwin tipo H3153F01)

BOB-FT232R-001= Conversor USB/TTL da Elektor (montado e testado, Refª 110553-91).PCI (Refª 100180-1), disponível na Guimocircuito (www.guimocircuito.com).

Em alternativa:Kit incluindo placa e todos os componentes (Refª 100180-71).

Figura 2. A placa de circuito impresso está disponível no Serviço Elektor como parte

de um kit que inclui todos os componentes.

p[k+1] = p[k] + d

p[k+1]p[k]

S[k] S[k+1]

sin(x)X

Figura 3. Amostragem de uma sinusóide.

sin(x)

DACS[k]

DDSp[k]

DDSd

r-Bits/amostra

n-Bits/amostra

m-Bits

U[k]

Figura 4. Como funciona um gerador sinusoidal DDS.

713487

Personal Download for , Marcps | copyright Elektor

Page 16: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

16 03-2012 elektor

de bits do conversor D/A (Figura 4). No primeiro programa são utilizados m=32 e n=8. Um acumulador de 32 bits fornece um controlo muito preciso da frequência dos sinais. É utilizada uma tabela com 256=28 entradas e um conversor D/A de 8 bits (r=8). O programa EXP-SinusGeneratorDDS-T1INT-V01.c [3] está con-figurado para produzir uma frequência de saída fixa de 1 kHz, podendo o resultado ser visualizado num osciloscópio (Figura 5). A rotina de atendimento à interrupção encontra-se na Lis-tagem 1.

TemporizaçãoO DDS funciona com uma frequência fDDSCLK = 100 kHz. Para gerar a frequência de saída f pretendida, a respectiva fase é calculada utilizando:

DDSd = 2n × f / fDDSCLK

Para que f = 1 kHz temos:

DDSd = 232 × 1 kHz / 100 kHz = 42949673

Listagem 1

ISR(TIMER1_OVF_vect) {

PORTD |= _BV(4) ; // set sample timing flag

PORTB=pgm_read_byte( SIN8+(DDSp>>24)) ; // fetch and output sine sample

DDSp += DDSd ; // advance DDS phase DDSp by DDSd

PORTD &= ~ _BV(4) ; // clear sample timing flag

}

Listagem 2

loop:

add DDSphase0,DDSdelta0 // 1 LSB of 32 bit DDS adder

adc DDSphase1,DDSdelta1 // 1

adc DDSphase2,DDSdelta2 // 1

adc ZL ,DDSdelta3 // 1 MSB is in ZL as pointer

lpm R0,Z // 3 access sine table

out PORTB,R0 // 1 out to R-2R DAC on PORTB

brtc loop // 2 (1) loop until T flag set by interrupt routine

// 10 cycles in total for one loop

Figura 5. Teste do gerador sinusoidal. Figura 6. Medição do tempo de execução da rotina de atendimento à interrupção.

713487

Personal Download for , Marcps | copyright Elektor

Page 17: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

17elektor 03-2012

Este valor está inserido no código fonte escrito em C onde DDSd é inicializada.

Com esta fórmula pode verificar que, quanto maior for a frequên-cia de amostragem, maior é a frequência que pode ser gerada. Porque foram escolhidos os 100 kHz? A resposta está na rotina de atendimento à interrupção. Como pode ver no fragmento de código acima, é activado e desactivado o pino PD.4, o que per-mite observar o tempo de cálculo num osciloscópio: neste caso, o tempo total é de 2,2 μs. Contudo, este tempo também pode ser determinado com uma experiência relativamente simples.Configure a rotina principal como um ciclo infinito no qual o pino PD.5, por exemplo, é comutado o mais rápido possível. Seguida-mente podem ser observados os períodos em que a comutação pára, que correspondem à activação da rotina de atendimento à interrupção (Figura 6).Nesta experiência, o tempo necessário para o processamento da rotina de atendimento à interrupção foi de 5,4 μs. Assim, a fre-quência máxima permissível para a interrupção é de 180 kHz. Adicionando uma margem de segurança, chega-se ao valor de 100 kHz.

Quando a frequência f se aproxima de fDDSCLK começam a ser observados efeitos indesejados tais como oscilação de frequência, ruído e sobreposição espectral. Com uma frequência de amostra-gem de 100 kHz, é melhor manter f abaixo de 10 kHz. Pode fazer--se melhor usando linguagem assembly?

Um gerador sinusoidal DDS mais rápidoPara que gerador sinusoidal atinja frequências mais altas, é neces-sário reescrever a rotina DDS em assembly. Com a ajuda de uma astuta combinação de variáveis em registos, pode conseguir-se que a frequência do DDS de 32 bits suba até 2 MHz. O código (Lis-tagem 2) utiliza a flag T para permitir a saída do ciclo.Este projecto consiste agora numa mistura de C com assembly, e é necessário armazenar a tabela da sinusóide num endereço fixo de memória. Configurar o projecto no WinAVR para atingir isto não é uma tarefa de principiantes. Se não desejar fazer alte-rações ao código é provavelmente melhor programar no micro-controlador o ficheiro hexadecimal já compilado, com o nome EXP-SinusGenerator-DDS-ASM-C-V01.Para tornar o gerador sinusoidal mais flexível, este inclui a pos-sibilidade de ser configurado através do interface UART (19200 baud, formato 8N1). Utilizando um programa terminal, escreva simplesmente a frequência pretendida seguida de CR e LF. A fre-quência máxima utilizável é de cerca de 200 kHz. A resolução de frequência teórica é dada por:

fDDSCLK / 2n = 2 MHz / 232 = 0,00046... Hz.

Para tirar partido desta resolução, o software permite-lhe inse-rir a frequência com três casas decimais, “1000.045” (seguido

de CR e LF), por exemplo. Os cálculos internos necessários para transformar a frequência inserida num parâmetro utilizável para o DDS têm de ser efectuados com precisão. Para isso o autor escre-veu rotinas aritméticas especiais, incluindo uma para divisão com ponto fixo.

A Figura 7 mostra o espectro da saída sinusoidal à frequência f = 125,123 kHz, pertencente à gama entre 0 Hz e 2 MHz. Como pode verificar, existem harmónicas, mas estão todas mais de 30 dB abaixo do sinal desejado. Também é visível algum ruído de banda larga: é um subproduto da técnica DDS.Se for utilizado um cristal comum, a precisão total do sistema vai estar em torno de ±100 ppm. Neste contexto faz sentido afir-mar que o gerador pode produzir uma frequência de saída de 100,00005 kHz. Por esta razão o gerador consegue aceitar um sinal externo de 20 MHz e, mais à frente nesta série, vai ver como este sinal de relógio pode ser extraído de uma referência remota. Esta combinação permite gerar sinusóides com uma excelente precisão na frequência.

Ajuste de circuitos ressonantesMais adiante, nesta série de artigos, vai ser utilizado um micro-controlador AVR para receber e processar transmissões em onda longa, como, por exemplo, o DCF a 77,5 kHz, o France Inter a 162 kHz e o BBC Radio 4 a 198 kHz. Normalmente, é utilizada uma antena de ferrite, cujo ajuste pode ser simplificado utilizando o nosso gerador sinusoidal: ligue o circuito como se mostra na Figura 8 e ajuste o condensador variável para uma amplitude máxima.É possível utilizar a relação de fase entre a tensão de saída UOUT e a tensão de entrada UIN para determinar se a frequência de resso-nância do circuito é mais alta ou mais baixa do que a frequência de

Figura 7. Espectro do sinal gerado.

713487

Personal Download for , Marcps | copyright Elektor

Page 18: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

18 03-2012 elektor

entrada. Se a fase de UOUT for maior do que a de UIN, a frequência da sinusóide é mais baixa do que frequência de ressonância; se a fase de UOUT for menor do que a de UIN, a frequência do sinal é maior do que a frequência de ressonância. Quando as frequências são iguais, UOUT e UIN estão em fase.

Os valores dos componentes do exemplo do circuito apresen-tado são para uma frequência de ressonância de 125 kHz; L1 é uma pequena bobina com núcleo. Este circuito vai ser utilizado mais tarde para gerar sinais de teste a uma frequência de 125 kHz. A frequência de ressonância pode ser fixada exactamente em 125 kHz através do condensador variável: para isto, tanto é pos-sível utilizar o sinal do DAC R-2R (K3) como a onda rectangular da saída PWM (K4).

Sinal PWM rectangular com divisor fraccionárioVai ser agora analisada outra aplicação com base no princípio DDS. Se for utilizado um temporizador com uma saída PWM para gerar uma onda rectangular, há uma limitação que só permite gerar frequências cujos valores são divisores inteiros da frequência que controla o temporizador. Se N for o divisor e fCLK a frequência de relógio do temporizador, então a frequência de saída vai ser f = fCLK/N. No entanto, se o divisor for ajustado (por exemplo, entre N e N+1) também podem ser produzidas frequências intermédias. Por exemplo, se o divisor alternar entre N e N+1, o divisor efectivo vai ser N+0,5. Se for necessário dividir por 10,333…, pode conse-guir isso utilizando um divisor de 11 com uma probabilidade de 0,333… e um divisor de 10 durante o resto do tempo.Como pode isto ser utilizado na prática? É necessário um algo-ritmo que diga, dado um divisor, quando dividir por N ou por N+1.Uma vez mais, é utilizado o sintetizador DDS de m bits, com um valor de m suficientemente grande para atingir a precisão preten-dida. Neste caso, é utilizado o overflow do acumulador de fase. O

factor para o qual o acumulador de fase atinge o overflow é dado por:

p = DDSd / 2m

É possível controlar este factor utilizando a variável DDSd. Quando o acumulador atinge o overflow, o temporizador é instruído para dividir por N+1 em vez de N, no próximo ciclo.Por exemplo, se for necessário gerar uma onda rectangular de 77,5 kHz através de uma frequência de relógio principal de 20 MHz, o divisor necessário é:

20000 / 77,5 = 258,0645161...

Assim, apenas é necessário dividir por N=258 ou por N=259 em cada ciclo. A probabilidade de seleccionar N=259 vai ser p = 0,645161…, que num DDS de 24 bits significa que DDSd = p × 224 = 1082401. A Listagem 3 mostra uma rotina de atendi-mento à interrupção que demonstra esta ideia.

A onda rectangular produzida por este código sofre de algum jit-ter, mas a longo prazo o compromisso com a frequência ideal é excelente.Toda a rotina, incluindo o cabeçalho da interrupção, tem um tempo de execução de cerca de 6 μs, o que significa que esta técnica pode ser utilizada para gerar frequências até cerca de 160 kHz. Se a rotina for reescrita em assembly permite frequên-cias consideravelmente maiores. Para conveniência, o programa gerador também pode ser controlado através de um terminal. O código fonte está em EXP-SquareGenerator-DDS-T1INT-V01.c no ficheiro zip [3].O divisor fraccionário tem muitas outras aplicações. Por exemplo, pode ser utilizado para gerar um sinal com qualquer frequência de amostragem, ou fazer parte de uma PLL digital.

Listagem 3

uint32_t DDS24 ; // DDS phase, 24 bits usedvolatile uint32_t dDDS24 ; // delta for DDSuint16_t TOP1 ; // integer part of divider for PWM

ISR(TIMER1_OVF_vect) { PORTD |= _BV(4) ; DDS24 += dDDS24 ; // advance DDS phase if (DDS24 & 0x1000000UL ) { // check bit 24 for overflow ICR1 =TOP1 ; // on overflow PWM width = TOP1+1 } else { ICR1 =TOP1-1 ; // else PWM width = TOP1 } ; DDS24 &=0xffffffUL ; // make DDS24 24 bits again PORTD &= ~ _BV(4) ; }

Personal Download for , Marcps | copyright Elektor

713487

Page 19: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

RÁDIO & TV

19elektor 03-2012

Gerador FMPor si próprio o gerador de onda rectangular não é particular-mente interessante. No entanto, como o controlo da saída PWM não ocupa todo o tempo do processador, sobra alguma capaci-dade computacional para modificar dinamicamente a frequên-cia, de modo a construir um gerador de FM. O serviço meteoroló-gico alemão [4] transmite informações meteorológicas utilizando modulação por comutação na frequência (FSK) no modo radio-teletype (RTTY). Mais tarde, vai ser construído um receptor que consegue descodificar estas mensagens. Para ajustar e testar o receptor é necessário um sinal de teste. Utilizar o divisor fraccio-nário é fácil: basta aproveitar a sequência de bits de dados para controlar a frequência de saída.O gerador de sinais de teste vai ser inicialmente programado para funcionar com uma frequência de portadora f de 125 kHz. O cir-cuito da Figura 8 é utilizado para converter a onda rectangular numa sinusóide. A rotina de atendimento à interrupção foi já ana-lisada para o divisor fraccionário; a nova rotina (SendBit) é respon-sável por enviar um único bit (Listagem 4).

Primeiro espera-se que o Timer0 conte COUNT2 ciclos: por outras palavras, a taxa de transmissão seja igual à taxa de overflow do Timer0 dividida por COUNT2. Depois, dependendo do valor do bit a enviar, são configurados os valores de deltaDDS24 e de TOP1. É aqui que ocorre a modulação em frequência. Note que os coman-dos que configuram estes valores estão compreendidos entre cli() e sli(). Se isto não for feito desta forma, a rotina de atendimento à interrupção pode ser invocada fazendo com que um valor seja alterado e outro não, levando a resultados imprevisíveis. As roti-nas podem ser encontradas no ficheiro EXP-SQTX-FM-RTTY-V01.c. Com rotinas auxiliares podem ser transmitidos caracteres utili-zando o código Baudot [5], emulando as transmissões de servi-ços meteorológicos.A Figura 9 mostra o espectro do sinal RTTY FM. Existem dois picos adjacentes, nas frequências de 125 kHz ± 50 Hz. O espectro é con-tínuo, caindo rapidamente para além de ± 1 kHz.Tendo construído um destes transmissores, é natural que queira testá-lo para verificar se a modulação está correcta. Por esta razão, o próximo artigo desta série vai começar a mostrar os componen-tes que compõem um receptor digital.

(100180)Artigo original: AVR Software Defined Radio (1) – March 2012

Internet

[1] www.elektor.com.pt/110553

[2] www.elektor.com.pt/080083

[3] www.elektor.com.pt/100180

[4] www.hfunderground.com/wiki/RTTY_maritime_weather_transmissions

[5] http://en.wikipedia.org/wiki/Baudot_code

Figura 9. Espectro de um sinal modulado em frequência a 125 kHz ± 50 Hz.

Listagem 4

void SendBit(uint8_t theBit) {

uint8_t k ;

for (k=0 ; k<COUNT2 ; k++){

while( ( TIFR & (1 << TOV0) )== 0 ) { }

TIFR |= (1 << TOV0) ;

}

if ( theBit==MARK ) {

cli() ;

deltaDDS24=MARK_deltaDDS24 ;

TOP1=MARK_TOP1 ;

sei() ;

}

else{

cli() ;

deltaDDS24=SPACE_deltaDDS24 ;

TOP1=SPACE_TOP1 ;

sei() ;

}

}

R2

10k

R1

100k

L1

1mH

C1

1n5

C2

500p

Uin Uout

Figura 8. Ajuste de um circuito ressonante.

713487

Personal Download for , Marcps | copyright Elektor

Page 20: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

MOTORES & FERRAMENTAS

20 03-2012 elektor

PCB Prototyper na práticaPerfeita para protótipos e produção de baixa escala

Depois da Elektor apresentar o PCB Proto-typer em Dezembro de 2010, não demo-rou muito até aparecerem as primeiras encomendas. O fabricante (Colinbus) estava já na altura ocupado com a produ-ção do primeiro conjunto de dispositivos, e passado algum tempo eram entregues as primeiras unidades. O feedback dos utili-zadores era muito positivo. Não estavam à espera de poder comprar uma ferramenta com tal precisão, fácil de usar e a um preço tão baixo – afinal de contas, as ferramen-tas para produção de placas de circuito impresso são por norma bem mais dispen-diosas do que 3500 euros (mais IVA).Aqui no escritório da Elektor andávamos a pensar em como os utilizadores utilizam esta ferramenta na prática, pelo que orga-nizámos uma visita a Avasto, Holanda, uma pequena empresa que tem vindo a usar o PCB Prototyper durante algum tempo. A Avasto é uma pequena empresa que dispo-nibiliza vários serviços na área de constru-

ção, automatização de processos de pro-dução, e desenho e manutenção de saunas, redemoinhos de água, entre outras coisas. Os controladores electrónicos são usados em vários projectos, muito frequentemente baseados em PLCs. No entanto, isto tem também envolvido cada vez mais desen-volvimento de dispositivos electrónicos entre portas. O seu mais recente produto é um dispositivo de segurança para escor-regas para piscinas. Este sistema fornece um sinal no topo do escorrega que indica quando é que o próximo nadador pode des-cer pelo escorrega. O utilizador pode tam-bém pressionar um botão para iniciar um temporizador. Depois de sair do escorrega, o utilizador pressiona um outro interruptor para dizer que já saiu do escorrega, sendo que o tempo decorrido pode ser apresen-tado num placar de resultados. Para além de evitar o bloqueio a meio do escorrega, este sistema introduz um elemento competitivo que torna o escorrega mais atractivo.

A Avasto desenvolveu todo o sistema den-tro de portas tendo já instalado várias uni-dades destas. O sistema está aprovado pelo Keurmerkinstituut holandês, enti-dade responsável pela avaliação e certifi-cação em termos de segurança para estes produtos. Um dos donos da empresa, Swen van Vrouwerff, é um grande fã da tecno-logia que sabe quase tudo sobre todos os projectos em desenvolvimento na sua companhia, incluindo o que diz respeito aos aspectos relacionados com a parte mecânica, eléctrica e electrónica. Actual-mente, a empresa está a desenvolver cada vez mais dispositivos electrónicos interna-mente. Quando o PCB Prototyper foi apre-sentado pela Elektor, ele pensou que seria a ferramenta perfeita para a sua empresa, uma vez que lhes iria permitir produzir pla-cas de circuito impresso mais rapidamente para pequenos volumes de produção. Embora também seja possível encomen-dar pequenas quantidades de placas de

Harry Baggen (Elektor)

O PCB Prototyper introduzido pela Elektor há cerca de um ano encontrou o seu lugar em muitos laboratórios

e pequenas empresas. Esta ferramenta permite que os utilizadores com menos experiência na utilização

de máquinas de fresa possam produzir facilmente as suas placas de circuito impresso de face simples

ou dupla face com rapidez. Visitámos um utilizador desta excelente ferramenta para aprender mais

com a sua experiência na utilização do PCB Protoyper.

1 2

713487

Personal Download for , Marcps | copyright Elektor

Page 21: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

MOTORES & FERRAMENTAS

21elektor 03-2012

circuito impresso a um fabricante de pla-cas, isso leva mais tempo e é relativamente bem mais caro. Swen está convencido que o investimento se vai pagar rapidamente.Actualmente o PCB Prototyper está a ser usado principalmente para produzir as pla-cas de circuito impresso para o sistema de segurança de escorregas para piscina des-crito anteriormente. Todo o circuito para o sistema, distribuído por nove placas de circuito impresso, é montado na robusta caixa onde se encontra instalado o display. Todas as placas são produzidas pelo PCB Prototyper (Fotografia 1). Este é contro-lado por um netbook localizado próximo da máquina (Fotografia 2). Convém ainda mencionar que o interface com utilizador para o PCB Prototyper e a estrutura de todo o sistema de segurança para o escorrega foram projectados por dois jovens empre-gados, com um curso escolar intermédio profissional. Os quais nos disseram que o PCB Prototyper é muito fácil de utilizar. Depois de passarem um dia a experimentar

a ferramenta, foram capazes de a utilizar correctamente e até construir algumas pla-cas de muito boa qualidade. A produção de placas com a dimensão Eurocard leva cerca de meia hora a efectuar. A ferramenta pára automaticamente quando é neces-sário trocar a broca ou o dispositivo de corte, pelo que não precisa forçosamente de estar sempre presente, junto da ferra-menta, podendo realizar outros trabalhos enquanto a ferramenta trabalha. A Foto-grafia 3 mostra o resultado final – neste caso a placa para o módulo de display. As placas que saem da máquina são montadas e depois protegidas com uma cobertura de filme plástico na face das soldaduras (Foto-grafia 4) para proteger o cobre contra os efeitos do cloro, que se encontra presente abundantemente na água das piscinas. A Fotografia 5 ilustra a qualidade das pistas depois da placa ser produzida pelo PCB Pro-totyper. Finalmente, a Fotografia 6 mos-tra a caixa onde todo o sistema é montado com as várias placas de circuito impresso.

Este é apenas um pequeno exemplo das muitas utilizações potenciais para o PCB Prototyper. Presentemente, a Avasto pro-duz maioritariamente placas de face sim-ples para componentes standard, mas se quiser passar a usar componentes SMD no futuro, o PCB Prototyper pode ser facil-mente adaptado para produzir essas pla-cas. Para além disso, num futuro próximo vai estar disponível uma variedade de opções de extensão para o PCB Prototyper para o tornar ainda mais versátil.

(110694-I)

Artigo original: The PCB Prototyper in Practice – December 2011

Internet

[1] www.elektor.com.pt/projects/pcb- prototyper-(100619).1599728.lynkx

[2] www.avasto.nl

3

5

4

6

Personal Download for , Marcps | copyright Elektor

713487

Page 22: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

22 03-2012 elektor

Análise de waveletsNa plataforma PIC32 da MikroElektronika

Existem demasiados itens para avaliar, pelo que o autor se confinou apenas aos seguintes produtos: o mickroC PRO para o PIC32 (v1.80), com compilador, editor, depurador, simulador e programador; a placa mikroMMB para o PIC32 (v1.01), com programador/depurador mikro-Prog e a ferramenta de desenho gráfico MMI Visual TFT (v2.01). A avaliação da placa para protótipos LV32MX será analisada em breve.

HardwareO PIC32 da Microchip, no coração do MIPS MK4, é menos conhe-cido que o Cortex-M3 da ARM, por exemplo, todavia todos se podem encontrar facilmente em diver sas apl ica -ções de 32 bits (ver, por exemplo, o artigo dedi-cado ao Super Arduino, publicado na Elektor de Novembro de 2011). Este tipo de processa-dor, presente em diver-sos sistemas, tornou-se tão potente que programá-lo está cada vez mais próximo da computação pura. Em breve, o desenvolvimento de software poderá ser realizado nas próprias placas de desenvolvimento sem ter de recorrer a um computador. A placa mikroMMB (aproximadamente

80 euros) mede cerca de 8x6 cm, sendo um dos lados completamente ocupado por um TFT táctil de 320x240 pixels. No outro lado estão um processador PIC32MX460F512L (80 MHz, 512 KB flash + 12 KB boot flash, 32 KB RAM, USB OTG, 4 × DMA, 2 × SPI, 2 × SPI, 2 × I²C, 16 × 10-bit ADC @ 1 Msample/s etc.), um codec de

áudio estéreo WM8731SEDS, um slot de cartões microSD, uma memória FLASH série M25P80 de 8 Mbit, circuito de ali-mentação e uma porta USB. Os lados mais compridos apresentam 26 furos metaliza-dos que permitem o acesso directo às por-tas do microcontrolador.

A mikroMMB é uma versão mais pequena da MMB para o PIC32MX7 (Placa MultiMe-dia, cerca de 120 euros), que possui uma porta Ethernet, uma porta USB Host, LEDs e vários botões.

Visual TFTComecemos pela ferramenta Visual TFT

(aprox 80 euros) que ser-virá para definir o interface Homem/Máquina da nossa aplicação de teste. Após algumas considerações, decidimos desenhar três ecrãs:- Cinco janelas de diferentes tamanhos e quatro botões.- Quatro janelas do mesmo tamanho e um botão.- Uma janela grande e um botão.

Para tornar o aspecto ainda mais atractivo, foi acres-centado um ecrã de boas--vindas, com o logótipo da Elektor.

Depois de ter uma ideia clara do que pretendemos

fazer, o desenho dos ecrãs no Visual TFT é muito rápido (Figura 1). A ferramenta é bastante intuitiva, especialmente se tiver um mínimo de experiência em Visual Basic ou Visual Studio. O número de controlos pré-definidos é limitado a apenas três tipos de botões (rectangular, redondo ou

Clemens Valens (Elektor)

A MikroElektronika é uma empresa Sérvia que comercializa tudo aquilo que é necessário

para o desenvolvimento de aplicações para o PIC32: compiladores C, PASCAL e BASIC,

depuradores, programadores, placas para protótipos e mesmo placas de desenvolvimento

com ecrãs tácteis. O autor foi brindado com tudo isto ao encontrar um pacote em cima

da sua secretária com uma nota: “Diverte-te!”.

Figura 1. O Visual TFT permite construir interfaces homem/máquina gráficos muito simples e rapidamente. Neste exemplo foram criados

quatro ecrãs diferentes.

Personal Download for , Marcps | copyright Elektor

713487

Page 23: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

23elektor 03-2012

rectangular com cantos arredondados), uma etiqueta e uma imagem. Existem também quatro objectos gráficos: rectân-gulo, circulo, rectângulo com cantos arre-dondados e linha. Não é muito. Se quiser criar objectos mais complexos terá de os construir com base nestes blocos. O dese-nho pode ser realizado em várias camadas, mas antes de começar tenha em conta que estas camadas não existem no código, servindo apenas para organização do desenho.Cada objecto apresenta diver-sas propriedades que podem ser alteradas. A maior parte dos objectos aceitam eventos como click ou press; produzi-dos pelo motor de interface que gere o painel táctil.Quando terminar de dese-nhar os ecrãs, basta pressio-nar o botão Generate Code para que o código seja gerado automaticamente em C, PAS-CAL ou BASIC, conforme a sua escolha. É também possível correr o compilador a partir do Visual TFT.O código produzido e compilado funciona sem modificações, ou seja, é apresentado o primeiro ecrã. Claro, sem mais nada não conseguirá navegar pelos diversos ecrãs, já que as ligações entre eles ainda não estão definidas. Todavia, o hardware já se encontra inicializado. Além disso, pode incluir a opção de calibração do ecrã tác-

til quando correr o software, que pode ser conseguida clicando em Project Settings -> Advanced Settings -> Touch Panel -> Calibration.A qualidade do código C gerado pelo Visual TFT não é das melhores. São defi-nidas diversas variáveis globais (incluindo

uma com o nome ‘i’), os ficheiros H não estão protegidos contra inclusões múlti-plas e a compilação dá origem a diversos erros do tipo “Implicit conversionof int to ptr”, o que revela um código pouco limpo. Mesmo assim, a maior desvantagem do Visual TFT é não permi-tir efectuar alterações directamente no código fonte. A partir do momento que

faça alterações no código fora do Visual TFT, o código deixa de estar sincronizado com o programa, por isso é melhor não lhe tocar.Mas, terminemos este parágrafo com uma nota positiva: é possível separar o código da componente gráfica de modo a arma-

zená-lo num suporte externo como um car-tão SD, por exemplo. Deste modo é possí-vel alterar a aparência do MMI sem tocar no código principal.

mikroC PROPode agora passar para o ambiente inte-grado de desenvolvi-mento (IDE), mesmo a partir do Visual TFT, se quiser, em C, PASCAL ou BASIC para progra-mar a aplicação. Neste projecto o autor optou pela linguagem C, uti-lizando o mikroC PRO

(cerca de 240 euros). O IDE é bastante intuitivo e está muito bem desenhado. Inclui muito mais do que um compilador, editor e depurador. De faço, apresenta diversas ferramentas que tornam a vida do programador bastante mais fácil, como um terminal ou um editor de bitmaps.O editor permite agrupar e esconder linhas de código, sublinha as variáveis

Figura 2. Aqui apresentamos o mikroC PRO IDE. O gestor de bibliotecas, que pode ver no lado direito, substitui as bibliotecas C standard.

Personal Download for , Marcps | copyright Elektor

713487

Page 24: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

24 03-2012 elektor

mal definidas ou mal escritas, completa as palavras automaticamente e apresenta ainda uma funcionalidade muito interes-sante que comenta automaticamente o código. Esta característica é bastante útil para gerar relatórios, diagramas ou folhas de características do código. Ao clicar num dado comentário, a porção do código que lhe está associada é aberta automaticamente. Estes documentos são copiados para o projecto, pelo que os comentários activos não são afectados se alterar ou mover os originais.Apesar de estar muito bem pensado, pode ficar com a sensação de que não se trata de um IDE para C. Por exemplo, um novo ficheiro é chamado de Unit como acontece em PASCAL ou Delphi (o IDE foi desenvolvido em Delphi), e os erros e avisos do compilador são algumas vezes enigmáticos. Contudo, o maior inconve-niente é mesmo o modo como as biblio-tecas são geridas. Num esforço para simplificar o pro-grama, a MikroElektronika foi um pouco longe de mais no que toca à noção stan-dard das bibliotecas C. Por isso, se escre-ver #include <stdio.h> vai ter um erro de compilação!Em vez de incluir a biblioteca no código, deverá seleccionar uma caixa no gestor de bibliotecas (Figura 2). Na verdade, é sim-ples, mas totalmente incompatível com

o código C escrito em qualquer ponto da galáxia! Escusado será dizer que o MikroC PRO não é ANSI.O editor ainda apresenta bastantes bugs. O agrupamento de código nem sempre funciona correctamente: se agrupar uma função, ao desagrupá-la clicando numa palavra, coloca o cursor no sítio onde essa palavra estava originalmente. A correc-ção automática pode também tornar-se bastante irritante, especialmente porque não pode ser cancelada com o tradicional Undo. Ao percorrer o código, o cursor não salta para o fim das linhas, apesar de des-ligar todas as opções (bem escondidas) associadas ao editor (Tools -> Options -> Editor Settings -> Advanced editor options -> Options tab -> maintain caret column).No computador do autor (Windows XP, T4200 @ 2 GHz, 4 GB RAM), percorrer o código com a barra lateral não era efi-ciente, especialmente se quiser percorrer o código rapidamente. O preenchimento automático das palavras reconhece os elementos a estruturar através do ponto, mas não funciona com a seta. O subli-nhado de nomes não reconhecidos é inca-paz de reconhecer macros definidas nou-tro ficheiro. Além destes, existirão outros bugs, com certeza. Obviamente, o autor reportou estes bugs à MikroElektronika, que se comprometeu a corrigi-los nas futuras versões.

O IDE permite depurar o código sem ter hardware adicional, o que é bastante útil, utilizando para isso um simulador. Claro que pode também depurar o código com o hardware. Basta seleccionar o depura-dor, na janela Project Settings. Para ver esta janela deve ir ao menu View, em vez de Project. Seleccione Software ou ICD Debug como Build Type. O depurador parece, por defeito, permanecer no modo Assembler. Pode força-lo para o modo C (menu Run ou ALT-D), mas se tiver o azar de interromper o depurador durante a execução de uma biblioteca, ele vai voltar para o modo Assembler. Por isso, certifi-que-se que memoriza a combinação Alt-D.O simulador é especialmente útil para tra-balhar em algoritmos sem ter o hardware presente, sendo até mais rápido a respon-der aos comandos. Todavia, se desconfiar num problema com o hardware, é melhor utilizar o depurador com o hardware ligado, para ter a certeza do estado dos registos.

Programação com o bootloaderExistem dois métodos para carregar o pro-grama na memória FLASH do processador: através do bootloader ou através de um programador externo.A mikroMMB é fornecida com um boot- loader pré-instalado (que pode constatar através da etiqueta colada no display). Se

Figura 3. Se existir um bootloader no microcontrolador, o mikroBootloader

permite carregar um novo ficheiro executável num tempo recorde.

Figura 4. O mikroProg Suite permite programar o microcontrolador e oferece muito mais opções que o bootloader.

713487

Personal Download for , Marcps | copyright Elektor

Page 25: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

25elektor 03-2012

a sua placa não tiver o bootloader insta-lado, pode descarregá-lo gratuitamente no site da MikroElektronika. Existe uma pequena aplicação para o PC, chamada mikroBootloader, para o ajudar (Figura 3).O bootloader utiliza a porta USB e aparece como um dispositivo HID, que tem a van-tagem de não necessitar de instalar um controlador adicional, já que o Windows vai recorrer a um controlador genérico.A primeira vez que ligar a placa ao PC, o Windows vai detectá-la e instalar auto-maticamente o referido controlador. No computador do autor as coisas não foram assim tão simples, mas bastou desligar e voltar a ligar a placa e o computador aca-bou por encontrá-la.Depois, o procedimento é simples: exe-cute o mikroBootloader, ligue a placa e pressione o botão de Reset. Assim que o ícone USB passe para vermelho, clique no botão ‘2 Connect’. Pode agora seleccio-nar o ficheiro com o botão 3 e começar a descarregá-lo para a placa com o botão 4. A transferência é rápida e termina com uma janela a indicar que tudo correu bem, se for caso disso. Repita o processo se pretender actualizar o firmware. Infeliz-mente, todo este processo obriga a dema-siados cliques, algo que não é bem-vindo durante o processo de desenvolvimento de um código. O autor passou também esta preocupação à mikroElektronika, que prometeu tentar simplificar o processo.

Programação com programador externoO bootloader não permite trabalhar sobre o programa e depurá-lo, em vez disso tal-vez valha a pena utilizar o programador mikroProg (cerca de 80 euros). Este pro-

gramador, montado numa atractiva caixa branca, é suportado pelo mikroProg Suite para o Pic v2.10 (Figura 4), que permite também modificar diversos parâmetros que não estão acessíveis através do mikro-Bootloader. Pode utilizar esta ferramenta autonomamente ou através do IDE. Para isso, basta clicar em Build and Program e não terá de fazer mais nada.Para grande surpresa o carregamento do ficheiro executável no microcontro-lador através do mikroProg levou perto de cinco vezes mais tempo do que com o bootloader (32 segundos, em vez de 6) e não foram encontradas quaisquer opções para acelerar este processo. Por defeito, o programador escreve por cima do boo-tloader, por isso não se esqueça de acti-var a opção Boof FLASH Write Protect no mikroProg Suite, se o quiser evitar que isto aconteça.Obviamente, é possível reprogramar o bootloader com o mikroProg, mas vai aca-bar por escrever por cima do programa.O programador pode alimentar a placa mikroMMB mas apenas com uma tensão de 3,3 V. Vai funcionar na mesma, só que o display vai ficar quase negro. Para obter mais brilho, pode alimentar a placa atra-vés da porta USB.

ConclusãoA colecção de ferramentas para o PIC32 da MikroElektronika é bastante completa. Inclui diferentes placas de desenvolvi-mento, um ambiente de desenvolvimento integrado (IDE), diversas ferramentas de software e programadores. O IDE inclui um compilador C, PASCAL e BASIC, e um depurador/simulador. Tudo isto está dis-

ponível a preços bastante competitivos e com alguns descontos atractivos se já tiver uma ferramenta de desenvolvimento da MikroElektronika.O autor conseguiu desenvolver toda a aplicação sem consultar a folha de carac-terísticas do microcontrolador e do dis-play. Todavia, não é de excluir algumas pequenas imperfeições no código!Apesar de todo o cuidado no desenvol-vimento destas ferramentas, estas não são ainda perfeitas. Outras ferramentas como o Visual TFT ou o mikroBootloader têm ainda um longo caminho a percor-rer antes de se tornarem realmente úteis. Actualmente, estão um pouco longe de algumas ferramentas profissionais, mas perfeitamente de acordo o que custam.Note que os produtos da MikroElektro-nika só podem ser utilizados em ambiente Windows.

(110729)Artigo original: Wavelet Analysis – January

2012

Internet

[1] Super Arduino: www.elektor.com.pt/110661

[2] Wavelets: www.polyvalens.com

[3] Código fonte: www.elektor.com.pt/110729

[4] MikroElektronika: www.mikroe.com

Vamos fazer alguma coisa original!Para avaliar uma ferramenta de forma adequada, temos de a pôr a trabalhar a sério, e a melhor maneira é produzir uma aplicação real.Com uma entrada de áudio, um ecrã táctil, capacidade de cál-culo e acesso directo à memória (DMA), a placa mikroMMB parece ideal para construir um pequeno osciloscópio, anali-sador de espectro ou mesmo as duas coisas juntas. Mas isso não é muito original, pois não? Por isso, que tal desenvolver algo nunca visto na Elektor?Um analisador de ondas (wavelets) com ecrã táctil (Figura 5).

O que são wavelets?Antes de começar, um pequeno aviso: a descrição seguinte é extremamente simplificada, o que poderá chocar alguns matemáticos mais entendidos. A atenuante é, simplesmente, as poucas linhas disponíveis para a explicação.Os leitores da Elektor já ouviram falar, com certeza, da trans-formada de Fourier. Este método de análise permite partir um sinal numa série (infinita) de sinais sinusoidais com diferentes frequências, fases e amplitudes. Esta análise permite, entre outras coisas, determinar o espectro de um sinal.

713487

Personal Download for , Marcps | copyright Elektor

Page 26: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

26 03-2012 elektor

Esta análise é levada a cabo num sinal, que deverá primeiro ser registado de alguma forma. Mas, não nos diz nada sobre o tempo em que uma dada frequência está presente. Ape-nas confirma que determinadas frequências se encontram presentes.Foram desenvolvidas várias técnicas para melhorar a resolução temporal da transformada de Fourier. A técnica mais simples é cortar o sinal em várias partes e analisá-las uma a uma. Esta técnica funciona bem, mas de cada vez que cortamos o sinal, introduzimos erros. É possível limitar estes erros, mas a análise torna-se muito mais complexa. A razão para a falta de resolução temporal na análise de Fou-rier é o tipo de sinal em que esta análise se baseia: a onda sinusoidal. As ondas sinusoidais têm uma duração infinita, ou seja, não são limitadas no tempo. Se for utilizado outro tipo de sinal, limitado no tempo, é possível conseguir a desejada resolução temporal. É aqui que as wavelets entram em jogo. A transformada contínua de wavelets foi formulada há mais de 30 anos. É muito semelhante à análise de Fourier, mas em que a onda sinusoidal é substituída por outra função. Esta função não é definida com precisão, mas tem de satisfazer um certo número de critérios. A matemática que suporta a transfor-mada de wavelets é complexa demais para ser explicada em tão poucas linhas, mas podemos simplificar dizendo que a fun-ção requerida se assemelha a uma pequena oscilação, dai o diminutivo de wavelet.Em vez de variar a frequência da onda sinusoidal para var-rer todo o espectro do sinal a ser analisado, como se faz na análise de Fourier, as wavelets são deslocadas e expandidas

para varrer a duração e o espectro do sinal a ser analisado. Para simplificar, podemos comparar o sinal a um edifício. A transformada por wavelet permite dividir o edifício em diversos blocos, com a mesma forma mas de diferentes tamanhos. Esta forma básica é a wavelet. O tamanho corresponde à expansão e a sua posição à translação.Para tornar mais fácil o cálculo da CTW pelo computador, os matemáticos desenvolveram uma transformada discreta de wavelets (DWT). Pode ser demonstrado, o que consiste numa tarefa nada simples, que esta transformação corresponde a fazer passar o sinal por um banco de filtros com factor de qualidade constante. O factor de qualidade (Q) de um filtro é a razão entre a frequência central e a sua largura de

Sinal

t

f

L4 L3 L2 L1

f

B 2B 4B

A

B

C

D

Figura 6. Representação gráfica de uma transformada wavelet unidimensional. Os sinais L1 a L4 são reproduzidos nos ecrãs da aplicação de teste. A: sinal de entrada; B: espectro do sinal de entrada; C: transformada discreta com wavelets, visualizada na forma de um banco de filtros; D: espectro de um banco de filtros com factor Q constante.

Figura 5. A placa mikroMMB ligada ao programador mikroPROG. No display pode ver-se o segundo ecrã da

aplicação de teste. Note que a placa está também ligada a uma porta USB (à esquerda) para se conseguir um maior brilho.

713487

Personal Download for , Marcps | copyright Elektor

Page 27: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

27elektor 03-2012

banda. Por exemplo, num equalizador de áudio esta razão é de uma oitava. A Figura 6 pretende ilustrar este princípio graficamente. Existem diversos algoritmos para calcular a DWT, mas um dos mais elegantes é o Lifting. Este algoritmo torna possível a utilização de qualquer wavelet sem modificar a essência do algoritmo de transformação e, além disso, utilizar o mesmo algoritmo para a operação inversa. Parece-lhe um pouco abstracto? Basta pensar no standard de compressão de ima-gens JPEG2000. Este standard é baseado em wavelets e no algoritmo de Lifting. As wavelets são muito eficazes na com-pressão de dados.

Aplicação de testeDepois de apresentada a ideia das wavelets, embora que vaga-mente, podemos passar a uma aplicação real, que vai ajudar a perceber melhor estas funções misteriosas.O primeiro ecrã mostra o sinal de entrada e a sua separação em wavelets com quatro níveis (Figuras 6 e 7). Existem igual-mente botões que permitem escolher entre as quatro wave-lets. O título de cada ecrã indica qual a wavelet que está a ser utilizada. Se pressionar em cima de uma das janelas, o ecrã muda para outro. Se pressionar na janela Signal, será aberta uma terceira janela que lhe permitirá examinar o sinal com mais cuidado. O segundo ecrã é aberto tocando em baixo de cada uma das quatro janelas.O segundo ecrã apresenta quarto janelas. A que se situa em cima, no lado esquerdo, permite visualizar o sinal de entrada. Em baixo, também à esquerda, apresenta o conteúdo da janela que deu passagem para este ecrã. Do lado direito pode ver-se a wavelet (em cima), e a função de escalamento (em baixo). Estes dois gráficos são obtidos a partir do cálculo da inversa da transformada wavelet de um impulso.Como já deve ter percebido, estamos a lidar com as respostas impulsionais dos filtros L4 e L3 (ou L2 e L1, já que são idênti-cos) da Figura 6!Ao tocar numa das quatro janelas é possível estudar o sinal com mais detalhe num terceiro ecrã. O botão Back permite voltar ao ecrã anterior. Finalmente, o terceiro ecrã apresenta um único sinal com mais detalhe. Se pressionar o botão Back neste ecrã, volta ao ecrã inicial.O sinal de entrada, neste exemplo, é uma gravação de um electrocardiograma descarregado da Internet. Este tipo de sinal é analisado muitas vezes com recurso a wavelets. Seria interessante desenhar um circuito de entrada analógico para capturar os seus próprios sinais – um desafio que deixamos aqui.Estão disponíveis quatro wavelets através dos quatro botões no primeiro ecrã. No código fonte pode encontrar outras wavelets, em particular algumas variantes da família Cohen – Daubechies – Feauveau (CDF). É fácil associar uma wavelet a

um botão (veja como fazer isso no ficheiro scree2.c). As quatro wavelets escolhidas pelo autor ilustram bem o que é possível fazer. Uma das wavelets especialmente interessante é a Daube-chies-4 (D4) pela sua forma irregular. Note que esta wavelet apresenta propriedades fractais.Como indicado anteriormente, o algoritmo para calcular a transformada de wavelets é baseado no algoritmo Lifting. Não temos aqui espaço para descrever como funciona este algoritmo, mas pode encontrar mais detalhes em [2]. A par-ticularidade deste algoritmo é o facto de, quando executado na ordem inversa, dá origem directamente à transformada inversa. Isto torna possível verificar facilmente a forma da wavelet. O algoritmo está implementado no ficheiro fltw.c (Fast Lifting Wavelet Transform). As wavelets estão no ficheiro wavelets.c.

O código para a aplicação de teste está disponível em [3].

Figura 7. Correspondência entre os sinais da Figura 6 e a sua posição no primeiro ecrã da aplicação de teste

(sem contar com o ecrã de introdução).

713487

Personal Download for , Marcps | copyright Elektor

Page 28: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

28 03-2012 elektor

Electrónica para principiantes1ª parte: Díodos e LEDs

Burkhard Kainka (Alemanha)

Os dispositivos electrónicos estão cada vez mais complexos, sendo que os circuitos mais simples e

os transístores discretos são praticamente uma coisa do passado. Isto dificulta imenso que os mais

novos nestas andanças consigam acompanhar o que se passa. No entanto, com esta série pretendemos

retornar aos fundamentos da electrónica, que consistem na parte analógica. Contudo, sabemos que

a maioria dos iniciados nesta área está mais interessado na tecnologia digital, pelo que incluímos

também um circuito microcontrolador neste curso.

Uma boa abordagem para um curso básico de electrónica é começar com a teoria e conceitos básicos, incluindo conceitos sobre corrente eléctrica, tensão e potência, lei de Ohm, circuitos em paralelo e série, e por aí adiante – basicamente tudo o que se ensina num curso básico de electrónica, que provavelmente o lei-tor já sabe ou deveria saber. Mas isso pode não ser verdade, pelo que é melhor começar com circuitos reais em pequenos exem-plos e projectos práticos.

Provavelmente está a perguntar-se a si mesmo qual o objectivo de estarmos a apresentar este curso. Idealmente, este deveria ajudar a trazer os novos leitores da Elektor para o nível ade-quado para os projectos da Elektor. Alguns dos leitores que poderão seguir este curso podem ser os filhos ou filhas de anti-gos leitores da Elektor à procura de uma oportunidade de imi-tar os seus pais. Poderá ainda ser útil que alguns entusiastas da electrónica mais experientes e alguns menos experientes pos-

Semicondutores e camadas de depleçãoA condutividade eléctrica de um material de semicondutor típico, como o silício, aumenta geralmente com o aumento da tempe-ratura, mas é bastante baixa para a temperatura ambiente. Isto é porque todos os quatro electrões exteriores dos átomos individuais estão ligados numa estrutura cristalina (Figura 6). No entanto, es-tes podem ser libertados pela adição de uma pequena quantidade de energia no sistema.

Os dispositivos feitos de materiais semicondutores, como os tran-sístores e díodos, são designados normalmente por semiconduto-res. Estes são produzidos adicionando intencionalmente átomos di-ferentes a um material como o silício (a que se chama de dopagem do material) para obter uma condutividade definida. A dopagem com uma substância do Grupo V, como o fósforo, produz electrões livres e consequentemente uma condutividade do tipo N (Figura 7). A dopagem com uma substân-cia do Grupo III produz ausências de electrões, o que leva a uma condutividade do tipo P. Estes bu-racos de electrões migram atra-vés da estrutura cristalina, como se fossem portadores de carga positivos, quando os buracos são

preenchidos por electrões vizinhos que deixam para trás novos bu-racos (Figura 8). Os díodos são dispositivos semicondutores que conduzem a corrente apenas numa única direcção. Geralmente são feitos a partir de camadas de silício com condutividade do tipo N e do tipo P. Na junção de essas duas camadas forma-se uma camada de depleção não condutora. Na camada de depleção os electrões livres preenchem os espaços num processo designado por recombi-nação, tendo como resultado que praticamente nenhum porta-dor de carga livre permanece na camada de depleção, tal como no silício puro. Neste estado o díodo não conduz nenhuma corrente eléctrica (Figura 9).

Se for aplicada uma baixa tensão aos terminais externos de um dio-do, a camada de depleção fica mais larga ou mais estreita. Se o ter-minal N for ligado ao terminal negativo de uma bateria e o terminal P ligado ao terminal positivo, as cargas nas ligações dos terminais

Si Si Si

Si Si Si

Si Si Si

Si P

frei, N

Si

Si Si Si

Si Si Si

Si Al

Loch, P

Si

Si Si Si

Si Si Si

Figura 6. Estrutura de cristal de silício.

Figura 7. Silício dopado com fósforo (junção tipo N).

Figura 8. Silício dopado com alumínio (junção tipo P).

713487

Personal Download for , Marcps | copyright Elektor

Page 29: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

29elektor 03-2012

sam seguir o curso em conjunto. Criámos também um fórum específico para este curso no site da Elektor (www.elektor.com/starters-forum). Seria útil se alguns leitores mais experientes pudessem contribuir com algum do seu conhecimento e expe-riência para este fórum.Podem também existir alguns leitores da Elektor que até já cons-truíram muitos projectos mas que não sabem realmente com exactidão como os mesmos funcionam. Claro que, não podemos

esperar milagres de um curso como este, mas deverá ajudar a esclarecer alguns conceitos.Os fundamentos mais básicos da electrónica residem no grande “reino” da antiquada electrónica analógica, mas o facto de que a maioria dos circuitos electrónicos modernos serem digitais não significa que os fundamentos não sejam relevantes. Mesmo para os leitores que estão interessados em microcontroladores, não é possível passar ao lado da tecnologia analógica. Isto pode ser

repelem os seus correspondentes portadores de carga na direcção da camada de depleção. Acima de uma tensão de aproximadamen-te 0,5 V, as camadas N e P começam a tocar uma na outra fazendo com que comece a fluir uma corrente (Figura 10). Uma boa condu-tividade é alcançada quando essa tensão atinge aproximadamente os 0,7 V. Neste estado o díodo está a funcionar no modo de condu-ção directo.

Se a polaridade da tensão aplicada for invertida, acontece o efeito oposto. Os portadores de carga são atraídos para as ligações ex-teriores e a camada de depleção fica maior. Isto faz com que a ca-mada de depleção seja um melhor isolador (Figura 11). Um díodo típico, como por exemplo um 1N4148, consegue suportar tensões inversas até 75 V. Efectivamente, um díodo permite que a corrente passe através dele apenas numa única direcção, pelo que pode ser usado como elemento rectificador.

Na maioria dos casos a tensão inversa não deve exceder o valor re-comendado pelo fabricante. Se a tensão inversa aplicada for muito elevada vai existir um fluxo de corrente através do díodo. A este efeito chama-se disrupção do dispositivo (da camada isoladora). Com alguns tipos especiais de díodos, como os díodos de Zener, este efeito é usado de forma intencional. Os díodos de Zener têm uma tensão de disrupção bem definida e são usados como regu-ladores de tensão. Se abusar num diodo de silício como o 1N4148 aplicando uma tensão inversa muito excessiva, vai provocar aquilo a que se chama de uma segunda disrupção que é fatal para o dispo-sitivo em causa. Isto acontece porque a corrente inversa excessiva aquece a junção a tal ponto que leva à destruição do dispositivo. Isto origina a formação de um curto-circuito permanente, e não reparável.

Os LEDs, tal como o nome indica, são díodos e também tem jun-ções PN. São feitos de materiais semicondutores como arsenie-to de gálio. Os LEDs têm uma tensão de condução directa mais alta do que as dos díodos de silício, e a recombinação de electrões e buracos nos LEDs produz uma luz visível. Este efei-to também ocorre em díodos de silício, mas estes produzem ape-nas pequenas quantias de luz na região dos infravermelhos.

P

N

P

N

P

N

Figura 9. Estrutura de camadas de um díodo.

Figura 10. Um díodo no estado de condução directa.

9V

470R

LED

LED

A K

+ Ânodo

- Cátodo

Figura 1. Circuito com LED. Figura 2. Um LED.

Figura 11. A camada de depleção aumenta quando o díodo é polarizado inversamente.

Personal Download for , Marcps | copyright Elektor

713487

Page 30: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

30 03-2012 elektor

demonstrado com alguns simples exemplos do mundo das apli-cações embutidas. Por exemplo, os microcontroladores são usa-dos para medir quantidades analógicas, entre outras coisas. Isto significa que o curso é inquestionavelmente adequado mesmo para aqueles que estão a querer entrar no mundo dos pequenos computadores e placas controladoras.

LED com resistência em sérieVamos começar por montar o circuito apresentado na Figura 1,

com um LED, uma resistência (470 Ω) e uma bateria. Pode mon-tar o circuito da forma que pretender – simplesmente soldando todos os componentes juntos, usando pinças do tipo crocodilo ou uma breadboard – embora a criação e produção de uma placa de circuito impresso especificamente para este circuito não valha o esforço. Não importa como fizer, o que precisa é de fazer o LED ligar.Com os LEDs tem sempre que prestar alguma atenção à polari-dade dos mesmos. O terminal positivo corresponde ao ânodo do

LED a piscarOs LEDs são muitas vezes con-trolados através de microcon-troladores. Também aqui, uma vez mais, é necessária uma resistência em série. O circuito apresentado na Figura 12 tem dois LEDs, cada um ligado a um pino de E/S de um microcon-trolador ATtiny13 através de uma resistência em série de 470 Ω. O simples programa em BAS-COM associado a este circuito coloca a saída PB3 constante-

mente no nível lógico alto e PB4 alternadamente no nível lógico alto e baixo, fazendo com que o LED pisque. Tente medir a tensão no pino PB3. O valor obtido será um pouco menos de 5 V (por exemplo, 4,9 V) isto porque o transístor de comutação no interior do micro-

controlador tem uma pequena resistência interna. Pode determinar a resistência interna do pino do porto a partir da queda de tensão. A próxima questão é qual a quantidade de corrente que está a fluir através do LED. Pode facilmente calcular esse valor; basta analisar a folha de características do ATtiny13 (www.atmel.com/dyn/resourc-es/prod_documents/doc2535.pdf) para ver qual o valor de corrente máximo permitido para um pino de E/S do microcontrolador.

‚ATtiny13 driving LEDs$regfile = „attiny13.dat“$crystal = 1200000Config Portb = Output

Do Portb.3 = 1 Toggle Portb.4 Waitms 500Loop

End

470R

470R

100n

+5V

ATtiny13

VCC PB2 PB1 PB0

RES PB3 PB4 GND

Figura 12. Microcontrolador com dois LEDs.

9V

470R

LED

A

V

15 mA

1,8 V

9V

470R

470R

4 V

1,8 V

Figura 4. Medições no circuito.

Figura 5. LEDs ligados em série.

25

U [V]

I [m

A]

20

15

10

5

00 1

1 2 3 4

2 3 4

Figura 3. Curvas características de díodos de silício (1), LED vermelho (2), LED verde (3) e LED branco (4).

713487

Personal Download for , Marcps | copyright Elektor

Page 31: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

31elektor 03-2012

LED. O terminal negativo, que normalmente corresponde ao ter-minal mais curto, é o cátodo. Existe também um pequeno corte junto ao terminal do cátodo. Dentro do encapsulamento do LED podemos ver uma montagem do tipo “garganta” para o chip do LED, que geralmente (mas não sempre) está do lado do cátodo. A ligação do ânodo é disponibilizada por um fio extremamente fino ligado a um contacto na superfície de cima do chip. Se ligar o LED com a polaridade invertida, este não vai iluminar-se. Este dispositivo partilha esta característica com todo o tipo de díodos: a corrente flui através de um díodo apenas numa única direcção.

Os LEDs nunca devem ser ligados directamente a uma bateria. Se analisar um gráfico que mostre a corrente num LED em função da tensão aos seus terminais, pode ver o porquê. A Figura 3 mostra as curvas características de vários tipos de díodos. Todas essas curvas têm uma coisa em comum: a corrente aumenta de forma exponencial com o aumento da tensão. Se a tensão aos terminais do díodo estiver abaixo do valor a que se chama de tensão de condução, não existe virtualmente nenhuma corrente a percor-rer o díodo. Contudo, se a tensão aos seus terminais for apenas um pouco superior a esse valor de tensão de condução, a cor-rente através do díodo sobe rapidamente para um valor bastante elevado podendo até danificar o dispositivo por sobrecarga. É praticamente impossível fixar esta tensão num valor exacta-mente certo, em parte porque a curva desloca-se para a direita à medida que a temperatura aumenta com uma taxa de aproxi-madamente 2 mV/°K. Não obstante, é bastante fácil fixar o valor da corrente num determinado valor; tudo o que precisa é de uma resistência. Apenas precisa de escolher o valor certo, e com este arranjo a tensão de condução do LED é obtida automaticamente.

As tensões de condução de vários tipos de díodos para um valor de corrente típico de 20 mA são:

Díodo de silício (por exemplo, 1N4148): 0,7 VLED vermelho: 1,8 VLED verde: 2,1 VLED azul ou branco: 3,5 V

Pode chegar facilmente a estes valores medindo você mesmo as tensões (Figura 4). O valor exacto destas tensões pode variar um pouco. Por exemplo, os LEDs vermelhos modernos de alto rendi-mento têm uma tensão de condução ligeiramente mais elevada do que os tipos de LEDs vermelhos mais antigos.

Dimensionamento dos componentesSe tiver medido a tensão de condução do diodo e souber a tensão da bateria, não precisa de medir a corrente. Pode simplesmente calculá-la. Isto porque a tensão aos terminais da resistência é a diferença entre a tensão da bateria menos a tensão de condução do LED (por exemplo, 9 – 1,8 = 7,2 V). Com esta informação pode usar a lei de Ohm para determinar a corrente:

I = V / RI = 7,2 V / 470 ΩI = 0,0153 A = 15,3 mA

Se, por outro lado, quiser calcular o valor da resistência série, tem que especificar o valor de corrente pretendido e saber o valor da tensão de alimentação e a tensão de condução do LED. Por exemplo, suponha que pretendemos ter uma corrente de 20 mA através de um LED verde. Como pressuposto prático, a tensão de condução do LED pode ser considerada de 2,1 V. A tensão da bateria é de 9 V, pelo que a resistência tem que gerar uma queda de tensão aos seus terminais de 6,9 V (9 V – 2,1 V). O cálculo dá um valor de 345 Ω para a resistência, mas este não corresponde a um standard. No entanto, pode encontrar uma resistência de 330 Ω ou 390 Ω. É uma boa ideia escolher o valor mais elevado, uma vez que isso coloca o circuito numa perspectiva mais segura no que diz respeito ao valor da corrente.

R = V / IR = 6,9 V / 0,02 AR = 345 Ω

Deve ainda experimentar com este circuito vários valores de resistências mais elevados. E para cada caso, medir a tensão aos terminais do LED e determinar a corrente através do mesmo. De um modo geral, não importa se o LED está a funcionar com uma corrente de 1 mA, 5 mA ou 10 mA, a tensão aos terminais do LED é quase sempre a mesma. Isto deve-se à forma exponencial da curva característica.

Circuito em sériePor vezes é útil ligar dois ou mais LEDs em série com uma resis-tência série comum, como se mostra na Figura 5. Nesta situação a tensão aos terminais da resistência série é mais baixa porque as tensões nos LEDs somam-se. Isto significa que o valor da resistên-cia tem que ser reduzido para se obter os mesmos 20 mA através dos LEDs. Suponha que está a usar um LED vermelho com uma tensão de condução de 1,8 V e um LED verde com uma tensão de condução de 2,2 V. Isto faz com que a tensão nos dois LEDs em série seja exactamente de 4 V, pelo que a tensão aos terminais da resistência em série é de apenas 5 V. Com uma resistência de 470 Ω temos uma corrente de aproximadamente 10 mA. Se ligar duas resistências destas em paralelo uma com a outra obtemos o dobro da corrente. Se efectuar os cálculos vai verificar que o valor da corrente seria de 21 mA.

(120001)Artigo original: Electronics for Starters (1) – January 2012

713487

Personal Download for , Marcps | copyright Elektor

Page 32: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

32 03-2012 elektor

Curso Áudio DSP7ª parte: Medidor de nível de pico digital

Durante a gravação de música é impor-tante manter os níveis tão altos quanto possível para minimizar a influência do ruído e outras interferências. Por outro lado, a saturação tem de ser evitada a todo custo, pois pode levar a níveis de distorção inaceitáveis. Num trecho de música rock um pouco de distorção pode até passar despercebida, mas o mesmo nível de dis-torção pode destruir por completo um tre-cho de voz ou de um instrumento como o Oboé. Para se conseguir o melhor compro-misso entre estes dois objectivos antagóni-cos precisamos de um medidor de nível de pico para determinar o nível de sinal ade-quado, ou seja, suficientemente elevado em relação ao nível de ruído, mas que não cause saturação em algum elemento da cadeia de processamento. Um bom medi-dor de nível de sinal além de indicar que foi atingido o valor de pico, deve também apresentar o seu valor RMS.

Indicadores de agulhaAntigamente eram utilizados indicadores de agulha, com massa inercial, ou galvanó-metros no caso de aplicações profissionais. Hoje em dia são utilizados indicadores sem qualquer inércia, como barras de LEDs ou displays LCD. Contudo, a inércia era uma

característica interessante dos indicado-res mais antigos, sendo por isso hoje simu-lada através do recurso ao processamento de sinal. O projecto que vamos descrever é um simples indicador gráfico com duas barras de quarenta LEDs cada. Os LEDs são baratos e fáceis de obter. Pode facilmente acrescentar mais LEDs se desejar. O sis-tema suporta até 120 LEDs por cada barra, montados numa placa de circuito impresso separada. Apesar de parecer excessivo vale a pena notar que os equipamentos profis-sionais deste género apresentam, na maior parte dos casos, pelo menos 100 ou 120 LEDs por cada barra.Os medidores de pico são definidos pelo tipo de rectificação que utilizam, pela resolução do display e pelas propriedades “balísticas”, como são normalmente chamadas. Nos Estados Unidos são chamados de Vuímetros, enquanto na Europa o termo mais comum medidor de pico programável (Peak Pro-grammable Meter). Tipicamente apresen-tam diversos modos de visualização (zona de modulação para sinais normais e espaço para sinais com distorção). As propriedades balísticas definem o modo como o medi-dor simula a inércia dos antigos indicado-res de agulha. Estas propriedades incluem o tempo de ataque ou tempo de integração,

o tempo de retorno, o tempo de libertação e também o tempo de decaimento. Estas pro-priedades são definidas essencialmente pelo andar de rectificação. Num medidor analó-gico este andar é seguido de um conversor de nível e de um display.As propriedades balísticas são diferentes para o domínio analógico e para o domí-nio digital. Neste último é ainda mais importante evitar a saturação dos sinais do que era no domínio analógico. É por isso desejável proporcionar uma para-metrização simples do sinal na cadeia de processamento.Vamos agora descrever as várias etapas de processamento e o programa que as imple-menta no DSP. Depois iremos descrever o circuito para a unidade de display.

Processamento de sinalOs passos envolvidos no processamento do sinal podem ser divididos em quarto blo-cos, tal como apresentado no diagrama de blocos da Figura 1.

1. Rectificador de pico com constantes de tempo

2. Cálculo do nível do sinal3. Quantificação e escalamento do sinal4. Circuito de controlo dos LEDs

Alexander Potchinkov (Alemanha)

Nos estúdios de som profissionais um medidor do nível de pico é uma ferramenta indispensável.

São utilizados, por exemplo, para garantir que os níveis de som estão dentro da gama dinâmica

dos componentes electroacústicos do sistema, de modo a que a distorção seja mínima.

Podem também servir para ajudar a manter um ruído tão baixo quanto possível, de modo a evitar

a saturação. Neste artigo vamos descrever um medidor digital de nível de pico com a placa DSP

que tem acompanhado esta série de artigos, com um display a LEDs separado.

713487

Personal Download for , Marcps | copyright Elektor

Page 33: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

33elektor 03-2012

Uin Uout

R1

R2C

D

abs(.)-

max(0,.)+ x + +

x

z-1

-x

( + )/

Figura 1. Blocos de processamento de sinal do detector de pico.

Figura 2. Detector de pico analógico com constantes de tempo.

Figura 3. Detector de pico digital com constantes de tempo.

Um rectificador de pico com constante

de tempo é uma combinação de

um rectificador sim-ples, com capacidade na saída e

tempos de ataque e decaimento ajustáveis. Como o que pretendemos neste projecto é substituir a componente analógica por um circuito digital, faz sentido que olhe-mos primeiro como funciona o circuito analógico, apresentado na Figura 2. O cir-cuito tem dois modos de funcionamento: modo de ataque, quando Vin > Vout, em que o condensador C é carregado com uma constante de tempo dada por = CR1R2/(R1+R2), e modo de decaimento, quando VE < VA, em que o condensador C é des-carregado com uma constante 2 = CR2. A constante de tempo 2 determina o tempo de decaimento e 1< 2 determina o tempo de ataque. Estas duas constantes de tempo podem ser vistas como os parâmetros do rectificador de balística. Se assumirmos um dado valor para C, a constante 2 vai depen-der apenas de R2 e a constante 1 de R1 e R2. É por isso fácil calcular o valor para as resis-tências, primeiro de R2 e de pois de R1, se assumirmos um valor conveniente para C e soubermos quais os valores desejados para

1 e 2. A interacção entre as duas resistên-cias na equação para 1 torna difícil ajustar as duas constantes independentemente com dois potenciómetros num circuito analógico. Numa abordagem digital isto pode ser feito sem qualquer dificuldade.A Figura 3 apresenta a cadeia de proces-samento de sinal para o rectificador de balística. O bloco abs(.) corresponde a um

rectificador de onda completa, as quan-tidades e determinam as característi-cas temporais e o bloco Max(0,.) diferen-cia entre os modos de operação (ataque e decaimento). O sinal só pode passar para a saída no modo de ataque. No domínio ana-lógico esta operação é constituída por um díodo polarizado inversamente. Se o sinal for bloqueado, o sistema passa ao modo de decaimento. O sinal de saída é obtido a partir do valor anterior, no bloco z-1, sendo a constante de tempo determinada por .O cálculo para determinar o nível do sinal envolve também a conversão para deci-béis. Mais precisamente, no domínio digi-tal, a conversão é realizada para dBFS (deci-béis em relação ao valor de fim de escala, sendo o nível do sinal comparado com o valor máximo possível de representar digi-talmente no sistema, 1 no nosso caso. Por isso, por exemplo, um sinal de 0,1 corres-ponde a um nível de -20 dBFS e um sinal com o valor de 0.05 a -26 dBFS. Para efec-tuar esta conversão temos de conhecer bem as características dos conversores A/D, que são por vezes difíceis de determi-nar precisamente a partir da folha de carac-terísticas, e saber também com exactidão o ganho exacto do amplificador de entrada. O mais fácil é colocar um sinal bem conhe-

cido na entrada (por exemplo, com uma amplitude de 0 dBm, ou seja, 0,775 V) e usá-lo para calcular o ganho final. Poderia ter sido acrescentada uma rotina de cali-bração, tal como acontece nalguns medi-dores de pico de topo de gama.É importante distinguir entre valor de pico e valor RMS. Uma onda sinusoidal com um valor de pico de 1 V vai ter um valor RMS de 0,7071 V. Estes valores podem correspon-der a 0 dB e a -3dB. Isto revela o cuidado que devemos ter ao interpretar valores em dB. É fundamental estarmos conscientes do que estamos a medir.

O resultado do cálculo deve estar entre -110 dB e 0 dB, contudo, devido ao nível de ruído dos conversores A/D, o valor mínimo situa-se próximo dos 90 dB. Temos de esco-lher um subconjunto para o display. Para este projecto foi decidido cobrir uma gama entre -39 dB e 0 dB e entre -78 dB e 0 dB. O programa pode ser facilmente modificado no caso de pretendermos outras gamas. Os valores de entrada dentro da gama selec-cionada têm de ser quantificados na barra de LEDs, pelo que este processo depen-derá do número de LEDs. Se forem utili-zados 40 LEDs, a primeira gama de utiliza-ção será quantificada para 1 dB por LED e

Rectificador de pico com

temporização

Cálculo do nível do sinal

Quantificação e escalamento

Descodificação (LEDs)

Personal Download for , Marcps | copyright Elektor

713487

Page 34: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

34 03-2012 elektor

a segunda para 2 dB por LED. Esta tarefa é realizada no terceiro bloco quantificação e Escalonamento.De seguida os valores quantificados têm de ser codificados em padrões de bits que pos-sam ser lidos pelo módulo dos LEDs. Note que a ordem dos LEDs no módulo pode não ser directamente compatível com os nos-sos propósitos, daí termos que reorganizar os bits. Esta tarefa é realizada no quarto bloco da Figura 1.Finalmente, resta ainda decidir quantas vezes, dentro da rotina de processamento de áudio, vamos transferir os dados para o módulo de LEDs. A abordagem mais sim-ples é utilizar um múltiplo inteiro da fre-quência de amostragem, já que esta base temporal está já disponível. Em princípio seria possível obter vantagem das carac-terísticas especiais do DSP neste domínio, mas isso não é, de todo, necessário.

Subrotinas na cadeia de áudioA Figura 4 apresenta as subrotinas para a cadeia de processamento de áudio e os sinais envolvidos. Existem, no total, quatro subrotinas, duas das quais com parâmetros.

A subrotina P e a k V a l u e R e c t i -fier implementa um rectificador em cada um dos canais. Lê os sinais InL/R na entrada e transforma-os nos sinais RectrifiedL/R. No início da subrotina é efectuada uma correcção de ganho, depen-dente das duas constantes de tempo. De seguida é calculado o valor absoluto dos sinais, que correspondente à rectificação de onda completa. O factor de correcção de ganho varia entre 1 e 2 e é implemen-tado com a instrução Mac.Depois, é utilizada uma instrução condicio-nal para seleccionar entre os dois modos de

funcionamento (ataque, ou decaimento). A condição para optar por um destes modos é o valor na saída do primeiro soma-dor (aqui utilizado como subtractor), mais propriamente, o sinal deste valor (positivo ou negativo). Os dois caminhos diferentes no código correspondem aos dois modos, que levam à carga, ou à descarga, do “con-densador digital”.Os parâmetros e determinam as cons-tantes de tempo. O parâmetro Alpha-Beta é calculado a partir dos valores das duas constantes e devolve o valor de cor-recção de ganho. Na Figura 5 pode ver-se a saída do detector de pico para uma entrada de um trecho de uma sinusóide. Neste exemplo, o trecho é demasiado curto, pelo que o rectificador não tem tempo de esta-bilizar completamente. Os parâmetros da subrotina são apresentados na Tabela 1.A subrotina LogConverter calcula o nível do sinal rectificado com base numa escala adequada. Lê os sinais RectifiedL/R e devolve o sinal de saída LevelL/R, que representa o nível dos sinais de entrada. A gama dinâmica é coberta por 24 bits, ou seja, 138 dB. Esta gama tem de ser escalada num valor entre -1 e 0 para representar o resultado final. O logaritmo base 2 é aproximado no inter-valo entre 0,5 e 1 utilizando o mesmo método polinomial que utilizámos no artigo anterior para produzir a função seno. O cálculo é simplificado pela utili-zação das instruções clb e normg, que são específicas para o cálculo em aritmé-tica de vírgula flutuante. A subrotina, tal como está, consegue lidar com uma gama de entrada entre -110 dB e 0 dB. Se for desejada uma gama de entrada mais alar-gada, terá de ser adicionado um andar de ganho, que consiste apenas em meia dúzia de linhas de código assembler. A subrotina LogConverter não precisa de nenhuns parâmetros.

SubroutinePeakValueRectifier

SubroutineLogConverter

SubroutineLogMapper

SubroutineDecoder

RectifiedLRectifiedR

LevelLLevelR

LedLLedR

ByteBuff[0..4]

InLInR

AlphaBeta

AlphaBeta

Scale

Figura 4. Subrotinas e sinais na cadeia de processamento de áudio.

Tabela 1. Parâmetros para as subrotinas do detector de pico.

Programa do DSP e valores por defeito

Parâmetros e valores por defeitoParâmetros do programa DSp

Cálculo dos parâmetros por defeito do programa DSP

Valores por defeito para os parâmetros do programa DSP

tA=10 ms, tR=100 ms,

A=480, R=4800

Alpha

Beta

AlphaBeta

=0,4234(1/R)–0,649844(1/A)

=1–0,4234(1/R)

= /

0,00036018 0,00023982 0,6658

713487

Personal Download for , Marcps | copyright Elektor

Page 35: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

35elektor 03-2012

A subrotina LogMapper converte o valor em dB para o valor adequado para o módulo de LEDs. Lê o sinal LevelL/Re converte-o para o sinal LedL/R. Como se pode ver na Tabela 2, o parâmetro scale é utilizado para alterar entre as duas escalas de saída. A subrotina LogMapper precisa de saber quantos LEDs existem em cada linha do display, de modo a poder adequar o sinal à gama possível de representar no display. Assume-se que a diferença entre cada LED iluminado é constante. Os parâ-metros dBScale40 e dBScale80 corres-pondem a uma escala de 40 dB com pas-sos de 1 dB em cada LED, e de 80 dB com passos de 2 dB. A subrotina gera dois bytes com valores entre $000000 to $000028, em função do número de LEDs que deverão acender. O calculo deste valor é apresen-tado com mais detalhe na caixa de texto que acompanha este artigo.Com modificações no código é possível criar uma escala não-linear, que permitirá obter mais resolução numa determinada parte da gama. Por exemplo, pode estar mais interes-sado na gama entre -19 dB e 0 dB, em pas-sos de 1 dB, utilizando 20 LEDs, enquanto os restantes 20 LEDs cobrem a gama entre -77 dB e -20 dB em passos de 3 dB.A subrotina Decoder controla os LEDs do display, com base nas entradas (LedL/R). A saída, ByteBuff, não é um sinal con-vencional, dado que o módulo é con-trolado em grupos de 16 bits em vez de 24 bits. É necessário um total de 80 bits para duas barras de 40 LEDs e 160 bits para duas barras de 80 LEDs. Por isso, para controlar as duas barras de 40 LEDs o DSP envia 80 bits através da porta SPI. Estes 80 bits são divididos em cinco registos de 16 bits. Devido ao valor elevado da cor-rente total para acender os LEDs, torna-se mais simples dividir estes registos em par-tes de 8 bits, uma para o canal esquerdo e outra para o canal direito. A subrotina Decoder é, por isso, responsável por con-verter os bytes recebidos da subrotina LogMapper em cinco palavras de 16 bits e também pelo seu envio pela porta SPI.A rotina pode ser facilmente adaptada para saídas de 160 bits ou 240 bits. A subrotina não utiliza quaisquer parâmetros. A Tabela 3 apresenta o arranjo dos dados na matriz ByteBuff, para o caso de um display de duas barras de 40 LEDs.

Programa e ideias para expansãoNa Tabela 4 estão apresentadas todas as componentes de software necessárias para o projecto (disponíveis na página da Elektor dedicada a este artigo). Além dos ficheiros e programas de teste utilizados nos outros será igualmente necessário o ficheiro PeakLvm.asm, que é o programa principal, bem como o ficheiro LogCoef.tab, que contém os coeficientes polino-miais utilizados na aproximação da função logarítmica.Temos três ideias para expandir este pro-jecto. A primeira, já mencionada ante-riormente, consiste em acrescentar um segundo ou mesmo um terceiro módulo de LEDs. Para isso é necessário expandir a subrotina Decoder e transferir mais dados para o display. Outra ideia é substituir o rectificador de pico por um rectificador RMS, que pode ser conseguido alterando ligeiramente os parâmetros do primeiro. Seria assim possível combinar a apresen-tação do nível de pico com o nível RMS, um apresentado como uma barra e outro como apenas um LED iluminado. A ter-ceira ideia passa por acrescentar um filtro de modulação do tipo A na cadeia de pro-cessamento de sinal antes do rectificador,

de modo a possibilitar medições em dBA ou dB SPL. Na Wikipedia, ou noutras fon-tes, pode obter mais informações sobre os filtros de modulação do tipo A (A-wighting filters).

Refrescamento do display e transferência dos dadosDentro da cadeia de áudio o conta-dor de amostragem é armazenado no registo R7, de modo a aproveitar a fun-ção módulo-N disponibilizada pela AGU do DSP. Sempre que o contador volta ao princípio o DSP escreve 80 bits no módulo do display. A taxa de refresca-mento do display é, por isso, dada por f = fs/N, onde fs = 48 kHz (valor da fre-quência de amostragem).Os bits de dados são transferidos para o display numa única operação. Se, por exemplo, a porta SPI for configurada para funcionar com um relógio de 1 MHz, a transferência dos 80 bits demorará 80 μs. Com uma frequência de amostragem de 48 kHz este intervalo de tempo cor-responde a quatro amostras. As amos-tras que chegarem durante este período são lidas por uma rotina de interrup-ção, mas não são processadas pelo pro-

Tabela 2. Parâmetro scale na subrotina LogMapper.

Parâmetro Gama de valores Tipo Comprimento Alinhamento

Scale [0,1] Inteiro 24 à direita

Tabela 3. Disposição dos dados na matriz (linhas com 40 LEDs).

Endereço na RAM do DSP

Bits 23 a 16 Bits 15 a 8 Bits 7 a 0

ByteBuff L, LEDs 39 a 32 R, LEDs 39 a 32 Não usado

ByteBuff+1 L, LEDs 31 a 24 R, LEDs 31 a 24 Não usado

ByteBuff+2 L, LEDs 23 a 16 R, LEDs 23 a 16 Não usado

ByteBuff+3 L, LEDs 15 a 8 R, LEDs 15 a 8 Não usado

ByteBuff+4 L, LEDs 7 a 0 R, LEDs 7 a 0 Não usado

Tabela 4. Ficheiros utilizados no detector de nível de pico.

PeakLvm.asm Programa principal

LogCoef.tab Coeficientes polinomiais para a aproximação logarítmica

src4392.tab Sequência para configuração da SRC

ivt.asm Tabela de interrupções

esai4r2t.asm Audio ISR: quatro canais de entrada, dois canais de saída

Mioequ.asm Nomes mais convenientes para os endereços das E/S do DSP

713487

Personal Download for , Marcps | copyright Elektor

Page 36: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

36 03-2012 elektor

grama principal do DSP. Isto dificilmente será um problema para uma utilização típica. Contudo, se a entrada for digi-tal e quisermos detectar o valor de pico utilizando todas as amostras (ou se for utilizado um display com mais LEDs) a situação é menos satisfatória. Será neces-sário aumentar a velocidade do relógio do barramento SPI para 20 Mbit/s ou mais e garantir que a ligação eléctrica entre a placa DSP e o módulo de LEDs é capaz de transmitir os dados a essa velo-cidade. Uma alternativa seria espalhar as operações de escrita, enviando um valor de 16 bits por cada período de amostra-gem. Neste caso, a frequência de amos-tragem e a velocidade de relógio para o barramento SPI ficariam independentes uma da outra. Como já existe um conta-dor de amostragem módulo-N, a imple-mentação desta estratégia não é compli-cada. No nosso protótipo foi utilizado um relógio de cerca de 10 MHz para o bar-ramento SPI, o qual, com quarenta LEDs por barra, consegue processar todas as amostras de áudio mesmo com a trans-missão de todos os dados para o display de uma só vez. As definições necessárias para o conseguir são x:HCKR=$000034 (filtro para redução de ruído desli-gado, bypass ao pré-divisor, divisão por 2*(6+1), relógio SHI de 10,5326 MHz). O protótipo funcionou sem falhas com uma frequência de relógio de 18,432 MHz (através de x:HCKR=$000024). Se os valores apresentados pelo display forem instáveis ou incorrectos, é um sinal que a taxa de transmissão de dados

é muito elevada. Esta pode ser reduzida aumentando o rácio do divisor HDM. A Figura 6 ilustra como é que se podem perder amostras quando o relógio do barramento SPI é de aproximadamente 1 MHz.

Circuito do módulo de LEDsExistem duas alternativas para controlar um display de barra de LEDs. A primeira é multiplicar a iluminação dos LEDs com impulsos estreitos de corrente elevada. Os LEDs são dispostos numa matriz e um gera-dor de relógio, acompanhado de alguma lógica adicional (contadores, comparado-res e descodificadores) para gerar as for-mas de onda necessárias.Esta abordagem tem a desvantagem de, no caso de o relógio parar por qualquer razão, o LED que estiver acesso nessa altura vai provavelmente ficar destruído! Além disso temos de contar também com a comple-xidade da lógica necessária, cuja melhor opção para a sua implementação será atra-vés de uma CPLD.A segunda alternativa é utilizar um grande registo de deslocamento com excitado-res individuais capazes de fornecer con-tinuamente uma pequena corrente a cada um dos LEDs. No nosso caso optou--se por recorrer a um registo de desloca-mento com 80 andares, o que significa que necessitamos também de 80 excitadores. Esta abordagem comporta menos risco do que a utilização de multiplexagem, mas obriga a muito mais ligações eléctricas. Por exemplo, para a selecção de um LED de 100 recorrendo à multiplexagem bastam 7

bits, enquanto se for utilizado um registo de deslocamento, cada um dos LEDs terá de ser ligado individualmente.Alguns fabricantes de semicondutores, como a Texas Instruments e a On Semicon-ductor, oferecem na sua gama de produtos integrados excitadores de baixo custo para LEDs, que incluem escrita e leitura em série e também circuitos para excitar os LEDs. Estes excitadores, baseados em fontes de corrente, permitem controlar o brilho dos LEDs com um simples potenciómetro.No nosso circuito optou-se pelo TLC5926 da Texas Instruments, que consegue con-trolar 16 LEDs. Estes registos de desloca-mento podem ser facilmente montados em cascata para formar cadeias com qual-quer comprimento.O módulo é constituído por duas placas (uma para os excitadores e outra para o display propriamente dito). As duas pla-cas podem ser montadas em conjunto de modo a formar uma unidade compacta (Figura 7). Vejamos agora como fun-ciona o circuito (Figura 8) e como deve ser utilizado.Para controlar 80 LEDs necessitamos de cinco integrados, dispostos em cascata, começando em IC5 e terminando em IC1. Para simplificar o desenho da placa de cir-cuito impresso, cada integrado é respon-sável por 8 LEDs em cada linha. Estes inte-grados necessitam de duas tensões: 3,3 V para a porta SPI e uma tensão separada para os LEDs, ligada ao conector K5. Esta tensão deve ser tão baixa quanto possível para minimizar a dissipação de potência nos integrados. Optou-se por utilizar 3 V, obtidos a partir de uma tensão de 5 V atra-vés dos reguladores IC6 e IC7. Cada regu-lador alimenta 40 LEDs. A tensão fornecida através de K5 pode ser superior a 5 V, mas a potência dissipada nos reguladores irá ser maior.A porta SPI do DSP pode ser configurada no modo de 8 bits, 16 bits ou 24 bits. No projecto é utilizado o modo de 16 bits, pois este número é o maior factor de 80. Para criar uma imagem nos LEDs o DSP envia uma sequência de cinco palavras de 16 bits para o módulo. O módulo está desenhado de modo a que possam ser montadas mais unidades em cascata, colocadas lado a lado e ligando o conector K3 de uma ao conec-tor K2 da seguinte.

Figura 5. Saída do detector de pico (vermelho) de um trecho de uma

onda sinusoidal (azul).

Figura 6. Distorção do sinal quando a velocidade do relógio do barramento

SPI é muito baixa.

713487

Personal Download for , Marcps | copyright Elektor

Page 37: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

37elektor 03-2012

SDI2

SDO22

CLK3

LE(ED1)4

OE(ED2)21

R-EXT23

OUT05

OUT16

OUT27

OUT38

OUT49

OUT510

OUT611

OUT712

OUT813

OUT914

OUT1015

OUT1116

OUT1217

OUT1318

OUT1419

OUT1520

241

IC1

TLC5926

SDI2

SDO22

CLK3

LE(ED1)4

OE(ED2)21

R-EXT23

OUT05

OUT16

OUT27

OUT38

OUT49

OUT510

OUT611

OUT712

OUT813

OUT914

OUT1015

OUT1116

OUT1217

OUT1318

OUT1419

OUT1520

241

IC2

TLC5926

SDI2

SDO22

CLK3

LE(ED1)4

OE(ED2)21

R-EXT23

OUT05

OUT16

OUT27

OUT38

OUT49

OUT510

OUT611

OUT712

OUT813

OUT914

OUT1015

OUT1116

OUT1217

OUT1318

OUT1419

OUT1520

241

IC4

TLC5926

SDI2

SDO22

CLK3

LE(ED1)4

OE(ED2)21

R-EXT23

OUT05

OUT16

OUT27

OUT38

OUT49

OUT510

OUT611

OUT712

OUT813

OUT914

OUT1015

OUT1116

OUT1217

OUT1318

OUT1419

OUT1520

241

IC3

TLC5926

SDI2

SDO22

CLK3

LE(ED1)4

OE(ED2)21

R-EXT23

OUT05

OUT16

OUT27

OUT38

OUT49

OUT510

OUT611

OUT712

OUT813

OUT914

OUT1015

OUT1116

OUT1217

OUT1318

OUT1419

OUT1520

241

IC5

TLC5926

+3V3 +3V3 +3V3+3V3+3V3

C1100n

SDO

CLK

LE

OE

RX1

L0

L1

L2

L4

L5

L6

L7

L8

L9

L10

L11

L12

L13

L14

L15

L16

L17

L18

L19

L20

L21

L22

L23

L24

L25

L26

L27

L28

L29

L30

L31

L32

L33

L34

L35

L36

L37

L38

L39

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

R17

R18

R19

R20

R21

R22

R23

R24

R25

R26

R27

R28

R29

R30

R31

R32

R33

R34

R35

R36

R37

R38

R39

CLK

LE

OE

RX2

CLK

LE

OE

RX3

CLK

LE

OE

RX4

CLK

LE

OE

RX5

SDI

L0

L1

L2

L3

L4

L5

L6

L7

L8

L9

L10

L11

L12

L13

L14

L15

L16

L17

L18

L19

L20

L21

L22

L23

L24

L25

L26

L27

L28

L29

L30

L31

L32

L33

L34

L35

L36

L37

L38

L39

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

R17

R18

R19

R20

R21

R22

R23

R24

R25

R26

R27

R28

R29

R30

R31

R32

R33

R34

R35

R36

R37

R38

R39

K3K2

CLK

LE

OE

SDOSDI

12

34

56

78

910

K1

R6

470R

D1

DSP

CL

K

LE

SD

I

SD

O

JP2

P1

470R

R2

470R

R3

470R

R4

470R

R5

470R

R1

470R

RX

1

RX

2

RX

3

RX

4

RX

5

C6

100n

3 2

1

ADJ

IC6

LM317

R7

270R

R8

820R

63V

C9

10u

25V

C8

47u

C10

100n

3 2

1

ADJ

IC7

LM317

R9

270R

R10

820R

63V

C12

10u

K5

25V

C11

47u

25V

C7

1000u

0

+3VL +3VR

K4

0

3V3

25V

C13

470u

+3V3

R0'

R1'

R2'

R3'

R4'

R5'

R6'

R7'

R8'

R9'

R10'

R11'

R12'

R13'

R14'

R15'

R16'

R17'

R18'

R19'

R20'

R21'

R22'

R23'

R24'

R25'

R26'

R27'

R28'

R29'

R30'

R31'

R32'

R33'

R34'

R35'

R36'

R37'

R38'

R39'

D5

D4

D3

D2

+3VR'+3VL'

L0'

L1'

L2'

L3'

L4'

L5'

L6'

L7'

L8'

L9'

L10'

L11'

L12'

L13'

L14'

L15'

L16'

L17'

L18'

L19'

L20'

L21'

L22'

L23'

L24'

L25'

L26'

L27'

L28'

L29'

L30'

L31'

L32'

L33'

L34'

L35'

L36'

L37'

L38'

L39'

D6

D7

D8

D9

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K18

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K19

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K20

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K21

1 2

3 4

K14

1 2

3 4

K15

1 2

3 4

K16

1 2

3 4

K17

1 2

3 4

K6

1 2

3 4

K7

1 2

3 4

K8

1 2

3 4

K9

+3VL +3VR +3VL' +3VR'

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K13

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K11

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K12

1 2

3 4

5 6

7 8

9 10

11 12

13 14

15 16

17 18

19 20

K10JP1

C2100n

C3100n

C4100n

C5100n

3V3

DS

P

EX

T

L3

LE

OE

CLK

CL

K

LE

OE

SD

O

SD

I

OE

110002 - 11

Figura 7. Construção do módulo do display de LEDs separado.

Figura 8. Diagrama do circuito dos excitadores e controlador do display.

Quando são montadas várias unidades em cascata o número de palavras de 16 bits tem de ser aumentado proporcionalmente.O DSP apenas comunica directamente com um dos módulos, mesmo que exis-tam mais. A ligação é efectuada por um cabo plano de 10 condutores com conec-tores standard, ligando K7 na placa DSP a K1 no display. A tensão de 3,3V para a porta SPI pode ser obtida a partir de uma fonte externa ou directamente a partir da placa DSP. Neste caso, deve ser colo-cado um Jumper entre os pinos 1 e 2 de JP1 (com a marcação DSP). O conector K4 não será necessário. O Jumper JP2 é usado para activar o display; se não estiver colo-cado, o display permanece apagado. O brilho do display pode ser ajustado atra-vés do potenciómetro P1. É importante não esquecer que os LEDs consomem uma corrente de 10 mA, pelo que a corrente total, quando todos os LEDs estão acesos, se aproxima dos 800 mA. É por isso conve-niente dotar o regulador de tensão de um pequeno dissipador de calor. A placa de

Personal Download for , Marcps | copyright Elektor

713487

Page 38: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CURSO

38 03-2012 elektor

circuito impresso do display foi dese-nhada de modo a aceitar 10 ou 20 LEDs específicos para este tipo de aplica-ções, que estão disponíveis em diversas cores em vários fabricantes. É recomen-dável optar por LEDs de alta eficiência, que consomem menos corrente. O dis-play pode ser montado perpendicular-mente à placa de controlo, embora para isso seja necessária alguma habilidade devido ao grande número de conecto-res. A maneira mais simples de o con-seguir é colocá-las horizontalmente na bancada e montar a placa de controlo verticalmente.O DSP consegue escrever na porta SPI a uma velocidade superior a 10 Mbit/s. O integrado de controlo dos LEDs aceita dados até 30 MHz. Isto significa que, independentemente da quantidade de módulos de LEDs montados, estes conseguem sempre ser actualizados muito mais rapidamente que a capaci-dade do olho humano tem para detec-tar variações.Foi também desenvolvido um programa de teste para o módulo, chamado tst_led.asm. Este programa inclui dois componentes do programa principal: a rotina de descodificação e a rotina de transferência de dados. O teste faz acender 23 LEDs numa barra e 27 LEDs noutra. Para o teste não são necessários quaisquer outros ficheiros.

(110391)

Artigo original: Audio DSP course (7)– January 2012

Placa de LEDs

A palca de circuito impresso, de dupla face, para o módulo do display está disponível com os integrados SMD já montados atra-vés do Serviço Elektor (Refª 110002-71).

www.elektor.com/110391

Cálculo do número de LEDs acessos com basenos valores do nível de sinal escalonadoO valor em decibéis Px correspondente à amostra x, neste caso, uma amostra da saída do rectificador, é dada por:

Px = 20 log10(x), x>0

Onde a gama útil situa-se entre -110 ≤ Px ≤ 0. Contudo, devido à aritmética fraccionária utilizada pelo DSP, a rotina do programa calcula um valor escalonado:

Psx = log2(x) / 32 = (ln(10) / ln(2)) log10(x) / 32

Ou seja, -0,570956 ≤ Psx ≤ 0. ln() corresponde ao logaritmo natural. Esta função, em conjunto com a função logaritmo base 10, está disponível na maior parte das máquinas de calcular.

Rearranjando e simplificado, temos:

Px = 20 (ln(2) / ln(10)) × 32 × Psx = 192,6592 Psx

e

Psx = (ln(10) / ln(2)) Px / (20 × 32) = 0,005190513 Px.

O valor para controlar os LEDs deverá estar alinhado à direita. O valor inteiro $000001 corresponde a 2-23 na representação fraccionária do DSP, ou 1,1921 × 10–7. Por exemplo, se quisermos ter a gama -60 dB ≤ Px ≤ 0 dB, correspondendo a valores entre 0 e 80 LEDs acesos. Para ligar os 80 LEDs teremos de gerar o valor

LED80 = $000050 = 9,536743 × 10–6.

Agora, considerando os dois extremos, e escrevendo NLED para o número de LEDs acesos, temos:

Px = –60 dB, Psx = –60 × 0,005190513 = –0,31143076 e NLED = LED0 = 0

e

Px = 0 dB, Psx = 0 and NLED = LED80 = 9,536743 × 10-6.

O DSP tem, por isso, de calcular o número de LEDs acesos a partir de um valor de nível escalonado, utilizando:

NLED = Psx × 80 × 2–23 / 0,31143076 + 80 × 2–23 = 3,0622354 × 10–5 × Psx + 9,536743 × 10–6.

O escalonamento apresentado neste exemplo está ilustrado na Figura A.

-60

-0,31143076

Nível do sinal Px

Nível do sinal Px escalonado

Número

de LEDs

$000050

0 0

Figura A. Níveis de sinal e gama coberta pelos LEDs.

Personal Download for , Marcps | copyright Elektor

713487

Page 39: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

39elektor 03-2012

Controlador ARM Stellaris biológicoConsiderações de projecto para uma incubadora de ovosTianyu Chen (República Popular da China)

Este circuito baseado num microcontrolador foi

desenvolvido em resposta a um desafio colocado por

um processo biológico. Embora a aplicação final,

um sistema fiável para incubação de ovos de galinha,

possa parecer muito especializada, o método usado

para lá chegar tem um enorme potencial para

muitos outros sistemas onde parâmetros como

a temperatura, movimento e humidade precisam

de ser monitorizados e controlados com precisão.

Imitar uma galinha doméstica a chocar ovos, ou seja, desenvolver uma incubadora de ovos (máquina para chocar ovos de galinha) está longe de ser uma coisa trivial. Esta tarefa requer conheci-mentos e habilidades na área da mecânica assim como em elec-trónica, em conjunto com alguma pesquisa na área de biologia. Em vez de apresentar um projecto já criado e pronto a implemen-tar, o objectivo deste artigo é mostrar o processo de vários fac-tores como os constrangimentos reais do mundo, a electrónica, software e mecânicas, analisados em conjunto.

Os factores do mundo realProvavelmente pode pensar que a temperatura é o factor mais importante durante todo o processo de incubação dos ovos. No entanto, como se mostra, a humidade e outros factores são tam-bém muito significantes. Baseado em alguma pesquisa e estudo de literatura relacionada com este assunto, o autor foi capaz de listar cinco pontos importantes que devem ser observados, por

esta ordem de importância: 1) temperatura; 2) humidade rela-tiva; 3) rotação; 4) ventilação; 5) factores sanitários.

Temperatura: Como o embrião não possui nenhum tipo de capacidade para auto-regular a sua temperatura, é necessário desenvolver um dispositivo de controlo da temperatura externo. Embora alguns ovos consigam chocar sem problemas dentro de uma gama de temperaturas de 35 a 40,5 graus centígrados, a temperatura ideal para os embriões é de 37,8 °C.

Embora uma temperatura mais alta acelere o desenvolvimento do embrião, também provoca um aumento na taxa de morte e o decréscimo da qualidade do pinto. Consequentemente, a tempe-ratura deve ser o mais possível constante em torno dos 37,8 °C.

Humidade relativa: Normalmente, a humidade relativa durante o desenvolvimento de um embrião situa-se entre 40-70%, mas

Nota: Os projectos dos leitores são reproduzidos baseados na informação disponibilizada apenas pelo autor.A utilização de esquemáticos e outras ilustrações ao estilo da Elektor neste artigo não significa que o projecto tenha sido construído e testado no laboratório da Elektor, para verificação do seu funcionamento, sendo este da inteira responsabilidade do autor.

1

2

3

4

Figura 1. Exemplo de uma câmara para chocar ovos (1: motor e controlo de transmissão; 2: ventoinha de PC;

3: lâmpada de 25 Watts; 4: tabuleiro dos ovos).

Personal Download for , Marcps | copyright Elektor

713487

Page 40: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

40 03-2012 elektor

o valor óptimo é entre 50-60%. Se for mantida uma humidade adequada o ovo absorve o calor uniformemente mesmo nos pri-meiros dias da incubação, e vai dissipar o calor mais facilmente próximo do final do período de incubação.

Rotação: Os ovos devem ser girados para prevenir a adesão do embrião e estimular o movimento amniótico. Idealmente o ovo deve ser virado seis a oito vezes por dia, especialmente durante as primeiras duas semanas.

Ventilação: Durante o desenvolvimento embrionário na câmara de incubação, a troca de ar está sempre em progresso excepto durante alguns dias mesmo no início da fase de incubação. À medida que o embrião cresce, a necessidade de oxigénio aumenta. Idealmente a concentração de oxigénio deve ser 21%, enquanto que o nível de dióxido de carbono deve permanecer abaixo dos 0,5%. Valores de CO2 superiores a 1% originam a morte de muitos embriões.

Factores sanitários: Embora o embrião esteja cercado por uma substância coloidal e protegido por uma casca e membrana, alguns germes ainda conseguem introduzir-se no mesmo, redu-zindo as hipóteses de uma incubação com sucesso. Por conse-

guinte deve ser prestada bastante atenção aos factores sanitários e desinfecção do sistema de incubação.

Câmara de incubação de fabrico caseiroFoi colocado muito esforço em conseguir encontrar um disposi-tivo que pudesse ser modificado para passar a ser uma câmara de incubação para ovos. A câmara de incubação deve ter boas propriedades de isolamento térmico, boa ventilação e espaço suficiente para sete ovos. Uma velha panela térmica eléctrica da Sanyo perdida nas coisas da cozinha mostrou ser uma “passa-gem” para o sucesso.

A capacidade de ligar toda a funcionalidade do hardware aos factores discutidos anteriormente é apresentada no diagrama da Figura 1. No topo, temos uma ventoinha (2) aproveitada de um antigo PC. No centro temos um tabuleiro (4) para segurar e acomodar os ovos durante o período de incubação. O tabuleiro é controlado por uma transmissão ligada a um motor (1) para virar os ovos em intervalos predefinidos.As condições do ar no interior da câmara são bastante importan-tes – é necessário oxigénio suficiente mas a temperatura do ar deve ser estável. Se entrar muito ar fresco no interior da câmara de incubação muito rapidamente, a temperatura do ar corre o perigo de descer muito rapidamente. Temos então um dispo-sitivo para balanceamento térmico na forma de uma lâmpada de 25 Watts (3) que actua como um elemento de aquecimento. Assim que o ar quente chega ao topo da câmara, a ventoinha faz com que ele volte para baixo e ao mesmo tempo coloca tam-bém algum ar fresco proveniente do buraco na cobertura. Com ar fresco e ar quente misturados numa quantidade correcta, o ar no interior da câmara de incubação vai ter uma temperatura constante e uma concentração de oxigénio elevada.

ElectrónicaDepois das considerações biológicas e mecânicas vem a parte da electrónica, cuja função é fazer com que tudo aconteça. No coração do circuito de controlo temos um microcontrolador LM3S1138 ARM Córtex-M3 [1] da Luminary Micro (agora das Texas Instruments). Este microcontrolador pertence à série Stellaris.

O diagrama de blocos da Figura 2 mostra os periféricos em torno do microcontrolador, como o teclado, LED e besouro que permitem ao utilizador ajustar as características de incubação e apresentar o seu estado. Quando o sistema arranca é pedido ao utilizador para introduzir o tipo de ovo a incubar e o tempo aproximado de incubação. Durante o processo de incubação o

LM3S1138Módulo

LCD

Controlador de motor

Motor Ventoinha

BEEP RTC

Sensor de humidade

Sensor de temperatura 1

Sensor de temperatura 2

Controlador de lâmpada

LED100887 - 11

TECLA

Detector

de ângulo

Figura 2. Elementos para implementar o processo de controlo baseado num microcontrolador LM3S1138 ARM Córtex-M3.

713487

Personal Download for , Marcps | copyright Elektor

Page 41: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

41elektor 03-2012

LCD apresenta a temperatura corrente e humidade no interior da câmara, e o número de dias até ao final do período de incu-bação. Se a temperatura ou humidade forem mais elevadas ou mais baixas do que o nível de aviso, ou o sistema detectar alguma condição excepcional, o besouro emite um alarme, alertando o utilizador para tomar alguma acção de modo a prevenir a possí-vel morte dos embriões.

O sistema tem dois sensores de temperatura e um sensor de humidade. Os dois sensores de temperatura estão localizados de modo que seja possível detectar uma deficiente ventilação que seja depois eliminada pela acção da ventoinha. Além disso, se um sensor de temperatura estiver danificado ou com uma avaria o outro actua como backup.

O circuito actual está espalhado por duas placas de circuito impresso. A placa core que contém o microcontrolador, o inter-face de depuração, o circuito de reset, o teclado e o LED. A outra placa tem os circuitos periféricos como o relógio em tempo-real (RTC) e o controlador do motor. Devido a constrangimentos de espaço o diagrama completo do circuito do sistema não foi inclu-ído neste artigo – porém, está disponível gratuitamente no site da Elektor [2]. Para os componentes principais temos: o micro-controlador = LM3S1138; controlador do motor = L298N; RTC = DS1305; sensor de humidade = HS1101/NE555; sensor de tem-peratura = LM75. Com toda a justiça, nada de muito esotérico tirando o processador da Luminary.

SoftwareNa Figura 3 é apresentado um fluxograma do software de controlo. Todos os aspectos da construção mecânica, electró-nica e os constrangimentos do mundo real relacionados com a incubação de ovos são levados em consideração por um pequeno pedaço de código. O ficheiro com o código fonte para o LM3S1138 pode ser obtido gratuitamente a partir do site da Elektor [2].

(100887)Artigo original: Stellaris ARM Controller goes Biological – June 2011

Internet

[1] www.luminarymicro.com/products/LM3S1138.html (folha de características do LM3S1138)

[2] www.elektor.com.pt/100887

(diagram do circuito e software para o projecto)

Figura 3. Fluxograma do programa escrito para o microcontrolador LM3S1138 Stellaris que define o funcionamento da câmara de incubação de ovos.

Início

Fim100887 - 12

Inicialização

do sistema

Inicialização

do dispositivo

RTC preparado

?

Sim

Sim

Não

Sim

Sim

Não

Não

Não

Não

Sim

Iniciar rotação

Parar

Iniciar ventoinha

Parar ventoinha

Armazenar hora actual e

apresentá-la no display

Ler humidade e

amostrá-la no display

Ler temperatura, armazenar

o valor lido e amostrá-lo

no display

Executar algoritmo A/D

e ajustar valor de saída

Obter posição do tabuleiro,

virar?

Qual direcção?

Motor parado?

Temperatura

correcta ou necessário

actuar ventoinha?

Necessário

parar ventoinha?

713487

Personal Download for , Marcps | copyright Elektor

Page 42: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

42 03-2012 elektor

Utilize o SPICESimulação de circuitos com o LTspiceRaymond Vermeulen (Elektor)

A simulação de circuitos é útil para todos aqueles que trabalham com electrónica – desde estudantes

e entusiastas a profissionais. Permite-lhe verificar e modificar rapidamente projectos sem ter de fazer

muitos cálculos, e é útil para lidar com propriedades não lineares de componentes, que são ignoradas

nas fórmulas, entre outras coisas. Neste artigo é feita uma breve introdução para os leitores que não

estão familiarizados com os simuladores baseados em SPICE.

Foi seleccionado o LTspice para esta descrição introdutória. O LTs-pice é um programa de simulação baseado em SPICE da Linear Technology. Está disponível gratuitamente (sem registo) e é fácil de utilizar. Contudo, vem só com bibliotecas de componentes da Linear Technology, como esperado. Não estão incluídos compo-nentes de outros fabricantes, mas podem ser adicionados pelo utilizador. O programa é mais adequado para simulação de cir-cuitos construídos com produtos da Linear Technology, e está disponível uma grande quantidade de exemplos de simulação no site da Linear Technology. Para mais funcionalidades e bibliote-cas, pode utilizar um programa comercial como o Micro-Cap ou o Orcad Pspice, mas estes programas são dispendiosos. Em todos os casos, familiarizar-se definitivamente com o LTspice tem uma vantagem: se souber utilizar uma versão do SPICE, sabe utilizar todas as outras.

OrigemO SPICE foi originalmente desenvolvido pela Universidade de Berkeley nos anos 70 para o Departamento de Defesa dos EUA, com o propósito de analisar a robustez de circuitos à radiação. Nos anos seguintes as suas capacidades foram expandidas para incluir a simulação de componentes mais complexos e funções de simulação adicionais. Com o decorrer do tempo apareceram versões comerciais, muitas delas baseadas no programa SPICE ori-ginal, rodeado de um interface para o utilizador específico para cada empresa, designado por shell.

Iniciação com o LTspiceVá ao site http://www.linear.com, clique em “Design Suport” no topo da página, e depois clique na hiperligação debaixo do cabe-çalho “Design Simulation”. Isto leva-o à página de download do

Figura 1. Selecção de componentes. Figura 2. O nosso primeiro esquemático.

713487

Personal Download for , Marcps | copyright Elektor

Page 43: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

43elektor 03-2012

LTspice. Abra o ficheiro e instale o programa na localização dese-jada. Para utilizadores do Linux, o programa pode correr no Wine. Também foi testado com o Ubuntu 11.04 Natty Narwhale.Depois de instalado inicie o programa.

Crie uma nova folha de esquemático clicando no primeiro ícone à esquerda:

Agora pode começar a desenhar o seu primeiro esquemático.

Pode seleccionar símbolos de componentes da caixa de diálogo (Figura 1) que aparece depois de carregar no botão “Component”:

Podem ser seleccionados componentes standard tais como pontos de massa, resistências, bobinas, condensadores e díodos, directa-mente da barra de menu:

Figura 3. Configurações avançadas de fontes de tensão. Figura 4. Opções de configuração para a simulação.

Personal Download for , Marcps | copyright Elektor

713487

Page 44: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

44 03-2012 elektor

Figura 5. Os sinais simulados (em cima) e o diagrama esquemático (em baixo).

Figura 6. Seleccionando a análise FFT. Figura 7. Parâmetros da análise FFT.

DicasComponentes Standard

Quando está a desenhar um diagrama esquemático, verifica que, quando selecciona alguns componentes, aparece uma lis-ta completa de referências como aquela que é apresentada na Figura 1, enquanto para outros componentes não são visualiza-das nenhumas referências. Por exemplo, se seleccionar a opção ‘Opamps’ vai ver uma longa lista de referências (principalmente de dispositivos da Linear Technology). Contudo, não são visu-alizadas referências se seleccionar um transístor NPN, embora esta lista exista. Primeiro coloque um transístor NPN standard

na área de desenho e clique nele com o botão direito do rato. Seleccione ‘Pick new transistor’, e vai ser apresentada uma lista de vários tipos de transístores de vários fabricantes. Isto funcio-na também com outros componentes standard.

- Outros componentes

O LTspice vem com um número limitado de componentes, mas podem ser encontrados mais no grupo de utilizadores do Yahoo para o LTspice: http://tech.groups.yahoo.com/group/LTspice/

713487

Personal Download for , Marcps | copyright Elektor

Page 45: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

INFORMAÇÃO

45elektor 03-2012

Pode utilizar os botões assinalados em baixo para esboçar o seu esquemático:

É recomendado que dispense algum tempo a experimentar estes botões para ter uma ideia do seu funcionamento.

Alguns atalhos muito úteis são Ctrl-R para rodar um componente e Ctrl-E para virar um componente.A Figura 2 mostra o primeiro esquemático que foi desenhado. Antes de o simular há duas coisas que têm de ser configuradas: a fonte de tensão ‘Vtest’ e os parâmetros da simulação.

Se clicar em ‘Vtest’ com o botão direito vai ver uma caixa de diá-logo onde podem ser configuradas as propriedades básicas da fonte de tensão (tensão DC e resistência interna). Contudo, neste exemplo, é pretendido simular o comportamento AC do circuito. Para isso é utilizado um sinal sinusoidal de teste com uma frequên-cia de 1 kHz, uma amplitude de 1 V e um offset de 0 V, que pode ser configurado ao clicar em ‘Advanced’.

Com isto abre-se uma caixa de diálogo (Figura 3), onde pode con-figurar uma variedade de formas de onda. Aqui foi seleccionado o botão próximo de ‘SINE’ e introduzidos os valores pretendidos.A próxima tarefa é simular o comportamento do circuito no domí-nio do tempo. Isto requer a modificação das configurações de simulação, que é feito utilizando o ‘Edit Simulation Cmd’:

Com isto abre-se a janela apresentada na Figura 4. Para ver o sinal de saída no domínio do tempo selecciona-se o separador ‘Tran-sient’, onde se podem alterar os parâmetros de simulação. Neste

caso foi decidido que a simulação dura 10 ms e que tem as fontes de tensão DC ajustadas para 0 V. Depois de clicar em ‘OK’, colo-que onde desejar a caixa com as configurações que aparece junto ao ponteiro do rato. Para uma análise no domínio da frequência, tem de seleccionar o separador ‘AC Analysis’ e configurar os seus parâmetros.Agora já pode iniciar a simulação, carregando no botão ‘RUN’.

Abre-se uma nova janela para visualizar o sinal simulado. Pode agora clicar nos pontos onde quer medir o sinal (o esquemático ainda é visível por baixo da janela de visualização). Neste exemplo foram escolhidos a fonte do sinal de teste e a saída do ampop. Os sinais presentes nestes pontos aparecem na janela de visualização (Figura 5).

Se clicar com o botão direito do rato no sinal, aparece um menu pop-up (Figura 6) que pode utilizar para modificar os parâmetros que controlam o sinal simulado. Entre outras coisas, pode seleccio-nar a análise FFT para visualizar o espectro de frequências clicando em ‘FFT’ e ‘View’. Com isto é aberta uma janela onde pode selec-cionar uma variedade de parâmetros (Figura 7). No topo selec-cione o nó do circuito para o qual pretende efectuar a análise FFT. Neste caso foi escolhida a saída do ampop, cujo espectro pode ser visualizado na Figura 8.

Agora já pode testar por si próprio o LTspice para conhecer o que o programa tem para oferecer. Deve experimentar também outros programas de simulação que têm, muitos deles, versões de demonstração ou para estudantes e que podem ser utilizadas para ganhar alguma experiência prática. Mesmo que os interfa-ces variem, as operações que tem de efectuar são sempre as mes-mas: desenhar um diagrama esquemático, configurar uma ou mais fontes de tensão de teste, configurar a simulação, e visualizar o resultado.

(110543-I) Artigo original: SPICE It Up! – November 2011

Figura 8. Resultado do cálculo da FFT.

713487

Personal Download for , Marcps | copyright Elektor

Page 46: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

TESTE & MEDIDA

46 03-2012 elektor

Monitorizador de tensão económico

Na edição de Janeiro de 2011 foi discutido o princípio da recolha e armazenamento de energia. A ideia é que o circuito funcione a partir de uma pequena fonte de energia, sem utilizar uma fonte de alimentação externa ou baterias.

Neste caso, a fonte de energia é um pequeno e barato painel solar com uma saída máxima de 1 V/100 mA. Este nível só é possível num dia sem nuvens e com o painel a receber a luz do sol directamente. Num dia nublado o painel gera apenas alguns mV e algumas dezenas de μA. É pos-sível fazer algo de útil com esta pequena quantidade de energia – não de forma con-tínua, mas por breves instantes e algumas vezes por dia.

ProjectoA Figura 1 mostra o diagrama de blocos. A saída do painel solar está ligada a um multi-plicador de tensão, que carrega o conden-sador de armazenamento CS. Foram discu-tidos alguns projectos de multiplicadores de tensão na edição de Janeiro de 2011 da Elektor, pelo que o multiplicador é aqui apresentado como um bloco funcional. O ampop do diagrama de blocos é um com-parador alimentado pelo condensador de armazenamento, e na prática tem também algumas resistências à sua volta. Quando a entrada positiva do comparador atinge o valor de limiar, a saída deste vai para o nível alto (nível da tensão de alimentação VS) fazendo conduzir o transístor. A corrente fornecida por Ct e Rt mantém o transístor a

conduzir durante algum tempo depois de a saída do comparador voltar ao nível baixo. Assim, a carga continua a funcionar desde que haja energia disponível em CS. A este tipo de projecto dá-se o nome de “motor solar” (pode encontrar informação sobre motores solares na internet [1]).

Numa manhã nublada, a corrente de carga é de apenas 20 μA ou 30 μA, pelo que o condensador de armazenamento vai ser carregado muito lentamente. É necessá-rio verificar continuamente se foi armaze-nada energia suficiente, mas não se pode utilizar um temporizador porque não são utilizadas baterias. Experiências feitas com um monitorizador de tensão utilizando um MAX8282 [2] [3] como comparador tive-

Rolf Blijleven (Holanda)

Cs

COMP

D

CtRt

Circuito elevador

de tensão

T

Carga

Vref

VSVCC = VS

110662 - 11

VS

MAX931

D

CtRt

T1

Carga

Vref

VSVC

R3

10M

Vhyst

R1

5M9

1%

R2

5M9

1%

Cs

2u2Tant.

220R

TC54VC27

**

110662 - 12

VCVS

VS

0V

Vth+

Vth-

ZVN4424A1N5817

Figura 1. Digrama de blocos básico do circuito de recolha e armazenamento de energia.

Figura 2. Diagrama esquemático do monitorizador de tensão energeticamente eficiente. Todos os semicondutores

estão disponíveis em formato standard e SMD.

Alimentar circuitos autónomos a partir de painéis solares é perfeitamente possível desde que não seja

necessário um funcionamento contínuo. Pode acumular energia, que é relativamente baixa,

de painéis solares até ter o suficiente para a alimentar o circuito por breves instantes. Como é que

pode saber se já tem energia suficiente? Tem de utilizar um circuito de monitorização de tensão.

Mas o circuito também consome energia, não devendo utilizar a energia acumulada

– ou pelo menos deve utilizar o menos possível. Cada μA pode fazer diferença!

713487

Personal Download for , Marcps | copyright Elektor

Page 47: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

TESTE & MEDIDA

47elektor 03-2012

ram resultados utilizáveis mas não intei-ramente satisfatórios. Este circuito inte-grado, com a sua resistência de configu-ração, consumia cerca de 6 μA – mais de 25% da corrente de carga numa manhã nublada.

Solução práticaA Figura 2 mostra uma solução melho-rada: o detector de tensão TC54VC27, um pequeno circuito integrado com três ter-minais, que consome menos de 1 μA desde que a tensão de alimentação esteja abaixo do limiar de tensão interno (2,7 V), que é o caso da maior parte dos ciclos de carga.Acima do limiar, o TC54VC27 liga a ten-são de entrada à saída. A transição tem de ocorrer em condições controladas, por-que a saída do TC54VC27 também fornece energia ao comparador – um MAX931 da Maxim que tem uma corrente de funcio-namento em repouso de 4 μA. A saída do comparador pode ir para o nível alto se a tensão de alimentação for aplicada brus-camente, fazendo conduzir brevemente o transístor, o que baixa a tensão VS. Se isto acontecesse, a tensão em CS nunca atingia o nível desejado, pelo que foi adicionada uma rede RC (220 Ω / 2,2 μF) para preve-nir este comportamento. O MAX931 per-manece desligado até que seja atingido o limiar de tensão Vth+. Esta tensão é deter-minada por R1, R2 e R3 e vale aproxima-damente 3,1 V com os valores especifica-dos para as resistências. A diferença entre este valor e 2,7 V pode parecer pequeno, mas é significativo. Vai notar a diferença se a carga for um motor eléctrico. O cálculo para os valores de R1 e R2 está descrito com detalhe na folha de características do MAX931 [4]. Para tensões entre 2,7 V e o limiar de tensão, o circuito integrado moni-torizador de tensão consome 5 μA.

Os dispositivos TC54VC27 estão disponí-veis com várias tensões de limiar, entre 1,4 V e 7,7 V (ver folha de características [5]). Poderia ter sido utilizado um dispositivo com uma tensão de limiar mais próxima de Vth+, e fica a dúvida se o comparador é realmente necessário. A resposta é sim, porque o transístor tem de ter um ponto de comutação bem definido. O TC54VC27 começa a conduzir a cerca de 2,76 V e se o MOSFET estivesse ligado directamente ao

TC54VC27 começava a conduzir, e a ten-são em CS baixava, sendo que o TC54VC27 deixava de funcionar. Uma resistência de realimentação entre a entrada e a saída do TC54VC27 não é solução, porque retirava corrente de CS.

A constante de tempo de Ct/Rt determina até quando o transístor continua a condu-zir, não devendo CS ser descarregado mais do que o necessário para permitir à carga funcionar correctamente. Suponha que a soma da resistência de carga com a resis-tência RdsON do MOSFET tem um valor de 25 Ω e que CS consiste em três condensa-dores de 4700 μF em paralelo (14,1 mF). Isto significa que CS é totalmente descar-regado em 0,35 s. Se 0,2 s forem suficien-tes, um terço da carga pode ser retido em CS, o que reduz o tempo necessário para a recarga. Se Ct=2,2 μF, então Rt pode ter um valor de 100 kΩ. O valor da tensão VS

em ordem ao tempo é apresentado no diagrama.

Embora as diferenças pareçam peque-nas, estas são evidentes. O autor, como não pretendia estar constantemente a controlar o multímetro para testar o cir-

cuito, montou um espanta-espíritos com um motor eléctrico, podendo ouvir quan-tas vezes a fonte de energia atingia valo-res utilizáveis (ou como estava o tempo na rua). Com o projecto aqui descrito o espanta-espíritos tocou várias vezes por dia mesmo com o céu nublado. Se tivesse sido utilizado um projecto menos eficiente energeticamente, o espanta-espíritos fica-ria quieto nestas condições.

(110662-I)

Artigo original: Economical Voltage Monitor – November 2011

Internet

[1] http://library.solarbotics.net/circuits/se.html

[2] www.maxim-ic.com/datasheet/index.mvp/id/1273

[3] www.iamwhen.com/archives/53-Herbert -1701-Species-B-Generation-1.html

[4] www.maxim-ic-com/datasheet/index.mvp/id/1219

[5] http://www.microchip.com/downloads/en/DeviceDoc/21434h.pdf

Figura 3. O espanta-espíritos toca quando for colectada energia suficiente. Assim, não necessita de estar constantemente a verificar o medidor.

713487

Personal Download for , Marcps | copyright Elektor

Page 48: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

HARDWARE & SOFTWARE

48 03-2012 elektor

ScilabNúmero um em cálculo numérico open-sourceVincent Couvert, Bruno Jofret e Julie Paul (França)

O software para cálculo numérico fornece aos engenheiros

um conjunto de ferramentas de estudo e projecto, e alguns

programas simulação e modelação. Este software tem-se tornado

indispensável para a indústria, a qual utiliza modelos de automóvel,

aeronáuticos, de energia, químicos, financeiros, e muitos outros

campos. Inclusive, permite até à indústria reduzir, e em algumas vezes

até mesmo evitar, a execução de testes muito dispendiosos – que são mais

complexos de efectuar numa situação real.

Para permanecer cada vez mais com maior competitividade e para responder aos sempre crescentes custos, o mundo da indústria está a ter cada vez mais interesse neste tipo de software, que se está a mostrar um ponto de competitividade muito sério para o proprietário do software que utilizam. Actualmente, optar por software open-source não é uma coisa que preocupe apenas o público em geral no que diz respeito a browsers de Internet ou processadores de texto; como por exemplo, o OpenOffice.org foi adoptado por inúmeros escritórios administrativos em França, estando agora também o software para a indústria envolvido nesta questão.

Suportado por um consórcio de utilizadores industriais, e já em utilização por todo o mundo, o Scilab [1] representa agora uma credível alternativa ao Matlab [2]. Para além do benefício do custo associado, o que não é assim tão insignificante, o acesso ao código fonte assim como o seu controlo constitui um argumento decisivo que tem estado a ser adoptado por vários utilizadores, incluindo sectores estratégicos da defesa e aeronáutica. O mundo acadé-mico já adoptou largamente o Scilab, que em Junho de 2011 foi reconhecido como sendo de elevado valor educacional pelo Minis-tério da Educação Francês.

Software Scilab na práticaO Scilab é um programa freeware distribuído sob uma licença CeCILL (compatível com GPL). Está disponível para os sistemas operativos mais comuns (Windows, Mac e Linux) e pode ser des-carregado gratuitamente a partir da internet [1]. O Scilab é um ambiente de desenvolvimento completo, aberto e expansível, para cálculo numérico e visualização. Baseado em cálculo matri-cial, o software integra centenas de funções matemáticas e uma linguagem de programação potente. Oferece capacidades de ligação com outros programas escritos em várias linguagens de programação (C, C++, Java). A sintaxe do Scilab é comparável à

do Matlab em muitos pontos, embora não seja 100% compatível. A sua funcionalidade é também muito grande, e os utilizadores podem adicionar numerosos módulos externos para simulação, visualização gráfica, optimização, estatística, sistemas de investi-gação e desenvolvimento e controlo, e processamento de sinais, entre outros.

Tal como muito outro software gratuito, o Scilab permite alguma interoperabilidade. Os utilizadores podem adaptá-lo às suas neces-sidades e ampliar as suas funções. Por exemplo, a gateway entre a National Instruments LabVIEW [3] e o Scilab permite efectuar um processamento de dados de elevado desempenho. Os utilizadores podem escrever os seus scripts Scilab directamente no LabVIEW e chamar o Scilab para analisar e visualizar os dados.

Ambiente de desenvolvimento integradoO Scilab oferece um ambiente de desenvolvimento integrado e ergonómico, muito fácil de entender e começar a utilizar. A sua consola facilita a sua utilização, mostrando linhas de comando e resultados. O editor de texto e funções avançadas permitem gravar os seus programas e depois recuperar o seu ambiente de trabalho da próxima vez que seja executado. Disponibiliza ainda uma interacção total com a consola, por exemplo, permitindo aos utilizadores executar totalmente ou uma parte de um ficheiro enquanto está a ser editado.

Funções de visualização avançadasEstão incluídas com este software funções gráficas para visuali-zação 2D e 3D, processamento e exportar dados. Estas oferecem muitos modos diferentes de criar ao seu gosto vários tipos de gráficos e diagramas. Desta forma, os resultados calculados pelo utilizador na consola do Scilab podem ser visualizados de forma interactiva.Para dar uma melhor ideia das funções do software, vamos apre-

713487

Personal Download for , Marcps | copyright Elektor

Page 49: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

HARDWARE & SOFTWARE

49elektor 03-2012

sentar dois exemplos de como utilizar o software no campo do processamento de sinal.

Exemplo 1: Filtragem digital usando o ScilabNeste exemplo, o Scilab é usado para filtrar um sinal proveniente de um ficheiro de som do tipo WAV. Todas as ferramentas neces-sárias para executar esta tarefa estão incluídas no Scilab: leitura/escrita de ficheiros, cálculo de transformada de Fourier FFT (Fast Fourier Transform), cálculo e aplicação de filtros digitais.

O ficheiro de som, que deve estar colocado na pasta corrente do Scilab (podendo ser consultada e modificada pela função cd do Scilab) e com o nome de NoisySignal.wav [4], é carre-gado usando a função loadwave que retorna os dados do som na forma de um vector, em conjunto com alguma informação sobre o ficheiro (por exemplo, a frequência de amostragem, entre outras coisas).

No editor de texto, introduzimos as seguintes linhas de código e depois executamo-las seguintes e então os executamos (menu Run):

stacksize(“max”); // Increase memory for Scilab[noisySignal, noisySignalInfo] = loadwave(“NoisySignal.wav”);sampleFrequency = infosSignal(3)samples = infosSignal($)

O que mostra na consola:

-->sampleFrequency = noisySignalInfo(3) sampleFrequency = 22050. -->samples = noisySignalInfo($) samples = 373380.

Os resultados obtidos indicam-nos que o sinal foi amostrado a uma frequência de 22.050 Hz e que o nosso sinal contém 373.380 amostras (valores). A função plot permite-nos mostrar o sinal no display (Figura 1):

plot(noisySignal)xtitle(“Input signal with noise”); // Title of the graph

De modo a identificar as frequências que estão a mascarar o sinal pretendido, calculamos a transformada de Fourier do sinal usando a função , e depois o seu módulo usando a função abs:

FftOfNoisySignal = abs(fft(noisySignal));scf(); // Open a new graphics windowplot(FftOfNoisySignal);xtitle(“FFT of input signal”)

Usando a função plot, obtemos o gráfico apresentado na Figu- ra 2. Isto mostra que este sinal simétrico tem ruído em duas fre-quências distintas. Consequentemente vamos ter que efectuar duas filtragens sucessivas para recuperar o sinal pretendido. A identificação precisa das frequências dos sinais de ruído é mais fácil no Scilab com as suas numerosas funcionalidades de cálculo matricial: operações matemáticas, identificação do valor máximo e da sua posição dentro dos dados...Ao executar o seguinte código a partir do editor de texto podemos definir a frequência a que corresponde o pico:

// The FFT is symmetrical, we only keep the first half of the samples frequencies = sampleFrequency*(0:(samples/2))/samples;

// Find the highest peak in the FFT to filter it out[peakValue, peakValueIndex] = max(FftOfNoisySignal(1:size(frequencies, “*”)));peakValueIndexfrequencies(peakValueIndex)

Figura 1. O sinal de entrada. Figura 2. A transformada de Fourier do sinal de entrada mostra que o mesmo contém ruído em duas frequências distintas.

713487

Personal Download for , Marcps | copyright Elektor

Page 50: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

HARDWARE & SOFTWARE

50 03-2012 elektor

Agora, vamos verificar os resultados na consola:

-->peakValueIndex peakValueIndex = 23657. -->frequencies(peakValueIndex) ans = 1397.0079

O primeiro pico representa o ruído a uma frequência de 1397,0079 Hz. Um filtro elimina banda do tipo Butterworth de 3ª ordem com uma largura de banda de 200 Hz e centrado nessa frequência per-mite eliminar este ruído. A função de transferência deste filtro é obtida usando a função iir:

hz = iir(3, “sb”, “butt”, [frequencies(peakValueIndex)-100 frequencies(peakValueIndex)+100]/sampleFrequency, [0 0]);

Para apresentar o diagrama de Bode do filtro usamos simples-mente a função bode (Figura 3). Agora, tudo o que temos que fazer é aplicar este filtro ao sinal com ruído usando uma simples linha de código:

// Filtering input signalfilteredSignal = filter(hz.num, hz.den, filteredSignal);

O sinal resultante ainda possui ruído na segunda frequência, tal como vimos pela transformada de Fourier na Figura 4 (calculada usando o mesmo método visto anteriormente). Este gráfico con-firma que realmente o primeiro pico foi eliminado. Agora pre-cisamos de filtrar o segundo pico com a ajuda de um outro fil-tro elimina banda (por exemplo, um filtro do tipo Chebyshev de 3ª ordem) centrado na frequência a que corresponde este pico, usando a mesma técnica que antes:

// Find the second peak in the FFT to filter it out[peakValue, peakValueIndex] = max(FftOfNoisySignal(1:size(frequencies, “*”)));

peakValueIndexfrequencies(peakValueIndex);// Calculate corresponding Chebyshev filterhzFiltre2 = iir(3, “sb”, “cheb1”, [frequencies(peakValueIndex)-100 frequencies(peakValueIndex)+100]/sampleFrequency, [0.01 0]);// Filter the filtered input signalfilteredSignal = filter(hz.num, hz.den, filteredSignal);

Na Figura 5 apresentamos o resultado:

scf();plot(filteredSignal)xtitle(“Input signal filtered twice”)

O sinal original está agora completamente filtrado e um cálculo final da transformada de Fourier do sinal mostra que ambas as fre-quências de ruído que estavam presentes no nosso sinal original foram realmente eliminadas (Figura 6):

FftOfFilteredSignal = abs(fft(filteredSignal));scf();plot(frequencies, FftOfFilteredSignal(1:size(frequencies, “*”)));xtitle(“FFT of input signal filtered twice”)

Por fim, gravamos o nosso resultado num ficheiro do tipo WAV:

savewave(“SoundFiltered.wav”, filteredSignal)

Exemplo 2: Detecção de contornosNo campo do processamento de imagem, e de uma forma mais ampla visão por computador, a detecção de contornos é um dos primeiros passos necessários para os algoritmos mais complexos usados para detecção de objectos, detecção de faces (localização de caras), e aí por diante. Tudo o que temos que fazer é representar a imagem na forma de uma matriz de valores (normalmente a níveis de cinzento) e aplicar o processamento pretendido a essa matriz. Aqui neste caso, o Scilab desempenha um duplo papel, permitindo--nos mostrar tanto a imagem assim como as alterações na mesma durante as fases de processamento, assim como também manipular os dados usando as capacidades de cálculo matricial disponíveis.

Figura 3. O diagrama de Bode do filtro IR que vai filtrar o sinal de 1397 Hz.

Figura 4. Depois de filtrado, o sinal de entrada agora apenas tem um sinal interferente.

713487

Personal Download for , Marcps | copyright Elektor

Page 51: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

HARDWARE & SOFTWARE

51elektor 03-2012

Este exemplo aplica um método de gradiente de primeira ordem implementado usando um método de filtragem de Prewitt, Sobel Scharr.A imagem no formato PGM (Portable Graymap, uma imagem com níveis de cinzento) a que nós demos o nome de Scilab.pgm [4] é carregada usando a função readimage [4]. Esta função abre o ficheiro, e lê a dimensão da imagem e depois os níveis de cinzento associados a cada pixel (valores entre 0 e 255), retornando a ima-gem na forma de uma matriz.

stacksize(“max”); // Increase memory allocated to Scilabgray_m = readimage(“Scilab.pgm”);

Por simplicidade, no resto deste exemplo, vamos usar a função showImage para exibir todas as futuras transformações em níveis de cinzento. Esta função baseia-se numa das funções nativas do Scilab, Matplot [5], que permite representar uma matriz. Usando a tabela de níveis de cinzento correspondente, podemos apresen-tar a imagem:

function []=showImage(imageMatrix) f = Figure(); f.color_map = graycolormap(255); f.background = -2; Matplot(imageMatrix); endfunction

showImage(gray_m);

A imagem carregada no Scilab é exibida numa janela gráfica (Figura 7).A detecção de contornos numa imagem com níveis de cinzento é efectuada usando cálculos sobre uma matriz 2D. É possível trabalhar com matrizes de dimensão N para representar imagens a cores (RGB, RGBA, CMYK, HSV, etc.). O processo a aplicar será aplicado a cada canal, ou então combinado entre eles para obter outros resultados.O próximo passo na detecção de contornos consiste na aplicação de filtros para suavizar e reduzir o ruído na imagem original, e obter melhores resultados na detecção final. O Scilab permite-nos definir a função de filtragem usando um produto de convolução e uma matriz gaussiana 2D. Isto tem como parâmetro a matriz que representa a imagem e retorna uma outra matriz que representa a imagem filtrada.

São artificialmente adicionadas duas filas de pixels em torno da extremidade da imagem para permitir implementar o produto de convolução com a ajuda da função sum e o produto de matri-zes. Estas funções estão optimizadas no Scilab e têm um melhor desempenho do que se cada uma das operações fosse executada elemento a elemento.

function N=blurr(P) N = zeros(P); P2 = [zeros(1,size(P,”c”)); zeros(1,size(P,”c”)); P; zeros(1,size(P,”c”)); zeros(1,size(P,”c”))] P2 = [zeros(size(P2, “r”), 1), zeros(size(P2, “r”), 1), P2, zeros(size(P2, “r”), 1), zeros(size(P2, “r”), 1)] K = 1/159 * [2 4 5 4 2 4 9 12 9 4 5 12 15 12 5 4 9 12 9 4 2 4 5 4 2];

for x=3:(size(P2, “r”) - 2) for y=3:(size(P2, “c”) - 2) r = 0; N(x-2,y-2) = sum(K .* P2(x-2:x+2, y-2:y+2)); end endendfunction

Uma implementação mais ingénua do produto de convolução, como a que existe em diversa literatura, permitiria obter resul-tados numéricos equivalentes, mas com tempos de cálculo mais longos.

function N=dummy_blurr(P) N = zeros(P); K = 1/159 * [2 4 5 4 2 4 9 12 9 4 5 12 15 12 5 4 9 12 9 4 2 4 5 4 2]; for x=1:size(P, “r”) for y=1:size(P, “c”)

Figura 5. A filtragem tornou possível eliminar ambos os sinais de interferência.

Figura 6. Transformada de Fourier do sinal de entrada filtrado.

713487

Personal Download for , Marcps | copyright Elektor

Page 52: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

HARDWARE & SOFTWARE

52 03-2012 elektor

r = 0; for i = -2:2 for j = -2:2 if (x + i > 0 & x + i <= size(P, “r”) & y + j > 0 & y + j <= size(P, “c”)) r = r + K(i+3, j+3) * P(x+i, y+j) end end end N(x,y) = r; end endendfunction

A imagem filtrada obtida (Figura 8), que para uma análise a olho nu deve parecer desfocada, vai ser usada para efectuar o cálculo do gradiente que vai fazer sobressair os contornos na imagem.

Para este cálculo de gradiente, usamos filtros de Sobel (Figu- ra 9) e Prewitt (Figura 10). Ambos estes filtros são possíveis através de um produto de convolução usado para calcular o gradiente.

function N=convol2d(K, P) N = zeros(P); P2 = [zeros(1,size(P,”c”)); P; zeros(1,size(P,”c”))] P2 = [zeros(size(P2, “r”), 1), P2, zeros(size(P2, “r”), 1)] for x=2:(size(P2, “r”) - 1) for y=2:(size(P2, “c”) - 1) r = 0; N(x-1,y-1) = sum(K .* P2(x-1:x+1, y-1:y+1)); end endendfunction

Figura 7. Imagem original em tons de cinzento. Figura 8. Imagem original filtrada suavemente para facilitar a detecção dos contornos.

O Scilab não é o único programa de cálculo numérico gratuito e open-source Aqui ficam outros três exemplos que merecem uma atenção:– O Octave é uma linguagem de programação interpretada es-truturada tipo a linguagem C, que aceita várias construções a partir da biblioteca C standard. Pode ser estendida para aceitar funções de Unix e chamadas de sistema, podendo mesmo serem usadas funções escritas em C++. Para a maioria dos comandos, a sintaxe é igual à do MATLAB, e uma programação cuidadosa permite executar scripts tanto no Octave como no MATLAB. (fonte: Wikipedia)www.gnu.org/software/octave/– O FreeMat é um ambiente de cálculo computadorizado e uma linguagem de programação, na forma de um software gratuito,

relativamente compatível ao nível do código fonte com o Matlab e o Octave. Pode ser facilmente interligada com código externo escrito em C, C++, e Fortran. Oferece a possibilidade de desen-volver algoritmos distribuídos paralelos, tendo algumas capaci-dades para trabalhar com visualização 3D. A versão actual cor-responde à 4.0 de Outubro de 2009. (fonte: Wikipedia)http://freemat.sourceforge.net– O JMathLib é apresentado como um clone Java do Scilab, Octave, Freemat e Matlab. Tal como o Freemat, este projecto pa-rece menos activo que o Scilab e o Octave. A versão actual deste software corresponde à 0.9.4 de Fevereiro de 2009.www.jmathlib.de/

713487

Personal Download for , Marcps | copyright Elektor

Page 53: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

HARDWARE & SOFTWARE

53elektor 03-2012

Sobel:

GX = convol2d([-1 0 1 ; -2 0 2 ; -1 0 1], gray_m);GY = convol2d([-1 -2 -1 ; 0 0 0 ; 1 2 1], gray_m);contourSobel = sqrt(GX.^2+GY.^2);showImage(contourSobel);

Prewitt:

GX = convol2d([-1 0 1 ; -1 0 1 ; -1 0 1], gray_m);GY = convol2d([-1 -1 -1 ; 0 0 0 ; 1 1 1], gray_m);contourPrewitt = sqrt(GX.^2+GY.^2);showImage(contourPrewitt);

Outra formula fornece resultados mais satisfatórios usando um modelo de convolução diferente: Costella, Robert Cross e Scharr. É fácil implementar estes métodos no Scilab graças a uma lingua-gem que é bastante simples e razoavelmente próxima da matemá-tica (nenhuma declaração de variáveis, sem escrever, sem aloca-ção de espaço de memória, etc.). Por exemplo, o filtro de Scharr (Figura 11) é implementado através das seguintes linhas:

GX = convol2d([3 0 -3 ; 10 0 -10 ; 3 0 -3], gray_m);GY = convol2d([3 10 3 ; 0 0 0 ; -3 -10 -3], gray_m);contourScharr = sqrt(GX.^2+GY.^2);showImage(contourScharr);

Esta matriz pode ser usada como base para outros algoritmos de detecção de contornos. Este é apenas um passo inicial no proces-samento de imagem. Podemos ir mais longe ao efectuarmos fil-tragens adicionais com valores de limiar diferentes. Os contornos mais pronunciados correspondem às áreas mais claras que são retidas e as outras eliminadas. Desse modo, a matriz obtida deste modo vai conter apenas zeros (0) e uns (1) para cada pixel reco-nhecido como fazendo parte de um contorno.Existem uma infinidade de possíveis exemplos de utilização para o Scilab para vários campos muito diversos de aplicações. Um dos futuros temas que poderá vir a ser abordado pela Elektor poderá passar pela Xcos, uma ferramenta do Scilab para modelação e simulação de sistemas dinâmicos híbridos – o equivalente do Simulink do Matlab.

(110491)Artigo original: Scilab – January 2012

Internet

[1] Scilab: www.scilab.org

[2] Matlab: www.mathworks.com/matlab

[3] LabVIEW: www.ni.com/labview

[4] www.elektor.com.pt/110491

[5] Ajuda com a função Matplot: http://help.scilab.org/docs/current/fr_FR/Matplot.html

Figura 9. Os contornos revelados por um filtro de Sobel.

Figura 10. Os contornos definidos pelo filtro de Prewitt.

Figura 11. Os contornos depois do filtro de Scharr.

713487

Personal Download for , Marcps | copyright Elektor

Page 54: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

54 03-2012 elektor

Sistema de barramento doméstico (The Bus!) 7Um protocolo de aplicação simples

Na edição anterior apresentámos um sim-ples protocolo com uma trama que permi-tia enviar uma quantidade de dados úteis de um dispositivo emissor para um dis-positivo receptor com um determinado endereço. Para se lembra dos detalhes veja a Figura 1. Uma mensagem no protocolo de Mensagens Elektor consiste essencial-mente em 16 bytes, onde o byte zero tem sempre o valor AAhex (170 decimal) com o objectivo de sincronização. Se ambos os bits 7 e 6 do byte de modo seguinte forem

zero, os bytes 2 a 5 são usados para ende-reço. Uma vez que os bytes E e F estão reservados para a soma de verificação (checksum) opcional, é possível utilizar oito bytes para os dados.Vimos também como poderíamos de uma forma simples controlar o tráfego no bar-ramento (modo híbrido). Os nós que têm que enviar mensagens numa base regular (como os sensores) são interrogados à vez por uma tarefa de escalonamento (schedu-ler). Entre estes tempos temos a fase deno-

minada por “barramento livre” durante a qual os nós podem comunicar sem serem especificamente interrogados. Durante este período podem ocorrer colisões, sendo que dessa forma as mensagens não agendadas (por outras palavras, as mensa-gens transmitidas durante a fase de barra-mento livre) têm que ter um mecanismo de reconhecimento da sua recepção no destino (acknowledged). Isso é efectuado enviando uma mensagem de volta para o emissor com essa informação.

Serviço Elektor

Refª 110258-1

Refª 110258-1C3).

Refª 110258-91). 110382

MONTAGEM

Jens Nickel (Elektor)

Neste artigo, o nosso barramento continua a sua saga. Vamos então descrever um simples

protocolo que permite ter até quatro pontos de ajuste e os correspondentes valores instantâneos

a transmitir simultaneamente. O resultado é ideal não apenas para aplicações de domótica,

mas numa maneira mais geral para medida e controlo. Também, pela primeira vez, vamos abordar

a questão da programação C com o AVR Studio.

Personal Download for , Marcps | copyright Elektor

713487

Page 55: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

55elektor 03-2012

As mensagens não agendadas são neces-sárias quando um determinado nó precisa de comunicar algo como resultado de um evento externo, mas de outra forma pode-ria manter-se em silêncio. Tendo como interesse a eficiência é melhor não inter-rogar o nó periodicamente neste caso. Um exemplo de um nó deste tipo no que diz respeito à automação doméstica poderá ser um interruptor de luz. De forma equi-valente, poderemos ter um sensor que apenas precisa de informar a rede quando um determinado valor vai para fora de limi-tes predefinidos, por exemplo, um sensor detector de nível de água.

Sub-nósO modo híbrido é particularmente útil quando um nó tem que ser interrogado regularmente e precisa também de enviar mensagens activadas por eventos. Pense, por exemplo, num sensor de temperatura que regularmente informa a temperatura actual mas que também tem que moni-torizar essas leituras e gerar um evento quando a mesma ultrapassa um deter-minado limiar. Esta possibilidade não foi explicitamente coberta na edição anterior: no software de demonstração apresentado havia uma distinção rígida entre nós inter-rogados e nós actuados por eventos [1]. Um leitor mais atento sugeriu-me imedia-tamente que poderia ser possível ter um nó que tivesse ambos os comportamen-tos simultaneamente. Francis Stevenson avançou ainda com a ideia de que um nó sensor deste tipo deveria sempre informar primeiro o facto de que o limiar foi ultra-passado, quer se encontra-se na fase de interrogação periódica ou durante a fase de barramento livre. Esta é uma boa ideia, especialmente para mensagens particular-mente urgentes.Eu e o Francis discutimos também a possi-bilidade de ser possível ter mais do que um dispositivo no mesmo nó físico. Uma placa do nó responderia então a mais do que um único endereço, podendo-se vir a reduzir os custos totais do hardware. O firmware executado no microcontrolador tem que ter a certeza que as mensagens são envia-das correctamente para as subunidades dentro do nó. O mesmo princípio básico foi usado no software de demonstração da última edição [1], onde o PC assumiu

simultaneamente os papéis de escalo-nador (endereço 0) e dispositivo master (endereço 10).

Mais canaisNo entanto, se apenas tivermos um par de simples sensores e ou actuadores num nó, a divisão de dispositivos cada um com o seu próprio endereço não é necessária. Na realidade, esta seria muito ineficiente se cada sensor tivesse que enviar uma mensa-gem separada com o seu próprio endereço de emissor para o dispositivo master para comunicar apenas um único valor. Uma melhor abordagem neste tipo de casos é usar canais (hello DMX!). Como temos oito bytes de dados disponíveis numa única mensagem, podemos facilmente enviar quatro leituras de temperatura (cada uma consiste em dois bytes) em simultâneo. Isso encaixa perfeitamente no hardware do nosso nó experimental, possui quatro entradas de conversão A/D disponíveis no conector K4.

Quais os bytes dos dados que correspon-dem a qual canal (e consequentemente a que sensor) depende simplesmente da sua posição na trama: o valor para o canal 0 é enviado em primeiro lugar, seguido

do valor para o canal 1, e assim por diante (Figura 2). Usando a mesma ideia podemos também controlar até quatro actuadores usando uma única mensagem, assumindo sempre, claro, que cada valor de controlo pode ser expresso em dois bytes. No soft- ware de demonstração da edição anterior usámos dois bytes para comunicar um dos valores de 10 bits lido pelo conversor A/D do microcontrolador. Colocámos os sete bits de menor peso num byte de dados e os três bits de maior peso no byte de dados seguinte. Isto tem a vantagem de prevenir que o valor AAhex possa ocorrer no campo de dados, o que, caso contrário, confundi-ria o nosso simples sistema de sincroniza-ção. Podemos usar o mesmo truque para cada um dos valores dos nossos canais: e já estamos a meio caminho de definir o nosso protocolo de aplicação!

Protocolo de Aplicação ElektorPrecisamos de um protocolo de aplicação que seja mutuamente reconhecido pelos diferentes nós no barramento (sensores e actuadores) e que permita uma fácil expan-são para acomodar o hardware de novos dispositivos. Assim, para que não tenha-mos de estar sempre a reinventar o proto-colo, mantivemos o Protocolo de Aplicação

0 1 0 1 0 1 0 1 0

BYTE 7

BIT MODO 00

6 5 4 3 2 1 0

1

ID

0 0 0 0 0 0 0

110382 - 12

0 = 00hex23456789ABCDEF

ENDEREÇO EMISSOR

ENDEREÇO DESTINATÁRIO

CRC

DADOS

0 1 0 1 0 1 0 1 0

BYTE 7

BIT MODO 00

6 5 4 3 2 1 0

1

ID

0 0 0 0 0 0 0

110382 - 13

0 = 00hex23456789ABCDEF

ENDEREÇO EMISSOR

ENDEREÇO DESTINATÁRIO

CANAL 00H

0L

1H

1L

2H

2L

3H

3L

CANAL 1

CANAL 2

CANAL 3

CRC

Figura 1. O protocolo da Elektor define apenas onde os dados se encontram

localizados dentro da trama [6].

Figura 2. O nosso protocolo de aplicação divide os oito bytes de dados em

quatro pares consecutivos de bytes. Os valores são transmitidos em um dos quatro canais (para os sensores

e actuadores ligados a um nó).

713487

Personal Download for , Marcps | copyright Elektor

Page 56: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

MONTAGEM

56 03-2012 elektor

Elektor relativamente simples e mesmo assim flexível, cumprindo os seguintes requisitos mínimos.

Transmissão de valores de 10 bits com sinal, quer seja de uma leitura de um sensor ou, na outra direcção, um valor de controlo para um actuador.

A opção de usar 20 bits mais sinal, para o qual precisamos de um modo de quatro bytes por canal.

Configuração de unidades e factores de escala para nós de sensores inteligentes.

Configuração de intervalo de medida para nós de sensores.

Configuração de múltiplos limiares.Notificação de alarmes de valor acima ou

abaixo de um determinado limiar.Configuração ou retorno aos valores por

defeito (para actuadores).Distinção entre uma mensagem de ack-

nowledge, que contém os valores recebi-dos enviados de volta para o emissor para verificação, e a mensagem original (já implementámos esta funcionalidade no software apresentado na edição anterior).

O protocolo não deve estar limitado na sua utilização no modo híbrido ou para

aplicações de automatização doméstica. Por exemplo, deve ser perfeitamente ade-quado para interrogação de um disposi-tivo de medida ou outra aplicação ponto--a-ponto (na qual as colisões podem ser completamente evitadas).

Controlo com 10 bitsPara que este artigo seja mais do que uma simples folha de características vamos ana-lisar um pouco mais profundamente as funções apresentadas anteriormente.Vamos começar com a comunicação de valores de 10 bits que, tal como mencioná-mos anteriormente, estão divididos entre os dois bytes que constituem o canal 0. Cha-mamos aos dois de 0H (para a parte alta –

High) e 0L (para a parte baixa – Low). Como a Figura 3 mostra, os bits 0H.7 e 0L.7 (os bits de maior peso dos dois bytes de dados) são sempre zero, para que não seja possível obter o valor AAhex nesses bytes. Isto faz com que sejam consumidos 50% dos valo-res possíveis para cada byte, mas podemos sempre usar os valores restantes para fun-ções especiais se quisermos.

Reservámos o bit 0H.3 para o sinal do valor: o valor 1 representa um número negativo, e o 0 um número positivo. Os bits de dados D9 a D0 são então agrupados da forma como se descreve a seguir. Três bits são deixados de parte, que usamos da seguinte forma.

Usando o AVR Studio e o BASCOM em paraleloCom o chegar desta edição vamos então cumprir a minha pro-messa de apresentar algum código C para o sistema. A nova ver-são do ambiente de desenvolvimento AVR Studio (5.0) inclui um compilador C integrado (AVRGCC) por detrás do seu interface potente e fácil de usar; é gratuito se for descarregado a partir do site da Atmel [3] (após se registar).O primeiro problema é fazer com que o ambiente de desen-volvimento AVR Studio consiga comunicar com o programador AVRISP mkII. Embora já tenha instalado o controlador necessá-rio aquando da instalação do próprio ambiente de desenvolvi-mento, ao princípio as coisas não funcionaram correctamente. O problema foi que o programador estava ligado ao controlador libusb que tinha instalado para usar com o BASCOM. A desins-talação do controlador libusb resolver o problema, e passei a conseguir programar dispositivos a partir do AVR Studio sem qualquer dificuldade adicional, simplesmente ligando o progra-mador a uma porta USB. A imagem mostra como as coisas apa-recem no Gestor de Dispositivos do Windows 7 quando estão configuradas correctamente. Claro que, pretendia utilizar tam-bém o BASCOM ao mesmo tempo, e isto também é possível de efectuar: o controlador libusb tem que ser instalado como um controlador de filtro (filter driver), pode ver como fazer isso na Internet [4].Quando estiver a configurar um novo projecto no AVR Studio é necessário especificar o processador alvo. Felizmente, não exis-te muito mais para configurar. Pressionando F7 (ou ‘Build Solu-tion’ no menu) cria um ficheiro hexadecimal a partir do código fonte e bibliotecas referenciadas.

Para programar o dispositivo alvo clique no botão com o ícone com o raio. Na janela do programador que se abre primeiro faça um clique no botão ‘Apply’ na direcção do topo (com as confi-gurações Tool=AVRISP mkII, Device=ATmega88, Interface=ISP). O notão ‘Program’ está localizado debaixo de ‘Memories’. O caminho para o ficheiro hexadecimal deve ser introduzido na combo box acima.

01

(2/4)SET/

CURRENTACK /

ORIGINAL D9 D8 D7

0 D6 D5 D4 D3 D2 D1

110382 - 14

D0

7

BIT

6 5 4 3 2 1 0

xH

xL

Figura 3. Os dois bytes que constituem um canal em mais detalhe. Podemos transmitir valores até 10 bits de precisão, mais um bit de sinal.

713487

Personal Download for , Marcps | copyright Elektor

Page 57: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

MONTAGEM

57elektor 03-2012

Primeiras experiências em C

Achei que a Internet foi uma grande aliada nas minhas pri-meiras experiências de programação C embutida. O objec-tivo era colocar alguns LEDs a piscar; depois passei para a leitura dos valores do conversor A/D e enviar alguns bytes sobre o barramento da UART do microcontrolador, que se-riam depois lidos pelo PC e apresentados no programa ter-minal que usei (Terminal.exe). É importante ter sempre em mente que o copy-paste do código fonte de programas tira-do da Internet para um determinado microcontrolador AVR nem sempre pode ser usado directamente no ATmega88 sem se verificar primeiro a sua folha de características [5]. Por exemplo, o nome dos registos pode variar entre diferen-tes tipos de microcontrolador: o registo UDR (o registo que aceita os bytes a transmitir e armazena os bytes recebidos) tem o nome de UDR0 no ATmega88.

Uma armadilha particularmente recorrente é o nome do vec-tor de interrupção usado para especificar a rotina a execu-tar quando é recebido um carácter pela UART. Muitos exem-plos de código fornecidos na Internet fornecem a indicação ‘ISR(USART_RXC_vect) {...}’, onde a sua utilização tem o efeito de bloquear o microcontrolador. Depois de uma boa hora de dores de cabeça descobri que a forma correcta para usar com o ATmega88 é ‘ISR(USART_RX_vect) {...}’.

Para os que vêm do mundo do BASCOM ou BASIC, de forma mais geral, devem estar particularmente atentos aos seguintes tipos de erro que o compilador nem sempre se queixa. Um erro muito comum nos menos experientes nestas coisas é confundir um sinal duplo de igual (usado para indicar uma comparação de igualdade) com um sinal de igual simples (usado para indi-car uma afectação). A linguagem C é também absolutamente rígida no que diz respeito a minúsculas e maiúsculas, tanto nos nomes das variáveis como nas palavras-chave tipo ‘if’. Um par de parênteses é essencial depois do nome de uma função para indicar a chamada a essa função (por exemplo, ToggleLED()), e um ponto-e-vírgula mal colocado pode conduzir a todos os tipos surpreendentes de mensagens de erro. É uma boa ideia verificar cuidadosamente toda a sintaxe do programa antes de compilar o seu código.

O próximo exercício é traduzir o software de demonstração es-crito em BASCOM para linguagem C. O resultado pode ser en-contrado na página de Internet dedicada ao projecto [2]. Para facilitar a comparação, tentei aderir à estrutura do código origi-nal o mais possível. Existem, claro, muitas oportunidades para optimização, e os que forem mais habilidosos com a linguagem C estão convidados a enviar as suas versões melhoradas!

Através de uma comparação lado-a-lado torna-se aparente que a programação em C requer um conhecimento mais próximo do hardware. O BASCOM esconde muitas complexidades exis-tentes por detrás de comandos como ‘Start ADC’, ‘Enable Urxc’ e ‘Printbin’. Contudo, ter de saber o que os registos do micro-controlador fazem não é necessariamente uma desvantagem, e o esforço extra de programação pode ser mais recompensa-dor pela vantagem de ter um conjunto de rotinas reutilizáveis. À medida que desenvolvemos o firmware estas subrotinas são acondicionadas em pequenas bibliotecas.

Um outro ponto importante para quem se inicia na programa-ção de linguagem C é que os portos e outros registos (por exem-plo, para o ADC e UART) devem ser sempre endereçados como bytes completos. Se for necessário apenas afectar um único bit, deve ter cuidado em preservar os outros bits. Isto pode ser efec-tuado usando uma operação lógico OR:

PORT = PORT | Bitmask;

ou mais precisamente

PORT |= Bitmask;

Para limpar um bit, deve ser usada a operação lógica AND com uma máscara de bit invertida:

PORT &= ~Bitmask;

Utilizei directivas como

#define TestLED 0b00010000

para criar máscaras de bits e nomes de portos que correspon-dam aos LEDs, botões e pinos dos portos. Isto permite decla-rações do tipo

PORT |= TestLED;

para serem usados para iluminar o LED de teste. Muito do códi-go encontrado na Internet usa uma aproximação ligeiramente diferente, usando

#define TestLEDbitposition 4

...

PORT |= (1 << TestLEDbitposition);

onde a expressão 1 << TestLEDbitposition gera a máscara de bits necessária deslocando para a esquerda o valor 1 por um número de vezes adequado.

713487

Personal Download for , Marcps | copyright Elektor

Page 58: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

MONTAGEM

58 03-2012 elektor

O bit 0H.6 define se são usados dois ou quatro bytes para cada canal. O modo de quatro bytes vai ser usado mais tarde para enviar dados de maior precisão ou para determinadas funções especiais.O bit 0H.5 indica se o valor de dados con-siste num valor predefinido ou se é uma lei-tura instantânea (o valor 1 indica que é um valor predefinido, e o 0 que é uma leitura instantânea).O bit 0H.4, quando está ao nível alto, indica que consiste numa mensagem de acknowledge.Como exemplo, considere o caso de uma cortina que um dispositivo de automati-zação doméstica pretende controlar para estar cerca de 30% fechada (para este exemplo os 10 bits de precisão são mais do que suficientes!).

O dispositivo master e o controlador da cortina devem acordar anteriormente como se representa numericamente a cortina estar fechada em 30%: num artigo posterior vamos abordar a questão dos fac-tores de escala. Vamos supor que codifica-mos a percentagem directamente como se fosse um número inteiro, e que pode-mos comunicar com o controlador da cor-tina através do canal 0. Nos bytes 6 e 7 do pacote de dados do protocolo de Mensa-gem da Elektor o dispositivo master vai enviar os seguintes dois bytes:

0-1-1-0-0-0-0-0 0-0-0-1-1-1-1-0(00011110bin=30dec)

O controlador de cortina vai responder com uma mensagem de acknowledge, com o bit de acknowledge actuado:

0-1-1-1-0-0-0-0 0-0-0-1-1-1-1-0

Um controlador de cortina inteligente podia, como é óbvio, determinar a posi-ção instantânea da cortina e reportar esse valor. De qualquer forma, seria inteli-gente reportar o valor instantâneo de 30% quando o processo de movimento da cor-tina estivesse terminado:

0-1-0-0-0-0-0-0 0-0-0-1-1-1-1-0

Finalmente o dispositivo master confirma que o valor foi recebido:

0-1-0-1-0-0-0-0 0-0-0-1-1-1-1-0

Talvez este esquema de comunicação só possa ser implementado de uma forma elegante, mas o exemplo dá uma boa demonstração da utilização de um valor predefinido e bits de acknowledge.

Software de demonstraçãoUma vez mais, neste artigo, disponibiliza-mos software de exemplo para o PC e para o microcontrolador ATmega88 usado no nó experimental. Este consiste numa ver-são modificada do software de demonstra-ção do artigo anterior, que permite aos três nós informar o estado do seu LED de teste ao software do PC, e um dos nós reportar a tensão lida na sua entrada ADC0. Como habitualmente, o software está disponível para download no site da Elektor [2]; para comparação, a versão anterior está dispo-nível em [1].

O canal 0 é usado para transmitir a lei-tura efectuada na entrada ADC (apenas do nó 2); a informação do LED de estado é transmitida no canal 1. Um byte na EEPROM (endereço 006) determina se o nó envia os valores lidos no ADC ou não; a variável correspondente no código é desig-nada por Devicemode. Este byte tem que ser colocado com o valor 01 no nó 2: isto pode ser feito manualmente com o BAS-COM. No código a variável Pollingstatus foi renomeada para Schedule, que melhor define a ideia se o nó é um nó a ser escalo-nado ou um nó de barramento livre: nesta versão do software estes são mutuamente exclusivos. Pela primeira vez incluímos também firmware escrito em C usando o novo AVR Studio 5.0. os utilizadores do BASCOM vão também achar útil ver como as coisas funcionam no código C.

(110382)

Artigo original: Here comes the bus! (7) – September 2011

Internet

[1] www.elektor.com.pt/110258

[2] www.elektor.com.pt/110382

[3] www.atmel.com/dyn/products/ tools_card.asp?tool_id=17212

[4] http://avrhelp.mcselec.com/index.html

[5] www.atmel.com/dyn/resources/ prod_documents/doc2545.pdf

[6] www.elektor.com.pt/110012

Figura 4. Imagem do software de PC amostrando o estado dos LEDs de teste

nos três nós e o valor ADC0 do nó 2.

Personal Download for , Marcps | copyright Elektor

713487

Page 59: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

O eC-Reflow-Mate é ideal para montagem de protótipos e pequenos conjuntos de produção de placas de circuito impresso com componentes SMD. Este forno tem um compartimento de aquecimento muito grande, que fornece bastante espaço para várias placas ao mesmo tempo. O software para PC permite-lhe monitorizar as curvas de temperatura em todos os sensores com precisão durante todo o processo de soldadura, podendo ainda o utilizador modificar perfis de temperatura/tempo já existentes ou criar novos.

Características especiais:

Especificações técnicas:

Preço:

Para mais informações e encomendas consulte www.elektor.com.pt/reflow-mate

NOVO!Elektor eC-Reflow-MateForno para componentes SMD com características únicas

elektor 03-2012 59

livros, cd-rom’s, dvd’s, kits & módulos LOJA

713487

Personal Download for , Marcps | copyright Elektor

Page 60: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

PCI, testada e montada

Ponte USB/Série FT232R (Fevereiro de 2012)

Você ficará muito surpreendido com o tamanho deste conversor USB/Série que não é maior que o próprio conector USB.Além disso, ficará ainda mais satisfeito com o facto de ser tão prático, fácil de implementar, reutilizável, e multi-plataforma (Windows, Linux, etc.) — e, mesmo com tudo isso, não é demasiado caro. Não temos muito boa opinião sobre os módulos comercialmente disponíveis baseados em FT232R. Demasiado caros, complicados, mal desenhados…é, por isso, que este projecto foi desenhado na forma de uma breakout board (BOB).Art. 110553-91 - 15,00 Euros

Todos os produtos e downloads relacionados com este produto estão dis-poníveis na página de Internet do site da Elektor dedicada a este artigo: www.elektor.com.pt/110553-91

Medidor de radiação melhorado (Novembro de 2011)

O dispositivo que descrevemos pode ser usado com diferentes sensores para medir radiação alfa e gama. É particularmente adequado para efectuar medidas a lon-go prazo e para analisar amostras radioactivas fracas. O fotodiodo tem uma área sensível mais pequena que um tubo Geiger, pelo que apresenta uma taxa de contagem de fundo mais baixa, o que significa que a radiação de uma pequena amostra é mais fácil de detectar com radiação de fundo. Uma outra vantagem de um sensor semicondutor e que oferece a possibilidade de medir a energia de cada partícula, permitindo uma análise mais detalhada das características da amostra. O software opcional baseado em PC mostra o espectro de energia e permite levar a cabo uma análise muito mais detalhada.

Kit de componentes incluindo display e controlador programadoArt. 110538-71 - 39,95 Euros

Registador meteorológico USB (Setembro de 2011)Este registador de dados autónomo apresenta num LCD os valores de pressão atmosférica, temperatura e humi-dade, obtidos a partir de sensores I2C, e pode funcionar durante seis a oito semanas com um único conjunto de baterias. Os valores armazenados podem ser obtidos através de uma porta USB e representados graficamente num PC, utilizando o gnuplot.Os sensores digitais permitem manter o hardware simples e não necessitam de qualquer calibração. Características:- Medição precisa da pressão atmosférica, temperatura e humidade, sem necessidade de calibração.- Armazenamento de até seis registos por hora (cada um dos valores de pressão, temperatura e humidade).- Registo não volátil até 8191 registos.- Funcionamento autónomo durante até oito semanas com duas pilhas do tipo AA.- Módulos sensores com saídas digitais para pressão, temperatura e humidade.- Os dados podem ser lidos através do interface USB.

Kit de componentes incluindo PCI, microcontrolador, sensor de humidade e sensor de pressão atmosféricaArt. 100888-73 - 34,95 Euros

KIT

s &

DU

LO

S

O mundo da electrónica numa só loja!

LOJA livros, cd-rom’s, dvd’s, kits & módulos

60 03-2012 elektor Preços e características dos produtos sujeitos a alterações

713487

Personal Download for , Marcps | copyright Elektor

Page 61: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

Versão disponível apenas em Inglês

Microprocessor Design using Verilog HDL 337 páginas | ISBN:978-0-9630133-5-4

34,50 Euros

7.ª Edição Actualizada e Aumentada

Curso Técnico de Hardware 488 páginas | ISBN: 978-972-722-677-1

24,95 Euros

Com as ferramentas certas, desenhar um mi-croprocessador não será complicado. A lin-guagem de hardware descritiva Verilog (HDL) é uma dessas ferramentas. Permite-lhe idealizar, simular e sintetizar um design electrónico, ao mesmo tempo que aumenta a sua produtividade reduzindo a carga geral de trabalho associada a determinado projecto.O livro “Microprocessor Design Using Verilog HDL” de Monte Dalrymple é um guia prático para o desenho de processadores no mundo real. Apresenta a linguagem Verilog HDL de forma facilmente digerível e serve como in-trodução completa sobre como conseguir a redução de uma arquitectura de computação e respectivo conjunto de instruções. O leitor é conduzido através do processo de design de mi-croprocessadores do princípio ao fim, tornando claros aspectos essenciais que vão da escrita em Verilog à depuração e teste.

Este livro permite esclarecer o funcionamento interno de um processador e de outros compo-nentes de um computador (PC), como memória, placas gráficas e placas principais. Todos os periféricos vêm aqui referidos, bem como a sua tecnologia e a forma de detectar e resolver avarias físicas ou por software. A montagem de uma rede de computadores e o seu funcio-namento com o protocolo TCP/IP também são tratados nesta obra.

Versão disponível apenas em Inglês

311 Circuits 432 páginas | ISBN: 978-1-907920-08-0

34,50 Euros

2.ª Edição Revista

Sistemas Digitais - Princípios e Prática 528 páginas - ISBN: 978-972-722-685-6

31,50 Euros

“311 Circuits” é o 12º livro da aclamada série 300 da Elektor. Uma enorme fonte de inspiração para todos os entusiastas e profissionais da electrónica, esta publicação merece um lugar de destaque bem próximo do espaço de tra-balho. Este livro contém circuitos, ideais para projectos, dicas e truques de todas as áreas da electrónica: áudio & vídeo, computadores & micro-controladores, rádio, hobby & modelismo, casa & jardim, fontes de alimentação & bate-rias, teste & medida, software, incluindo ainda uma secção ‘miscelânea’ para tudo o que não se inclui directamente nas categorias referidas.“311 Circuits” apresenta soluções completas para inúmeros problemas assim como pontos de partida para as suas próprias criações. Esta publicação foi compilada a partir das edições duplas “Summer Circuits” da revista Elektor entre 2009 e 2011 e baseia-se maiorita-riamente em contribuições de leitores, comple-mentadas por circuitos criados e desenvolvidos nos laboratórios da Elektor.

Este livro tem por objectivo ensinar desde os conceitos base dos Sistemas Digitais até aos mais avançados, permitindo ao leitor desen-volver os seus projectos com base nos sistemas configuráveis mais avançados que se encontram no mercado, utilizando a linguagem de descrição de hardware Verilog. No final de cada capítulo, o autor apresenta um conjunto de exercícios resolvidos e propostos que ajudam o leitor a con-solidar e testar os seus conhecimentos.

Princípios, aplicações e design - Em Inglês

Power Electronics in Motor Drives 240 páginas | ISBN: 978-0-905705-89-7

34,50 Euros

Este livro destina-se a todos aqueles que de-sejam entender como funcionam os contro-ladores inversores AC, assim como as suas aplicações na indústria. O livro trata muito mais do que apenas de desenho prático e das apli-cações dos controladores, aborda os princípios matemáticos que lhes dão suporte.Os elementos principais da electrónica de potência são apresentados e descritos de uma forma simples, abordando, por exemplo, as bases dos motores AC e DC. Explicam-se os de-talhes da electrónica dos controladores de AC e DC em conjunto com as bases teóricas e os temas práticos de desenho, como por exemplo de refrigeração e a protecção. Uma parte importante do livro descreve de- talhadamente as características e as funções que, com frequência, se encontram nos con-troladores AC, e dá conselhos práticos sobre como e onde utilizá-los. Descreve ainda uma vasta gama de aplicações de controlo, desde uma bomba de água fresca ou um sistema de manuseamento de equipamentos.

LIV

RO

SMais informações no site da Elektor

www.elektor.com.pt

Bolina Portugal, Lda,

Edif. Central Park

R. Alexandre Herculano,

3 - 3º B - 2795-240 Linda-a-Velha

livros, cd-rom’s, dvd’s, kits & módulos LOJA

61elektor 03-2012Preços e características dos produtos sujeitos a alterações

Personal Download for , Marcps | copyright Elektor

713487

Page 62: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

CD

-RO

M’s

& D

VD

’S

PORTES DE CORREIO € 3,50

TO TAL

MA TE RI AL

Quant. Descrição Pre ço

Pa ra

en co men das

ELEKTOR

Au to ri zo que de bi tem Eu ros so bre o meu car tão de cré di to VI SA MAS TER CARD

nº Vá li do até _______ / ________

C.V.V. Card Va lue Ve ri fi ca ti on (úl ti mos 3 dí gi tos que se en con tram no ver so do car tão por ci ma da as si na tu ra)

Jun to che que emi ti do à or dem de Bolina Portugal, Lda

nº Ban co

Aten ção: Ca so op te pe lo pa ga men to em che que de ve en vi ar o cu pão em so bres cri to fe cha do, pa ra Bolina Portugal, Lda, Edifício Central Park - R. Alexandre Herculano, 3 - 3º B - 2795-240 Linda-a-Velha. Os pre ços são vá li dos pa ra o Con ti nen te e Ilhas. Pa ra ou tros des ti nos, con tac tar o nos so de par ta men to de as si nan tes.

NO ME

MO RA DA TE LE FO NE

LO CA LI DA DE CÓ DI GO POS TAL

Da ta / /

As si na tu ra

Embedded USB Know-How | USB Designer’s Companion

USB ToolboxISBN: 978-90-5381-212-9

29,50 Euros

Este CD-ROM contém toda a informação essen-cial de que um designer necessita para come-çar a trabalhar com a interface USB. Inclui uma vasta colecção de fichas informa-tivas sobre componentes USB específicos de uma ampla gama de fabricantes.

Em 9 capítulos - Versão apenas em inglês

FPGA-Course ISBN: 978-90-5381-225-9

19,95 Euros

Aprenda tudo sobre a tecnologia FPGA (Field Programmable Gate Array) em nove capítulos: Da lógica digital à construção de um webserver em tecnologia FPGA.Este CD contém: Todos os artigos FPGA Elektor; Desenhos de PCI em formato PDF; Manual Quartus; Software; e instruções suplementares.

Este DVD contém 1,2 Gigabyte de documentos e ferramentas!

DVD Wireless ToolboxISBN: 978-90-5381-268-6

32,50 Euros

Neste DVD-ROM encontrará uma série de documentos técnicos e ferramentas que lhe permitirão acrescentar aos seus sistemas elec-trónicos o intercâmbio de dados sem fios. A escolha do material depende da distância da transmissão: para poucos centímetros utilizam--se comunicações NFC (Near Field Communi-cation) ou identificação por radiofrequência (RFID), para os casos em que as distancias correspondem a dezenas de metros usam-se sistemas Bluetooth, Wi-Fi ou ZigBee, e para dis-tâncias de milhares de quilómetros utiliza-se um módulo GPS para recepção de dados. Seguindo os princípios da nossa série Toolbox, recompilámos a documentação técnica de di-versos dispositivos em função da frequência e/os protocolos utilizados. Todos os documentos são ficheiros em PDF e encontram-se em Inglês.

LOJA livros, cd-rom’s, dvd’s, kits & módulos

Preços e características dos produtos sujeitos a alterações

Personal Download for , Marcps | copyright Elektor

713487

Page 63: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

Ou utilize o cupão de assinatura publicado na revista.

Assegure um bom apoio na electrónica com uma assinatura!

Os estudantes terão um desconto especial de 30% sobre

o preço de capa para uma subscrição de um ano.

Assinatura Estudante: 1 ano | 11 edições (inclui uma edição dupla Julho/Agosto) PT:

Condições especiais para estudantes

PLA-

UK-1

Phot

o: S

iegf

ried

Sprin

ger /

PIX

ELIO

Como presente

de boas-vin

das

irá receber

grátis o

E-Book

Microcontrolle

r

Basics

Faça uma assinatura experimental, por 4 meses.

Deseja conhecer a Elektor Electrónica?

http://www.elektor.com.pt/revistas

713487

Personal Download for , Marcps | copyright Elektor

Page 64: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

64 03-2012 elektor

SERVIÇO ELEKTOR

ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7- PCI (110258-1) € 5,95- Conjunto de 3 placas (110258-1C3) € 12,95- Conversor USB/RS485 (110258-91) € 24,95 (montado e testado) SDR AVR- Kit com placa e componentes (100180-71) € 29,95

ELEKTOR 326: FEVEREIRO 2012 Sistema de barramento doméstico (The Bus!) 6- PCI Nó (110258-1) € 5,95- Conversor USB/RS485 (110258-91) € 24,95 (montado e testado) Fonte de alimentação dual para modelos de aeroplanos- PCI (081064-1) € 16,95Registador de dados USB- PCI (110409-1) € 10,95- PIC24FJ64GB002-I/SP programado (110409-41) € 14,95AndroPod- Conversor USB/TTL BOB FT232 (110553-91) € 15,00 (montado e testado)- Conversor RS485/USB (110258-91) € 24,95 (montado e testado)Pico C-Plus e Pico C-Super- ATtiny2313 Pico C-Plus programado (110687-41) € 4,95- ATtiny2313 Pico C-Super programado (110687-47) € 4,95

ELEKTOR 325: JANEIRO 2012 Detector de morcegos por ultrasons- PCI (110550-1) € 9,95 Interface OnCE/JTAG- Placa montada e testada (110534-91) € 39,95Monitor de frequência da rede eléctrica- AT89C2051-24PU programado (50 Hz) (110461-41) € 9,95- AT89C2051-24PU programado (60 Hz) (110461-42) € 9,95 Interface para sonda lambda de banda larga- Atmega8-16TQ programado (50 Hz) (110363-41) € 9,95

ELEKTOR 323: NOVEMBRO 2011 Medidor de radiação melhorado- Kit (componentes e placa de circuito impresso) 110538-71 €39,95- ATmega88PA-PU (Atmel), programado 110538-41 €10,50 Sensores I2C- Sensor de humidade HH10D 100888-71 €7,95 - Sensor de pressão HP03SA 100888-72 €6,45E-Blocks escrevem no Twitter- Placa de sensores E-Blocks (EB003) €26,80- Placa LCD E-Blocks (EB005) €29,75- Placa multiprogramadora E-Blocks (EB006) €89,25 (Nota: PIC18F4455 não incluído)- Placa de interruptores E-Blocks (EB007) €17,85- Placa de interface para servo E-Blocks (EB059) €17,85- Placa Wireless LAN E-Bolcks (EB069) €164,95- Flowcode para dsPIC/PIC24 #TEDSSI4 €221,65 ELEKTOR 322: OUTUBRO 2011 Geolocalização com ATM18- Placa microcontrolador ATM18 071035-91 €12,50 - Placa protótipo ATM18 071035-92 €37,50- Módulo LCD 2-wire 071035-93 €29,95

Portátil, texto, identificação - Placa de oito relés Elektor 071035-72 €49,95 - Placa de expansão Elektor 071035-95 €16,95- Placa ATM18 Elektor 071035-91 €12,50- ATM18 piggy-back Elektor 071035-92 €37,50- Display de dois fios Elektor 071035-93 €29,95 E-Blocks: Flowcode RC5 - Placa infravermelhos RC5 E-Blocks EB060 €37,20- Multiprogramador dsPIC/PIC24 E-Blocks EB064 €119,00- LCD gráfico E-Blocks EB058 €81,85- Placa de interruptores E-Blocks EB007 €17,85

ELEKTOR 321: SETEMBRO 2011 Sistema de microfone para conferência- PCI (100465-1) € 9,95 Registador meteorológico USB- PCI (100888-1) € 17,95- ATmega88-20PU programado (100888-41) € 9,95- Módulo série/USB BOB-FT232R (110533-91) € 15,00- Sensor humidade HH10D (100888-71) € 7,95- Sensor pressão atmosférica HP03S (100888-72) € 6,45

ELEKTOR 319/320: JULHO/AGOSTO 2011 030 – Circuito de monitorização/ carregamento de baterias solar- PIC16F877 programado 090544-41 € 19,95 057 – Sensor de inclinação USB

- MMA7260 em placa 090645-91 € 9,95 067 – Medidor de bateria para marinheiros- PIC16F690 programado 090117-41 € 9,95 077 – Amplificador Mini gerador de pulsos - ATtiny13 programado 090444-41 € 9,95 097 – Pirilampos RGB síncronos- ATtiny13 programado 100358-41 € 9,95

ELEKTOR 318: JUNHO 2011 Entrada de guitarra para unidade de efeitos- PCI (100923-1) € 7,95 OBD-II wireless- Kit Interface Bluetooth OBD-II (100872-72) € 139,95- Kit Interface ZigBee OBD-II (100872-71) € 139,95

ELEKTOR 317: MAIO 2011 Wheelie GT- Kit 100479-71 € 115,95 String com 160 LEDs RGB - PCI (100743-1) € 12,90Carregador solar - PCI (090190-1) € 9,95- ATtiny13V-10SU programado (090190-41) € 8,00

ELEKTOR 316: ABRIL 2011 Medidor de temperatura sem contacto- PCI (100707-1) € 22,95- PIC16F876A-10E/SP programado (100707-41) € 15,00 Placa de expansão educacional- PCI (100742-1) € 29,95Adaptador de telefone/VoIP com Linux- PCI (100761-1) € 9,15- PIC18F2550-I/SO programado (100761-41) € 15,00Chave de telégrafo Ultimatic- PIC16F688-I/P programado (100087-41) € 9,95Pico C - PCI (100823-1) € 9,95- ATtiny2313-20PU programado (100823-41) € 9,95- Kit de componentes (100823-71) € 82,50 ELEKTOR 315: MARÇO 2011 SatFinder- PCI (100699-1) € 12,95- ATmega8A-PU programado (100699-41) € 9,95- Kit components, com ATmega e PCI 100699-71 € 79,95 ECG Wireless- PCI (080805-1) € 9,95 ELEKTOR 314: FEVEREIRO 2011 Wheelie GT- Kit 100479-71 € 115,95 Sistema de monitorização de aquecimento - ATmega328-20AU programado (090328-41) € 12,95 Relógio despertador luminoso - PCI (080850-1) € 32,50 - ATmega168-20PU programado (080850-41) € 9,95- LCD 2x16 caracteres Elektor (DEM16217) (030451-72) € 13,50 TimeClick - ATtiny861-20SU programado (100371-41) € 11,95

ELEKTOR 313: JANEIRO 2011 Temporizador de intervalo para câmara- PIC16F886-I/SP programado (081184-41) € 9,00 Termómetro a válvulas tipo Nixie - AT89C2051-24PU programado (090784-41) € 9,95- PCI, sem componentes (090784-1) € 13,95O ampop de potência 5532 - PCI (amplificador) (100124-1) € 24,95- PCI (fonte de alimentação) (100124-2) € 19,95 ELEKTOR 312: DEZEMBRO 2010 Fechadura com combinação digital CL-3- ATTINY2313-20PU programado 100026-41 € 9,95 NetWorker- NetWorker montado e testado 100552-91 € 60,00

ELEKTOR 311: NOVEMBRO 2010 Alimentação de 5 V para controlador- PCI 090719-1 € 10.00 Beep, beep… abre-te Sésamo - PIC16F84-4/P programado 081143-41 € 17,50Mostrador duplo de tensão/corrente - Kit (PCI+ATmega168+LCD) 100166-71 € 69,95 Implemente os seus projectos com um visual atraente - Caixa para Projectos da Elektor 100500-71 € 17,80

ELEKTOR 310: OUTUBRO 2010 Sistema de visão para pequenos microcontroladores- PCI 090334-1 € 24,95 Medidor de CO2 para veículo- Kit c/ sensor e LCD 100020-71 € 154,00- Caixa 100020-72 € 22,50

ELEKTOR 309: SETEMBRO 2010 Medidor de CO2 para veículo- Kit c/ sensor e LCD 100020-71 € 154,00- Caixa 100020-72 € 22,50 VisioOLED - PCI 081141-1 € 14,95- Placa de testes ATM18 071035-92 € 37,50- Módulo RFID Elektor 080910-91 € 19,95 Unidade de efeitos digital - ATmega8-16PU, programado 090835-41 € 9,95- 24LC32, programado 090835-31 € 5,00- ATtiny2313-20PU, programado 090835-42 €9,95- Kit (componentes, placa circuito impresso, controladores programados e EEPROM) 090835-71 € 185,00

ELEKTOR 307/308: JULHO/AGOSTO 2010 001 – Lógica Luxeon - ATtiny25 programado 081159-41 € 7,50011 – Leitor RTTTL programável - ATtiny13 programado 090243-41 € 7,50043 – Controlador de velocidade para ventoinha - ATtiny13 programado 070579-41 € 8,95049 – Gerador de pulsos de relógio com sincronização DCF - PIC16F648A programado 090035-41 € 8,70050 – Referência de tempo e frequência com ATtiny2313 - ATtiny2313 programado 080754-41 € 8,70057 – Medição e controlo de temperatura simples - ATmega48 programado 090204-41 € 8,95071 – Iluminação colorida para voos nocturnos - PIC12F675 programado 080060-41 € 7,50077 – Alarme para frigorífico - PIC12F629 programado 080700-41 € 7,50088 – Terminal rádio USB - Módulo rádio 868 MHz montado e testado 071125-71 € 8,50 - Placa microcontrolador R8C montada e testada 080068-91 €72,00091 – Gerador sinusoidal e varrimento digital - ATmega48 programado 080577-41 € 7,50Rádio DSP Elektor - ATmega168PA-PU programado 100126-41 € 14,95- Placa montada e testada 100126-91 € 164,00- Módulo de recepção rádio Si4735 090740-71 € 34,95

ELEKTOR 306: JUNHO 2010 Minimod18: pequeno e deslumbrante - ATmega328-AU programado 090773-41 € 24,50 - Módulo testado com 090773-91 € 62,95 bootloader pré-instaladoBluetooth para OBD-2 - Kit com componentes e PCI 090918-71 € 29,95 parcialmente montadosMini simulador OBD2 - Kit de componentes e PCI 080804-71 € 99,95Alimentação e RFID sem fios - Kit de componentes, com 100051-71 € 39,95 Módulo RFID (080910-91), PCIs (100051-1/2/3) e microcontroladores programados (100051-41/42)

ELEKTOR 305:MAIO 2010 Placa controladora dsPIC - PCI com componentes SMD (090073-91) € 159 montados e testadaMedidor de altitude das nuvens - PCI com componentes SMD (090329-91) € 149 montados e testada

O material para projectos atrasados

(se disponível) pode ser encontrado em

www.elektor.com.pt

Encomende de forma rápida

e segura através de

www.elektor.com.ptou use o cupão de encomendas

na página seguinte

Personal Download for , Marcps | copyright Elektor

713487

Page 65: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

Ord

em

d

e E

nco

men

da

Ord

em

d

e E

nco

men

da

Ass

inat

ura

Sim, desejo assinar a Elektor

Electrónica usufruindo de um

desconto até 30% sobre

o preço de capa e receber

grátis o E-Book

Microcontroller Basics

Método de pagamento:

Cheque/Vale postal (à ordem

de Bolina Portugal, Lda.)

Transferência Bancária

(NIB: 0007.0000.00618286149.23 –

BES – Bolina Portugal, Lda.)

Autorizo que debitem Euros

sobre o meu cartão de crédito

VISA Mastercad

Válido até

CVV (Card Value V

(3 últimos dígitos que se encontram

no verso do cartão por cima da assinatura)

1 ano (11 exemplares – 1 duplo) – 42.50€ (23% desconto)

2 anos (22 exemplares – 2 duplos) – 77.50€ (30% desconto)

*Oferta válida para quem não efectuou assinatura Elektor nos últimos 12 meses. Limitada ao stock existente.

Nome

Morada

Telefone E-mail

Enviar recibo: nome individual em nome da empresa – Contribuinte nº __________

Data ___/____/_______ Assinatura: ___________________________________

Atenção: recorte este cupão e envie num envelope fechado para: Bolina Portugal, Lda. Edif. Central Park – R. Alexandre Herculano, 3 – 3º B 2795-240 Linda-a-Velha. Se optar por pagamento através de transferência, não se esqueça de nos enviar o comprovativo. Os preços são válidos para o Continente e Ilhas. Para outros destinos, contacte o nosso departamento de assinantes.

713487

Personal Download for , Marcps | copyright Elektor

Page 66: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

MATERIALO Serviço Elektor só fornece material que não pode ser adquirido no mercado, tal como placas de circuito impresso (PCI), inte-grados programados e software.

PRAZOS DE ENTREGA

DEVOLUÇÕES

DADOS DE PAGAMENTO

Destinatário:

-

Cheque:

PortugalCartão de crédito:

ASSINATURASVantagens do Assinante

Melhor Preço:

Maior Comodidade:

e sem qualquer custo adicional.

Revista Sempre Garantida:

Garantia de Satisfação:

A ter em conta:

DADOS DE PAGAMENTO:

Destinatário:

-

Cheque:

PortugalCartão de Crédito:

Se preferir pode efectuar a sua assinatura directamente no site www.elektor.com.pt pois todos os dados estão protegidos por

Personal Download for , Marcps | copyright Elektor

713487

Page 67: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

Your Partner!

713487

Personal Download for , Marcps | copyright Elektor

Page 68: PDF] GRUPO EDITORIAL64 03-2012 elektor SERVIÇO ELEKTOR ELEKTOR 327: MARÇO 2012 Sistema de barramento doméstico (The Bus!) 7 - PCI (110258-1) € 5,95 - Conjunto de 3 placas (110258-1C3)

FERRAMENTAS MPLAB® IDE PARA DESENVOLVIMENTO RÁPIDO DE SISTEMAS EMBEBIDOS:

MPLAB® ICD 3 - DV164035MMPLPLAAB®B® IICDCD 33 DDVV161640403535

PICkit™ 3 Debug Express - DV164131

PICkit™ 3 D b E

MPLAB® REAL ICE™ - DV244005

Ferramentas de Desenvolvimento da Microchip Reduzem Custos e Prazos em Sistemas EmbebidosSuportadas pelo Ambiente de Desenvolvimento Integrado MPLAB®. A Referência da Indústria

RF & W

irelessM

emory

Analog

Dig

ital Signal

Controllers

Microcontrollers

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. PICkit, PICDEM e REAL ICE são marcas 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. © 2011, Microchip Technology Incorporated. Todos os Direitos Reservados. DS52032A. ME297APor/02.12

www.microchip.com/tools

Com mais de 1,15 milhões de sistemas desenvolvidos já em comercialização, a Microchip Technology é a referência a nível mundial, com a mais completa gama de ferramentas de desenvolvimento para aplicações, a baixo custo e fáceis de usar. Combinando o poderoso ambiente integrado MPLAB® IDE oferecido gratuitamente pela Microchip com kits de iniciação para aplicações e produtos específicos, é possível reduzir os custos e a complexidade dos seus sistemas embebidos.

O MPLAB X IDE é uma nova interface gráfica de utilizador universal e integrada para as ferramentas de desenvolvimento hardware e software da Microchip e de outros fabricantes. É o único ambiente integrado de desenvolvimento (IDE) da indústria com suporte para todo o portfólio de mais de 800 dispositivos MCUs PIC® e DSCs dsPIC® de 8-bit, 16-bit e 32-bit, assim como dispositivos de memória. Inclui um editor cheio de funcionalidades, depurador de código fonte, gestão de projecto, simulador de software e suporte para todas as populares ferramentas hardware da Microchip, tal como o depurador integrado MPLAB ICD 3, o kit de iniciação PICkit™ 3 e o emulador integrado MPLAB REAL ICE™.

Baseado na plataforma open-source NetBeans, o MPLAB X corre em sistemas operativos Windows®, MAC® OS e Linux, suporta muitas ferramentas de outros fabricantes e é compatível com muitos dos plug-ins NetBeans.

Juntando kits de iniciação, projectos de referência e webinars para as famílias MCU PIC e DSC dsPIC específicas, terá à sua disposição todas as ferramentas de que necessita para criar novos sistemas embebidos de forma mais rápida. Os kits de iniciação de baixo custo ajudam-no a explorar MCUs PIC e DSCs dsPIC optimizados para todo o tipo de aplicações, desde redes com e sem fios, segurança, controlo de motores, na indústria automóvel e projectos de baixo consumo ou aplicações de uso genérico.

Comece já! Descarregue o manual MPLAB IDE Quick Start em: www.microchip.com/tools

713487

Personal Download for , Marcps | copyright Elektor