Elektor_342_2013
-
Upload
rafael-bettencourt -
Category
Documents
-
view
206 -
download
17
Transcript of Elektor_342_2013
![Page 1: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/1.jpg)
A Melhor Revista de Electrónica Prática do Mundo
CANTestador
Testa, Repara, Analisa, Simula e Explora a Tua Rede Rolante
www.elektor-magazine.pt
Novembro 2013
magazine
Medidor LCR de 500 ppm l Registador de temperatura multicanal Termómetro USB l Selector de entrada estéreo bidireccional l Iluminação LED para modelos Normas de programação l Curso PCB Prototyper
Espectrómetro de frequência áudio de Freystedt (1935) Forze VI: um carro de corrida movido a hidrogénio DesignSpark Dicas e Truques
![Page 2: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/2.jpg)
![Page 3: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/3.jpg)
www.elektor-magazine.pt | Novembro 2013 | 3
Edição 342, Novembro 2013Depósito Legal: nº 7313/84ISSN 0870-1407R.C. Social nº 110 523www.elektor.com.ptwww.elektor-magazine.com/pt
Editor: Elektor International Media bvHolandaSede: Elektor International Media b.v.P.O. Box 11 NL-6114-ZG SusterenThe Netherlands.Telefone: +31 46 4389444Fax: +31 46 4370161www.elektor.com | www.elektor.org
A Elektor publica-se 10 vezes ao ano com edição dupla em Janeiro/Fevereiro e Julho/Agosto.
Assinaturas:Internet: www.elektor.com.pt Ir à secção Assine Já!Email: [email protected]
Contacto geral da Elektor Portugal:[email protected]
Publicidade:Elektor International MediaEmail: [email protected]ão Martins: [email protected]
Direitos de autorOs circuitos descritos nesta revista são exclusivamente para utilização pessoal. Os direitos de autor de todos os gráficos, fotografias, desenhos de circuitos impressos, circuitos integra-dos programados, discos, CD-ROM, software e os textos dos artigos publicados nos nossos livros e revistas (que não sejam propriedade de terceiros) estão registados pela Elektor Interna-tional Media bv e não podem ser reproduzidos ou difundidos de nenhuma forma nem por nenhum meio, incluindo fotocópias, digitalizações ou registos de imagem, parcial ou totalmente, sem a prévia autorização escrita do Editor. Também será pre-ciso dispor da referida autorização escrita antes de armazenar qualquer parte desta publicação em sistemas de armazena-mento de qualquer natureza. Os circuitos, dispositivos, com-ponentes, etc., descritos nesta revista podem estar protegidos por patentes. O Editor não aceita responsabilidade alguma pela ausência de identificação da(s) referida(s) patente(s) ou pro-tecções intelectuais de outro tipo. A apresentação de desenhos ou artigos implica que o Editor está autorizado a modificar os textos e desenhos para apresentação na revista, assim como a utilizar esses conteúdos noutras publicações e actividades da Elektor International Media. O Editor não garante a devolução de qualquer material que lhe seja enviado.
RessalvaOs preços e descrições dos produtos relacionados com a publi-cação estão sujeitos a modificações. Excluem-se erros e omis-sões. As opiniões expressas nos diferentes artigos, assim como o conteúdo dos mesmos, são responsabilidade exclusiva dos seus autores e não reflectem necessariamente as opiniões do Editor. O conteúdo e mensagens publicitárias são da responsa-bilidade exclusiva dos respectivos anunciantes.Os preços e descrições dos elementos relacionados com a publicação estão sujeitos a alteração sem prévio aviso. Estão excluídos erros ou omissões.
© Elektor International Media b.v. 2013
A revista Elektor é publicada originalmente também na Holanda, Alemanha, França, Inglaterra, Estados Unidos,
Espanha e Brasil nos respectivos idiomas.
A Equipa ElektorDirecção Editorial: João Martins ([email protected])Editor Portugal/Espanha: Eduardo Corral ([email protected])Responsável Técnico da Edição Portuguesa: Carlos ReisRedacção Internacional: Harry Baggen, Thijs Beckers, Jan Buiting, Wisse
Hettinga, Denis Meyer, Jens Nickel, Clemens ValensEquipa de desenho: Thijs Beckers, Ton Giesberts, Luc Lemmens,
Raymond Vermeulen, Jan VisserDesign gráfico e DTP: Giel Dols, Mart SchroijenDirector online: Daniëlle MertensDirector de marca: Wisse HettingaDirector general: Don Akkermans
EditorialAfinal o Grafeno é um perigo para a Saúde Pública?Em qualquer publicação relacionada com ciência, tecnologia e nomeadamente elec-trónica, podemos encontrar regularmente notícias sobre as inúmeras aplicações experimentais de Grafeno “descobertas” todos os dias.Não é para menos. O grafeno é um dos materiais em que a humanidade actualmente deposita maiores esperanças porque tem praticamente todas as propriedades que são necessárias para substituir muitos materiais raros na terra e mudar a forma como os componentes e circuitos electrónicos são construídos, ao mesmo tempo que promete levar a evolução da computação para um patamar inteiramente novo.O grafeno tem estado assim no foco de atenção da comunidade científica, sobretudo desde que o trabalho de Andre Geim e Konstantin Novoselov, na Universidade de Manchester, mereceu o Prémio Nobel da Física em 2010.Mas da mesma forma que se promovem as fantásticas propriedades do grafeno, tal como as suas qualidades como supercondutor – 200 vezes mais rápido do que o silí-cio, mesmo à temperatura ambiente – e na transmissão de calor que tornam o gra-feno uma das melhores opções em dissipadores, surgem de imediato os detractores a afirmar que tudo não passa de folclore. E não admira, quando vemos o grafeno a ser associado sucessivamente a notícias de aplicações em painéis solares, semicon-dutores, ecrãs transparentes, sensores e até para dessalinização da água... Parece bom demais para ser verdade.Além disso, falta ainda reduzir os custos da sua produção. No entanto, o grafeno será sempre mais barato do que outros materiais condutores como o cobre e a prata, para além de poder ser sintetizado a partir de carbono, gerando uma multi-plicidade de diferentes materiais aos quais vemos aplicar a designação de grafeno para simplificar.O maior potencial de aplicação na indústria electrónica? Circuitos flexíveis e impres-são de circuitos, abrindo caminho a todo o tipo de aplicações de integração de elec-trónica em roupa e em materiais maleáveis, ecrãs flexíveis, etc.Na verdade, o grafeno tornou-se quase um símbolo da enorme evolução da ciência e de como a tecnologia está a evoluir de forma exponencial, o que assusta muita gente e já há mesmo quem o declare como “um risco para a saúde pública”.Recentemente surgiram notícias a afirmar que, “do ponto de vista de toxicologia, existe o risco de inalação com consequências devastadoras para células vivas”. Isto, claro, se um ser humano for exposto a grafeno em pó, onde fragmentos de apenas 10 microns conseguem penetrar facilmente na pele...O mesmo se pode dizer de muitos outros materiais perigosos que hoje em dia trans-portamos connosco diariamente, sendo natural que a sua aplicação tenha que ser condicionada a encapsulamentos e todo o tipo de precauções, tal como fazemos nas baterias de iões de lítio, por exemplo.As novas fronteiras implicam sempre enormes desafios mas não será o grafeno mais um símbolo das nossas próprias esperanças e receios sobre o futuro?
João Martins,Director Editorial para Países de Língua Portuguesa e Espanhola
•Comunidade
![Page 4: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/4.jpg)
mag
azin
e
4 | Novembro 2013 | www.elektor-magazine.pt
Novembro 2013•Índice No. 342
Comunidade 10 Universo Elektor
• Deixe o seu cérebro pensar • Só sorrisos • Ponto de Lançamento
da “Internet das Coisas” • Isso soa bem!
Projecto 12 Testador CAN 20 Actualização importante para
o Medidor LCR de 500 ppm
Tech The Future 64 Forze VI: um carro de corrida
movido a hidrógeneo
Magazine 66 Retrónica: Espectrómetro
de frequência de áudio de Freystedt
Curso 72 Curso Arduíno (6)
30 Registador de temperatura multicanal
36 Termómetro USB
46 Selector de entrada estéreo bidireccional
50 Iluminação LED para modelos
DesignSpark 42 DesignSpark Dicas e Truques,
Dia 5: gerar ficheiros para fabricar placas de circuito impresso
Labs 53 Normas de programação 58 .Labs Dicas e Truques 62 Curso PCB Prototyper
![Page 5: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/5.jpg)
United KingdomWisse Hettinga+31 46 [email protected]
USAHugo Van haecke+1 [email protected]
GermanyFerdinand te Walvaart+49 241 88 [email protected]
FranceDenis Meyer+31 46 [email protected]
NetherlandsHarry Baggen+31 46 [email protected]
SpainEduardo Corral+34 91 101 93 [email protected]
ItalyMaurizio del Corso+39 [email protected]
SwedenWisse Hettinga+31 46 [email protected]
BrazilJoão Martins+31 46 [email protected]
PortugalJoão Martins+31 46 [email protected]
IndiaSunil D. Malekar+91 [email protected]
RussiaNataliya Melnikova+7 (965) 395 33 [email protected]
TurkeyZeynep Köksal+90 532 277 48 [email protected]
South AfricaJohan Dijk+31 6 1589 [email protected]
ChinaCees Baay+86 21 6445 [email protected]
As Nossas Redes
Conectamos-te com
www.elektor-magazine.pt | Novembro 2013 | 5
![Page 6: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/6.jpg)
• Indústria
6 | Novembro 2013 | www.elektor-magazine.pt
Circuitos Impressos
Maker Faire Rome 2013Arduino com Intel, Texas e excitantes novos produtos e colaborações
Foram uma série de interessantes iniciati-vas e anúncios espectaculares que marcaram o evento Maker Faire Rome na capital italiana entre os dias 3 a 6 de Outubro 2013, reunindo centenas de entusiastas, profissionais da indús-tria e milhares de visitantes de toda a Europa.A Arduino escolheu precisamente esta ocasião para anunciar ao mundo a sua nova estraté-gia e as suas muitas inovações: novos produ-tos, novas colaborações e muitas novas fun-cionalidades. A Arduino irá continuar a inves-tir num modelo consistente de programação para múltiplas plataformas, tornando a partir de agora mais fácil lidar com a evolução e a complexidade de cada projecto.Neste evento a Arduino anunciou também a expansão dos seus populares pacotes Starter Kits agora em italiano, contendo um guia para projectos criativos com a plataforma e todos os componentes electrónicos mais comuns. A Arduino confirma que está a trabalhar na produção de Kits em Português do Brasil, Coreano, Japonês, Chinês e outras línguas.
Arduino Intel GalileoUm dos principais anúncios diz respeito ao lançamento da nova placa Arduino Intel Gali-leo, uma colaboração com a Intel Corporation assinalada neste evento e que será apenas o primeiro produto de uma nova família de pla-cas certificadas pela Arduino ...com base numa arquitectura Intel. Segundo a Arduino explica, uma nova plataforma que será fácil de usar por parte de principiantes assim como por parte de qualquer pessoa que queira criar projectos mais sofisticados, em alternativa às platafor-mas baseadas em processadores ARM ou Atmel.A Galileo usa um processador SoC Intel Quark
X1000 a 400MHz com um conjunto de instru-ções baseadas em Pentium mas sendo com-patível com o ambiente de desenvolvimento de software Arduino IDE a correr em Macs, Windows ou Linux.A placa em si tem duas filas de encaixes para shields Arduino (3,3 ou 5 V), conectores para portas USB (host e cliente), ligação Ethernet 100Mbps, RS-232 e um slot mini-PCI Express, mais GPIOs através de um interface I2C.Para armazenamento, a placa conta com 8MB de Flash para o código bootloader e sketches Arduino mais um slot Micro SD para até 32GB de armazenamento extra, tendo 512KB SRAM embebida e 256MB de DRAM.Durante a conferência denominada “How to reMake the World”, o novo CEO da Intel Corpo-ration, Brian Krzanich, anunciou um donativo de 50.000 placas Intel Galileo a 1000 univer-sidades em todo o mundo, numa acção que decorrerá nos próximos 18 meses.Comercialmente a Intel Galileo fica disponível no dia 29 de Novembro de 2013.
Arduino TREA placa Arduino TRE que conta com o proces-sador Sitara AM335x da Texas Instruments foi outro dos importantes anúncios deste evento.Trata-se de mais uma colaboração da Arduino, desta feita com a Texas Instruments (TI), o resultado pode ser comprovado na nova Arduino TRE que é também a primeira placa Arduino fabricada nos Estados Unidos.Graças ao processador Sitara a 1GHz, os utiliza-dores de Arduino passam a ter um desempenho 100 vezes superior com a placa TRE em com-paração à Arduino Leonardo ou Uno. Este nível de desempenho abre as portas para aplicações mais avançadas em Linux, tendo a plataforma a capacidade de correr aplicações desktop de alto desempenho, algoritmos de processamento intensivo e comunicações a alta velocidade.Além disso, a placa Arduino TRE é como se fos-sem duas Arduinos numa só, com o processa-dor Sitara a encarregar-se de todos os pro-cessos Linux Arduino mais o ambiente Arduino AVR, mantendo ao mesmo tempo a simplici-dade da experiência de software da plataforma. A integração de AVR Arduino permite que a Arduino TRE possa usar todo o ecossistema de shields existente, permitindo usar a Arduino TRE para expandir projectos existentes e apos-tar em aplicações de maior desempenho, tal como é necessário, por exemplo, para controlar impressoras 3D, soluções de automação e con-trolo de iluminação ou sistemas de telemetria que recebem dados a partir de sensores sem fio, assim como para todo o tipo de aplicações que exigem controlo hospedeiro mais opera-ções em tempo real.
O evento Maker Faire Rome 2013 decorreu entre os dias 3 a 6 de Outubro e foi um enorme sucesso, com mais de 30.000 visitantes a encher o Palazzo di Congressi e centenas de criadores e novas empresas a mostrar o entusiasmo do comunidade open hardware e open software
A Intel decidiu neste evento adoptar a plataforma Arduino e lançou a nova plataforma Galileo com um processador Intel Quark X1000 a 400MHz compatível com software Arduino IDE e Arduino shields desenhados para a Uno R3
![Page 7: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/7.jpg)
notícias
Renesas Electronics reforça a sua oferta de controladores USB 3.0A empresa de semicondutores Rene-sas Electronics anunciou a disponi-bilidade de novos chips controlado-res concentradores Universal Serial Bus 3.0 (USB 3.0) com duas portas, aumentando a flexibilidade de imple-mentação de ligações com este inter-face em dispositivos digitais, desde PCs e tablets até televisores digitais e outros periféricos compatíveis.Acrescentar um novo controlador hub de duas portas à oferta já disponível da Renesas – a primeira marca a ofe-recer um controlador de quatro por-tas certificado USB 3.0 no mercado – vem ampliar as opções para pro-jectos com expansão em USB 3.0 em todo o tipo de dispositivos, incluindo bases docáveis para smartphones e tablets, monitores e todo o tipo de expansores que se ligam a compu-tadores de mesa ou portáteis. Esta versão de duas portas (uPD720211) suporta projectos electrónicos mais compactos, com menos espaço em placa e com restrições maiores a nível de custo, ao mesmo tempo que vem expandir as opções de conectivi-dade de interface USB 3.0 para ir ao encontro de um número crescente de equipamentos e periféricos já exis-tentes no mercado e que já todos contam com ligações USB 3.0.O novo chip controlador concentrador de duas portas da Renesas utiliza um encapsulamento QFN sendo assim o mais compacto chip do género em
USB 3.0 existente na indústria e inte-gra já um regulador de tensão redu-tor equivalente aos dos existentes em componentes de periféricos exigidos para carga rápida de tablets, smart- phones, etc. Este sistema oferece também o mais baixo consumo no seu género, com aproximadamente 5 milliwatts (mW) em modo de baixo consumo e aproximada 350 mW em funcionamento em modo USB 3.0.A Renesas confirma que existe uma forte procura no mercado por solu-ções USB 3.0 – que permite obter até 5 gigabits por segundo em modo SuperSpeed – para lidar com gran-des ficheiros de vídeo e gravação em sistemas de armazenamento de alta capacidade. Os primeiros chipsets com funcionalidades USB 3.0 ficaram recentemente disponíveis no mer-cado, acelerando a adopção de USB 3.0 em dispositivos como tablets e equipamentos de electrónica de con-sumo, para além dos computadores onde fizeram a sua estreia.www.renesas.com
Circuitos Impressos
A Arduino Tre da Texas Instruments é uma placa com uma área central de uma Arduino Uno, com um processador Atmel ATmega32u4 a 16 MHz, que aceita shields Arduino e uma placa wireless Digi XBee. No resto da placa temos o processador ARM Cortex-A8 TI Sitara AM335x a 1GHz, capaz de correr uma versão Linux completa, complementado por dois microcontroladores 32-bit programáveis em tempo real a 200 MHz
Além disso, a Arduino TRE é parcialmente o resultado de uma colaboração entre a Arduino e a fundação Beagle- Board.org. Estes pioneiros do “open hardware” partilham a paixão de expandir ambientes de desenvolvimento open source, tornando a tecnologia acessível a artistas e entusias-tas. A Arduino TRE capitaliza assim nas experiências tanto da Arduino como da BeagleBoard.org, combinando os benefícios destas plataformas e das respectivas comunidades.“Ao escolher o processador Sitara AM335x da TI para poten-ciar a Arduino TRE, estamos a permitir que os nossos clientes possam tirar partido das capacidades de um processador expo-nencialmente mais rápido a correr um sistema operativo Linux completo”, afirma Massimo Banzi, co-fundador da Arduino. “Os nossos clientes agora dispõem de um portfólio de soluções diver-sificado que vai desde uma solução Uno baseada em microcon-trolador até a um computador Linux completo como é a TRE”.A placa Arduino TRE vai ficar disponível na Primavera de 2014.www.arduino.cc | www.makerfairerome.eu
![Page 8: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/8.jpg)
• Indústria
8 | Novembro 2013 | www.elektor-magazine.pt
Solução chipKIT Pi, desenhada para Raspberry Pi, torna-se também na primeira plataforma compatível Arduino da MicrochipA solução originalmente promovida pela Micro-chip e element14 integra um microcontrola-dor PIC32 a 32-bit num encapsulamento SPDIP com reduzido número de pinos, ideal para pro-totipagem. Tirando partido do nível de desem-penho da geração mais recente PIC32, com ele-vadas capacidades de memória e periféricos integrados, esta placa permite implementar facilmente soluções que integram ecrãs tác-teis, processamento de áudio e capacidades de controlo avançadas. A placa chipKIT Pi é supor-tada pela solução de desenvolvimento chipKIT Multi-Platform IDE (MPIDE) que pode correr directamente na Raspberry Pi.Esta mesma solução, desenhada exclusiva-mente para Raspberry Pi permite criar uma ponte com ecossistemas Arduino, uma vez que o ambiente de desenvolvimento MPIDE é open source e compatível com a linguagem de programação e ferramentas de desenvolvi-mento para Arduino. A solução com base no MCU 32-bit PIC32 da Microchip permite assim criar, compilar e programar aplicações Arduino baseadas em sketchs chipKIT directamente no sistema operativo Raspberry Pi.A ideia surgiu por parte de uma equipa de engenheiros da Microchip e da Farnell / ele-ment14, como uma forma de explorar as capa-cidades industriais existentes da Farnell, nome-adamente da sua subsidiária Embest, para
criar ferramentas de desenvolvimento exclusi-vas que permitissem aos utilizadores da Rasp-berry Pi trabalhar em sistemas embebidos com vastas possibilidades de aplicação.A ideia inicial do produto consistia simples-mente em ligar uma Raspberry Pi através de um cabo a uma placa existente da Microchip e desenvolver algum código que permitisse con-trolar a placa. No entanto, a equipa da Micro-chip quis ir ainda mais longe e começaram a trabalhar no conceito daquilo que viria a ser a solução chipKIT Pi.Os criadores do ambiente de desenvolvimento MPIDE (o equivalente chipKIT ao Arduino IDE) e a equipa da Microchip começaram a ana-lisar formas de correr o MPIDE directamente no ambiente da Raspberry Pi, o que permitiria expandir enormemente a base de aplicações possíveis.Essencialmente, a equipa implementou modi-ficações que permitem que o MPIDE corra em
Raspberry Pi, permitindo importar, escrever e descarregar sketches Arduino através da porta USB da Raspberry Pi para as placas compatí-veis chipKIT. O mais interessante é que esses sketches – que são programas que permitem às placas Arduino / chipKIT desempenhar determinadas tarefas, podem ser assim escri-tos por qualquer pessoa, abrindo um universo acessível a toda uma comunidade alargada de entusiastas.Como o processador da Raspberry Pi é um chip de 3,3V, os seus pinos de entradas e saídas digi-tais e comunicações (I2C, UART, SPI) requerem 3,3V, fazendo com que as placas Arduino, basea- das em microcontroladores 8-bit de 5V, preci-sem de componentes adicionais para converter as tensões. Já a placa chipKIT Pi pode ligar-se directamente à expansão de E/S da Raspberry Pi sem componentes adicionais, reduzindo cus-tos e complexidades das aplicações.A plataforma de desenvolvimento chipKIT cons-titui assim uma solução de hardware e sof-tware open-source ideal para pessoas com pouca experiência terem um contacto com controladores embebidos e explorarem esse mundo específico de aplicações, expandindo o suporte a mais plataformas e colocando ao dis-por toda uma série de bibliotecas de elevado desempenho.www.element14.com
Novo kit de desenvolvimento Linux WiFi da SilexComo são cada vez mais os projectos de siste-mas embebidos que usam WiFi, a Silex Tech-nology decidiu lançar um novo SDK (kit de desenvolvimento de software) para acelerar a integração de WiFi em sistemas baseados em Linux.A base do novo kit de desenvolvimento Silex SX-580-2700DM-SDK é o módulo COM (com-puter-on-module) SX-580 WiFi da marca. Mede apenas 30 x 55mm e integra um chip Atheros 6003 da Qualcomm com comunica-ção dual-band 802.11a/b/g/n, juntamente com um processador SoC Freescale i.MX28 a correr uma stack de rede TCP/IP optimizada para Linux. A Silex desenhou este módulo SX-580 COM para aplicações especializadas tal como dispositivos médicos, equipamentos de medida ou impressoras em rede.
O kit inclui igualmente uma placa base de desenvolvimento que garante conectividade Ethernet, três portas série, USB, alimentação e terminais de acesso a interfaces SPI, I2C e GPIO. Além disso, inclui também uma antena WiFi e vem com documen-tação completa relativa a hardware e software, incluindo exemplos de programas em Linux.Os protocolos de segurança do Linux SDK para este módulo SX-580 incluem suporte WPA, WPA2, WPA2-PSK, WPA, WPA-PSK e autenti-cação WEP+802.1x com os mais comuns pro-tocolos EAP. O SDK inclui igualmente capa-cidades série e Ethernet-para-WiFi, incluindo pontes que permitem que um dispositivo conectado em Ethernet possa comunicar sem fios, sem exigir modificações ao software
existente. As portas série do módulo supor-tam velocidades até 3Mbps.Tal como a Silex Technology explica, este con-junto SX-580-2700DM-SDK responde igual-mente a todo o tipo de aplicações customiza-das com dispositivos embebidos, respondendo à procura crescente no mercado.www.silexeurope.com
![Page 9: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/9.jpg)
notícias
A fábrica Sony UK TEC, situada em Pencoed, no Sul de Gales, foi o parceiro eleito pela element14 para trazer a produção da popular plataforma Raspberry Pi para o Reino Unido
1 milhão de placas Raspberry Pi produzidas no Reino Unido em parceria com a SonyA parceria da element14 com entidades como a Sony UK Technology Centre permitiu dar resposta ao fenómeno de popularidade da Raspberry Pi, ao mesmo tempo que foi possí-vel expandir o ecossistema desta plataforma com acessórios exclusivos como a EnOcean Pi, XBMC kit, PiFace e Gertboard, assim como os produtos Foundation, tal como a Raspberry Pi Camera.Isso mesmo foi recentemente assinalado por Jonathan Hardie (Global Head of Manufactu-ring, element14), Steve Dalton OBE (direc-tor geral do Sony UK Technology Centre) e Anthony Morton (Global Asset Manager - Ras-pberry Pi, element14), para simbolicamente celebrar a produção de 1 milhão de unidades Raspberry Pi produzidas no Reino Unido.A decisão estratégica de trazer de volta a produção da plataforma Raspberry Pi para o Reino Unido, só se tornou possível graças à parceria estabelecida com a fábrica Sony UK TEC, um dos gigantes da electrónica que
trouxe também o benefício de tornar o cen-tro de produção mais próximo da sede da Farnell element14, reduzindo tempo e custos de transporte e incentivando a indústria na região. A fábrica Sony UK Technology Centre é uma divisão da Sony Europe Limited que é um dos principais centros da marca na Europa e onde estão igualmente presentes cerca de 28 empresas start-up relacionadas, benefi-ciando de capacidades de produção com cer-tificação ISO 9001 (qualidade) e ISO 14001 (ambiental).Segundo Steve Dalton, director da Sony UK Technology Centre, “a Raspberry Pi é um exemplo fantástico de uma inovação produ-zida no Reino Unido, demonstrando as nos-sas capacidades de engenharia. Desde o dia em que o produto foi lançado que sabíamos que a Raspberry Pi seria um sucesso e qui-semos fazer parte dele. Ficámos surpreendi-dos mas também encantados pela procura contínua registada pela Pi em todo o mundo,
assim como pela facto de tudo indicar que esta não irá diminuir tão cedo. Em menos de um ano, criámos um milhão de unidades na nossa fábrica em Pencoed, o que resultou na criação de 40 postos de trabalho em Gales. É um feito digno de ser celebrado”.www.sonypencoed.co.ukwww.element14.com/community/raspberrypi_projects
![Page 10: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/10.jpg)
•Comunidade
10 | Novembro 2013 | www.elektor-magazine.pt
Compilado por Wisse Hettinga
Universo Elektor
Deixe o seu cérebro pensar… e guarde todo o trabalho para o software. Aqui no MOSI (Museu de Ciência e Indústria) em Manchester, Reino Unido, 20 projectistas de várias empresas concorrem para levar o DesigSpark Mechanics ao limite. O desafio é desenvolver algo inovador em 48 horas e imprimi--lo em 3D! Não é uma tarefa fácil para pessoas que normalmente têm mais do que fazer para além de salvar o mundo, mas as ideias que sur-gem são interessantes. Actualmente, é justo dizer que as actividades da equipa Elektor destinadas a salvar o mundo estão limitadas a evitar que algumas infelizes plantas sequem no escritório – já é um começo.
Só sorrisosAs pessoas que vê sorrir perten-cem à equipa de projecto do Flow-code. Todos têm razões para estar felizes: concluíram a versão 6 do Flowcode, um novo e excitante produto. Onde outros programas lhe permitem ver um LED a piscar ou um nível de sinal, o Flow-code 6 permite-lhe programar e simular todo um universo 3D completo. Os projectos típicos de CAD 3D podem ser importados e reavivados. Por exemplo, pode simular e testar o projecto para a impressora 3D antes de iniciar a produção. Desta forma esta nova versão do Flowcode preenche a lacuna entre a programação da electrónica e a simulação de comportamentos reais.A equipa está sedeada em Halifax, Reino Unido, e tenho a certeza que podemos esperar desta mais aplicações e desenvolvimentos num futuro próximo.O Flowcode está disponível através do Serviço Elektor, www.elektor.com/flowcode.
Todos os dias, a todas as horas, a todos os minutos, em todos os momentos há projectistas e entusiastas a pensar, alterar, a fazer engenharia inversa e a desenvolver novos produtos electrónicos. Principalmente por diversão, mas às vezes a diversão transforma-se numa actividade séria. O Universo Elektor faz a ligação entre alguns destes eventos e actividades – para diversão e negócios.
![Page 11: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/11.jpg)
À Volta do Mundo...
www.elektor-magazine.pt | Novembro 2013 | 11
Ponto de Lançamento da “Internet das Coisas”É uma ideia arrojada mas não improvável, que muitos dispositivos comuns vão
ter sensores embebidos, permitindo-lhes comunicar através de uma estrutura similar à Internet. Os produtos de consumo, desde carros a electrodomésticos
e outros dispositivos electrónicos, vão poder ligar-se a este tipo de redes globais e locais. As implicações para indivíduos e para modelos de
negócios são enormes.De acordo com a empresa de marketing ABI Research, mais
de 30 mil milhões de dispositivos vão comunicar, sem fios, atra-vés da Internet of Things (IoT) em 2020. E a revista Circuit Cellar
compilou uma lista de recursos on-line para ajudar as pessoas e as empresas a acompanhar o desenvolvimento da IoT.
Seja um workshop em Itália sobre redes de sensores sem fios, con-tactos dos inovadores neste campo, ou detalhes sobre novas aplicações e descobertas para a IoT, vai encontrar informação útil on-line na página “Inter-net of Things (IoT) Resources”, em circuitcellar.com/featured/iot-resources.Esta é uma lista que se espera ver crescer. Se conhecer algum recurso que deva ser adicionado, envie-o num e-mail para CJ Abate e Mary Wilson em [email protected].
Isso soa bem!No domínio da electrónica de áudio, a Elektor International Media publica as revistas audioXpress e Voice Coil, os catálogos Loudspeaker Industry Sourcebook e World Tube Directory, livros, e muito mais. Estes títulos foram fundados nos EUA por Edward T. Dell (1923-2013) e durante 35 anos ser-viram os construtores de áudio faça-voçê-mesmo, assim como aqueles que trabalhavam na indústria do áudio, com excelentes artigos, projectos, dicas e tecnologias.Acreditando que o universo dos entusiastas deve servir como modelo para a indústria, no que concerne à excelência dos projectos e à qualidade das construções, Ed Dell lançou a Audio Amateur em 1970, uma revista orien-tada exclusivamente ao áudio faça-voçê-mesmo. Dez anos depois, acredi-tando que havia interesse suficiente no mercado dos altifalantes, Ed Dell lançou outra revista em 1980, chamada Speaker Builder, enquanto uma terceira publicação respondia ao crescente interesse em equipamentos de áudio baseados em válvulas termoiónicas.Em 1996 a Audio Amateur passou a chamar-se Audio Electronics, e em 2000 as três revistas foram combinadas numa única revista, com periodicidade mensal, chamada audioXpress.Em 2011, Ed Dell vendeu a sua empresa à Elektor International Media.Uma nova equipa editorial, reforçada pelos autores seleccionados da rede Elektor, está actualmente a trabalhar no relança-mento desta publicação num formato expandido. A nova AudioXpress está orientada para a comunidade global de engenharia de áudio, cobrindo o esforço de Investigação e Desenvolvimento da indústria em muitas novas áreas de aplicação.A audioXpress renovada foi lançada na AES Convention em Nova Iorque (17 a 20 de Outubro de 2013) com uma nova ima-gem gráfica na versão impressa, assim como em formatos totalmente digitais, incluindo uma newsletter regular para os mais de 30 000 membros (actualmente). A audioXpress já está em contacto com a comunidade global de áudio através do Twitter (@audioXP_editor) e do Facebook (facebook.com/audioxpresscommunity). Veja mais em www.audioxpress.com.
(130199)
![Page 12: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/12.jpg)
•Projecto
12 | Novembro 2013 | www.elektor-magazine.pt
Hoje em dia é seguro
afirmar que praticamente todos os veículos modernos (carro, camião, mota,
tractor, etc.) se tornaram, efectivamente, numa verdadeira rede (móvel). Os vários sistemas de controlo destes veículos estão ligados entre si através de uma rede, utilizada para troca de mensagens. Garante-se assim que os vários sub-sistemas operam (e interagem entre si) sempre da forma mais eficaz possível.A maioria dos fabricantes automóveis utilizam o barramento CAN (Controller Area Network) para este fim. As unidades de controlo estão ligadas entre si através de dois condutores cruzados (twisted pair) com resistências de terminação
(em cada extremo), formando assim uma rede CAN. Estes dois condutores são chamados res-pectivamente CAN High e CAN Low. Um veículo pode ter mais do que uma rede CAN.O barramento CAN é um sistema que funciona de forma fiável em ambientes com muita inter-ferência mas que pode, dada a complexidade de algumas redes CAN, tornar-se ocasional-mente bastante difícil, nomeadamente para identificar e resolver problemas.Esta foi uma das principais razões que nos levou ao desenvolvimento do Testador CAN Elektor; mas a possibilidade de desenvol-ver uma ferramenta que facilite a apren-dizagem e a aquisição de experiência com o barramento CAN, assim como com o software associado, foi também
uma forte motivação.O Testador CAN descrito neste artigo é composto por duas placas idênticas (placa A e placa B), que diferem apenas no software presente em cada uma delas. Cada placa pode ser equipada com um mostrador LCD de 4x20 caracteres. As placas comunicam entre si através do protocolo CAN. As placas podem também ser ligadas a um barramento CAN pré-existente.
O Testador CAN permite as seguintes configura-ções (sempre com as mesmas placas):•Configuração de teste, com as placas
A e B, para IDs de 29 bits e/ou 11 bits (automático);
•Representação dos dados presentes no barramento CAN no mostrador LCD
Hugo Stiers (Bélgica)
Testador CANCom características avançadas
O circuito apresentado neste artigo tem todas as características necessárias para podermos concretizar testes e experiências num barramento CAN. Possibilita também a ligação a um barramento CAN já existente, para monitorização e identificação de falhas.
![Page 13: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/13.jpg)
Testador CAN
www.elektor-magazine.pt | Novembro 2013 | 13
(por exemplo: o estado do travão de mão, leitura do odómetro, etc.);
•Análise dos dados através do HyperTerminal;•Teste de funções com os botões de pressão
e LEDs;•Simulação de mensagens.
Todas estas possibilidades serão descritas de seguida.
HardwareComeçamos com uma breve descrição do har-dware. A Figura 1 apresenta o esquema de uma placa; sendo a outra idêntica.O circuito é composto pelos seguintes compo- nentes:•ATmega8515: microcontrolador de 8 bits
(IC1);•SJA1000: controlador CAN (IC4);•PCA82C250: emissor/receptor CAN (IC3);
•MAX232: emissor/receptor RS232 (IC2, para comunicação com o PC);
•Mostrador LCD de 4x20 caracteres (LCD1).O SJA1000 é um processador de fluxo de dados (stream processor) com memórias tampão para emissão e recepção. Este integrado é configurado e controlado pelo ATmega8515. O ATmega8515 coloca mensagens na memória tampão de trans-missão do SJA1000 e lê a correspondente memó-ria tampão de recepção. O SJA1000 é ligado ao ATmega8515 através de um barramento de dados e endereço multiplexado (PA0 – PA7).
Existem também outros quatro sinais de controlo referentes ao SJA1000: CS (chip select), ALE (address latch enable), leitura RD (read) e escrita WR (write). O CS (chip select) deve ser colocado no nível lógico baixo sempre que o ATmega8515 comunica com o SJA1000. O sinal ALE deve ter o nível lógico alto sempre que o barramento con-
Figura 1. Esquema do circuito do Testador CAN. Os ingredientes principais são um microcontrolador, um controlador CAN e um emissor/receptor CAN.
PB0 (OC0/T0)1
PB1 (T1)2
PB2 (AIN0)3
PB3 (AIN1)4
PB4 (SS)5
PB5 (MOSI)6
PB6 (MISO)7
PB7 (SCK)8
RESET9
PD0 (RXD)10
PD1 (TDX)11
PD2 (INT0)12
PD3 (INT1)13
PD4 (XCK)14
PD5 (OC1A)15
PD6 (WR)16
PD7 (RD)17
XTAL
218
XTAL
119
GND
20
PC0 (A8)21
PC1 (A9)22
PC2 (A10)23
PC3 (A11)24
PC4 (A12)25
PC5 (A13)26
PC6 (A14)27
PC7 (A15)28
PE2 (OC1B)29
PE1 (ALE)30
PE0 (ICP/INT2)31
PA7 (AD7)32
PA6 (AD6)33
PA5 (AD5)34
PA4 (AD4)35
PA3 (AD3)36
PA2 (AD2)37
PA1 (AD1)38
PA0 (AD0)39VC
C40
IC1
ATmega8515-16PC
C1+1 VD
D2
C1-3
C2+4
C2-5
VEE
6
T2OUT7
R2IN8
R2OUT9
T2IN10
T1IN11
R1OUT12
R1IN13
T1OUT14
GND15
VCC16
IC2
MAX232ACPE
1 23 45
MISO VCC
GND6MOSI
RESET
K2
X1
8 MHz
S1 S2 S3 S4
C1
22p
C2
22p
C3
22p
C4
22p
C5
1u
C6
1u
C7
1u
C8
1u
C9
1u
1
2
3
4
5
6
7
8
9
11
10
K7
SUB D9
GND
2
TXD1
VCC
3
RXD4VREF5
CANL 6CANH
CANL
CANH
7
RS8
IC3
PCA82C250Y
AD61
AD72
ALE3
CS4
RD5
WR6
CLKOUT7
VSS18
XTAL
19
XTAL
210
MODE11 VD
D312
TX013
TX114
VSS315
INT16
RST17
VDD2
18
RX019
RX120
VSS221
VDD1
22
AD023
AD124
AD225
AD326
AD427
AD528
IC4
SJA1000T
X2
16 MHz
VCC
GND
12
3 K3
12
3 K4
12
3 K5
12
3 K6
GND
VCC
RS
E
DB4DB5DB6DB7
6BDSCK7BD DB5
RESET
RESET
PD0PD1PD2PD3PD4PD5PD6PD7PD2
PD3
PD4
PD5
S5
RESET
PA0PA1PA2PA3PA4PA5PA6PA7
PE1
PC7
PD1
PD0
K9
VSS
1VD
D2
VL3
RS4
R/W
5E
6D0
7D1
8D2
9D3
10D4
11D5
12D6
13D7
14LE
D+A
15LE
D-C
16
LCD1
LCD20X4
RSEDB4
DB5
DB6
DB7
P1
10k
GND
D4D3D2D1
D5D6
R8
1k
R5
1k
R6
1k
R7
1k
R3
120R
R9
120R
R10
120R
R4
10k
R2
1k
R1
1k
R11
10kR12
330R
VCC
GND
GND
VCC VCC
GND
VCC
GND
PA1PA2PA3PA4PA5PA6PA7
PA0
VCC
PE1
PC7PD7
GND
PD6
VCC
12 K8
GND
12
K10
RESET
VCC
ISP120195 - 11
GND
PWR INCA
N BU
S
K1
![Page 14: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/14.jpg)
•Projecto
14 | Novembro 2013 | www.elektor-magazine.pt
de 9 V com um regulador de tensão adicional. O consumo de corrente é reduzido, pelo que para pequenas experiências uma bateria será perfei-tamente suficiente.
SoftwareO software foi escrito em BASCOM (versão de demonstração). O ATmega8515 é programado com o STK500 da Atmel. O software para este projecto é baseado nos exemplos BASCOM (third party Lawicel). Este programa inclui o mínimo indispensável para enviar e receber tramas de dados (mensagens). O programa configura o SJA1000 no modo PELICAN. Neste modo pode enviar e receber identificadores de 11 e 29 bits.O software é composto por sete partes:1. Em primeiro lugar é escrito um endereço
nos registos do SJA1000 (uma vez que o ATmega8515 vê o SJA1000 como uma expan-são da RAM interna).
2. Um identificador (de 29 bits) é transformado numa palavra do tipo Long (4 bytes), já no caso de um identificador de 11 bits, torna-se numa palavra do tipo Word (2 bytes).
3. O ciclo principal Do Loop contém as acções a serem executadas pelo programa. Aqui são chamadas as rotinas Transcantest1, Transcn-test2 e Receivecantest1.
4. A sub-rotina Initsja é utilizada para configu-rar o SJA1000 e contém, entre outras coisas, a configuração da velocidade de transmissão de bits (bit-rate).
5. As sub-rotinas Transcantest1 e Transcantest2 garantem que as tramas de dados (mensa-gens) são transmitidas.
6. A sub-rotina Receivecantest1 é responsável pela recepção das tramas de dados. Esta rotina trata também do processamento necessário (no Atmega8515) dos dados recebidos.
7. Apresentação dos dados no mostrador LCD (modo de 4 bits).
A velocidade de transmissão de bits do SJA1000 é configurada para 250 Kbits/s (o mesmo valor que na norma J1939). Contudo, podem ser pro-gramadas outras velocidades no programa, sem-pre tendo em conta a frequência de relógio do SJA1000 (16 MHz). Pode recorrer à Internet, onde se podem encontrar vários bit rate cal-culators adequados ao SJA1000, e que lhe dão directamente os valores a programar no registos (tmg_0 e tmg_1).Pode encontrar informações adicionais sobre o funcionamento do programa nas folhas de carac-
tiver um endereço, e um nível lógico baixo no caso de dados. Os sinais RD e WR são utilizados para determinar o tipo de operação, isto é, se se trata de um comando de leitura ou escrita na memória do SJA1000.A saída de interrupt (INT) do SJA100 não é utili-zada neste circuito. Através do pino (de entrada) de controlo do modo da ligação do SJA1000, o interface do barramento pode ser configurado para operar com um microcontrolador da Intel ou da Motorola. Uma vez que neste caso se trata de um microcontrolador (da família) Intel, o pino 11 de IC4 é ligado a VCC.O ATmega8515 vê o SJA1000 como uma expan-são da sua memória RAM (interna). É por esta razão que a opção EXTERNAL ACCESS ENABLE deve ser activada (consulte a secção Configura-ção do programa) nas configurações do compila-dor Bascom, para permitir acesso ao barramento interno por parte de periféricos externos.O emissor/receptor PCA82C250T assegura que os dados recebidos no seu pino TXD (nível TTL) são convertidos num sinal diferencial (sob a forma de uma diferença de tensão) no barramento CAN (CanH e CanL, em que os condutores Can-High e Can-Low formam um par entrelaçado, termi-nado com duas resistências de 120 Ω). O sinal diferencial recebido é convertido por este emis-sor/receptor num sinal com níveis TTL, sendo enviado para o SJA1000 através do pino RXD.O ATmega8515 funciona a uma frequência de relógio de 8 MHz, e o SJA1000 a 16 MHz. A velo-cidade de comunicação (baud rate) na ligação com o PC é de 57.600 baud.A placa inclui quatro jumpers (K3 a K6), que permitem optar por ligar os LEDs ou os botões de pressão ao porto D do ATmega8515.O mostrador é utilizado no modo de 4 bits e é ligado ao porto B do microcontrolador. P1 per-mite ajustar o contraste do mostrador.O MAX232 é um velho conhecido; garante a con-versão dos sinais lógicos de 5 V presentes na placa em sinais de 12 V compatíveis com o bar-ramento RS232.K9 é utilizado para ligar uma resistência de ter-minação no barramento CAN.Existe ainda um conector ISP de 6 vias, que per-mite a programação do microcontrolador direc-tamente na placa. Pode, por exemplo, utilizar o programador STK500 para este fim.O circuito é integralmente alimentado a partir de uma tensão de 5 V. Pode utilizar um adaptador de tensão com uma saída regulada, ou uma bateria
![Page 15: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/15.jpg)
Testador CAN
www.elektor-magazine.pt | Novembro 2013 | 15
MontagemNa Figura 2 podemos ver a placa de circuito impresso desenhada para o Testador CAN. A placa tem componentes nos dois lados, embora a maior parte deles seja montada na face dos componentes, como seria de esperar. Na face das soldaduras ficam os LEDs D1 a D6, os botões de pressão S1 a S4 e o conector de 16 vias para o mostrador LCD. O circuito foi originalmente
terísticas e notas de aplicação para o SJA1000 (no que diz respeito aos registos deste circuito integrado).O software está também bastante comentado, o que facilita a compreensão de algumas linhas de código mais difíceis.Pode ainda encontrar um resumo de todo o sof-tware juntamente com algumas explicações (em Inglês) num documento Word [1].
Lista de ComponentesResistênciasR1,R2,R5–R8 = 1 kΩR4,R11 = 10 kΩR3,R9,R10 = 120 ΩR12 = 330 ΩP1 = 10 kΩ (resistência ajustável), por exemplo
Bourns 3386P-1-103LF, Newark / Farnell # 9355030
CondensadoresC1–C4 = 22 pFC5–C9 = 1 µF/63 V, radial
SemicondutoresD1–D6 = LED, vermelho, 3 mmIC1 = ATmega8515-16PC, programado,
Refª 120195-42a placa A, Refª 120195-42b placa B
IC2 = MAX232ACPEIC3 = PCA82C250 (DIP 8 pinos) ou PCA82C250T
(SO8, necessária placa adaptadora)IC4 = SJA1000 (DIP 28 pinos) ou SJA1000T
(SO28, necessária placa adaptadora)
DiversosX1 = Cristal de quartzo 8 MHzX2 = Cristal de quartzo 16 MHz LCD1 = LCD, 4x20 caracteres (Refª 120061-73)K1 = Barra de terminais de 16 viasK2 = Barra de terminais de 6 vias (2x3)K3–K6 = Barra de terminais de 3 vias, com jumperK7 = Conector sub-D 9 vias, em ângulo, PCIK8,K10 = Bloco de terminais de aperto de 2 vias, PCIK9 = Barra de terminais de 2 vias, com jumperS1–S5 = Botão de pressão miniatura c/ contacto
normalmente aberto, por exemplo TE Connectivity 3-1437565-0, Newark / Farnell # 2060813
PCI # 120195-I, consulte [1]
+
1
+
1
c
2
6
C9
9
5
P1
R11
-C4
+
C8
C5
IC2
K6
++
C6
5
K5
C7
K7
K4
IC1
K26
R12
R8R5
X2
CAN
L
R10
K10
R2 R1
K9
C2
CA
NH
+
RESET
S5
C3
IC4
ISP
LCD_CONT
X1
C1
R3
R9
K3
R4
R7R6
K8
IC3
Elektor120195-I
+
+
+ ++ +
Figura 2. A placa de circuito impresso contém componentes nos dois lados: num lado os LEDs, botões de pressão e o mostrador, no outro lado os restantes componentes.
www.e
lekt
orpcbservice.com
![Page 16: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/16.jpg)
•Projecto
16 | Novembro 2013 | www.elektor-magazine.pt
pensado para circuitos integrados de dimensão normal, mas entretanto descobrimos que dois dos integrados já só estão disponíveis em versão SMD: o PCA82C250 (IC3) e o SJA1000 (IC4). Para não alterar as placas já projectadas, recorreu-se a placas adaptadoras (disponíveis em [2], entre outros). Para os nossos leitores que optem pelo controlador pré-programado, iremos também for-necer as duas placas adaptadoras corresponden-tes, para evitar qualquer atraso.Já o mostrador LCD não é necessário em todas as configurações de teste. Tudo depende do fir-mware utilizado (consulte também a documen-tação adicional fornecida gratuitamente [1]).O conector sub-D9 permite a ligação a um PC. Pode, se necessário, ligar neste conector um cabo adaptador USB/RS232 para interface com um PC moderno.Todo o firmware está, como habitualmente, dis-ponível gratuitamente no site da Elektor [1].Cada aplicação precisa de um firmware distinto. Para garantir uma maior simplicidade, a loja Elektor apenas fornece os microcontroladores pro-gramados para a aplicação 4, que será descrita com maior detalhe em breve (120195-42a e b).
Aplicações para o testador CANSegue-se uma breve descrição das várias apli-cações, tendo em especial atenção as versões de firmware necessárias para cada uma delas.
Aplicação 1: Placa A e placa B enviam e recebem mensagens entre si de forma automáticafirmware: 120195-40a (placa A sem LCD)120195-40b (placa B sem LCD)120195-41a (placa A com LCD)120195-41b (placa B com LCD)
Neste caso, ambas as placas enviam e recebem mensagens com IDs de 29 e 11 bits. Cada men-sagem contém 8 bytes de dados, dos quais ape-nas um é utilizado.A placa A transmite mensagens que se desti-nam exclusivamente à placa B, e a placa B envia mensagens que são destinadas exclusivamente à placa A. A recepção processa-se de forma idên-tica: a placa A apenas recebe mensagens da placa B e vice-versa.O byte de dados transmitido aparece no porto D do microcontrolador e é apresentado em ambas as placas através dos quatro LEDs, que se ligam e desligam dois de cada vez. Esta é também uma
Configurações do programa
A opção para acesso externo ao barramento de dados deve ser configurada no compilador BASCOM através do menu: OPTIONS/Compiler/C ‘External Access Enable’.
Configurações para o AVR Studio 4 e STK500:
Os fusíveis de programação no AVR Studio devem ser configurados da seguinte forma:Tamanho da secção de arranque em flash (Boot Flash) = 128 Endereço arranque (boot) =$0F80; BOOTZ = 11Nível de detecção de Brown-out a VCC = 2.7V; (BODLEVEL = 1)Cristal exterior de alta-frequência; Tempo de arranque: 16K CK+64ms;(CKSL = 1111 SUT = 11)
![Page 17: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/17.jpg)
Testador CAN
www.elektor-magazine.pt | Novembro 2013 | 17
rede sem actividade, uma vez que neste caso a totalidade do barramento CAN está à disposição. Podemos também utilizá-lo numa rede activa, mas nesse caso os LEDs irão piscar com um ritmo mais lento, uma vez que haverão outras transmissões de dados no barramento. Sempre que os LEDs piscarem significa que as mensa-gens provenientes das nossas duas placas foram enviadas e recebidas, por entre todas as restantes mensagens também transmitidas no barramento.
Aplicação 2: Testador CAN individual com mostrador LCD (travão de mão, leitura do odómetro, etc.)Firmware: 120195-44a (placa com mostrador LCD, travão de mão)120195-44b (placa com mostrador LCD, leitura do odómetro)
Nesta aplicação o Testador CAN apenas recebe mensagens. Estas são apresentadas de forma legível no mostrador LCD de 4x20 caracteres.
forma de ilustrar o fluxo contínuo de dados entre as duas placas, e de confirmar a ligação correcta das cablagens entre as duas placas.Assim, podemos utilizar esta funcionalidade jus-tamente para testar as ligações de uma rede CAN. Basta ligar as placas em qualquer ponto arbitrário da rede. Ou ligar as placas (A e B) nas extremidades do par de condutores que preten-der testar. Ter sempre em atenção as resistên-cias de terminação (possivelmente) já presentes na rede CAN, e se necessário desligue-as. Cada placa do Testador CAN tem uma resistência de terminação de 120 Ω, que podemos inserir ou remover com o jumper K9 (a impedância do bar-ramento é de 60 Ω).Com esta configuração podemos testar:•Uma interrupção no condutor CanH;•Uma interrupção no condutor CanL;•Troca entre o CanH e o CanL;•CanH e CanL em curto-circuito;•Humidade entre os condutores (ou até a sua
submersão).
Quando algumas destas falhas surgirem (ou se forem permanentes), os LEDs irão imediata-mente parar de piscar. Assim que a(s) falha(s) desaparecer(em), os LEDs irão retomar a sua actividade habitual. Dispõem assim de uma clara indicação visual de falha. Para detectar falhas intermitentes, podemos abanar os cabos e fichas enquanto monitoriza o Testador CAN.Este testador tem um melhor desempenho numa
Aviso de segurança!Actue de acordo com a sua experiência! Ao ligar o Testador CAN num veí- culo e ao enviar mensagens (tramas de dados) na rede, existe a possibi-lidade de ligar os motores, e dos veículos começarem a andar sozinhos; os motores podem também atingir altas rotações, etc. Certifique-se que trabalha num ambiente com a máxima segurança, e não se coloque a si ou a outros em perigo. Siga atentamente as instruções do veículo e do fabricante. E leia sempre as instruções de segurança.
![Page 18: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/18.jpg)
•Projecto
18 | Novembro 2013 | www.elektor-magazine.pt
São utilizados dois botões de pressão e dois LEDs. É importante colocar os jumpers na sua posição correcta:•Os portos D4 e D5 são ligados aos botões
de pressão (jumpers K5: 1-2 e K6: 1-2).•Os portos D2 e D3 são ligados aos LEDs
(jumpers K3: 2-3 e K4: 2-3).Ambas as placas (A e B) podem receber e enviar mensagens.
Placa A:É enviada uma mensagem tanto ao pressionar como ao soltar um ou ambos os botões de pres-são. A transmissão desta mensagem faz acender ou apagar os LEDS da placa B (os LEDs acendem quando os botões são pressionados, e apagam-se ao serem libertados). Apenas um byte de dados é enviado, com o identificador 0C1F134A(H).A Placa A apenas recebe mensagens da placa B, que consistem num byte de dados com o iden-tificador 0C1F1315(H).
Placa B:É enviada uma mensagem quer ao pressionar quer ao soltar um ou ambos os botões de pres-são. A transmissão desta mensagem faz acender ou apagar os LEDS da placa A (os LEDs acendem quando os botões são pressionados, e apagam-se ao serem libertados). Apenas um byte de dados é enviado, com o identificador 0C1F1315(H).A Placa B apenas recebe mensagens da placa A, que consistem num byte de dados com o iden-tificador 0C1F134A(H). O byte recebido contém a informação referente à operação dos LEDs.Na recepção de cada mensagem o respectivo identificador é comparado com o valor esperado, e se não houver uma correspondência os dados não são copiados para o porto D. A Placa A ape-nas aceita dados provenientes da placa B e vice--versa. O mostrador LCD apresenta o estado dos botões de pressão e dos LEDs.O Testador CAN pode ser utilizado nesta apli-cação de várias formas, por exemplo, para tes-tar as ligações de uma rede CAN. Ao operar os botões de pressão na placa A os LEDs na placa B devem reflectir o estado desses mesmos botões, e vice-versa.Esta configuração e software foram também tes-tados numa rede activa (isto é, que transporta outras mensagens). A aplicação funcionou, mas de forma mais lenta (verifique sempre os identi-ficadores em uso, não deve haver sobreposições com os já presentes numa rede em funciona-
Os dois exemplos apresentam:a) o estado do travão de mão de um camião;b) a leitura de um odómetro
(registo de quilómetros).
Estes exemplos ilustram como se podem repre-sentar os dados transmitidos no barramento num formato legível com o auxílio de algumas operações.Esta função é bastante útil para fins de diag-nóstico, por exemplo, para ler um dado sensor durante um ensaio. Nesta aplicação o testador é ligado à rede CAN de um veículo no qual são transmitidas as mensagens a detectar.Se não tivermos um veículo à nossa disposição, podemos sempre simular as mensagens com outra placa. Podemos, por exemplo, utilizar o Tiny-CAN View (consulte o Controlador CAN para automóvel, na Elektor de Abril de 2009 ou o CAN Explorer, na Elektor de Abril de 2008).
Aplicação 3: Visualização de dados no HyperTerminal (baudrate = 57.600)Esta opção está disponível em todas as versões do firmware.O Testador CAN tem um integrado MAX232 para comunicação com o PC. O programa foi escrito de forma a possibilitar a visualização e análise das mensagens num PC através da porta série. Isto aplica-se quer à placa receptora quer à emissora.Os dados recebidos podem também ser registados num ficheiro (através do programa HyperTermi-nal). Pode optar por registar todas as mensagens, ou apenas aquelas que lhe interessarem, através de uma configuração no programa. Por exemplo, o programa em cada placa inclui o respectivo número de componente, para identificar o tipo e a versão do software actualmente programado no microcontrolador. Esta é uma funcionalidade bastante prática, sobretudo em situações em que pretenda utilizar vários controladores (cada um com o seu firmware). Assim, ao ligar cada um deles a um PC podemos determinar facilmente o programa em execução nesse controlador.
Aplicação 4: Testador CAN com botões de pressão e LEDsFirmware: 120195-42a (placa A com LCD)120195-42b (placa B com ou sem LCD)Esta aplicação requer duas placas (Placa A e Placa B).As mensagens têm identificadores de 29 bits e um bit rate de 250 Kbits/s (protocolo J1939).
![Page 19: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/19.jpg)
Testador CAN
www.elektor-magazine.pt | Novembro 2013 | 19
Firmware 120195-43a: envio de mensagens; fir-mware 120195-43b1: recepção de mensagens.Para mais exemplos e explicações das mensa-gens, consulte a Internet [3].Para testar as placas (nomeadamente a visua-lização de dados no mostrador LCD), podemos também neste caso utilizar o Tiny CAN View ou o CAN Explorer.
ConclusãoO Testador CAN requer sempre uma ligação a outra placa, veículo ou configuração de teste, tal como o Tiny CAN View ou o CAN Explorer da Elektor. Boa sorte com os seus testes e expe- riências! (120195-I)
Internet [1] www.elektor.com.pt/120195[2] www.futurlec.com/SMD_Adapters.shtml[3] www.fms-standard.com/down_load/fms_
document_ver02.00vers_11_11_2010.pdf
mento/activa). Logo, também nesta aplicação, o Testador CAN tem um melhor desempenho numa rede sem mais actividade.
Aplicação 5: O Testador CAN como um simulador de mensagensFirmware: 120195-43a (placa A com mostrador LCD, consulte a documentação adicional 120195-W).120195-43b1 (placa B com mostrador LCD, consulte a documentação adicional 120195-W).
Com este firmware é possível simular o envio de mensagens; podemos programar as mensagens numa das placas e utilizar a outra para as apre-sentar num mostrador LCD ou no PC, através do HyperTerminal. Estas mensagens podem ser trans-mitidas automaticamente (no barramento CAN) com uma certa frequência de repetição (tempo de repetição). Podem também ser enviadas pres-sionando qualquer um dos botões de pressão.
Figura 3.A configuração de teste para a aplicação #4. A tensão de alimentação é fornecida por uma bateria de 9 V e um regulador de tensão 7805.
![Page 20: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/20.jpg)
•Projecto
20 | Novembro 2013 | www.elektor-magazine.pt
O sucesso do Medidor LCR de 500 ppm da ElektorO entusiasmo revelado por um grande número de leitores aquando da publicação deste pro-jecto mostram que os instrumentos de medição de elevada precisão ainda estão entre os seus projectos de construção favoritos. O autor, Jean- -Jacques Aubry, emitiu uma correcção no fórum francês [4] – o único erro significativo obser-vado até agora – para o conector USB e SW1. Para o SW1 a dimensão de 1,16 mm deve ser de 0,96 milímetros. Para J19 a dimensão de 8,03 mm deve ser 5,39 milímetros e a dimensão de 3,97 mm deve ser 6,61 milímetros.Foi colocado no site para donwload um desenho corrigido, assim como tem uma nova versão do esquemático que corrige alguns detalhes. Na lista de componentes para o circuito principal, J17, listado junto com J7, J8, ... é na verdade J9. R81 aparece duas vezes, o valor correto é de 7,5 kΩ, R81 = 10 kΩ deve ser excluída. No diagrama do circuito principal, R31 = 750 Ω e no circuito de extensão, a resistência em série com o LED D5 é R8 = 1 kΩ. E finalmente, C30 = 1,5 nF/5% NP0. Estas correcções não afectam o funcionamento do
circuito. A placa de circuito impresso e o módulo pronto a usar mantêm-se inalterados, e como à data (23 de Maio de 2013) tudo está a funcionar bem, não existem alterações desde o terceiro artigo. E já que estamos a falar de detalhes, no início do “Setup inicial” no documento disponí-vel no nosso site, o ficheiro do firmware é cha-mado erradamente de LCR3A_update_Vxxx.hex. O nome correcto é LCR3A_firmware_Vxxx.hex. O autor também responderá de bom grado a qualquer outra pergunta que seja feita directa-mente no fórum em inglês, e tem todo o prazer em discutir alguns pontos do seu medidor LCR de precisão com os utilizadores.Nos três artigos que descrevem o medidor LCR [1], passámos por cima de certos aspectos, para evitar que os artigos ficassem excessivamente longos. Propomos então aqui voltar atrás em alguns detalhes que podem ser interessantes fora do contexto do dispositivo descrito.É o caso de uma rotina especial para a exibição de ícones no ecrã gráfico, que requer um pouco de “ginástica”.Vamos também discutir a precisão das medições, os factores que afectam a precisão e os erros. A leitura deste artigo só tem alguma utilidade se o leitor já teve a oportunidade de ter lido tam-bém os outros três artigos anteriores – particu-larmente, a descrição do circuito e os princípios de medição.
Biblioteca gráfica para o displaySempre que necessário, o bootloader e o firmware usam o display gráfico (GLCD) para apresentar mensagens e imagens. A memória RAM do dis-play está organizada em 128 colunas e 8 linhas de bytes (64 bits ou pixels). Agora, a altura dos elementos a exibir (ícones) excede os 8 bits e são descritos usando vários bytes: a altura dasduas fontes utilizadas é 11 e 16 bits. Todos os ícones estão definidos no ficheiro glcd_bitmaps.c (ou bootloader_glcd_bitmaps.c para a versão minimalista, menos alguns dos ícones e fontes usadas pelo firmware). Se quisermos ser capazes de escrever em qualquer posição, por exemplo,
Jean-Jacques Aubry (Ollioules)
Análise de pontos específicos do Medidor LCR de 500 ppmO luxo da precisão ao alcance de todos
![Page 21: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/21.jpg)
Medidor LCR de 500 ppm
www.elektor-magazine.pt | Novembro 2013 | 21
abrangendo os limites do byte, e se escrever na memória RAM do GLCD é feito em bytes inteiros em endereços bem definidos, é preciso conhecer o conteúdo da memória RAM antes de gravar e executar alguns cálculos inteligente entre os bytes antigos e os bytes novos, de modo a modificar apenas os pixels pretendidos (bits). O número de linhas disponíveis para ligar o mos-trador significa que somos obrigados a usar o mesmo no modo série. Infelizmente, este modo não nos permite ler o conteúdo da memória RAM do display. Portanto, temos de criar um espelho
da memória RAM do GLCD na memória RAM do microcontrolador:uchar xdata GLCD_Array [LCD_COLS][LCD_ROWS];
Estes cálculos entre os bytes antigos e os bytes novos rapidamente parecem indestrinçáveis, uma vez que existem imensos casos diferentes para resolver. A solução que adoptei consiste em representar uma coluna como 64 bits em vez de apenas 8 bytes!Esta solução requer:
Análise de pontos específicos do Medidor LCR de 500 ppmO luxo da precisão ao alcance de todos
1. Criar uma imagem das colunas na memória RAM do microcontrolador, onde cada byte representa um único pixel na coluna da RAM do GLCD, portanto um valor zero ou um.
uchar xdata Column_Array[(LCD_ROWS + 1) * 8]; // + 1 for 2nd byte of char in last line
2. Criar uma rotina para ler a coluna do display (na verdade, o espelho) e escrever, depois de con-verter nos bits equivalentes (0 ou 1), em Column_Array[].
void GLCD_read_column(uchar col){ uchar rows, pix, i, j; i = 0; // read column col, byte after byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = GLCD_Array[col][rows]; // write pix, bit after bit for (j = 0; j < 8; j++) { Column_Array[i] = pix & 0x01; pix >>= 1; i++; } }}
3. Criar uma rotina para ler o conteúdo de Column_Array[], escrever na RAM do GLCD e actuali-zar o espelho.
void GLCD_write_column(uchar col){ uchar rows, pix, i, j; i = 0; // write column col, byte after byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = 0; // read pix, bit after bit for (j = 0; j < 8; j++) { pix += Column_Array[i] << j; i++; } if (GLCD_Array[col][rows] != pix) // only if GLCD RAM byte modified {
![Page 22: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/22.jpg)
•Projecto
22 | Novembro 2013 | www.elektor-magazine.pt
GLCD_set_pos(rows, col); GLCD_WriteData(pix); // draw in GLCD RAM GLCD_Array[col][rows] = pix; // update RAM mirror } }}
4. Criar uma rotina para exibir um ícone pré-definido em formato bitmap. Isto pode ser feito em qualquer lugar, independentemente do seu tamanho (dentro dos limites do display!).
void GLCD_show_icon(uchar code *bitmap, uchar width, uchar height, uchar x, uchar y, uchar mode){ uchar tx, ty, pix, hb, i, j, k; hb = (height - 1) / 8 + 1; // character height in bytes for (tx = 0; tx < width; tx++) // loop for width columns { GLCD_read_column(tx + x); i = y; k = 0; for (ty = 0; ty < hb; ty++) // read hb bytes of icon { pix = *(bitmap + ty * width + tx); // read one byte if (mode == GLCD_PIXEL_OFF) pix = ~pix; for (j = 0; j < 8; j++) // write 8 bits of pix to Column_Array { if (mode != GLCD_PIXEL_INV) Column_Array[i] = pix & 0x01; else Column_Array[i] ^= pix & 0x01; pix >>= 1; if (k == height) break; i++; k++; } } GLCD_write_column(tx + x); }}
5. E, por fim, criar uma rotina para escrita de texto, o que significa apenas escrever uma sequência de ícones que estão definidos numa dada fonte.
void GLCD_draw_text( uchar x, uchar y, uchar *text , uchar mode ){ uchar i, posx, posy; uchar *pt; posy = y - font_height + 1; for( pt = text, i = 0; *pt; i++, pt++ ) { posx = x + i * font_width; if( posx + font_width > LCD_COLS ) { i = 0; posx = x; posy += font_height; } GLCD_show_icon( font + (*pt - font_offset) * font_charsize, font_width, font_height, posx, posy, mode ); }
}
![Page 23: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/23.jpg)
Medidor LCR de 500 ppm
www.elektor-magazine.pt | Novembro 2013 | 23
Precisão da mediçãoA impedância a medir pode ser escrita da seguinte forma:
=+
+× =
+
++
−
+×Z
V jVI j I
G RG
V I V II I
jV I V II I
G RGx
p q
p q
i sense
v
p p q q
p q
q p p q
p q
i sense
v2 2 2 2
onde Gi e Gv correspondem aos ganhos de corrente e tensão da cadeia de amplificação, e Rsense é a resistência IU_converter.
= × × ×Gi G G G i G iINA BUFFER PGA DAC128 = × × ×Gv G G G v G vINA BUFFER PGA DAC128
Assim, uma vez mais, utilizando a representação em série de uma impedância = +Z R j XS S
=+
+×R
V I V II I
G i G i RG v G vS
p p q q
p q
PGA DAC sense
PGA DAC2 2
=+
+×X
V I V II I
G i G i RG v G vS
q p p q
p q
PGA DAC sense
PGA DAC2 2
Se ignorarmos os erros de digitalização, conforme explicado no paragrafo “Cuidado com o ganho” no primeiro artigo desta série [1], então:
ΔRSRS
= Δ XSXS
= ΔGPGAiGPGAi
+ ΔGPGAvGPGAv
⎡
⎣⎢
⎤
⎦⎥
i≠v
+ ΔGDACiGDACi
+ ΔGDACvGDACv
⎡
⎣⎢
⎤
⎦⎥
i≠v
+ ΔRsenseRsense
Podemos dividir o erro global em duas partes principais:•O erro devido à imprecisão no ganho do PGA103 e DAC8811•O erro devido ao real valor das resistências no IU_converter (erro de calibração)A isto temos que adicionar um erro devido à:•Existência do mostrador (± 1 bit no último dígito)•Existência do erro de fase residual (após a compensação do erro de fase)• Flutuação originada pelo ruído de amplificação e de sinais espúrios captados pelos cabos de medida (linhas de energia, etc.)Sendo que, depois, o erro de digitalização aparece nas gamas de 1 e 8, quando a amplitude da tensão ou corrente se tornam muito diferentes devido à falta de ganho.
Factores que afectam a precisãoErro de ganhoDe acordo com a documentação da Burr Brown (TI) para o PGA103
Ganho 1 10 100
Erro de ganho típico ± 0,005% ± 0,02% ± 0,05%
Erro de ganho máximo ± 0,02% ± 0,05% ± 0,2%
Para as gamas de 3-6, o amplificador programável PGA103 tem sempre um ganho unitário e o termo
ΔGPGAiGPGAi
+ ΔGPGAvGPGAv
⎡
⎣⎢
⎤
⎦⎥
é zero.
Para as gamas 2 e 7, este termo apresenta um erro máximo de ± 0,07% (tipicamente ± 0,025%).Para as gamas 1 e 8, este termo apresenta um erro máximo de ± 0,07% (tipicamente ± 0,025%).
![Page 24: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/24.jpg)
•Projecto
24 | Novembro 2013 | www.elektor-magazine.pt
(130174)Internet[1] Medidor LCR de 500 ppm, Parte 1: www.
elektor.com.pt/110758[2] Medidor LCR de 500 ppm, Parte 2: www.
elektor.com.pt/130022[3] Medidor LCR de 500 ppm, Parte 3: www.
elektor.com.pt/130093[4] www.elektor.fr/forumLCR
De acordo com a documentação da TI para o DAC8811C, a sua precisão máxima relativa é de ± 1 LSB (bit menos significativo). Assim, o erro de ganho máximo será de ± 1/N, onde N é o código que define o ganho do amplificador final.
post_amplification step 0 1 2 3 4 5 6 7
N 7 500 8 700 10 000 11 600 13 500 15 500 18 000 20 700
post_amplification step 8 9 A B C D E F
N 24 000 27 600 32 000 36 900 42 600 49 100 56 700 65 500
Quando os passos post_amplification_U e post_amplification_I são iguais, o termo
ΔGDACiGDACi
+ ΔGDACvGDACv
⎡
⎣⎢
⎤
⎦⎥
é zero.
Caso contrário, é máximo quando um é zero e o outro é um, pelo que então tem um valor de +1
75001
8700
ou seja, 0,025%.
Nota: Se usar a versão B (DAC8811B) este erro é duplicado.
O IU_converter, cujo ganho em malha aberta não é infinito, também introduz um erro de medição. Como o ganho em malha fechada é ≤ 1 para as gamas de 3-6, o seu ganho em malha aberta de cerca de 80 dB (10.000) @ 10 kHz introduz um erro adicional de cerca de 0,01%. Este é insignificante para as frequências mais baixas.
Nota: No computador, o programa AU2011 permite-lhe visualizar o valor do erro de ganho.
Erro de faseA utilização de um amplificador com uma grande largura de banda (50 MHz) para o IU_converter e as várias compensações de fase [3] permite-nos reduzir os desvios de fase espúrios ao mínimo. No entanto, não são completamente eliminados. Além disso, assume-se que a fase do amplificador final é independente do ganho, o que apenas é válido para uma primeira aproximação, como acontece com os dados entre 0x2000 e 0xFFFF, a sua largura de banda é relativamente constante (cerca de 8 MHz) dentro da banda de funcionamento do DAC8811.Este erro residual irá ter um efeito sobre o valor do parâmetro secundário, que vai ser tanto mais pronunciado quanto mais próxima a componente em fase estiver de 0° e ±90°.
Erro de calibraçãoO erro inicial é o da precisão das resistências montadas na placa de circuito impresso, isto é, ±0,05%. É possível melhorar isto seguindo as indicações fornecidas noutros artigos desta série [3].
![Page 25: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/25.jpg)
![Page 26: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/26.jpg)
•Projecto
26 | Novembro 2013 | www.elektor-magazine.pt
Os dois pontos que merecem a nassa atenção são o facto de que o instrumento parece bloquear durante a medição de resistências (<1 Ω); e a aparente impossibilidade de efectuar acções de ajuste. O autor já abordou sobre estes problemas nos fóruns da Elektor [2] [3], mas achamos que é útil falar sobre eles aqui.Ao medir resistências de valor inferior a 1 Ω, de forma a obter uma tensão de medição ade-quada, o firmware ajusta o ganho de “tensão” de medição para o máximo:
•Gama 1 (Rsense = 100 Ω e ganho do PGA103 a 100);
•Ganho final de amplificação próximo do máximo (passo E ou F).
Infelizmente, a tensão de desvio de entrada é também fortemente amplificada, e usando o cir-cuito publicado na edição de Março de 2013, esta não é compensada. Isto pode fazer com que a tensão máxima na entrada do conver-sor analógico/digital possa ser constantemente ultrapassada.Este fenómeno errático não é sistemático e depende, em grande medida, da tensão de des-vio acumulada de U6 e U4, e na (baixa) resis-tência (ou indutância) que estamos a medir. Este é o primeiro!
Quanto ao segundo, quando não há nenhum com-ponente ligado durante a operação de Ajuste – Circuito-Aberto, também aqui o ganho de medi-ção de “corrente” é máximo para a frequência de 100 Hz (ou 120 Hz):
•Gama 8 (Rsense = 100 kΩ e ganho do PGA103 a 100);
•Ganho final de amplificação próximo do máximo (passo E ou F).
Neste ponto, o circuito de medição de corrente é muito sensível à interferência captada pelos con-dutores de medição, em particular proveniente da linha de alimentação (50 Hz ou 60 Hz). O resul-tado da medição é tão errático que o firmware recusa-se a apresenta-lo no display, e não valida a função de Ajuste. Aqui fica o segundo!
Dois problemas – duas soluçõesDependendo se tem jeito para trabalhar com o ferro de soldar, existem duas soluções:
•Modificarohardware–amelhorsolução–para permitir adaptar o circuito de compen-sação da tensão de desvio de entrada, e ao mesmo tempo actualizar o firmware (v.3.0.0) em conjunto com o programa AU2011 (v.3.0.0). O programa vai detectar automaticamente a alteração do hardware durante a execução, devido à presença da resistência na linha P2.2 (LCD_SI) (Figura 1).•Actualize com as mesmas versões de firmware
(v.3.0.0) e do programa AU2011 (v.3.0.0), sem modificar o hardware.
Importante: A actualização do software para a versão 3.0.0 tem que ser feita de em qual-quer dos casos. A nova versão é igualmente compatível com o hardware original e com a versão modificada descrita abaixo.
Alteração do hardwareTal como concebido originalmente, a compensa-ção da tensão de desvio de entrada é conseguida através da injecção de uma corrente na entrada
Jean-Jacques Aubry (França)
Actualização importante para oMedidor LCR de 500 ppmComo este projecto foi publicado em três partes [1], foram já construídos algumas centenas, para grande satisfação dos seus utilizadores, do autor e também dos editores da Elektor. O autor já corrigiu duas falhas que podiam interferir com o funcionamento do dispositivo em determinas condições.
![Page 27: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/27.jpg)
Medidor LCR de 500 ppm
www.elektor-magazine.pt | Novembro 2013 | 27
da U6. Infelizmente, o resultado é muito depen-dente da resistência (DC) do DUT.O novo circuito (Figura 1) aplica a tensão de cor-recção na saída de U5 (INA128), e desse modo a impedância DUT já não tem qualquer efeito; isto também permite que seja possível separar
a compensação para as medições de corrente e tensão. Para conseguir isto, o pino 5 de U5 já não é ligado à massa analógica, mas a uma tensão ajustável através do software via uma resistên-cia de baixo valor.Existem quatro passos para efectuar a alteração:
Y1
C38
33p
C39
33p R500R
R51
4k7
R12
4k7
R53
470R
D6J17C48
100n
C47
100n
100nRESET
EXT_REF
DAC_SDIDAC_CLKDAC_CSR_SEL_A0R_SEL_A1GAIN_A0GAIN_A1
TIMER_4VBGAP0
R4710k
R45
39k
R46
10R
–5VA
R95
10k
UI_SEL
VDD +5VA
1 23 45 67 89 10
11 1213 14
J16
P1.7/AIN2.7P1.6/AIN2.6P1.5/AIN2.5P1.4/AIN2.4P1.3/AIN2.3P1.2/AIN2.2P1.1/AIN2.1
P1.0/AIN2.0
C8051F061
VRGND0VRGND1
VBGAP0
XTAL1 XTAL2
AIN0GAIN1G
VREF0
AGND
AGND
AGND
DGND
DGND
DGND
AIN0
AGND
DAC0
P2.7
P2.5P2.6
P2.4P2.3P2.2P2.1P2.0
P0.7P0.6P0.5P0.4P0.3P0.2
20 2119 22 27 39 54
14
13
11
1516
17
24252829303132
33
34
3635
3738414243
4445464748
6
3
4
LCD_CSLCD_RES
BKL_CLCD_A0
LCD_SCLLCD_SI
L1L2L4
LED
BKL_CLCD_CSLCD_A0LCD_SI
L2
LCD_RESLCD_SCL
LEDL1L4
BKL_AVDD
J11
HD
J10
HS
J13
LS
J12
LD
R36
100R
R37
100R
J22J21
C25150p 5%
NPO
C23 0805NC
J9
C221n5 5%
NPO
C21 0805NC
J8
C1815n 5%
NPO
C17 0805NC
J7
C1647n 5%
NPOJ6
C1547n 5%
NPO
C1447n 5%
C1315n 5%
NPO
NPO
R191R
R17NC
J3
R1610R
R15NC
J2
J1
R24
100R
R1810k
0.05%R201k
0.05%
R21100R
0.05%R22100k
0.05%
+5VA
–5VA
C20
100n
C12
100n
R2356R
R2556R
R26100R
C19
150p5%
NPO
74HCT4053
U8
GND VEE
VCC
EN
1213
15
14X0X1
Y0Y1
Z0Z1
10
11
16
2
3
6
4
1
5
X
Y
Z
B
A
9C
8 7
74HCT4052
U3
VCC
VEEGND EN
12
10
X0
16
1314 X115 X211 X3
Y0Y1Y2Y3
A
6
B 9
X
1524
Y 3
78
+5VA
–5VA
D11 2
3
BAV199
U4.C
9
10
8
AV+
R27100R
D21 2
3
BAV199R29100R 4
31U6
5
2OPA354
C28100n
C242u2
C31100n
C322u2
AV+
–2V5
R28
10R
D312
3
BAV199
–5VA
U4.D
13
12
14
DBVT
R34820k
R42100k
C35
100n
TP6
D41 2
3
BAV199
U4.A
2
3
1
+5VA
–5VA
R40100R
D51 2
3
BAV199
U4.B
6
5
7
R44100R
U14
31
5
2
OPA725DBVT
+5VA C2
100n
C10
100n–5VA
R2
820k
R8
16k
C9
4u7
C3
4u7
R_SEL_A0
R_SEL_A1
IC411
4
C33
100n
C36
100n
+5VA
–5VA
IC4 = TLC2274
INA128UU5
REF
+VS
–VS
RG
RG
VO
2
31
8
6
5
7
4
R93
100k
R32
100k
R35
56R
R41
56R
UI_SEL C34
100n
–5VA
+5VA
C27
100n
R31750R
C30
1n55%
NPO
J19
+5V
GND
D–D+
1234
USB-BL3
FB
L2
FB
C84
33p
C83
33p
C82
10n
C78
100n
FT235RL
3V3OUT
RXLEDTXLED
SLEEP
RESET
USBDPUSBDM
VCCIO
TXDEN
PWRNTEST
U19
OSCO
AGND
OSCI
DCDDSR
RXDRTSTXD
CTS
DTR
VCC
GND GND GND
2728
25
2223
12
26
1011
14
19
17
1516
20
13
RI
18 21
4
9
5312
6
7
TP3
TP5
TP4
J14
J5J4
R110R
R4
10k
R10
10k
R61k8
R956R
C1
100n
C11
100n
VDD
TP2
R11
8k2
R125k6
C7
47n5%
NPO
R58k2
R13
8k2
R145k6
C57
4n75%
NPO
R38k2
PWRN
TIMER_2
TIMER_4
R38
56R
4
12
R39
56R
GAIN
_A0
GAIN
_A1
R43
2R2
M1
MGND
R_SEL_A0R_SEL_A1
00
10kR18
00
00
00
R21 R20 R22100R 1k 100k
SINUS_TRIM
INPUT_TRIM
UI_SEL UI
00 0
GAIN_A0GAIN_A1 1
1
1
10
0
100
*
FL_10kHz
MAX7404
U2SHDN
GND
ESA
OUT
CLKCOM
VDD
OS
IN
7 4
3
5
6
2
81
TP1
01
* J17 SET FOR FIRMWARE UPDATEAT POWER-ON
Figura 1. Esquemático parcial com as correcções a efectuar para melhorar o desempenho do Medidor LCR de 500 ppm.
![Page 28: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/28.jpg)
•Projecto
28 | Novembro 2013 | www.elektor-magazine.pt
O terceiro passo é mais complexo: o pino 5 de U5 tem que ser isolado da sua ligação actual e ligado à junção de R45, R46 e R47. Isto é pos-sível levantando o pino 5, mas não aconselha-mos isto, pois corremos o risco de danificar U5. Assim, sugerimos antes fazer um pequeno corte limpo nas pistas (visíveis) entre C27 e U5.5, U5.5 e C34, e U5.5 e o furo de passagem adjacente ao J14 (Figura 2). Em seguida, pre-cisa de voltar a ligar C27 e C34 ao furo de pas-sagem (massa analógica) através de pequenos fios (Figura 3), e usar um fio curto para criar a nova ligação entre o pino 5 de U5 e a junção de R45, R46 e R47.Soldar uma resistência de 4,7 kΩ a 10 kΩ entre os pinos 9 e 11 de J17, no lado oposto da placa de circuito impresso (Figura 4). A presença desta resistência permite ao firmware detectar o circuito modificado.
Novos programas [4]A versão 3.0.0 do firmware (LCR3A_firmware_V300.hex) suporta o novo circuito de compensa-ção da tensão de desvio de entrada se, e apenas se, for detectada uma resistência ligada do pino 9 de J17 à massa.Isto resulta num rearranjo nos menus do pro-grama AU2011, que também deve ser actuali-zado para a versão 3.0.0: o menu original de ajuste Input_offset é substituído por dois menus de ajuste Input_offset_U e Input_offset_I, o primeiro com a entrada em curto-circuito, o segundo com a entrada em circuito aberto.Para os utilizadores que não querem (ou não conseguem) modificar o hardware, a solução consiste em limitar o ganho geral na gama 1. Na gama 8 pode ser efectuada uma limitação semelhante, se existir muita interferência no ambiente circundante, impedindo que a opera-ção AJUSTE – CIRCUITO-ABERTO seja realizada correctamente.
A solução de limitação do ganho é válida quer o dispositivo tenha sido modificado, ou não.O valor máximo inicial será de 5 para um dis-positivo não modificado e 15 (passo F) para um dispositivo modificado. Naturalmente, as altera-ções de valor são armazenadas na memória do dispositivo, tal como as outras configurações/opções na janela de Preferências.Além disso, temos também que adicionar dois menus no modo autónomo, e alterar a janela
•Remover R34 para desactivar a compensação de origem. R42 e C35 já não são usados e também podem ser removidos.
•Substituir R46 por uma resistência de 10 Ω (preferencialmente 0805). A resistência de 10 Ω pode também ser soldada directamente aos terminais da resistência de 680 Ω que já está lá.
Figura 2. Alterações ao circuito de compensação da tensão de desvio e entrada em torno de U5.
Figura 4.Esta resistência diz ao firmware que o circuito foi modificado de acordo com as alterações apresentadas nas Figuras 1, 2 e 3.
Figura 3. Não tente dessoldar o pino 5 de U5 – arrisca-se a danificar todo o circuito! Utilize um bisturi para isolar o pino da pista, depois refaça as ligações usando pequenos fios.
![Page 29: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/29.jpg)
Medidor LCR de 500 ppm
www.elektor-magazine.pt | Novembro 2013 | 29
Para concluir, vamos apenas referir que a experi-ência tem demonstrado na prática, que a solução de medição com fichas BNC (Tonghui TH26001A ou HAMEG HZ181) é bastante mais preferível do que simples fichas do tipo banana.
(130307)
Internet[1] Medidor LCR de 500 ppmParte 1: www.elektor.com.pt/110758Parte 2: www.elektor.com.pt/130022Parte 3: www.elektor.com.pt/130093[2] www.elektor.fr/forumLCR (em francês)[3] www.elektor.com/forum/elektor-forums/
fields-of-interest/test-measurement. 1543743.lynkx
[4] www.elektor.com.pt/130093
de Preferências no modo PC quando a opção do menu access to adjust está seleccionada (Figu-ras 5 e 6).Forma efectuadas outras alterações para melho-rar a comodidade de utilização, como a aparên-cia do menu “Port / Close the Port”, muito útil se originalmente escolher a porta errada, tudo o que tem então que fazer a seguir é selecionar a porta correcta e clicar no botão “Open COM” na janela principal.
Medição de altas impedânciasOs sinais de tensão e corrente são amplificados sem qualquer filtro de baixa frequência antes da amostragem. Apenas após a digitalização, ao efectuar a medição ao longo de um número de ciclos da tensão AC da rede eléctrica e levando em conta a média de várias medições, que é possível reduzir a influência dos sinais espúrios captados pelo dispositivo de medição.Isto significa que é possível que o sinal aplicado à entrada do conversor analógico/digital (ADC) exceda por breves instantes a gama de tensões de entrada do ADC e invalide a medição.Portanto, devemos ter um cuidado especial quando estamos a medir impedâncias eleva-das, quando o medidor LCR está configurado para a gama 7 e acima de tudo 8; este é o caso durante o ciclo AJUSTE – CIRCUITO_ABERTO.
•Coloque o circuito electrónico no interior de uma caixa metálica (é preferível o ferro ao alumínio para baixas frequências). Tenha cui-dado se estiver a usar o Medidor LCR no modo autónomo com alimentação via USB, ou no modo PC com um portátil: nestes casos, não existe ligação à terra e vai precisar de fazer uma. O cabo de alimentação da fonte USB não tem um pino para ligar a caixa do Medidor LCR à terra de protecção da linha de alimentação AC, e um portátil alimentado a bateria tam-bém não está ligado à terra.
•Minimize o comprimento dos cabos de medi-ção, e afaste-os dos cabos de alimentação. Para proteger o dispositivo de medição e os cabos dos campos electromagnéticos, coloque uma placa de metal ligada à terra (de prefe-rência, de ferro) com o tamanho adequado entre estes e qualquer cabo de ligação à rede eléctrica AC.
•Se ainda assim a interferência persistir, reduza o ganho da malha de medição da gama 8 (Max DACIndex I no modo autónomo).
Figura 6. A opção de menu access to adjust em Preferences no modo PC.
Figura 5.Dois novos menus no modo autónomo.
![Page 30: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/30.jpg)
•Projecto
30 | Novembro 2013 | www.elektor-magazine.pt
Os principais componentes que podemos encon-trar neste projecto são um sensor de tempera-tura digital DS18S20, um relógio em tempo-real RTC-DS1338 e um microcontrolador PIC18F4520. Dada a resolução de ±0,5 °C dos sensores de temperatura e o tempo mínimo de resposta de 1 segundo, este registador é especialmente apro-priado para monitorização ambiental, por exem-plo, para obter o valor da temperatura em seis locais distintos à mesma altura do chão.
SensoresEste circuito permite um máximo de seis senso-res de temperatura DS18S20, para ler um igual número de temperaturas em localizações remo-tas. Se a sua aplicação apenas precisar de dois ou três sensores, também não há problema.No esquema da Figura 1 pode ver-se que os sensores remotos são ligados aos conectores de 3 pinos K3 a K8 utilizando o sistema 1-Wire
(que na realidade requer três fios). Ao contrário de alguns dos nossos últimos projectos, como a Thermo-Snake [1], neste caso o DS18S20 é utilizado no modo 1-Wire convencional, e não no modo de alimentação parasita. Assim, em vez de estarem ligados num
barramento comum, cada sensor DS18S20 tem a sua própria linha directa até um porto do PIC (RA0–RA5), juntamente com as respectivas resis-tências de rede associadas (R22/R28 e por aí adiante), ligadas ao seu terminal DQ (entrada/saída de dados).Sendo o DS18S20 um componente 1-Wire, cada dispositivo produzido pela Dallas Semiconductors tem um identificador de 64 bits único registado em ROM. O dispositivo envia mensagens utili-zando o formato ilustrado na Figura 2.
Analisando o esquemaRegressando à Figura 1, o integrado IC1, o reló-gio em tempo-real, permite associar etiquetas
Ihab F. Riad (Sudão) (uma terra muito quente!)
Registador de temperatura multicanalEste projecto permite-nos registar até seis leituras de temperatura durante um dado período de tempo, juntamente com a hora em que cada uma delas foi efectuada, tudo num ficheiro .csv armazenado num cartão SD para posterior processamento em PC. É também possível um controlo local através de um teclado numérico e mostrador LCD.
Características•Máximo de seis sensores de temperatura
1-Wire DS18S20•Baseado num PIC18F4520• Intervalo de registo mínimo de 1 segundo•Regista os dados com etiquetas temporais
no cartão SD em formato .csv•Controlo local com mostrador LCD
e teclado numérico•Relógio em tempo-real na placa
![Page 31: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/31.jpg)
Registador de Temperatura Multicanal
www.elektor-magazine.pt | Novembro 2013 | 31
temporais às medidas no microcontrolador, uti-lizando as linhas I2C SDA e SCL. O DS1338 tem um tradicional relógio de cristal de 32,768 kHz, e opera a partir de uma bateria de relógio de 3,0 V (BT1), ou de uma tensão de 3,3 V sempre que a placa é alimentada.Um teclado numérico (comercial) em matriz 4x4, é ligado nos portos RD0–RD7 do microcontrola-dor, e o conector Kb1 é utilizado para ajustar a hora e data, assim como o intervalo de registo. O teclado numérico é também utilizado para arranque e paragem do registo. Um mostrador LCD de 2 linhas de 16 caracteres (2x16), do tipo DOGM162 é utilizado para mostrar a data e hora actuais, assim como o valor instantâneo de tem-
peratura de um dos sensores. A iluminação de fundo do LCD (backlight) é controlada por T1, em reposta aos níveis de controlo enviados pelo microcontrolador PIC no porto RE2. Um cartão SD/MMC no conector Card1 armazena todas as leituras efectuadas. Todas as operações de lei-tura, escrita e controlo do cartão SD são feitas através de cinco portos RC do microcontrolador. O cartão pode ser removido e o ficheiro com a leituras lido num PC, para processamento no seu programa de gráficos e estatísticas prefe-rido, desde que seja compatível com o formato de ficheiro .csv. A presença abundante de gráfi-cos coloridos é normalmente muito eficaz junto dos CEOs, CFOs, CCOs, CYOs, CXYZOs e outras
X11
X22
Vbat3
GND
4
SDA 5
SCL 6
OUT 7VCC
8
IC1DS1338Z
-33+
R3 100R
X1
32.768kHz
X2
8MHzC8
22p
RC7/RX/DT1
OSC1
30
OSC2
31
VSS
6
VDD
28
MCLR/VPP18
VSS
29
RB5/PGM15
VDD
7
RC6/TX/CK44
RB0/INT08
RB1/INT19
RB2/INT210
RC2/CCP136
RC5/SDO43
RC3/SCK/SCL37
RC4/SDI/SDA42
RB6/PGC16
RB7/PGD17
RD2/PSP240
RD3/PSP341
RD4/PSP42
RD5/PSP53
RD6/PSP64
RD7/PSP75
RB3/CCP211
RB414
RA3/AN3/VREF+22
RA2/AN221
RA1/AN120
RA0/AN019
RA423
RA524
RE025
RE126
RE227
RD038
RD139
RC032
RC135
NC12
NC13
NC33
NC34
IC2
PIC18F4520
C9
22p
Kb1
CS
CS
DO
DO
DI
DI
CLK
CLK
RSV8
NC1
CS2
DI3
Vdd4
CLK5
Vss6
DO7
CD9
CD110
Card1
SD Card
CD
CD
3V3
C2
100n
C3
100n
C7
100n
C1
100n
SDA
SDASCL
SCL
R15
1k
D1
R16
1k
D2
K8
1 3
2
IC3AP1117E33G-13
C10
10u
C11
22u
Keypad4 x 4
LoggingCD
1-Wire
R1
10k
R2
10k
3V3
BT1
CR2032
K1
3V3
A1+
1
C1-
2
C2-
19
A2+
20CA
P1N
21CA
P1P
22PS
B23
VOUT
24VI
N25
VDD
26VS
S27
D728
D629
D530
D431
D332
D233
D134
D035
E36
R/W
37CS
B38
RS39
RESE
T40
16 x 2
LCD1DOGM162
3V3
C4
1u
C5
470n
E
ERS
RS D4 D5 D6 D7
D4D5D6D7
R18
1R5
R19
1R5
3V3
T1
BC850
R2018kBL
BL
R9
8k2
R10
8k2
R11
8k2
R12
8k2
K2
C6
100n
R21
10k
R27
56k
K7
1-WireK6
1-WireK5
1-WireK4
3V3
1-WireR22 1k K3
R4 100RR5 100RR6 100RR7 100RR8 100RR13 100RR14 100R
1-Wire
R29
10k
R30
10k
R31
10k
R32
10k
R28
10k
R23 1kR24 1kR25 1kR26 1kR17 1k
CD
3V3
120637 - 11
R33
10k
Figura 1. Esquema do registador de temperatura multicanal. Para além da sua, pode também encontrar alguma inteligência no PIC18F4520.
![Page 32: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/32.jpg)
•Projecto
32 | Novembro 2013 | www.elektor-magazine.pt
engano nos condensadores de carga do cristal, e o oscilador no PIC não irá funcionar.De volta ao mundo digital, o conector K1 é o ponto de acesso para o programador PICKit da Microchip.São também incluídos dois LEDs: D2 para indi-car a actividade de registo, e D1 para indicar a presença de um cartão SD.A tensão de alimentação de 3,3 V para todo o circuito é fornecida por um regulador de baixa queda de tensão (IC3). A tensão máxima de entrada é cerca de 18 V (mas não abuse), e a mínima, cerca de 4,6 V. Quatro pilhas do tipo AA de 1,5 V garantem um extenso período de funcionamento.
Aplicações e processo de desenvolvimentoA primeira unidade foi construída pelo autor para vigiar as diferenças de temperatura em dife-rentes pontos de uma laje de cimento, alguns minutos após a mistura ter sido moldada, e de
pessoas que não entendam nada de electrónica que possam estar na sua audiência.Os fusíveis internos do microcontrolador são con-figurados para que este receba um sinal de reló-gio a partir de um cristal de quartzo externo de 8 MHz (X2). Com a PLL interna activada, a frequên-cia de relógio efectiva no interior do PIC é de 32 MHz. O cristal é flanqueado pelo habitual par de condensadores cerâmicos de 22 pF. Vale a pena fazer aqui uma nota sobre estes dois componen-tes, aparentemente inúteis; um valor errado aqui é suficiente para começarem a acontecer fenó-menos estranhos. Como por exemplo, peritos em C, C++ e outras linguagens de programação que recorrem a componentes do tipo “isto deve dar”, e que de seguida passam horas a fio em modo de depuração do código, ao mesmo tempo que criam tópicos de discussão na Internet que vão da Califórnia até ao MIT e até passam o oceano até Lisboa, tudo porque o microcontrolador está a funcionar a uma frequência totalmente diferente da originalmente projectada. Em conclusão: um
8-BIT CRC 48-BIT SERIAL NUMBER 8-BIT FAMILY CODE (28h) BSM BSM BSLBSL BSL MSB
DS18S20
DQ
GND VDD
Figura 2. Formato da mensagem 1-Wire e disposição de pinos do sensor de temperatura 1-Wire DS18S20 da Dallas.
Sistema de ficheiros Petit FATFsA biblioteca de acesso ao sistema de ficheiros PetitFAT (Petit FATFs) é escrita em ANSI C, e forma uma camada totalmente distinta da camada de E/S no disco. Pode ser incorporada em pequenos microcontroladores com muito pouca memória, mesmo nos casos em que o tamanho da RAM é inferior ao tamanho de um sector (no disco). A Petit FatFs inclui•muito baixo consumo de RAM (memória de trabalho de 44 bytes + alguma memória
para pilha);• código muito reduzido (2-4 Kbytes);• suporta FAT32;•volume e ficheiro único;• funções de escrita em ficheiro com algumas restrições.
No que toca ao interface para a aplicação, a Petit FatFs disponibiliza as seguintes funções: pf_mount (montar/desmontar um Volume); pf_open (abrir um ficheiro); pf_read (ler um ficheiro); pf_write (escrever um ficheiro); pf_lseek (mover ponteiro de leitura/escrita); pf_opendir (abrir uma pasta); e pf_readdir (ler uma entrada de uma pasta).A Petit FatFs é completamente separada da camada de E/S do disco, e como tal requer algumas funções de baixo nível para interagir com o disco. Este módulo de E/S de baixo nível não faz parte do Petit FatFs e deve ser fornecido pelo utilizador. Os controladores exemplo invocam as funções de inicialização do disco, leitura e escrita, respectivamente disk_initialize, disk_readp (parcial) e disk_writep (parcial), e estão também disponíveis nos anexos [4].
Application
RAM Petit FatFs
Low level disk I/O(SD, ATA, USB, NAND)
Stream
![Page 33: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/33.jpg)
Registador de Temperatura Multicanal
www.elektor-magazine.pt | Novembro 2013 | 33
Ficheiro de registoO registador de temperatura conta com a pre-sença de um ficheiro chamado TempLog.csv no cartão SD. O registador é incapaz de criar um novo ficheiro ou de ajustar o seu tamanho. No início de uma nova sessão de registo este ficheiro é aberto e reescrito a partir do primeiro registo. Logo, valores anteriores podem permanecer em disco se um novo ensaio contiver menos amos-tras que o anterior. É assim altamente reco-mendável que utilize o seu PC para escrever um novo ficheiro (em branco) no cartão SD antes de dar início a uma nova operação de registo. Este ficheiro vazio é incluído com o software gra-tuito disponível no site da Elektor [3]— mas pode também ser criado a partir do zero, consulte [4]. Para criar um novo ficheiro de forma muito rápida, escreva:fsutil nomeficheiro createnew\ <[letraunidade>:<tamanho ficheiro bytes>
O tamanho por omissão do ficheiro é de 5 MB, mas pode ser ajustado às suas necessidades.No que toca ao aparecimento dos valores medidos no mostrador LCD, T(emp.)0 é o sensor ligado a K8 (mais perto do mostrador), T1 e K7, e por aí adiante, até T7 em K3 no canto inferior da placa.A cada nova medida é registada uma nova linha/registo no ficheiro TempLog.csv. As colunas 1 e 2 contêm a data e hora, respectivamente. Nas
seguida durante o processo de solidificação. Foi um pedido de um engenheiro mecânico. Era cla-ramente um protótipo, com pouco mais do que o teclado numérico e o LCD. O registo era feito manualmente de duas em duas horas durante alguns dias.Um membro dos fóruns www.elektor-labs.com sugeriu outra aplicação possível, que passa por colocar quatro sensores em paus a intervalos de 1 palmo acima do solo e dois no chão. Pode assim ter uma boa ideia das temperaturas no seu jardim.O código original foi escrito usando o PIC MIKROC da Mikroelektronika. Os testes e depuração foram feitos com o auxílio da placa de desenvolvimento Easypic6, módulo RTC2, e placa MMC/SD, todos da Mikroelektronika. A configuração de teste origi-nal do autor é apresentada na Figura 3. Ao pro-cessar o projecto para publicação, optou-se por desenvolver um novo software nos Laboratórios Elektor, com o auxílio do ambiente de desenvol-vimento Microchip MPLAB X e compilador C18.O cartão SD é acedido (leitura e escrita) atra-vés da biblioteca Petit FatFs, um subconjunto do módulo FatFs para microcontroladores de 8 bits, consulte a caixa.O protocolo 1-Wire foi implementado com o auxí-lio da biblioteca C18 disponível em [2].Todo o código fonte PIC para este projecto foi agrupado num ficheiro arquivo .zip e pode ser obtido gratuitamente na Internet [3].
Figura 3. Desenvolvimento do projecto na casa do autor com o sistema de desenvolvimento EasyPIC6 da Mikroelektronika e alguns add-ons.
![Page 34: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/34.jpg)
•Projecto
34 | Novembro 2013 | www.elektor-magazine.pt
write_byte, ow_read_byte, ow_read_bit, ow_get_temperature.
•no ficheiro mmc.c: disk_initialize, init_spi.
Tudo concluído? Partilhe então os seus resultados com a restante comunidade no fórum www.elektor-labs.com.
ConstruçãoA placa de circuito impresso projectada pela Elektor é apresentada na Figura 4, juntamente com a lista de componentes. A forma e dimen-sões da placa são em grande medida definidas pelo LCD e teclado numérico a montar no topo da mesma. Aos nossos leitores que prefiram fazer as suas placas em casa: os ficheiros .pdf estão disponíveis na Internet [3]. Para além de uma boa quantidade de blocos de pinos, um suporte
colunas seguintes pode ver as medições de tem-peratura por ordem (consulte o parágrafo acima) dos sensores ligados. Se, por exemplo, apenas um dos sensores estiver ligado, o seu valor apa-recerá na terceira coluna, independentemente do conector a que estiver ligado.
… e agora quermudar aquela frequência de relógio do micro-controlador de 8 MHz. Está à vontade, segue-se a lista do que tem de fazer em termos de atra-sos a ajustar:•no ficheiro Globals.c: adaptar delay_ms, delay_us, setup_io (SSPADD).
•no ficheiro LCD.c: adaptar XLCDdelay15ms, …4ms, …100us, …500ns, XLCDdelay.
•no ficheiro SW_I2C.c: todas as funções.•no ficheiro Onewire.c: ow_reset, ow_
Funções das TeclasO teclado numérico é idêntico ao utilizado num telefone (DTMF) com os números 0–9, letras A–D, o sinal cardinal (#), e um asterisco (*). As funções de cada tecla são resumidas de seguida. As teclas não produzem tons DTMF.
A: Ajustar o intervalo de registo 0-9: Alterar o número (avanço automático)D: Sair do menu de configuraçãoNote que cada unidade (hora, minutos, segundos) é ajustada individualmente, sem qualquer influência nas restantes.
B: Arranque/Paragem do registo (o LED indica um registo em curso)
C: Configurar o Relógio 0-9: Alterar o número (avanço automático)D: Sair do menu de configuraçãoNote que cada unidade (hora, minutos, segundos) é ajustada individualmente, sem qualquer influência nas restantes.
0 – 5: Selecção do sensor a ser apresentado no mostrador LCD.
Códigos do Mostrador:
Arranque:
C L K : wd wd d d mo mo y y
R E/U S/N h h mi mi s s
Ecrã Inicial (x = número sensor):
T x : wd wd d d mo mo y y
(-) T T . T h h mi mi s s
Ajustar hora:
S e T wd wd d d mo mo y y
t i m e h H mi mi s s
Configurar registo:
S e t l o g i n t e r v a l
h : h h m : m m s : s s
![Page 35: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/35.jpg)
Registador de Temperatura Multicanal
www.elektor-magazine.pt | Novembro 2013 | 35
[2] Protocolo 1-Wire: http://psychoul.com/electronics/1-wire-onewire-c18-library-2
[3] www.elektor.com.pt/120637[4] Criar um ficheiro de tamanho xx:
http://windowsitpro.com/systems- management/how-can-i-create-file- certain-size-windows-xp-and-later
[5] PetitFAT Fs: http://elm-chan.org/ fsw/ff/00index_p.html
para bateria de relógio e barras de terminais com pinos curvos, a placa contém sobretudo compo-nentes SMD. Destes, o microcontrolador PIC será provavelmente o mais complicado de montar, mas se trabalhar de forma calma e meticulosa pode ser feito. Já foram descritos por várias vezes na Elektor métodos para soldar componentes deste género (com um grande número de pinos).O teclado numérico é montado em quatro espa-çadores de 15-20 mm para não interferir com o clip de suporte da bateria.Finalmente, o LCD é um dispositivo frágil e deve ser manejado e montado com o máximo cuidado.
(120637)
Internet
[1] Registador de temperatura USB, Elektor Setembro 2008, www.elektor.com.pt/070122
Lista de ComponentesResistências(SMD 0805)R1,R2,R21,R28,R29,R30,R31,R32,
R33 = 10 kΩ/125 mW, 5%R3,R4,R5,R6,R7,R8,R13,R14 = 100 Ω/125 mW, 5%R9,R10,R11,R12 = 8,2 kΩ/125 mW, 5%R15,R16,R17,R22,R23,R24,R25,
R26 = 1 kΩ/125 mW, 5%R18,R19 = 1,5 Ω/100 mW, 5%R20 = 18 kΩ/125 mW, 5%R27 = 56 kΩ/125 mW, 5%
Condensadores(SMD 0805)C1,C2,C3,C6,C7 = 100 nF/50 V, 20% C4 = 1 µF/16 VC5 = 470 nF/25 VC8,C9 = 22 pF/50 V, 5%C10 = 10 µF C11 = 22 µF/10 V
SemicondutoresD1,D2 = LED, 3 mm, baixa correnteT1 = BC850, transístor NPN 45V, SOT-23IC1 = DS1338Z33+, relógio em tempo-real, SOIC8IC2 = PIC18F4520-I/PT, 8-bit MCU, programado,
Refª 120637-41IC3 = AP1117E33G, regulador LDO, 3,3V, SOT223IC4,IC5,IC6,IC7,IC8,IC9 = DS18S20, sensor
de temperatura 1-Wire, TO92 (fora da placa)
DiversosKb1 = MCAK1604NBWB, teclado numérico, matriz
4x4, Multicomp X1 = Cristal de quartzo 32,768 kHz, carga 12,5 pF, 20
ppm, 4,1x1,5 mm, Abracon ABS09-32.768KHZ-TX2 = Cristal de quartzo 8 MHz, carga 18 pF, 20 ppm,
5x3,2 mm, Abracon ABM3-8.000MHZ-D2Y-TCard1 = conector uSD (micro SD), Hirose
DM3AT-SF-PEJM5(40)BT1 = CR2032, com suporte para montagem em PCI
LCD1 = Mostrador LCD de 2x16 caracteres DOGM162W-A, iluminação de fundo EA LED55x31-G
K1 = Barra de terminais de 6 vias, em ânguloK2 = Barra de terminais de 2 vias, em ânguloK3,K4,K5,K6,K7,K8 = Barra de terminais de 3 vias,
em ânguloPlaca de circuito impresso,
Serviço Elektor # 120637-1
Figura 4. A placa de circuito impresso desenhada para este projecto contém essencialmente componentes SMD.
www.e
lekt
orpcbservice.com
![Page 36: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/36.jpg)
•Projecto
36 | Novembro 2013 | www.elektor-magazine.pt
Desenvolver um controlador de software para um dispositivo, incluindo a adaptação para este correr em sistemas operativos diferentes, é tudo menos trivial. Acrescente a isto as assinaturas digitais para as quais a cadeia dispositivo/sistema operativo/aplicação adiciona uma complexidade adicional. O investimento de tempo necessário é, por vezes, inaceitável para pequenos projectos. Por esta razão é habitualmente utilizado um porto COM virtual, mas vem com a desvantagem da configuração e tem falta de muitas boas características USB.Um modo USB fiável e que também suporta desen-volvimento de protótipos é a classe USB-HID (Human Interface Device). A utilização da USB HID permite ligar mais dispositivos do que apenas um rato ou um teclado (ver Classe de dispositi-vos USB-HID). O standard USB [1] permite espe-
cificamente a utilização de “outros” dispositivos, incluindo todos os tipos de actuadores e sensores.Como a maioria dos sistemas operativos já têm controladores USB HID não há razão para não os utilizar para os seus próprios projectos. Só neces-sita de construir uma aplicação adequada para correr no sistema operativo do seu computador.
Captura de dadosPode utilizar o interface USB HID para transfe-rir todo o tipo de dados externos para um PC. A aplicação para medir temperaturas é apenas um exemplo do processo. É aqui utilizado um pequeno microcontrolador Attiny85-20 (IC1 no diagrama do circuito, Figura 1) para fornecer o limitado grau de inteligência necessário para manipular as pilhas de protocolos USB, as comu-
Michael Odenwald (Alemanha)
Termómetro USBUm método simples para ler dados do porto USBDurante muitos anos o porto série RS232 dos PCs era considerado um tipo de porto universal MacGyver. Nos nossos dias os PCs já não vêm com este conector de 9 pinos. Quando é necessário ligar algum circuito electrónico ao computador, o porto USB parece ser a única opção. No entanto, o computador necessita de um controlador de software correspondente. É aqui descrita uma elegante solução para este problema.
K2123456
R4
470R
D3
+VCC
C1
100n
C2
25u
DS18B20
IC2VDD
GND1
2
3
R5
10k
VBUS
K1
GND
D–D+
1234
R368R
R168R
D1
3V6
D2
3V6
R2
1k5
MISOSCKRESET
MOSIVCC
GND
120620 - 11
ISP
USBATtiny85-20UP
IC1PB0
PB3PB5
PB2
PB4
VCC
GND
PB1
8
4
7
1 2
3
6
5
Figura 1. O circuito do Termómetro USB é muito simples.
![Page 37: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/37.jpg)
Medir temperaturas via USB
www.elektor-magazine.pt | Novembro 2013 | 37
nicações, e para receber e formatar as medições provenientes dos sensores.Todos os componentes do projecto são alimenta-dos directamente a partir do conector USB K1. O microcontrolador é controlado a 16,5 MHz a partir da sua PLL interna, o que fornece velocidade sufi-ciente para manipular a comunicação USB e elimina a necessidade de um cristal de quartzo externo.IC2 é um sensor de temperatura DS18B20 da Dallas Semiconductor (que faz agora parte da Maxim) que utiliza um interface 1-wire. Este fun-ciona no modo Parasitic Power [2] no qual o pino VDD do componente é ligado à massa e a ali-mentação é retirada da ligação de dados. Este método tem o benefício de aumentar a precisão ao reduzir os efeitos de auto-aquecimento do componente. Os sinais de dados USB são ligados através das resistências R1 e R3, que limitam o fluxo de corrente das linhas de dados no caso de acontecer um curto-circuito. Os díodos zener de 3,6 V, D1 e D2, asseguram que a variação de tensão do sinal de dados não excede a tensão de alimentação do sensor de temperatura.A resistência R2 é utilizada durante a enume-ração USB e assinala ao anfitrião (PC) que está ligado um dispositivo de baixa velocidade (ritmo máximo de 1,5 Mbit/s).Os condensadores C1 e C2 fazem o desacopla-mento e armazenam a tensão da linha de 5 V proveniente do conector USB. K2 é o conector ISP standard de 6 vias para programar o micro-controlador. O LED D3 indica um ciclo de medição activo. Com o sensor de temperatura na resolução máxima, isto dura cerca de 750 ms.
FirmwareO firmware para o termómetro USB foi escrito em linguagem C. As ferramentas de desenvolvi-mento WinAVR [3] são utilizadas para compilar e programar o programa na memória flash do microcontrolador. A estrutura da pilha USB foi implementada com a ajuda do software V-USB [4]. As funções utilizadas para ler os dados pro-venientes do sensor de temperatura foram reti-radas de uma biblioteca projectada por Martin Thomas [5].Depois de o hardware arrancar, são executados o processo de enumeração USB e as pilhas de software USB. Depois o firmware comuta para o modo de funcionamento interno onde é imple-mentada uma máquina de estados. Esta máquina de estados consiste em: executar o protocolo USB, ler dados do sensor, e esperar. Os estados
ocorrem ciclicamente com um tempo de atraso predefinido.Cada ciclo completo de medição dura 10 s. Os pedidos do anfitrião durante este período rece-bem sempre o mesmo valor: as medições mais recentes só estão disponíveis no final de cada ciclo. O processo de medição é controlado com-pletamente pelo microcontrolador, sem a inter-venção do PC. O intervalo de medição ajuda a reduzir o auto-aquecimento do sensor.
O elemento mais importante do firmware é o Descritor USB HID:
/* * USB HID report descriptor */PROGMEM char usbHidReportDescriptor[33] ={ 0x06, 0x00, 0xff, // USAGE_PAGE (Generic Desktop) 0x09, 0x01, // USAGE (Vendor Usage 1) 0xa1, 0x01, // COLLECTION (Application) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) 0x75, 0x08, // REPORT_SIZE (8) 0x85, 0x0a, // REPORT_ID (10) 0x95, 0x04, // REPORT_COUNT (4) 0x09, 0x00, // USAGE (Undefined) 0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf) 0x85, 0x14, // REPORT_ID (20) 0x95, 0x0a, // REPORT_COUNT (10) 0x09, 0x00, // USAGE (Undefined) 0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf) 0xc0 // END_COLLECTION};
Classe de dispositivos USB-HIDA classe de dispositivos HID (Human Interface Device) é uma definição parcial dos standards USB que descrevem dispositivos que fornecem ao PC a informação das acções do utilizador. Os exemplos típicos são teclados, ratos ou joysticks. Para além destes tipos normais de dispositivos de entrada o standard USB também permite “sistemas especiais” que podem ser sensores, equipamento de medida, ou até telefones ou auscultadores. Também está antecipada a utilização de leitores, itens para jogos e produtos promocionais.Os HIDs USB beneficiam do facto de o sistema operativo do PC já ter o controlador correspondente (pelo menos para Windows, Linux e OS X), pelo que este é automaticamente instalado, sem intervenção do utilizador, sempre que é ligado um novo HID USB.As desvantagens dos HIDs não devem ser esquecidas: a taxa de transmissão de dados não é particularmente elevada, e estes têm uma quantidade limitada de pontos de ligação USB, restringindo a quantidade de dados que pode ser transferida.
![Page 38: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/38.jpg)
•Projecto
38 | Novembro 2013 | www.elektor-magazine.pt
dimensões (4 e 10 bytes). Um relatório de carac-terísticas permite ler ou escrever valores de/para o sistema USB HID; nesta aplicação apenas se lêem valores.O Report ID 10 é utilizado para pedir um valor de temperatura, e retorna quatro bytes. O Report ID
O Descritor consiste em 33 bytes, e define os possíveis números (10 e 20) de identificação de relatório (Report ID) que a aplicação utiliza para comunicar com o termómetro. Os relatórios são implementados como “Relatórios de Caracterís-ticas” com blocos de informação com diferentes
A classe principal para o termómetro USB é:
namespace WindowsApp{ /// <summary> /// Implementation of the usbDevice with service methods /// based on the class usbGenericHidCommunication /// </summary> class usbDevice : usbGenericHidCommunication { private int tval;
/// <summary> /// Class constructor - place any initialization here /// </summary> /// <param name=”vid”></param> /// <param name=”pid”></param> public usbDevice(int vid, int pid) : base(vid, pid) { }
/// <summary> /// USB HiD Temperature Module Method GetTemeratur() /// </summary> public int GetTemperatur()
Lista de componentesResistênciasR1,R3 = 6 8ΩR3 = 1,5 kΩR4 = 470 ΩR5 = 10 kΩ
CondensadoresC1 = 100 nF cerâmico, passo 5 mmC2 = 25 µF/16 V, electrolítico, passo 2,5 mm
SemicondutoresIC1 = ATtiny85-20UP, DIL 8 pinos, programado,
Serviço Elektor # 120620-41 [6]IC2 = DS1820, encapsulamento TO92 de 3 pinosD1,D2 = ZF3.6, díodo zener, 0,5 WD3 = LED verde, 5 mm
DiversosK1 = conector USB, Tipo A, montagem em placa
de circuito impressoK2 = barra de pinos 2x3 vias, passo 2,54 mmPlaca de circuito impresso,
Serviço Elektor # 120620-1 [6]
PCB
Edge
IC2
R1
R3
R2
D1
D2
C1C2 D3
R4R
5
K2 IC1
K1Figura 2. Disposição dos componentes na placa de circuito impresso.
![Page 39: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/39.jpg)
Medir temperaturas via USB
www.elektor-magazine.pt | Novembro 2013 | 39
de frequência de relógio “divide by eight” está desactivada e se está seleccionada a opção cor-recta para o relógio interno. As configurações estão correctas quando o “low fuse” tiver o valor 0xE1 e o “high fuse” o valor 0xDD.
20 pede uma string de alinhamento de 10 bytes que contém a data (aaaa-mm-dd).
Construir e depois controlarA configuração do circuito não é crítica e a utili-zação de componentes convencionais na placa de circuito impresso desenhada para este projecto (Figura 2) facilita a construção. Os ficheiros correspondentes ao desenho da placa de cir-cuito impresso estão disponíveis gratuitamente na página da Elektor dedicada a este artigo [6]. A Figura 3 apresenta o protótipo já montado, que não necessita de nenhum procedimento de calibração ou de alinhamento.Depois de montar os componentes e de efec-tuar as habituais verificações, já pode progra-mar o firmware no microcontrolador. O firmware está disponível gratuitamente em código fonte ou num ficheiro hexadecimal pronto a progra-mar [6]. Ligue o seu programador AVR-ISP ao conector K2 para programar o microcontrola-dor. É importante verificar se a opção de divisão
{ // Declare an input buffer Byte[] inputBuffer = new Byte[5]; // we expect 5 byte; 1 x ReportID and 4 Byte temperature
inputBuffer[0] = 10; // Read ReportID 10
// Perform the Read Command bool success; success = getFeatureReport(inputBuffer);
if (success == false) { Debug.WriteLine(“Error during getFeatureReport”); return tval; // Error during USB HiD_GetFeature Request so return the old value }
tval = inputBuffer[1] << 24; tval |= inputBuffer[2] << 16; tval |= inputBuffer[3] << 8; tval |= inputBuffer[4];
return tval; // Return the new value } }}
Figura 3. Protótipo do Termómetro USB.
![Page 40: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/40.jpg)
•Projecto
40 | Novembro 2013 | www.elektor-magazine.pt
de acordo com a convenção “signed longint”, o que corresponde a valores entre -550000 e +1250000. O software divide estes valores por 10000, fornecendo valores de temperatura com uma resolução de 12 bits, ou 0,0625 ºC. Este nível de resolução não é estritamente necessá-rio, porque o sensor tem uma precisão de apenas 0,5 ºC. Na Figura 3 pode ver como é apresen-tada a temperatura em Windows.O código fonte compatível com Windows, em conjunto com a biblioteca necessária, estão dis-poníveis gratuitamente em [6]. Em conjunto com este programa baseado em Windows está uma ferramenta de linha de comandos que retorna as medições de temperatura em formato de texto (Figura 4). O código fonte correspondente, o programa compilado e a ferramenta para Linux estão disponíveis em [6].
E é assim…O circuito e o correspondente software para o Ter-mómetro USB demonstram um método simples e prático para ligar o seu próprio dispositivo HID a um PC. Ambos podem facilmente ser adaptados às necessidades da sua aplicação em particular, fornecendo um caminho (quase) sem obstáculos para transferir dados para um PC, considerando que não tem uma grande quantidade de dados para enviar e que aceita uma taxa de transfe-rência relativamente modesta.
(120620)
Internet
[1] www.usb.org/developers/hidpage/[2] http://datasheets.maximintegrated.com/
en/ds/DS18B20.pdf[3] http://winavr.sourceforge.net/[4] www.obdev.at/products/vusb/index.html[5] www.siwawi.arubi.uni-kl.de/avr_projects/
tempsensor/index.html[6] www.elektor.com.pt/120620 [7] www.waitingforfriday.com/index.php/
Open_Source_Framework_for_USB _Generic_HID_devices_based_on_the _PIC18F_and_Windows
[8] www.microsoft.com/germany/express/ products/windows.aspx
Depois de programar o microcontrolador, o cir-cuito pode ser ligado ao PC através de um cabo USB. O sistema operativo vai detectar que foi ligado um novo dispositivo HID e vai instalar automaticamente o controlador HID; é simples! Não interessa se está a utilizar uma versão Win-dows de 32 bits ou de 64 bits, OS X ou Linux, o controlador HID está sempre disponível, sempre com assinatura digital, e vai ser sempre instalado sem a intervenção do utilizador. Alguns segundos depois de ligar o dispositivo, já está.
Software para o anfitriãoA aplicação (para Windows) que recebe e apre-senta as medições do termómetro USB está escrita em linguagem C#. Esta demonstra como é efectuada a comunicação com um dispositivo HID genérico. O software para o anfitrião utiliza as funções usbGenericHIDDevice da biblioteca [7], que interage com as funções API do Windows. O software foi compilado e corre com a versão Express do Visual Studio 2010 [8]. A classe base usbGenericHidCommunication é a mais impor-tante aqui, derivando desta a classe para o nosso próprio dispositivo HID. Nesta classe é imple-mentado o método a ser executado.
O dispositivo HID é identificado e chamado com os parâmetros Vendor ID = 0x0C7D e Product ID = 0x0011. O método GetTemperatur() lê e retorna o valor da temperatura. A gama de medi-ção de temperatura do sensor está entre -55 ºC e +125 ºC. O sensor formata as medições
Figura 4. Temperatura apresentada pela aplicação para Windows.
Figura 5. Apresentação da temperatura utilizando a ferramenta de linha de comandos.
![Page 41: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/41.jpg)
![Page 42: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/42.jpg)
42 | Novembro 2013 | www.elektor-magazine.pt
Ficheiros GerberOs ficheiros Gerber têm o formato necessário para os fabricantes de placas de circuito impresso pro-duzirem estas placas. Pense neles como sendo uma imagem com formato vectorial da placa de
circuito impresso, utilizando canetas com diferen-tes tamanhos (aberturas). Os ficheiros Gerber são habitualmente chamados de ficheiros de plotter, porque são utilizados por uma fotoplotter no pro-cesso de fabrico das placas de circuito impresso. O DesignSpark pode gerar ficheiros Gerber a partir da janela Output Manufacturing Plots, que pode ser aberta no menu Output->Manufacturing Plots. No nosso caso necessitamos das camadas Top Copper, Top Solder Mask, Top Silkscreen, Bottom Copper, Bottom Solder Mask, Drill Data e Drill Ident Drawing, como apresentado na Figura 1.Clicar no botão Options faz abrir as janelas Options, onde pode modificar todas as configura-ções dos ficheiros Gerber, ficheiros de informação de perfuração, e PDFs. Pessoalmente, gosto de utilizar a opção RS-274-X para incluir nos ficheiros Gerber a informação da abertura; e de exportar tudo em unidades SI com uma precisão de quatro casas decimais, como apresentado na Figura 2.
Neil Gruending (Canadá)
DesignSpark Dicas e TruquesDia 5: gerar ficheiros para fabricar placas de circuito impresso
Figura 1. Dados a incluir no ficheiro Gerber.
Hoje vamos gerar os ficheiros Gerber e a informação de BOM para o projecto que fizemos na última vez. O DesignSpark é um excelente suporte para gerar este tipo de ficheiros depois de ser configurado adequadamente.
![Page 43: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/43.jpg)
Tips & Tricks
www.elektor-magazine.pt | Novembro 2013 | 43
Clicar no botão RS-274-X vai ajustar as opções listadas para permitir a inclusão da tabela de aberturas, e clicar no botão RS-274-D vai desa-bilitar todas as opções de saída.Os fabricantes de placas de circuito impresso também necessitam de um ficheiro de informação de perfuração, ou NC (numerically controlled), para saber onde perfurar na placa de circuito impresso. Existem vários tipos de formatos de saída, mas prefiro utilizar o formato (SI) Excellon com precisão de quatro casas decimais, como apresentado na Figura 3.Agora que configurámos os dispositivos de saída, necessitamos de adicionar a linha exterior a todos as camadas para que o fabricante de placas de circuito impresso possa alinhar todas as diferen-tes camadas aquando do fabrico. Para isso cli-que no separador Layers para cada desenho na janela Output Manufacturing Plots, e faça duplo clique em [Board Outline] para aparecer um Y na coluna Selected.Depois de adicionar a linha exterior a todas as camadas, clique no botão Run para gerar todos os ficheiros de saída. Depois de gerar todos os ficheiros, o DesignSpark apresenta um relatório sumário no Notepad, que deve verificar para ter a certeza que não há erros. Todos os ficheiros Gerber têm extensão .GBR, e os ficheiros de informação de perfuração têm extensão .DRL. Eu carrego sempre os ficheiros Gerber e de perfu-ração noutro visualizador Gerber, como o View-Mate [1], para ter a certeza que não há erros. Por exemplo, quando escrevi este artigo confi-gurei acidentalmente alguns factores de escala no ficheiro Gerber, sendo o erro óbvio no visua- lizador Gerber, o que facilita a sua correcção.
Lista de MateriaisUma Lista de Materiais BOM (Bill of Materiasl) apresenta toda a informação dos componentes de um projecto, para que este possa ser fabri-cado. O DesignSpark inclui uma função para gerar BOMs como parte da funcionalidade Reports, no menu Output (Figura 4).O relatório Lista de Materiais incorporado vai gerar uma BOM com os seguintes campos:
•Ref Name: Designador de referência do componente
•Qty: Número de componentes daquela linha; vale sempre 1
•Component: Nome do componente•Value: Valor do componente
Figura 3. A precisão de quatro casas decimais também está definida para os dados de perfuração NC.
Figura 4. Seleccionar a BOM como relatório.
Figura 2. Seleccionar unidades SI com precisão de quatro casas decimais.
![Page 44: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/44.jpg)
44 | Novembro 2013 | www.elektor-magazine.pt
tipos em vez de ter uma linha por componente. Por exemplo, é melhor saber que existem duas resistências de 1 kΩ em vez de as contar manual-mente na BOM. Infelizmente, o DesignSpark não consegue agrupar os componentes numa BOM e apresentar os seus designadores de referência no mesmo relatório, o que significa que temos de criar duas BOMs – uma agrupada, para comprar os componentes, e outra com os designadores de referência para a montagem dos componentes.O primeiro passo é criar um novo relatório cli-cando no botão New. Vai aparecer uma caixa de diálogo onde pode introduzir o nome do relató-rio, e depois disto vai poder editar o conteúdo do relatório. Vai parecer-se com o da Figura 5.O que acontece aqui é que a primeira linha do relatório contém o texto Component Report, seguido pelo cabeçalho standard para relató-rios do DesignSpark, uma linha em branco e depois uma lista de todos os componentes. A parte que temos de editar é a Component List. Para comprar os componentes editei as colu-nas do relatório para conterem Qty, Description, Manufacturer 1, Manufacturer 1 Part Number, Manufacturer 2, Manufacturer 2 Part Number, Manufacturer 3 and Manufacturer 3 Part Num-ber. A BOM para montagem de componentes é semelhante à anterior excepto pela inclusão dos designadores de referência, ou Ref Names na lin-guagem do DesignSpark. A Figura 6 apresenta a configuração que utilizei para as BOMs para montagem de componentes.Para adicionar a suas próprias colunas ao relató-rio, como Manufacturer 1, necessita de escolher Value na caixa de combinação Field. Isto vai habi-litar a caixa Values onde pode seleccionar um ou mais campos de componentes a serem utilizados na coluna pretendida. O campo Caption vai ser o título da coluna no relatório final. Também é importante gerar os relatórios BOM a partir do desenho da placa de circuito impresso e não a partir do esquemático – para ter a certeza que a BOM contém tudo o que necessita.
ConclusãoHoje gerámos ficheiros Gerber e uma BOM rela-tivos ao nosso projecto no DesignSpark, permi-tindo-o ser fabricado. Na próxima vez vamos ver algumas ferramentas de citação on-line presentes no DesignSpark.
(130240)
Internet1. www.pentalogix.com/viewmate.php
•Package: Encapsulamento do componente para placa de circuito impresso
•Manufacturer: Fabricante do componente•MPN: Referência do fabricante
para o componente•RS Part Number: Referência RS
do componente•Description: Descrição do componente
Uma BOM por defeito é adequada se tiver apenas uma referência por componente, mas eu gosto de associar diferentes referências a um com-ponente, pelo que as minhas BOMs têm toda essa informação disponível automaticamente. Também gosto de agrupar os componentes por
Figura 5. Opções de edição para o gerador de relatórios BOM.
Figura 6. Uma forma de compor a BOM
![Page 45: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/45.jpg)
![Page 46: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/46.jpg)
•Projecto
46 | Novembro 2013 | www.elektor-magazine.pt
Nesta época onde a electrónica é fortemente dominada pelos microcontroladores, um cir-cuito como este pode parecer muito simples, até mesmo simplista, mas tem o mérito inegável de não assustar quem quer que seja que esteja apenas a iniciar-se na electrónica!Além do mais, presta-se a todo o tipo de altera-ções, em especial para ampliar as possibilidades ou adaptá-lo a necessidades específicas. Uma boa oportunidade para os iniciantes não se afastarem, começarem com um circuito que funciona de cer-teza. A ideia surgiu de uma necessidade prática que tinha em casa: a reparação do selector de entrada no meu amplificador, um problema bem conhecido e muitas vezes difícil. Estes selectores de várias vias não são standard e são geralmente difíceis de encontrar, quase mesmo impossíveis.
Com este pequeno projecto tenho ainda a inten-ção de reduzir a cablagem de modo a manter tudo o mais simples possível e a minimizar as possíveis fontes de interferência.
Não destinado aos fãs de microcontroladores!A versão do diagrama da Figura 1 foi reformu-lado e melhorada no laboratório da Elektor e depois redesenhado de acordo com o formato usado na Elektor. A minha versão original foi desenhada usando a aplicação DesignSpark PCB. À esquerda temos quatro botões (um por canal) S1-S4 que estão associados a quatro díodos (D1-D4) para formar uma função lógica OR. A saída deste operador lógico é o ponto comum onde se interligam os quatro cátodos. Este vai para o nível
Olivier Croiset (França)
Selector de entrada estéreo bidireccional1ª4 ou 4ª1
Após um recente apelo* feito na nossa revista instigando os nossos leitores a enviar os seus próprios projectos – se possível simples e de preferência em áreas que têm tido menos cobertura na Elektor, como o áudio, por exemplo – recebemos esta sugestão que reúne os dois principais critérios: ser simples e destinado a processar sinais de áudio.
* este apelo ainda está aberto: os seus contributos originais ainda são bem-vindos na Elektor. Coloque-os on-line no nosso site comunitário www.elektor-labs.com; os autores com as sugestões seleccionadas pelo nosso pessoal editorial serão contactados para realizar um contrato de publicação.
![Page 47: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/47.jpg)
Selector de Áudio 4�1 / 1�4
www.elektor-magazine.pt | Novembro 2013 | 47
TR1
EI3022022 (230V)
230V(115V )
F1
0A5 F(1A F) D11
D12
D9
D10C3
1000u25V
C1
100n
C2
10u25V
LM7805IC1
9V
R22
560R
74HC175
IC2
CLRCLK
13
12 10
1415
11
1Q1Q2Q2Q
4Q4Q
3Q3Q
1D
2D
4D
3D
16
67324
5
1
8
9
R23
100k
R17
1k
C4
1u63V
C5
10p
R24100k
S1
R13
1k
S2
R14
1k
S3
R15
1k
S4
R16
1k
D2
D1
D3
D4
4x 1N4148
R21k2
T1
BC237
RE1.A
RE1 ...RE4 = MEDER ElectronicDIP05-2A72-21D
2
6
R6
390R
D5
R31k2
T2
BC237
RE2.A
2
6
R8
390R
D6
R41k2
T3
BC237
RE3.A
2
6
R10
390R
D7
R51k2
T4
BC237
RE4.A
2
6
R12
390R
D8
4x1N4004
D1 ... D4 =
Left1
R1100R
RE1.B
1 7
Right1
R7100R
RE1.C
14 8
Left2
R9100R
RE2.B
1 7
Right2
R11100R
RE2.C
14 8
Left3
R18100R
RE3.B
1 7
Right3
R19100R
RE3.C
14 8
Left4
R20100R
RE4.B
1 7
Right4
R21100R
RE4.C
14 8
LeftOut
RightOut
D13
120316 - 11
Figura 1. O circuito selector de fonte de áudio não é direccional: desenhado para quatro entradas estéreo e uma saída, pode perfeitamente ser usado ao contrário.
um sistema de áudio sem problemas, perfeito para principiantes
![Page 48: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/48.jpg)
•Projecto
48 | Novembro 2013 | www.elektor-magazine.pt
À esquerda, temos quatro pares de fontes de sinal estéreo esquerda/direita (Esquerda 1-4 e Direita 1-4) e à direita uma saída estéreo (Lef-tOut e RightOut).Note que, mesmo que nos estejamos a referir a entrada e saída, isso não é mais do que uma convenção, uma vez que o circuito pode perfei-tamente ser usado em sentido inverso, com uma entrada (LeftOut e RightOut) alimentando quatro entradas de equipamentos de som (Esquerda 1-4 e Direita 1-4).
O que é que acha que acontece se pressionarmos dois botões ao mesmo tempo? Nada, porque as saídas do flip-flop apenas adoptam o nível lógico da sua entrada D quando há uma mudança de nível (transição ascendente) na entrada CLK. Assim, quando um botão é pressionado e não é libertado, a entrada CLK mantém-se no nível lógico alto. Não existe transição ascendente em CLK, pelo que os flip-flops não reagem.
Ao ligar o circuito, a entrada CLR dos quatro flip--flops é mantida no nível lógico baixo enquanto C4 é carregado através de R23. Desta forma, as saídas Q dos flip-flops ficam no nível lógico baixo, independentemente do nível lógico das entradas D. No arranque, os quatro relés são sempre desac-tivados, apenas o LED indicador D13 está aceso.
De entre as possíveis variantes de um circuito como este, podemos referir que dependendo de
lógico alto quando um dos botões for pressio-nado. Isto controla a entrada de relógio (CLK) comum a todos os quatro flip-flops do tipo D (IC2), um 74HC175. Cada vez que a entrada CLK vai para o nível alto, as saídas Q dos flip--flops adoptam o nível lógico presente nesse instante nas suas entradas de dados D (pinos 4, 5, 12 e 13 de IC2). Quando o botão é liberado, a entrada CLK (pino 9) vai imediatamente para o nível lógico baixo. No entanto, nada acontece uma vez que os flip-flops apenas reagem às transições ascendentes na entrada CLK.Ao pressionar um dos selectores de canal S1-S4 também faz com que a entrada D do correspon-dente flip-flop fique ao nível lógico alto. Dessa forma a respectiva saída Q (pinos 1, 7, 10 e 15) também vão para o nível lógico alto. Esta-mos agora na parte do lado direito do diagrama do circuito. A saída Q do flip-flop disparado aciona, por sua vez, um dos transístores T1-T4, que entra em condução e liga o relé Re1-Re4 ligados ao colector dos mesmos. Desta forma, um dos canais de áudio é seleccionado (parte inferior do diagrama do circuito da Figura 1). O LED correspondente ao canal activo (D5-D8) ilumina-se.O díodo de amortecimento representado à direita de cada relé não consiste num compo-nente em separado, mas está sim incluído no interior do dispositivo. A sua função é proteger o transístor contra picos de tensão que aparecem na bobina do relé quando este é desactivado.
Figura 2. As duas saídas distinguem-se usando duas fichas pretas para os canais L e R, enquanto que as quatro entradas R utilizam fichas vermelhas. Dica: repare como os LEDs indicadores são mantidos direitos usando um espaçador cilíndrico.
![Page 49: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/49.jpg)
Selector de Áudio 4�1 / 1�4
www.elektor-magazine.pt | Novembro 2013 | 49
as opções têm as suas desvantagens. De qual-quer modo, mesmo que a minha configuração original não tenha sido adoptada pela Elektor, estou muito contente que o meu pequeno cir-cuito tenha sido publicado, e ainda mais como um artigo normal – estava à espera de conse-guir apenas um quarto de página numa edição de verão!O circuito que apresentamos aqui é alimentado a partir da rede eléctrica, utilizando um trans-formador. No entanto, se tiver requisitos muito rigorosos no que respeita a segurança eléctrica, e a presença do transformador o incomoda, este pode ser instalado longe da placa de circuito impresso, ou até mesmo alimentarmos o cir-cuito selector através de baterias.
(120316)
se o transístor é controlado a partir da saída Q ou Q do flip-flop, podemos energizar apenas um dos relés, como estamos a fazer aqui, ou todos menos um dos relés. Esta última opção não está prevista na placa de circuito impresso que apre-sentamos aqui.
Selecção, uma pista de somPara que este selector estéreo seja fácil de cons-truir, a Elektor desenhou uma soberba placa de circuito impresso usando o Design Spark, embora tenha planeado originalmente duas pla-cas separadas, isto tornaria possível ter os relés e as entradas/saídas com alguma distância dos botões e LEDs, aos quais estariam ligados atra-vés de um cabo plano. Neste caso, temos uma espécie de controlo remoto. É discutível; ambas
Figura 3. Desenho da placa de circuito impresso do selector estéreo. Não há necessidade de um dissipador de calor para o regulador IC1, mas existe espaço para instalar um.
Lista de componentesResistências (0,25W, 1%):R1,R7,R9,R11,R18–R21 = 100 ΩR2–R5 = 1,2 kΩR6,R8,R10,R12 = 390 ΩR13–R17 = 1 kΩR22 = 560 ΩR23,R24 = 100 kΩ
CondensadoresC1 = 0,1 µF/100 V, cerâmicoC2 = 10 µF/100 V, electrolíticoC3 = 1000 µF/25 V, electrolíticoC4 = 1 µF/63 V, electrolíticoC5 = 10 pF/100 V, cerâmico
SemicondutoresD1–D4 = 1N4148D5–D8,D13 = LED amarelo, 5 mmD9–D12 = 1N4004IC1 = LM7805CTIC2 = CD74HC175E
DiversosF1 = Fusível 500 mA, fusão rápidaK1–K10 = Ficha do tipo RCA, PCI Re1–Re4 = Relé DIL, PCI (MEDER type
DIP05-2A72-21D)S1–S4 = Botão de pressão (NA)TR1 = Transformador, secundário 9V @ 2VA
![Page 50: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/50.jpg)
•Projecto
50 | Novembro 2013 | www.elektor-magazine.pt
Mesmo se possuir apenas um modelo de comboio modesto, há hipótese de este ter uma estação e outros edifícios. Em vez de ligar todas as luzes dos edifícios simultaneamente, é mais realista se as luzes puderem ser controladas individu-almente. Na realidade o padrão de luzes muda quando os habitantes se deslocam entre as várias divisões. O módulo de controlo série permite isso, enquanto evita a acumulação de cabos. O seu desenho modular permite-lhe começar com um modelo pequeno e ir adicionando mais módulos à medida que o modelo se torna mais ambicioso.
Cortar custosO circuito não necessita de executar tarefas exi-gentes – para esta aplicação os principais critérios de projecto são o tamanho e o custo do módulo. De facto, o circuito apresentado na Figura 1 con-siste apenas num pequeno microcontrolador de 8 bits e um regulador de tensão. O microcontro-lador é um pequeno PIC12F675P da Microchip, num encapsulamento DIP, que pode ser encon-trado por pouco mais de 1 euro. Este contém
1 kB de memória para programa, 128 bytes de EEPROM e (essencial para a comunicação série) um temporizador/comparador. A EEPROM é uti-lizada para armazenar o endereço do módulo. Todos os pinos podem ser configurados para E/S (excepto os pinos de alimentação), e o oscilador interno é utilizado para fornecer o sinal de relógio do sistema. Descarregue a folha de característi-cas [1] para saber mais sobre este dispositivo.Os ânodos de cinco LEDs para cada módulo são ligados aos blocos de terminais K1 e K2, de mon-tagem em placa de circuito impresso, que estão ligados aos pinos de E/S GP0 a GP2, GP4 e GP5 do microcontrolador. Os cátodos de todos estes LEDs estão ligados ao pino 2 do conector K3. As resistências de 1 kΩ em série limitam para valores seguros as correntes que atravessam os LEDs. O valor de corrente depende do tipo e cor dos LEDs utilizados. A queda de tensão directa situa-se tipicamente entre 1,9 V e 2,5 V, resultando numa corrente entre 2 mA e 2,5 mA. É importante utilizar LEDs de baixa corrente para atingir a iluminação máxima apenas com 2 mA.O estado dos LEDs depende da informação con-tida no sinal recebido via interface série (pino 1 de K3). Isto funciona essencialmente como um interface RS232 utilizando apenas o sinal recebido (RXD), ligado em paralelo a todos os módulos.
Kurt Zerzawy (Suiça)
Iluminação LED para modelos
Modular, Controlada por PC via ligação série
Este pequeno módulo foi projectado para controlar individualmente cinco LEDs, utilizados para iluminar modelos de edifícios. O sinal de controlo é enviado por um
único fio, através de uma porta série RS232 de um PC. Este projecto permite controlar até 250 módulos
com um único PC, que é quase suficiente para uma pequena cidade!
![Page 51: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/51.jpg)
LEDs Série Programáveis
www.elektor-magazine.pt | Novembro 2013 | 51
O sinal de ±12 V proveniente do PC é limitado a +5 V à entrada de cada módulo através da malha de deslocamento de nível de tensão com D1 e T1.A regulação de tensão é efectuada pelo regulador 78L05, que é adequado até 100 mA. Os “suspei-tos do costume” estão em torno deste circuito integrado: o condensador C4 e os dois conden-sadores de 100 nF, C1 e C2. O circuito pode ser alimentado por um adaptador de tensão não esta-bilizado, com uma saída entre 8 V e 12 V DC. A opção mais simples é utilizar um adaptador de tensão conectado a K3. Cada módulo absorve apenas 15 mA, pelo que é possível alimentar muitos módulos a partir de um adaptador de tensão modesto. Quando for necessário utilizar muitos módulos, é mais adequado alimentá-los a partir de um adaptador de tensão externo que forneça 5 V estabilizados à corrente necessária. O regulador de tensão presente no módulo pode ser omitido, substituindo-o por um fio entre as ilhas de entrada e saída.A barra de pinos JP1 serve para programar o microcontrolador, não sendo necessária para um PIC12F675P já programado. A programação do endereço de cada módulo ocorre via interface série e não necessita deste. A disposição dos pinos de JP1 é dada na Tabela 1, que corres-ponde à do conector do programador ISP PicKit2 [2]. Durante a programação é importante assegu-rar que o dispositivo seja alimentado pelo regu-lador presente no módulo ou a partir do progra-mador PicKit2, e não por ambos em simultâneo!
Comunicar com o móduloO interface série é utili-zado para enviar infor-mação de comutação aos LEDs e também para atribuir um ende-reço ao módulo.Durante o arranque o módulo utiliza os pró-prios LEDs para indicar se já tem um endereço: quando todos os LEDs acendem por breves instantes em simultâneo ainda não foi atribuído um endereço; quando os LEDs acendem em sequência já foi atribuído um ende-reço. A comunicação série ocorre através do inter-face RS232 a 9600 baud, sem paridade, e com 1 bit de paragem. Estes parâmetros de comunicação podem ser configurados no programa emulador de terminal a correr no PC. No HyperTerminal (Win-dows) seleccione File/Properties/Configure para efectuar as configurações.
Endereçamento do móduloPara atribuir um endereço ao módulo e armazená--lo na EEPROM interna do PIC12F675P introduza a seguinte sequência:“H”: Casa“F”: Byte mais significativo do endereço hexade-
cimal (F para dispositivos apagados).“F”: Byte menos significativo do endereço hexa-
decimal (F para dispositivos apagados).
K21
2
3
K11
2
3
K33
2
1
JP11 2 3 4 5 6
R31k
R41k
R51k
R21k
R61k
R8
0R
R90R
PIC12F675P
GP5/CLKIN
GP3/MCLR
GP2/AN2GP4/AN3
GP0/AN0GP1/AN1
IC1VDD
VSS
7
1
2
8
4
56
3
78L05IC2
R7
10k
C1
100n
C2
100n
C4
100u25V
T1
BC548D1
BAT85
R1100k
C3
100p
130136 - 11
VCC/
MCLR
VDD
targ
etVS
S (G
ND)
ICSP
DAT/
PGD
ICSP
CLK/
PGC
Auxil
iary
12345
6789
+8...12V
RxD
GND
GND
RS232
SUB D9
Figura 1. Esquemático do módulo de controlo de LEDs.
Tabela 1. Adaptador de programação JP1
Pino de JP1
PIC12F675 Sinal
1 Pino 4: GP3/MCLR Vpp
2 Pino 1: VDD +5 V
3 Pino 8: VSS GND
4 Pino 7: GP0/AN0/icspdat Dados E/S
5 Pino 6: GP1/AN1/icspclock CLK
Pin 6 – –
![Page 52: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/52.jpg)
•Projecto
52 | Novembro 2013 | www.elektor-magazine.pt
“a”: Byte mais significativo dos LEDs seleccio-nados (0 ou 1)
“b”: Byte menos significativo dos LEDs seleccio-nados (0 a F)
“CR”: Carácter Carriage Return para terminar a sequência.
A sequência a introduzir é “HxySab” seguida de “enter”, onde xy é o módulo a endereçar, “S” representa configuração e “ab” é o valor hexade-cimal dos LEDs a serem ligados. Este valor pode variar entre 00h e 1Fh, permitindo ligar qualquer combinação de cinco LEDs.
Exemplo: Para ligar os LEDS 3 e 5 do módulo 12, introduza no terminal a sequência “H12S14” seguida de “enter”.
Construir os módulosA Figura 2 apresenta a placa de circuito impresso para um único módulo, que pode ser encomen-dado no Serviço Elektor. A utilização de compo-nentes convencionais simplifica muito a cons-trução. As duas resistências de 0 Ω, R8 e R9, são necessárias para fazer pontes em algumas pistas da placa de circuito impresso e podem ser substituídas por fios. Utilize um suporte para o microcontrolador.Todos os módulos estão ligados em paralelo. A resistência R1 em cada módulo assegura que é retirada apenas uma corrente muito baixa do sinal RXD, permitindo a ligação de uma grande quantidade de módulos sem problemas. O sinal RXD é gerado no pino 3 do conector sub-D de 9 vias de um PC. A ligação de terra está presente no pino 5 do mesmo conector e é ligado ao fio de terra do cabo de alimentação.O microcontrolador pré-programado, com a refe-rência 130136-41, pode ser adquirido no Serviço Elektor. Em alternativa pode programar o dispo-sitivo se possuir um programador. Esta opção é mais atractiva se necessitar de muitos módulos para o seu modelo. Pode descarregar o firmware em [3], e também os ficheiros CAD para o pro-jecto, que pode abrir no programa de CAD gra-tuito DesignSpark.
(130136)
Internet[1] ww1.microchip.com/downloads/en/
DeviceDoc/41190G.pdf[2] www.microchip.com/pickit2[3] www.elektor.com.pt/130136
“P”: Comando P para programar.“a”“a”“5”: Código de segurança para evitar programa-
ção acidental.“5”: Código de segurança para evitar programa-
ção acidental.“x”: Byte mais significativo (hexadecimal) do
endereço a atribuir ao módulo, x = 0 a F.“y”: Byte menos significativo (hexadecimal) do
endereço a atribuir ao módulo, y = 0 a F.“CR”: Caracter Carriage Return para terminar
a sequência.
A introdução da sequência “HFFPaa55” no termi-nal faz acender todos os LEDs. Introduza agora o endereço pretendido (xy) e finalmente a tecla “enter”. Os LEDs apagam-se e, depois de desli-gar e ligar novamente a alimentação, o endereço vai ser armazenado. Pode ser utilizada a mesma sequência para atribuir endereços diferentes ao módulo.
Exemplo: Para alocar o endereço 23h a um módulo que ainda não tem endereço, introduza a sequência “HFFPaa5523” seguida de “enter”.
Ligar/desligar LEDsControlar o módulo“H”: Casa“x”: Byte mais significativo (hexadecimal) do
endereço da casa seleccionada x = 0 a F“y”: Byte menos significativo (hexadecimal) do
endereço da casa seleccionada y = 0 a F“S”: Comando S para configurar
LISTA DE COMPONENTESResistênciasR1 = 100 kΩR2–R6 = 1 kΩR7 = 10 kΩR8,R9 = 0 Ω
CondensadoresC1,C2 = 100 nFC3 = 100 pFC4 = 100 µF/25 V (por exemplo
25YXF100MEFC6.3X11 da Rubycon)
SemicondutoresD1 = BAT85T1 = BC548IC1 = PIC12F675-I/P (Microchip),
programado (Refª 130136-41)IC2 = 78L05
DiversosJP1 = Barra de terminais de 6 viasK1,K2,K3 = Bloco de terminais
de aperto de 3 vias, PCIPlaca de circuito impresso
(Refª 130136-1) [3]
-OI
(C) E
lekt
or13
0236
-1
R1
R2
R3R4R5
R6
R7C1
C2
C3
C4
IC1
IC2
T1
JP1
K2
K3
K1R8
D1
R9
www.e
lekt
orpcbservice.com
Figura 2. Componentes convencionais numa disposição ordenada.
![Page 53: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/53.jpg)
www.elektor-magazine.pt | Novembro 2013 | 53
É um facto bem conhecido: as bactérias (bugs) matam pessoas e os bugs de software não são excepção. Todos os anos morrem pessoas devido a falhas de software. Alguns acidentes fatais com aviões, helicópteros e carros podem ser atribuídos a problemas de software; mau funcionamento do firmware de dispositivos médicos faz vítimas regularmente; edifícios caem devido aos bugs, e algumas pessoas morrem devido a isso. O mau software até pode afundar barcos. Acreditem, há testemunhas!
Não existe software livre de bugs que faça um trabalho significativo. De acordo com a Wikipedia, o Centro Tecnológico de Garantia de Software da NASA conseguiu produzir software com menos de 0,1 bugs por 1000 linhas de código, o que é considerado extremamente bom. As organiza-ções comerciais não têm tempo e dinheiro para atingir este nível de qualidade. Aparentemente a Microsoft tenta obter um máximo de 0,5 bugs por 1000 linhas quando lança um novo produto, pelo que sabendo que o Windows XP foi compi-lado a partir de 45 milhões de linhas de código, continha mais de 22500 bugs quando foi lan-çado. Estima-se que programas escritos na indús-tria para utilização interna contenham entre 5 e 50 bugs por 1000 linhas.
Os defeitos de software – termo mais oficial para os “bugs” – podem ter várias origens, de progra-mas complexos mal interpretados a programa-ção desleixada. Contrariamente ao entendimento popular, produzir bom software não é fácil porque exige precisão e cuidado extremos. Para cada linha de código, são necessárias pelo menos três coisas:
1. um bom entendimento do problema, e a sua solução, que cada linha de código deve implementar;
2. a capacidade de expressar esta solução cor-rectamente na linguagem de programação disponível;
3. não introduzir gralhas ao escrever o código.
O primeiro ponto é habitualmente a parte mais difícil, especialmente para grandes projectos. É por isso que são essenciais bons arquitectos de software e boas especificações para o sucesso de um projecto.O ponto 2 também é difícil, porque envolve a escolha da linguagem de programação – nem todas as linguagens são adequadas para todas as situações – e a representação de um racio-cínio lógico numa linguagem não natural sem cometer erros.O terceiro ponto parece discutível, mas é difícil de concretizar correctamente. É fácil não colocar um parêntesis ou uma chaveta, trocar dois sím-bolos ou escrever uma gralha. Só neste ponto é que as ferramentas de programação começam a ajudar o projectista, e apenas apontando erros de sintaxe e problemas de compatibilidade e outros conflitos entre objectos de dados.Para reduzir o risco de criar falhas relacionadas com as nossas linhas de código, podemos adi-cionar à lista:
4. assegure-se que o código está escrito de forma clara e compreensível;
5. adicione comentários (e actualize-os) para justificar a linha de código;
6. adira a um standard de código.
Clemens Valens (Elektor)
Normas de programaçãoMelhore o seu circuito com melhor software
Habitualmente gastamos muito tempo e energia a projectar um circuito elegante, bem pensado e robusto. Actualmente, o cérebro de muitos desses circuitos é um microcontrolador que necessita de software para funcionar. Será razoável esperar que um programa bem projectado e bem escrito faça esse circuito funcionar? Aparentemente é. Vamos falar sobre software de qualidade.
![Page 54: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/54.jpg)
54 | Novembro 2013 | www.elektor-magazine.pt
•Labs
Um standard de código real não é apenas um conjunto de regras para melhorar a aparência dos programas; é um conjunto de regras para reduzir erros de programação. Também pode ser utilizado para atingir compatibilidade com um standard de regulação. Como actualmente as linguagens C e C++ são as linguagens de programação mais populares, muitos standards de código são orientados para C/C++. As van-tagens de utilizar um standard de código é que podemos utilizar ferramentas de análise estáticas para verificar a semântica do nosso código em vez de analisar apenas a sintaxe, o que ajuda a identificar possíveis problemas que um com-pilador não consegue encontrar.Assim, que regras podemos esperar num stan-dard de código? Aqui estão alguns exemplos:
Evite funcionalidades explícitas que podem esconder erros de códigoEm C e C++ é legítimo utilizar o operador de atribuição “=” em expressões do tipo Boolean. Por exemplo, a expressão seguinte é válida:
if (sample=get_sample()) sample += 2;Esta linha de código adiciona o valor 2 à variável sample se esta tiver um valor diferente de 0. Por-quê? Bem, em primeiro lugar a função get_sam-ple() é chamada e o valor retornado por esta é atribuído à variável sample. Depois o operador if do tipo Boolean vai verificar se a condição que está dentro dos parêntesis é verdadeira ou falsa. Em C/C++, falso equivale a 0 e verdadeiro equivale a não falso (diferente de 0). Assim, se sample tiver um valor diferente de 0, a condição é considerada verdadeira e a soma vai ser executada.Mas talvez o programador pretendesse isto:
if (sample==get_sample()) sample += 2;A diferença, um carácter “=” adicional, é subtil. Em C/C++, a sequência “==” significa “é igual a”. Assim, o valor 2 vai ser adicionado a sam-ple apenas se o valor desta variável for igual ao valor retornado pela função get_sample(). Não é claramente o comportamento da linha de código anterior.
O item 4 refere-se à utilização de nomes com-preensíveis para funções e variáveis. Embora necessite de mais caracteres, uma variável cha-mada “aceleracao” é muito mais explícita do que “ace” ou apenas “a”.O item 5 é ignorado por muitos programadores. Não porque desconhecem as funcionalidades para comentários da linguagem de programação uti-lizada, mas porque são demasiado comodistas para as utilizar. O último ponto é muito impor-tante. Muitos programadores amadores desco-nhecem completamente os standards de código, enquanto alguns programadores profissionais conhecem-nos mas não os utilizam.
O que é um standard de código?A maioria das companhias de produção de sof-tware têm regras ou convenções com as quais os seus projectistas devem escrever o código. Na Internet pode encontrar standards de código para muitos projectos de código fonte aberto
como o GNU [1] ou o Linux. Contudo, muitas vezes estas regras limitam-se à formatação do código fonte, e o objectivo destas é uniformi-zar o código fonte para facilitar a sua manu-tenção. Como estas regras estão orientadas maioritariamente para a aparência do código, é melhor considerá-las um estilo de código ou de programação.
Devido à abreviação da representação do ano de quatro para dois dígitos, muitos programas
estavam em risco de calcular mal datas depois de 1999. Foram feitos enormes esforços para prevenir isto. Os custos
a nível mundial foram estimados em 425 mil milhões de dólares, mas não aconteceu nada de prejudicial.
Algo semelhante pode acontecer em 19 de Janeiro de 2038 aquando do overflow do contador dos segundos dos sistemas UNIX.
$425,000,000,000
O Windows XP foi compilado a partir de 45 milhões de linhas de código – foi lançado com mais de 22500 bugs
Bug do Ano 2000, Y2K ou bug do Milénio (1999)
![Page 55: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/55.jpg)
www.elektor-magazine.pt | Novembro 2013 | 55
Normas de programação
a um erro de programação, uma ou mais partes de um programa podem tornar-se inalcançáveis, porque o caminho de execução para essas partes é cortado. Observe este sketch para Arduino:
void setup(void){ int a = -1; unsigned int b = 1; if (a<b) a += 2; Serial.begin(115200); Serial.println(a);}
void loop(void){}
Foi erro do programador ou foi intencional? É impossível saber. Alguns compiladores assi-nalam esta troca, mas apenas quando o aviso correspondente está activo. Esta é a razão pela qual os standards de código proíbem esta forma de programar.
Inicialize sempre as expressões com ponteiros Esta é uma armadilha clássica e é a causa de mui-tos bugs. Quando um ponteiro para um objecto de dados não é inicializado – chamado ponteiro “selvagem” – pode apontar para qualquer lado. Não inicializar um ponteiro pode provocar um com-portamento indefinido do programa. Proibir a uti-lização de ponteiros não inicializados é a única solução. Como estes são perigosos, outras lingua-gens de programação restringem a sua utilização.Os ponteiros estão estritamente relacionados com overflows de variáveis em memória, o número 3 do top 25 da CWE/SANS de 2011 dos erros de software mais perigosos (que lida maioritaria-mente com assuntos de segurança de código).[2]
int* p_some_pointer;p_some_pointer = address_of_data_object;p_some_pointer[34] = 3;
Embora, no fragmento de código acima, o pon-teiro seja inicializado antes de ser utilizado, resta uma questão: o índice 34 é válido? Se não, é um erro de overflow.
Utilizar tipos correctos de dadosEm C/C++, variáveis de um tipo podem ser atribu-ídas a outro tipo, desde que o novo tipo de dados tenha uma precisão igual ou superior. Por exemplo, atribuir uma variável do tipo inteiro a outra variável em vírgula flutuante não produz um aviso. O con-trário vai produzir um aviso. Isto significa que, por exemplo, um carácter representado por um valor de 8 bits pode ser adicionado a um valor em vírgula flutuante de 32 bits; o compilador encarrega-se da conversão. Para prevenir a soma de tipos de dados diferentes, um standard de código proíbe a mistura de tipos de dados diferentes excepto se for efectuado um casting – conversão de um tipo de dados para outro – desta forma:
float a = 3.14;int b = (int)a;
Eliminar código não utilizado ou inalcançávelNormalmente, todas as linhas de código de um programa têm uma função. No entanto, devido
Uma perda completa de informação de navegação e de altitude 30 segundos depois do lançamento, devido a erros de projecto e de especificações no sof-tware do sistema de referência inercial, provocaram a desintegração do fogue-tão. O acidente deu-se devido a um valor em vírgula flutuante de 64 bits que não coube num valor do tipo inteiro de 16 bits, provocando um overflow. O valor anormalmente elevado foi cal-culado por um algoritmo destinado ao Ariane 4. Perdas financeiras estimadas: cerca de 400 milhões de dólares.
$400,000,000
Um erro de projecto no mais recente processador Pentium da Intel provocou pequenos erros aquando da divisão de números em vírgula flutuante dentro de uma determinada gama. Embora este bug tenha afectado poucos utilizado-res, tornou-se um pesa-delo de relações públicas e custou à Intel cerca de 650 milhões de dólares. $650,000,000
![Page 56: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/56.jpg)
56 | Novembro 2013 | www.elektor-magazine.pt
•Labs
condição vai ser sempre considerada falsa, e a soma nunca é executada – é inalcançável. Impor a um programador a remoção do código inalcançável vai forçá-lo a repensar o algoritmo e a simplificar o programa. Lembre-se, menos código corresponde a menos bugs.Este exemplo pode ficar compatível com um standard de código removendo a função de teste if, ou aplicando a regra anterior à variável b, isto é efectuar um casting para a tornar tem-porariamente do tipo inteiro:
if (a<(int)b) a += 2;
Limite a complexidadeAs funções grandes tendem a ser complexas, e assim difíceis de compreender e testar. Por esta razão um standard de código pode proibir que uma função ou método não exceda, por exem-plo, 200 linhas de código.As ferramentas de verificação de cumprimento de standards de código podem utilizar outras métricas para medir a complexidade. Um exem-plo é a ciclomática, ou complexidade condicional, que mede a quantidade de caminhos indepen-dentes dentro de uma função. Quanto mais cami-nhos, maior a complexidade da função. Este tipo de complexidade é difícil de estimar por huma-nos – deixe as ferramentas trabalharem por si.
EstiloEmbora tenha sido dito anteriormente que o objectivo de um standard de código não é tor-nar o código bonito, este pode incluir regras de estilo que o tornem fácil de ler, facilitando a identificação de potenciais defeitos. Alguns exemplos destas regras são:
•As linhas de código vão ter, no máximo, 120 caracteres;
•Cada expressão fica numa linha separada;•Devem evitar-se espaços de tabulação;•Todas as separações devem ter pelo menos
dois espaços e serem consistentes em todo o ficheiro de código;
•As expressões pertencentes a blocos if, else if, else, while, do-while ou for devem estar sempre dentro de chavetas, mesmo que for-mem um bloco vazio;
•As chavetas (“{}”) que formam um bloco devem ser colocadas na mesma coluna, em linhas separadas, imediatamente antes e depois do bloco.
Que valor correspondente à variável a vai ser enviado pela ligação série? -1! Porquê? Por-que, em C/C++, se numa comparação um dos valores for do tipo unsigned, o outro valor vai ser silenciosamente “promovido” a unsigned. Mas uma variável do tipo inteiro de 16 bits – como no Arduino – que guarda o valor -1 (0xffff em complemento para dois, o formato utilizado pela maioria dos processadores para represen-tar números negativos) é igual bit a bit a uma variável do tipo unsigned int que guarda o valor 65535 (0xffff). Como 65535 é maior que 1, a
Standards de código popularesSem contar com standards internos, actualmente os standards de código mais conhecidos são (ordenados por popularidade):
MISRA C (e C++) — criado pela Associação de Fiabilidade de Software para a Indústria Automóvel para fornecer assistência à indústria automóvel na aplicação e projecto de software fiável em sistemas automóveis. Tem de ser paga uma contribuição para obter o standard.http://www.misra.org.uk/
CERT C++ (e C) — esta iniciativa do Instituto de Engenharia de Software da Universidade Carnegie Mellon tenta eliminar práticas inseguras na escrita de código, que possam criar vulnerabilidades que possam ser exploradas por entidades maliciosas.https://www.cert.org/ (é utilizado o protocolo http seguro, https.
O CERT está sempre seguro.)
HICPP — C++ de Alta Integridade, disponibilizado gratuitamente pela PRQA, fornece princípios para manutenção, portabilidade, legibilidade, e segurança ao impor restrições à linguagem standard C++ ISO para limitar a flexibilidade que esta permite.http://www.codingstandard.com
JSF AV++ — o standard de código C++ Joint Strike Fighter Air Vehicle gratuito da Lockheed Martin, tem como objectivo ajudar os programadores a desenvolver código livre de defeitos que possam provocar falhas catastróficas que resultem em danos significativos em indivíduos e/ou equipamento. (Não confundir com danos significativos em indivíduos e/ou equipamento provocados por software perfeitamente funcional.)http://www.jsf.mil/downloads/documents/
JSF_AV_C++_Coding_Standards_Rev_C.doc
Pode encontrar aqui uma longa lista de ferramentas de análise para muitas linguagens de programação: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
![Page 57: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/57.jpg)
www.elektor-magazine.pt | Novembro 2013 | 57
Normas de programação
[1] Standard de código GNU: http://www.gnu.org/prep/standards/ standards.html
[2] Top 25 dos erros de software mais perigosos: http://cwe.mitre.org/top25/
Muitos programadores não aprovam estas regras; alguns editores de programação fazem-no intro-duzindo tabulações automaticamente. Porquê evi-tar as tabulações? Porque misturam as formata-ções do código quando os vários programadores não utilizam a mesma distância de tabulação.
HábitosOs compiladores de C/C++ vêm com uma grande colecção de bibliotecas standard. Muitos progra-madores confiam nestas bibliotecas, e utilizam--nas habitualmente. Infelizmente, algumas fun-ções incluídas nestas bibliotecas podem exibir comportamentos dependentes da plataforma utilizada, não especificados, indefinidos, depen-dentes da implementação, ou mal definidos. Aqui
estão algumas regras que proíbem a utilização de algumas bibliotecas e funções populares:
• O indicador de erro errno não deve ser utilizado;• A biblioteca <locale.h> e a função setlocale
não devem ser utilizadas;• As funções para manipulação de sinais de
<signal.h> não devem ser utilizadas;• A biblioteca de E/S <stdio.h> não deve ser
utilizada;• As funções atof, atoi e atol da biblioteca
<stdlib.h> não devem ser utilizadas;• As funções abort, exit, getenv e system de
<stdlib.h> não devem ser utilizadas;• As funções de manipulação temporal <time.
h> não devem ser utilizadas;
Note a interdição da biblioteca de E/S <stdio.h>. Sim, deve escrever a sua própria função printf.
A decisão é suaAs regras de exemplo listadas acima – tiradas de standards de código reais – podem parecer severas, mas não são definitivas. Os standards de código permitem excepções para algumas regras. Outras regras são discutíveis, e tem de decidir se as respeita ou não. Na Internet pode encontrar discussões acerca de certas regras, sendo que algumas até estão abertas a interpretações. Até os standards de código estão sujeitos a bugs.
(130271-I)
Bug dos Mísseis Patriot (1991)Durante a primeira Guerra do Golfo, um sistema de mísseis Patriot dos EUA na Arábia Sau-dita falhou a intercepção de um míssil SCUD iraquiano, matando 28 soldados e ferindo 100 outras pessoas. A causa foi um erro de arredondamento nos cálculos temporais executados pelo sof-tware, fazendo-o ignorar alguns alvos.
Terapia de Radiação Mortal (1985-1987, 2000)Devido a software com bugs, o dispositivo médico de terapia com radiações, Therac-25, pode ter calculado mal as doses de radia-ção que devia administrar. Alguns pacientes receberam até 100 vezes a dose recomendada, matando pelo menos três deles. Um bug seme-lhante foi descoberto na Cidade do Panamá em 2000, onde um sof-tware de planeamento de terapia forneceu doses dependendo da ordem por que eram introduzidos os dados. Este bug matou pelo menos cinco pessoas.
bugs de software matam pessoas
28 mortos,
100 feridos
pelo menos
8 mortos e
muitos feridos
![Page 58: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/58.jpg)
•Labs
58 | Novembro 2013 | www.elektor-magazine.pt
Clemens Valens (Elektor)
Pontas soltas
Algumas pessoas têm ideias óptimas e estimulantes mas não sabem como transformá-las em circuitos electrónicos funcionais, enquanto que a outras falta-lhes jeito e/ou tempo para completar o projecto. Abaixo está uma selecção de projectos disponibilizados no Elektor.Labs, que necessitam de ajuda para serem concluídos. Pode aplaudir e/ou ajudar?
Escultura ElectrónicaO autor original (AO) snap pretende criar uma escultura elec-trónica capaz de produzir figuras em 3D movendo individual-mente, para cima e para baixo, cinquenta bolas presas por fios. Existem bons vídeos no YouTube sobre este tipo de aparatos: procure por “BMW kinectic sculpture” ou por palavras seme-lhantes. Enrolar e desenrolar os fios é tarefa para pequenos motores, mas como controlar cinquenta fios de forma sincro-nizada sem gastar demasiado dinheiro ou tempo? O peso total também é um factor importante. O AO procura ajuda; tem experiência em projectos semelhantes? Tem experiência em electrónica, motores e mecânica? Se sim, porque não navegar para www.elektor-labs.com/node/3450 e contribuir.Fotografia: BMW Welt
Cinco projectos interessantesWebcam Exterior Solar Sem Fios Wi-Fi/3G
www.elektor-labs.com/node/3538
Bluetooth Tudo-O-Que-Conseguir-Comer www.elektor-labs.com/node/3032
Controlador PWM para Lanterna www.elektor-labs.com/node/3537
Sniffer RS-485 www.elektor-labs.com/node/3522
Ratoeira Amiga dos Ratos www.elektor-labs.com/node/3433
![Page 59: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/59.jpg)
elektor labs
www.elektor-magazine.pt | Novembro 2013 | 59
www.elektor-labs.com
Inversor de FrequênciaIsto é sobre um projecto que considero interessante, mas que nunca tentei construir.
Como sempre, não fui o único a ver o projecto de PappaBaer’s. Um inversor de frequência ou, para ser mais correcto, um controlador de frequência variável (VFD);
é um dispositivo que controla a velocidade de rotação de um motor AC – normalmente trifásico. A Elektor publicou um dispositivo deste tipo em 1994/1995. O projecto teve muito, mas nunca teve um sucessor. Os componentes utilizados no projecto original são agora difíceis de encontrar ou até obsoletos, e era bem-vinda uma actualização.
Desta vez com software de código fonte aberto, claro. Já esteve envolvido num projecto deste tipo? Se sim, junte-se a nós em www.elektor-labs.com/node/3484.
Fotografia: Wikipedia
Lâmpada de marcha atrás para caravanaUma das coisas boas no Elektor.Labs é a grande diver-sidade de projectos disponibilizados. Há muitas coisas para descobrir graças aos diferentes interesses dos autores. Algum tempo atrás o autor original PLEG54 disponibilizou um projecto para desenvolver um adap-tador para veículos antigos, permitindo-lhes rebocar
caravanas modernas que têm lâmpadas de marcha atrás. A directiva R48 da ECE torna-a obrigatória. ECE-R48? Fiz alguma pesquisa e descobri o Fórum Mundial Para a Harmonização das Directivas para Veículos. Este faz parte da Divisão de Trans-portes Terrestres da Comissão Económica das Nações Unidas Para a Europa (UNECE), que tem a tarefa de criar um sistema de regulação uniforme para o projecto de veículos, para facilitar o comércio internacional. A directiva R48 está relacionada com a instalação de luzes e de dispositivos de sinalização. Isto significa que a ONU decide que luzes e reflectores necessita de ter no seu carro e caravana, e onde os colocar. Sim, isto é muito instrutivo, mas a parte realmente interessante é que o autor necessita de ajuda. Pode encontrá-lo(a) em www.elektor-labs.com/node/3360.Fotografia: Wikipedia
(130200-I)
Ponta de prova de corrente baseada em GMRMedir corrente com um multímetro é fácil; fazê-lo com um osciloscópio é mais complexo. Claro que pode com-
prar uma ponta de prova de corrente especial, mas são dispendiosas, pelo que o autor original RolandSautner decidiu projectar uma.
As pontas de prova mais modestas utilizam sensores de efeito de Hall e trans-formadores AC para medir correntes AC e DC, mas o AO quis utilizar outro método:
magnetorresistência gigante, ou GMR. Porquê? Porque possuía um sensor de campo magnético KMZ51, e não pretendia deixar de o utilizar. O AO avançou bastante, mas encontrou alguns problemas mecânicos. Pode ajudá-lo a transformar o seu projecto numa ponta de prova prática? Se sim, vá a www.elektor-labs.com/node/3423 e adicione as suas ideias e sugestões.Fotografia: Agilent
Nota: AO significa Autor Original, a pessoa que iniciou um projecto ou discussão online. Os AOs que pretendem aparecer na Revista Elektor devem verificar
(regularmente) o endereço de e-mail que utilizam para aceder ao Elektor.Labs. Este é o nosso único meio de contacto.
![Page 60: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/60.jpg)
60 | Novembro 2013 | www.elektor-magazine.pt
•Labs
1
2
3
O PCB Prototyper [1] é uma fresa profissional pro-jectada para efectuar placas de circuito impresso com pistas de isolamento com largura mínima de 100 µm, e furos com diâmetro mínimo de 0,2 mm. No Laboratório Elektor – mais preci-samente na adega – utilizamos o nosso PCB Prototyper quando é necessário fazer rapidamente uma placa de circuito impresso para um protótipo, ou para experimentar for-matos de placas. Inspirados pelo nosso próprio TAPIR [2] reparámos no potencial do PCB Proto-typer para produzir placas de circuito impresso por medida. Depois de alguma acção consegui-mos produzir os formatos que necessitávamos. Para nossa satisfação até conseguimos fabricar uma placa de circuito impresso multicamada (ver foto). Ansiosos por partilhar a nossa experiência positiva consigo, nosso estimado leitor e mem-bro, permita-me guiá-lo, com fotografias, através
dos passos que nos leva-
ram a dominar o nosso PCB Proto-
typer. Foi utilizado o Cadsoft Eagle para projec-
tar uma placa de circuito impresso para exemplo, e o software PCB Module
associado para controlar o PCB Prototyper. Se, como eu, quer aprender a voar com a águia (Eagle), obtenha o livro! [3]
(130128)
Internet Links[1] www.elektor.com/PCBprototyper[2] www.elektor.com/tapir[3] www.elektor.com/eagle
Aurélien Moulin (Laboratório Elektor)
Curso PCB Prototyper
No Eagle, seleccione wire tool para desenhar linhas ou arc tool para produzir formas curvas. Certifique-se que selecciona a camada 20 Dimension e configura a espessura para 0. Faça agora o seu desenho.
Verifique que linhas formam polígonos fechados, para que cada forma delimite uma área interior e uma área exterior.
A área a verde não pertence à placa de circuito impresso, e tem de ser eliminada. As áreas a vermelho vivo vão ser eliminadas do interior da placa.Exporte o seu desenho utilizando um Processador CAM. Seleccione GERBER_RS274X e seleccione apenas a camada Dimension. Clique em File para gravar o resultado (chame-lhe dimension) e clique em Process Job. Repita isto para a face superior (seleccione Top, Pads, e Vias; lembre-se de dar outro nome ao seu ficheiro antes de o processar). Para criar um ficheiro para a fresa, seleccione EXCELLON em vez de GERBER_RS274X, e repita o processo. Isto conclui a parte referente ao Eagle.
![Page 61: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/61.jpg)
www.elektor-magazine.pt | Novembro 2013 | 61
Master Class
4
5
69
8
7
Corra o software PCB Module e abra um novo projecto. Clique em Import Layer, seleccione a sua face superior e importe-a para a camada superior. Importe uma segunda camada e seleccione o seu ficheiro de dimensões. Importe este ficheiro para Board Outline/ /Cut-outs. Importe o ficheiro para a fresa se necessitar.
Pode tentar corrigir isto no Eagle (utilizando uma pista com o formato do carácter), mas assim tem de refazer todo o seu processamento CAM. Como alternativa há uma estratégia rápida: desenhe um polígono (a ferramenta está escondida atrás do separador Create) que siga grosseiramente o centro das linhas do carácter e configure-o para inline utilizando a ferramenta Inside.
Seleccione agora a ferramenta Inside e aplique-a às duas formas a serem eliminadas da placa de circuito impresso. Note que o E não está bem preenchido. Tem de ser feito manualmente. Cancele o último traço (ctrl+z).
Vamos agora definir as inlines e as outlines (termos utilizados pelo PCB Module). Clique no separador Modify e seleccione a ferramenta Outside.
Coloque o ponteiro do rato na forma geral, cuja cor vai mudar de amarelo para branco, indicando que polígono vai ser configurado como linha exterior. Clique na linha exterior.
Necessitamos agora de criar algumas Break-out tabs. Utilize a ferramenta Break-out tabs do separador Create e clique numa zona direita do contorno. O software vai centrá-la automaticamente. As dimensões por defeito são 2 mm, que servem, mas ajuste-as se desejar. Um resultado final adequado deve parecer-se com o aqui apresentado. O seu desenho está pronto para as etapas de processamento habituais (contorno; lista de ferramentas; maquinagem).
![Page 62: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/62.jpg)
•Tech The Future
62 | Novembro 2013 | www.elektor-magazine.pt
O valor simbólico da localização correspondeu ao objectivo da equipa Forze. Em pouco menos de um século a tecnologia da aviação modificou radicalmente o nosso mundo e permite-nos agora viajar para os antípodas em menos de 24 horas. Com este carro de corridas movido a hidrogé-nio, os estudantes esperam contribuir para outra revolução tecnológica, neste caso no universo da energia limpa.O Forze VI pesa pouco menos de 880 kg, atinge uma velocidade máxima de 220 km/h, e acelera dos 0 aos 100 km/h em 4 segundos. O coração deste carro é o sistema de células de combustí-vel, onde o hidrogénio reage com o oxigénio para produzir electricidade e água. A energia eléctrica gerada alimenta dois motores eléctricos, com uma potência nominal de 190 kW (260 HP) cada um. O carro pode correr durante 30 minutos à velocidade máxima com o combustível presente nos seus dois tanques, que, juntos, armazenam 3 kg de hidrogénio a uma pressão de 350 bar.
A sustentabilidade pode ser interessanteEm Hanger 2, Edgar van Os – o fundador da equipa Forze – explicou à audiência o que moti-
vou os estudantes a dedicar tanto tempo (por vezes até 80 horas por semana) ao projecto. “Queremos mostrar que a energia sustentável também pode ser interessante. A sustentabilidade está sempre presente com uma conotação nega-tiva: desliga o interruptor, baixa o aquecimento, etc. A nossa abordagem foi radical e pioneira ao combinar sustentabilidade com corridas. Foi por isso que demos muita atenção à aparência do carro. Este não é um veículo apenas académico, visto que isso não interessa ao público em geral”.Edgar van Os organizou a equipa Forze H2 em 2007 apenas por sua iniciativa, sem nenhuma ajuda de patrocinadores ou professores. O objec-tivo era construir um kart que pudesse parti-cipar na competição Formula Zero em 2008. A primeira série de corridas para carros movidos a hidrogénio foi iniciada para promover tecnologia sem emissões poluentes “da fonte até às rodas”. O veículo Forze I competiu com cinco outras equi-pas universitárias e ganhou.Desde aí a plataforma Forze tem sofrido alguns desenvolvimentos evolutivos, com cada equipa a construir a partir do conhecimento dos seus ante-cessores. O desenvolvimento de uma célula de combustível a hidrogénio projectada e construída
Tessel Renzenbrink (Elektor)
Forze VI: um carro de corrida movido a hidrogénio
O Forze VI, um dos primeiros carros de corridas movido a hidrogénio, foi revelado a 9 de Setembro no aeródromo desactivado de Valkenburg, perto de Katwijk (Holanda). Todos os componentes do carro foram construídos por uma equipa de 70 estudantes na Universidade de Tecnologia de Delft.
Forze VI e a equipa
![Page 63: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/63.jpg)
Carro Movido a Hidrogénio
www.elektor-magazine.pt | Novembro 2013 | 63
pela equipa, para substituir as células de combustível compradas já construídas uti-lizadas anteriormente, começou em 2010. Isto foi instalado pela primeira vez no Forze IV, que marcou a evolução de uma plataforma kart para um pequeno carro de corridas. Agora a equipa apresentou o primeiro carro de corridas convencional na forma do Forze VI.
HidrogénioDepois da introdução feita por Edgar van Os, o Dr. Bernard Dam, um professor de química da Universidade de Tecnolo-gia de Delft, deu uma pequena palestra sobre os benefícios dos sistemas movidos a hidrogénio. “O aquecimento global é um facto científico. Logicamente é necessário reduzir as emissões de CO2 em 80% a 90% até 2050, em relação aos níveis de 1990. A mobilidade tem um papel princi-pal nisto. Reduzir as emissões no sector industrial é difícil, pelo que a resposta tem de ser encontrada no sector dos trans-portes e no ambiente urbano – edifícios de escritórios, casas, lojas e etc.”Actualmente há muito interesse no desen-volvimento de veículos eléctricos equi-pados com baterias. Se a electricidade for gerada a partir de fontes renováveis, o resultado são veículos sem emissões poluentes. Um benefício adicional é que a frota de veículos pode actuar como um sistema de armazenamento distribuído. As energias eólica e solar fornecem uma quantidade flutuante de electricidade, tor-nando necessário a criação de instalações de armazenamento de energia.No entanto, de acordo com o professor “não há a certeza absoluta que venham a estar disponíveis no futuro baterias pouco dispendiosas que permitam aos veículos viajar mil quilómetros”. A popularidade dos carros eléctricos ainda sofre com a “ansiedade da distância”: o medo de ficar parado algures no meio da estrada com a bateria descarregada. Um carro híbrido movido a hidrogénio pode fornecer uma solução utilizando a célula de combustível como extensor de autonomia.O Dr. Bernard Dam e os seus colegas estão a trabalhar num método para pro-duzir hidrogénio sustentável e de baixo
custo no futuro. Agora a maior parte do hidrogénio é obtido a partir do gás natu-ral. Este processo ainda gera emissões de CO2, e o gás natural não é uma fonte renovável. O método investigado pelo Dr. Bernard Dam chama-se divisão da água. Isto envolve a imersão de uma célula electroquímica em água e expô--la à luz solar. A reacção química resul-tante divide a água nos seus elementos constituintes: hidrogénio e oxigénio. Os investigadores atingiram recentemente um marco importante ao obter uma efi-ciência de 4,9%. Isto significa que quase 5% da energia solar é convertida em hidrogénio. Eles esperam atingir uma eficiência de 10% dentro de três anos, o que vai tornar a tecnologia comercial-mente viável.
ÁguaQuando o hidrogénio reage com o oxi-génio na célula de combustível, o único resíduo é água pura. O Forze VI produz um litro de água por minuto. A água pode ser armazenada no carro ou descarregada na estrada. Nenhuma destas soluções é ideal: a primeira torna o carro pesado, enquanto a segunda leva a reclamações dos outros motoristas. Por esta razão a equipa Delft optou por uma alternativa inovadora: utilizar a água para arrefe-cer o sistema de travões, que provoca a evaporação da água. A energia cinética proveniente da travagem é convertida em energia eléctrica e reintroduzida no sistema.O Forze VI da equipa de estudantes é um carro de corridas completo que vai com-petir com carros movidos a gasolina. Este vai entrar em 25 eventos durante a época de corridas 2013-2014. Um dos objec-tivos é quebrar o recorde de velocidade por volta para carros eléctricos na pista de Zandvoort. O recorde pertence actual-mente ao Tesla Roadster. Na famosa pista alemã de Nürburgring, a equipa Forze espera entrar no livro dos recordes como os construtores do carro movido a células de hidrogénio mais rápido que já correu em Nordschleife (Volta Norte).
(130203-I)
![Page 64: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/64.jpg)
•Magazine
64 | Novembro 2013 | www.elektor-magazine.pt
Um filtro passa-banda montado após um osci-lógrafo de multicanal permite gravar em para-lelo múltiplas gamas de frequência. De qualquer modo, a tentativa de avaliar visualmente em tempo-real continua a ser problemática.
Em 1934, Erich Freystedt no Laboratório Cen-tral da Siemens & Halske melhorou o processo através de 27 filtros de terceira oitava em para-lelo na entrada, cobrindo toda a gama de fre-quências audíveis ao ouvido humano de 30 a
Dr. Götz Corinth (Alemanha)
Espectrómetro de frequência de áudio de Freystedt (1935)Restauro de um marco da tecnologia de medição electroacústicaAo contrário dos longos métodos mecânicos, ópticos e gráfico/matemáticos, a engenharia electrónica em meados dos anos 30 trouxe novas possibilidades no que respeita à análise de som. Os circuitos de filtragem permitem bloquear ou deixar passar determinadas frequências individuais ou gamas de frequência. O método de procura de frequência permite obter uma maior resolução para uma largura de banda constante absoluta, mas à custa da velocidade de análise.
Figura 1. Diagrama de blocos (parcial) do Espectrómetro de frequência de áudio. Repare na foto, ‘P’. US Patent Office file # 2,159,790, May 1939; Z. Tech. Phys. 16 (1935), p. 294 (Freystedt)
![Page 65: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/65.jpg)
XXL
www.elektor-magazine.pt | Novembro 2013 | 65
18.000 Hz (análise com largura de banda cons-tante relativa). Observando a Figura 1, após a rectificação e armazenagem de curto prazo em condensadores, os sinais de saída do filtro são continuamente sujeitos a amostragem por um conjunto de comutadores accionados por um motor, e subsequentemente aplicados às placas de deflexão vertical de um tubo de raios cató-dicos (CRT), onde os níveis de sinal aparecem como colunas. Em sincronismo, é aplicada uma tensão DC com o nível adequado às placas de deflexão horizontais. A imagem resultante no oscilógrafo representa uma linha de espectro. Cada linha representa a tensão de pico obtida a partir da filtragem de terceira oitava, levando cuidadosamente em conta as propriedades eléc-tricas dos condensadores e filtros (Figura 2). Dependendo da taxa de amostragem é gerada uma imagem do espectro actualizada continua-mente, onde adicionalmente se pode registar no domínio do tempo.
Onde está o espectrómetro?Existiu a vaga esperança, mas não inteiramente infundada, que um instrumento deste tipo podia
fazer parte de uma colecção privada em Rüssel-sheim, na Alemanha. Rüsselsheim? Hummm... Opel? (mais tarde, General Motors Europe, ed.) O quê! Ensaios de ruído nos motores de auto-móvel? Com efeito, a suspeita foi confirmada: este espectrómetro foi construído em 1937 e parece estar relativamente bem conservado, pelo menos por fora.Os 85 kg de peso do Espectrómetro AF foram arrastados para o laboratório de electrónica do autor com alguma dificuldade.
Onde está a documentação? Em termos de documentação, inicialmente haviam apenas duas publicações originais da Siemens e ATM Scientific Publications. Mais tarde, um cole-cionador holandês foi contactado através da Divi-são Técnica Acústica (Physikalisch-Technische Bundesanstalt). Ele estava disposto e conseguia fornecer a documentação original da Siemens. Os papéis tinham ainda uma indicação de preço do equipamento em 1938: RM (Reichsmark) 5.500. De acordo com o organismo de estatística federal da Alemanha, isso corresponde a 35.000 dólares ou 25.000 euros referenciado ao ano de 2000.
Figura 2. Esquema detalhado do Espectrómetro (documentação do fabricante Rel beschr. 745 g. (Siemens & Halske company, 1936). Schwere Wörter translated: Eingang = Entrada; Verstärker = Amplificador; Übersteurungsschutz = Protecção contra sobrecarga; Bandpaß = passa-banda; Gleichrichter = Rectificador; Braunsche Röhre = Tubo de raios catódicos; Netzteil = Fonte de alimentação; Schaltung = Circuito.
![Page 66: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/66.jpg)
•Magazine
66 | Novembro 2013 | www.elektor-magazine.pt
pondente à frequência de áudio do instrumento parece estar funcional.O transformador de alta-tensão teve de ser rebobinado por duas vezes até conseguir ficar a funcionar no circuito. Uma empresa espe-cializada na Holanda rectificou todo o tubo de raios catódicos, dando-lhe um canhão de elec-trões e ecrã totalmente novos. A secção de frequência de áudio foi cuidadosamente verifi-cada e os componentes mais duvidosos foram substituídos.Foi necessário o reajuste de muitos filtros bem como algum trabalho intensivo (Figura 4).Aqui, os condensadores mostraram uma capa-cidade aumentada, provavelmente devido ao encolhimento do papel isolante durante um perí-odo de quase 70 anos. Dois bancos de conden-sadores de década e um gerador de varrimento controlado por computador permitiram que as curvas passa-banda pudessem ser configura-das novamente (Figura 5). Os rectificadores de cuprite (Cu2O, óxido de cobre) entre o filtro e os condensadores de armazenamento estavam todos completamente intactos.
Verificação eléctrica, investigação, restauraçãoAs primeiras tentativas cautelosas: o motor de accionamento para os dois conjuntos de 27 interruptores (Figura 3) estava preso; não havia alta-tensão (HT) para o tubo de raios catódicos de 18 cm (Braun’sche Röhre) com deflexão assimétrica. Infelizmente, este tubo tornou-se inutilizável devido a corrosão dos fios na base comprimida. Apenas a parte corres-
Figura 3. Motor de controlo e engrenagem de árvore de cames para comutação de 54 conjuntos de molas (foto original)
Figura 4. Resposta em frequência do filtro antes da restauração do equipamento. (gravação original)
Figura 5. Resposta em frequência do filtro depois de calibrado. (gravação original)
![Page 67: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/67.jpg)
XXL
exterior foi reconstruído pintando toda a caixa, componentes metálicos e refeita toda a inscrição em torno dos controlos (Figura 7).
Para conseguir operar o novo CRT numa caixa muito antiga as opções de configuração para as tensões auxiliares do tubo tiveram que ser revistas, resultando na prática numa nova pequena placa de circuito impresso com os res-pectivos potenciómetros montados, para ser instalada no interior do instrumento. De modo a evitar fazer alterações excessivas a uma peça de equipamento tão histórico, o método cor-recto de aplicar tensões simétricas ao CRT atra-vés de um circuito push-pull foi abandonado. A deformação trapezoidal e o astigmatismo d CRT revelaram-se toleráveis para deflexões não muito elevadas (Figura 6).
Trabalho mecânicoO motor fixado com novas buchas de apoio (de fabrico caseiro com um torno mecânico de preci-são), e todos os 54 conjuntos de molas ajustados usando um estroboscópio, apareceu um espec-tro pela primeira vez num osciloscópio externo.Depois da restauração das partes eléctricas, o
Figura 6. Imagem de um sinal de tensão sinusoidal distorcido. (gravação original)
![Page 68: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/68.jpg)
•Magazine
68 | Novembro 2013 | www.elektor-magazine.pt
De volta a casaO resultado de todo o trabalho de restauração decorreu durante muitos fins-de-semana, garan-tindo finalmente que uma peça monumental de tecnologia de medição electro- acústica estava novamente totalmente operacional. O instru-mento foi discutido pelo autor numa apresen-tação no Congresso para a Sociedade Acústica Alemã de 2007, e posteriormente consignado como empréstimo permanente gratuito à colec-ção histórica do fabricante original, na Siemens, em Munique.
Elektorizado em 1984As edições inglesas de Março, Abril e Maio de 1984 da revista Elektor continham uma série de 3 artigos que descreviam um Analisador em tempo-real, que pode ser considerado a versão de estado-sólido do dispositivo da Siemens produ-zido em 1935 descrito aqui, embora esse instru-mento não tenha conseguido obter uma menção em 1984. Tal como era moda nos velhos anos 80 o projecto da Elektor contém grandes quan-tidades de componentes discretos (que tal 250 resistências de precisão), meia dúzia de placas de circuito impresso densamente populadas mon-tadas numa placa base, uma fonte de alimen-tação robusta e uns surpreendentes 330 LEDs coloridos. Estava também incluído um gerador de ruído rosa.O protótipo de laboratório do analisador em tempo-real de 1984 acabou provavelmente num caixote de lixo durante a mudança para as novas instalações da Elektor House, em Limbricht, por volta de 2008. Tudo o que temos hoje em dia são os artigos originais. Nada para nos preocupar, 30 anos depois temos o Analisador de áudio 2010 ou outros idênticos que funcionam num portátil. Está apenas à distância de um download de 500 KB. Alguns de vocês têm microcontroladores ARM, DSPs e sistemas de altifalantes escondido para transformar o seu “velho” Opel Kadett A num Ferrari no que diz respeito ao barulho.O editor não foi capaz de resistir sem deixar a Figura 8 – a sua melhor tentativa de mos-trar como se parecia do instrumento de 1984. Por favor, os proprietários de um Analisador em tempo-real da Elektor de 1984 entrem em con-tacto comigo.
(130204)
Figura 7. Espectrómetro de frequência de áudio próximo do final do trabalho de restauro. A caixa foi removida para mostrar o banco de 27 secções de filtragem e o array de contactos do motor. As partes modernas coloridas foram necessárias para adaptar electronicamente o CRT retrabalhado ao circuito original. (foto original)
Figura 8. Protótipo do Analisador em tempo-real da Elektor, fotografado a partir de uma revista Elektor inglesa de Maio de 1984. (reprodução original)
![Page 69: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/69.jpg)
www.elektor-projects.com
Sharing Electronics Projects
Join or Create a Project at www.elektor-labs.com
Elektor.LABS is an online community for people passionate about electronics. Here you can share your projects and partici-pate in those created by others. It’s a place where you can discuss project development and electronics.
Elektor’s team of editors and engineers assist you to bring your projects to a good end. They can help you write an article to be published in Elektor.MAGAZINE or even develop a complete product that you can sell in Elektor.STORE!
Sharing Electronics Projects Sharing Electronics Projects
Join or Create a Project at www.elektor-labs.com
GETELEKTORIZED
elektor labs
Adv Elektor labs 121101 UK.indd 1 05-11-12 14:15
![Page 70: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/70.jpg)
• Curso
70 | Novembro 2013 | www.elektor-magazine.pt
No contexto desta estação meteorológica móvel, pretendíamos estudantes que fossem capazes de reunir dados de diferentes ambientes: na cidade, em parques, e ao longo das margens de um rio. Cada ambiente deve fornecer um conjunto de dados diferente para os alunos realizaram comparações.Decidimos usar balões amarrados para que os estudantes pudessem controlar o posicionamento e colectar os dados a altitudes mais elevadas. Isto também nos deu a oportunidade de incluir uma câmara temporizada para que pudessem visua-lizar e correlacionar os dados em cada ambiente diferente.
DecisõesReunimos todos os dispositivos electrónicos necessários à nossa recolha de dados – um sen-sor de temperatura/humidade, um microfone, uma câmara, e um sensor de CO2. Daquilo que sabíamos, não havia nenhum sensor para medir a velocidade do vento que correspondesse aos nossos requisitos. A maioria dos anemômetros existentes no mercado necessitam de uma super-
fície estável para conseguir obter correctamente as suas leituras, mas uma vez que o nosso sis-tema iria estar montado em balões, tivemos que engendrar um método diferente. Isso, e mais alguns outros problemas inesperados, complicou aquilo que pensávamos que seria um projecto relativamente simples.A fim de manter os custos reduzidos, decidimos usar um conjunto de pequenos balões em vez de um único grande balão meteorológico. Com-prámos um tanque de hélio e alguns balões para festas. Recorrendo a algumas pesquisas na Inter-net, concluímos que seriam necessários cerca de 5 balões para conseguir levantar o Arduino, e todo o sistema de medida por nós montado.Em seguida tínhamos que pensar no anemôme-tro. O nosso principal objectivo não era medir a velocidade do vento com precisão mas sim poder comparar as velocidades. Decidimos então efec-tuar apenas uma medição do número de rotações por segundo, pensámos em usar uma resistên-cia fotossensível (LDR) e um LED para criar um sensor. A ideia era colocar a LDR numa posição oposta a um LED com um disco de papel entre os
David Cuartielles, Clara Leivas, e Tien Pham (Arduino Verkstad)
Curso ArduínoParte 6: Estação meteorológica móvel
O grupo de trabalho Arduino foi encarregado de criar um conjunto de experiências educativas que visam introduzir os novos alunos à electrónica. O objectivo principal era que fossem acessíveis, mas ainda assim suficientemente desafiantes para despertar a curiosidade dos alunos. Esta estação meteorológica móvel faz parte deste conjunto de experiências, uma experiência interdisciplinar que combina ciências da natureza, física e tecnologia.
![Page 71: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/71.jpg)
Curso Arduíno
www.elektor-magazine.pt | Novembro 2013 | 71
dois. O disco teria um pequeno corte onde com o a sua rotação faria passar luz do LED para a LDR que accionaria depois um contador.
Problema resolvidoA nossa primeira tentativa passou por tentar colo-car o LED muito perto da LDR esperando que a quantidade e velocidade das leituras evitaria a necessidade de uma blindagem. Como se espe-rava, este não foi o caso, pelo que decidimos então arranjar uma caixa escura para montar o circuito electrónico.Isto representava uma outra série de proble-mas relacionados com a montagem mecânica do sistema, pelo que tentámos outro método que consiste em usar um sensor infravermelho (IV) e um disco de papel preto e branco. Este sistema parecia mais prometedor uma vez que apensa precisava de um único componente electrónico, o que significa menos espaço para erros mecânicos.Testámos tudo e conseguimos pôr o circuito a funcionar. O próximo passo era um pouco mais complicado, como conseguir que o vento fizesse rodar o nosso disco. Como o nosso objectivo era construir uma estação meteorológica leve, não poderíamos usar o seu peso para estabilizar o sistema de leitura da velocidade do vento, pelo que um anemômetro poderia girar sem ter um ponto fixo como referência.Assim, uma vez mais, para garantir que a monta-gem pode ser facilmente reproduzida em qualquer outro lugar por outros estudantes, decidimos ten-tar usar papel tipo cartolina. Fizemos uma sim-ples lâmina do tipo turbina com papel e fita (Fi- gura 1). Montámos tudo na horizontal de modo que girasse independentemente da direção do vento. De modo a manter os balões estáveis, agrupámos os balões nos quatro cantos, espe-rando que a estação meteorológica não girasse sobre ela própria.
Sopro do ventoA nossa maquete de papel mostrou que o sis-tema poderia funcionar. De qualquer modo, temos o sensor IV e disco de papel a funcionar o que nos satisfaz bastante. Tínhamos agora o tempo contra nós para testar o conceito, apenas tínhamos o sensor de temperatura/humidade, o sensor IV e a câmara.Primeiro testámos o sensor de temperatura/humidade e a câmara dentro de casa. Passe-ámos à volta dos edifícios da Universidade, enchendo os vários balões e ficámos muito con-
Figura 2. Aparentemente, cerca de 12 balões são suficientes para levantar a estação meteorológica móvel com Arduino, em vez dos 25 calculados inicialmente.
Figura 1. Modelo de turbina feita com papel e fita para usar no anemómetro. Esperamos!
![Page 72: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/72.jpg)
• Curso
72 | Novembro 2013 | www.elektor-magazine.pt
Os balões começaram a girar descontroladamente e a ficarem emaranhados. E não era só isso, o vento era tão forte que os balões e estação meteo- rológica quase que foi puxada horizontalmente, quase ao ponto de quebrar a corda.Foi só aqui que nos apercebemos do óbvio. O pro-jecto do anemômetro não iria funcionar porque os balões nunca estariam na vertical se ficassem emaranhados. Na melhor das hipóteses ficaria com uma pequena inclinação. Talvez tenha sido por causa do projecto tradicional dos balões meteo- rológicos flutuantes que não considerámos isto, mas com uma corda mudamos completamente toda a dinâmica.Derrotados com este projecto, tentámos várias outras variantes, uma das quais passou por mon-tar a turbina na vertical. O problema estava em conseguir alinhar o sistema com o vento pelo que tentámos adicionar uma cauda semelhante à dos cataventos. Isso simplesmente alterou a estabilidade do sistema em termos de peso tor-nando-o simplesmente imprevisível, uma vez que começava a oscilava ao vento.
Turbina bidirecionalFinalmente, decidimos desenhar e imprimir a 3D uma turbina que fosse capaz de girar em ambas as direções. Isto foi alcançado ao torcer a forma das lâminas ao longo do seu eixo de rotação. Como a escola com que estávamos a coope-rar possuía uma impressora 3D, podíamos pelo menos imprimir a turbina a um custo razoável. Seria um compromisso, mas não conseguíamos pensar em nada melhor num tempo razoável (e o tempo estava a pressionar-nos).A pessoa responsável pela mecânica (que sou eu, David) não tinha muita experiência com impres-sões a 3D – na verdade, esta seria a primeira vez. Depois de algumas tentativas, consegui imprimir um protótipo muito básico mas funcional.Testámos novamente o nosso sistema de medi-ção da velocidade do vento e ficámos contentes ao descobrir que o anemômetro funcionava em quase todos os ângulos. Nesta altura, decidimos ainda cortar a laser uma moldura MDF (contra-placado) de modo que o sistema pudesse ser montado correctamente. Isto ajuda a que os sensores, especialmente o sensor IV, funcio-nem bem. (Em termos de custos, é relativa-mente barato para nós usar o dispositivo de corte a laser comum para produzir kits leves. Uma vez mais, um compromisso, mas ainda assim acessível.)
tentes quando nos apercebemos que não preci-sávamos de tantos balões (Figura 2). Fizemos a nossa primeira festa enquanto carregávamos os resultados num cartão SD. Agora era altura de testar o anemômetro improvisado.Escolhemos o porto em Malmö, Suécia, que é bastante ventoso esperando que o anemómetro fornecesse bons resultados. Fomos então com os nossos balões para o porto. Assim que abrimos as portas da carrinha os balões foram imedia-tamente puxados para fora esticando a corda.
Figura 3. Inicialmente ficámos impressionados com o papagaio Rokkaku.
Figura 4. Diagrama de ligações para os alunos do secundário trabalharem ao nível das ligações de fios.
![Page 73: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/73.jpg)
Curso Arduíno
www.elektor-magazine.pt | Novembro 2013 | 73
ímos uma maquete com folhas de plástico e paus de bambu, que conseguimos pôr a voar (Figu- ra 3). Ficámos muito contentes com o resultado, sendo, ainda por cima, o primeiro papagaio que qualquer um de nós já tinha construído.Preparámo-nos para realizar um teste, quando foi então decidido que todos esses elementos seriam um pouco imprevisíveis para os nossos objectivos. Precisávamos de algo um pouco mais à prova de falhas e por isso comprometemos uma vez mais ao decidir pendurar a estação meteo-rológica móvel numa longa vara com um gan-cho curvo. Este facto acabou por ser uma boa e interessante decisão, porque me pareceu ser um pouco mais interactivo. Os estudantes podiam direcionar a estação meteorológica para as árvo-res para ver se vegetação afecta as leituras, ou passa-lo sobre uma ponte directamente acima do nível da água.Já satisfeitos, voltámos ao trabalho com a elec-trónica. Adicionámos o sensor de som que fun-cionou perfeitamente. O sensor de CO2 foi outra questão. Enquanto funcionou, houve algumas complicações. Precisa de algum tempo para aque-cer e exige bastante trabalho ao nível do código fonte, e devido a isso torna-se difícil de explicar aos participantes menos experientes o funciona-mento do sensor. A Figura 4 dá uma ideia de como tudo se liga ao Arduino.Embora não estejamos 100% satisfeitos com a forma como a experiência acabou por correr, esta-mos bastante satisfeitos com a curva de aprendi-zagem. Errámos e falhámos muitas vezes, mas, eventualmente, chegámos onde queríamos. Por vezes, podemos ter sucesso nos fracassos.
A nossa felicidade foi de curta duração, terminando assim que fomos testar novamente o sistema na rua (sem os balões, apenas ao ar livre). De alguma forma, os sensores IV estavam a receber muita interferência. A única solução que encontrámos foi pintar com tinta preta o invólucro de plástico. Eventualmente, teremos que imprimir a caixa utilizando apenas plástico preto uma vez que outras cores permitem a entrada de interferências. O sensor IV mostrou ser tão temperamental como a LDR. Mover o sensor poucos milímetros para mais perto ou mais longe do disco impede que o sensor realize a leitura de valores correctamente. Na verdade, parecia que o sensor IV que estáva-mos a utilizar tinha uma pequena faixa de tole-rância para funcionar correctamente, mas final-mente conseguimos fazer com que funcionasse.
Adeus balõesDescobrimos que as impressoras 3D, embora sendo excelente para realizar protótipos, não são necessariamente os sistemas mais preci-sos (talvez seja simplesmente uma questão de experiência). Pequenos pontos de fricção, onde a impressão não foi tão precisa significava que agora precisamos de mais vento, aumentando assim o limite de velocidade do vento. Outro compromisso, mas que mais uma vez decidimos enveredar pelo mesmo.Pensávamos que estávamos próximos da linha de chegada, mas depois lembramo-nos da ques-tão dos balões. Foi assim que surgiu a ideia de um papagaio surgiu e achámos que seria melhor testar a ideia. Assim, começámos a pesquisar papagaios.A nossa primeira incursão no mundo dos papa-gaios um papagaio em forma de caixa. Alguém mencionou uma anedota sobre um papagaio em forma de caixa capaz de gerar força suficiente para levantar um ser humano, pelo que decidimos que seria o nosso primeiro modelo. Depois de construir um papagaio pouco aprimorado usando pinos e sacos do lixo, conseguimos fazê-lo voar... pelo menos, durante cerca de dez segundos antes de cair estatelado no chão. Adicionar asas como estabilizadores ajudou, mas a área onde está-vamos tinha ventos imprevisíveis e o papagaio voltou a cair – horas de trabalho reduzidas a escombros em segundos.Eventualmente, acabámos por nos deparar com um projecto de papagaio com o nome de Rokkaku – um papagaio de seis lados originário do Japão, que se dizia ser o mais estável ao vento. Constru-
Figura 5. Montagem final da estação meteorológica. Os níveis de temperatura, humidade, altitude e CO2 são medidos, processados pelo Arduino e armazenados num cartão SD. O sistema tira ainda fotos de cima. Repare na impressão 3D da turbina incorporada na placa de circuito impresso.
![Page 74: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/74.jpg)
• Curso
74 | Novembro 2013 | www.elektor-magazine.pt
foram capturados a um ritmo constante, junta-mente com uma imagem do local visto de cima. Os participantes retornaram depois ao laboratório para usar a aplicação de software designada por Processing, mapearam as informações meteoro-lógicas com as imagens e criaram uma pequena apresentação para os outros grupos onde expli-caram o que aprenderam sobre os diferentes locais. O sketch desenvolvido
em Processing para este projecto está também disponível na Internet [1].
Lição aprendidaEnquanto escrevíamos este artigo efectuá-mos várias experiências com crianças durante três dias. Estas serão realizadas num total de 15 vezes ao longo das próximas três semanas, onde cerca de 150 crianças vão experimentar a estação meteorológica.Uma coisa que reparámos é que existem dema-siados cabos no projecto. Para uma continuação bem-sucedida deste projecto ou mesmo para a expansão para mais locais, o actual projecto pre-cisa de ter os componentes soldados numa placa. Além disso, a câmara que usámos para tirar as fotos é tão fraca quanto se poderia esperar pelo preço que pagámos. Tivemos que voltar a sol-dar os fios que ligavam aos botões várias vezes.
História ilustradaO conjunto dos desenhos tecnológicos apresenta-dos aos estudantes para ajudar na montagem da Estação meteorológica móvel Arduino estão dispo-níveis gratuitamente no site da Elektor na Internet [1]. Um conjunto de desenhos ilustra a ligação da parte electrónica externa à placa principal do Arduino (BalloonExperiment-xx.png), os outros, a montagem da unidade completa, incluindo o mastro onde a mesma se encontra pendurada (MDF_WeatherStation_Instructions-xx.png).
(130043)
[1] Sketch software Processing para Arduino (ficheiro .zip); esquemas eléctricos e de montagem (ficheiro .zip): www.elektor.com.pt/130043
A Estação meteorológica móvel completa pode ser visualizada na Figura 5. Mais desenhos com a parte electrónica estão disponíveis gratuita-mente para download na Internet [1].
TesteTestámos a estação meteorológica pendurada em balões, bem como com um papagaio. Ambas as tentativas de obter resultados significativos não resultaram bem. Por isso, decidiu-se pendurar a estação numa longa vara com uma extensão (Figura 6).A primeira vez que esta estação meteorológica foi posta em prática foi no campo tecnológico “Etopia Kids” em Zaragoza (Espanha), que teve lugar em Junho e Julho de 2013. Durante este evento, as crianças foram expostas a diferentes experiências tecnológicas interactivas durante um período de 5 dias. Aprenderam a contar em binário, como programar placas Arduino, colo-car robôs a mexerem-se, e como ler os dados ambientais e apresentá-los num display.As crianças primeiro montaram a estação e depois foram fazer uma caminhada para cap-turar dados em locais diferentes. Temperatura, humidade, nível sonoro e velocidade do vento
Grupo de trabalho ArduinoO grupo de trabalho Arduino (Suécia) é uma equipa for-mada recentemente – cada um com a sua especializa-ção numa área diferente, algumas das quais se podem sobrepor um pouco. Nem todos estiveram directamente envolvidos no processo, mas quase todos puderam con-tribuir com algum conselho ou dica para os projectistas mais empenhados neste projecto, Tien e Clara.
Figura 6. Depois de algumas tentativas frustradas com balões e papagaios, foi decidido pendurar a estação meteorológica Arduino num mastro comprido. Aqui fica o que os professores tinham em mente… e o exemplo de como um dos alunos o contruiu. As partes da turbina foram produzidas em diferentes cores.
![Page 75: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/75.jpg)
![Page 76: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/76.jpg)
1
2
1
3
2
4
3
4
•Loja ELEKTOR
76 | Novembro 2013 | www.elektor-magazine.pt
Com Ajuda da ArduinoDominar os Microcontroladores
Acessíveis e fáceis de usar, a programação de mi-crocontroladores com base nas placas Arduino está a tornar-se cada vez mais popular entre profissionais, estudantes e entusiastas. No livro “Mastering Micro-controllers”, o nosso colega dos laboratórios Elektor, Clemens Valens, guia-nos através das técnicas bá-sicas de programação para qualquer microcon-trolador; entradas e saídas (analógicas e digitais), interrupções, barramentos de comunicação (RS-232, SPI, I²C, 1-wire, SMBus, etc.), temporizadores e mui-to mais. Não interessa se começámos agora a pro-gramar microcontroladores ou a usar placas Arduino pela primeira vez; este livro fornece-nos uma sólida base sobre a qual podemos progredir e continuar a desenvolver as nossas experiências, ao mesmo tem-po oferecendo desafios à altura de qualquer progra-mador veterano. Mesmo quando já chegámos ao fim deste guia, o livro permanece sempre como uma re-ferência para resolvermos dúvidas de programação de distintas complexidades.348 páginas • ISBN 978-1-907920-23-3£34.95 • € 39.95 • US $56.40
Aprender a voar com EagleEAGLE V6 Getting Started Guide
Este é um livro orientado para qualquer pessoa que procura uma introdução às capacidades do softwa-re EAGLE PCB da CadSoft. O livro dá-nos uma visão rápida dos principais módulo do EAGLE: editor de es-quemáticos; editor de layout e autorouter num úni-co interface. Através desta obra poderemos aplicar os nossos conhecimentos de comandos EAGLE para concretizar pequenos projectos e aprender sobre alguns dos conceitos mais avançados, assim como entender as capacidades do EAGLE e perceber todos os estágios até à produção de placas de circuito im-presso. Depois de ler este livro e de praticar com os exemplos, completando os projectos, qualquer pes-soa se poderá sentir confiante para enfrentar pro-jectos mais sérios.208 pages • ISBN 978-1-907920-20-2£29.50 • € 34.50 • US $47.60
O luxo da precisão ao alcance de todosMedidor LCR 500 ppm
A notável precisão deste dispositivo e a sua surpre-endente facilidade de utilização são o resultado de um desenho cuidado. Trabalha tão bem através deste painel simplificado que quase nos esquecemos das
subtilezas das técnicas de medição empregues. Uma oportunidade de sonho para os nossos leitores que têm a paixão da medição. Para quem se maravilha com as modernas técnicas hoje em dia ao nosso al-cance e para poder sentir a mais pequena fracção de um volt, esta é uma ferramenta a não perder!Conjunto: placa principal e placa LCD, montados e testadosArt.# 110758-93Ver www.elektor.com.pt/lcrmeter
Mostrador, teclas, relógio em tempo real e maisPlaca de Extensão Elektor Linux
Esta placa de extensão foi desenvolvida para impul-sionar ainda mais a nossa série de artigos Embed-ded Linux e a placa GNUblin correspondente. Inclui um mostrador, teclas, um relógio em tempo real e 16 GPIOs. Os especialistas em Linux vão apreciar bas-tante todas as possibilidades. Esta placa de exten-são Linux inclui tudo o que é necessário para obter a interface de utilizador numa enorme variedade de projectos!Módulo, Placa SMD montada e testada, incl. LCD1, X1, K1-K4, BZ1 e BT1Art.# 120596-91 £31.10 • € 34.95 • US $50.20
Esteja atento às nossa promoções semanais de Descontos + Portes GRÁTIS
para os Membros Elektor! Visite a nossa a loja online em: www.elektor.com.pt/loja
![Page 77: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/77.jpg)
6
8
7
7
5
8
5
6
Livros, CD-ROMs, DVDs, Kits & Módulos
www.elektor-magazine.pt | Novembro 2013 | 77
Dominar FPGA!Placa de desenvolvimento FPGA
Os dispositivos FPGA estão inquestionavelmente en-tre os mais versáteis mas mais complexos compo-nentes na electrónica moderna. Um FPGA contém um labirinto de portas e outros elementos de circuito que podem ser usados para criarmos o nosso próprio circuito digital, tudo integrado num chip. Esta pla-ca de desenvolvimento FPGA (desenhada nos Elektor Labs) mostra-nos como é fácil para qualquer entu-siasta da electrónica, seja profissional ou não, tra-balhar com estes dispositivos de lógica programável.Módulo, montado e testado Art.# 120099-91 Ver www.elektor.com.pt/fpgaboard
Programação de aplicações Android passo-a-passo
Android AppsEste livro é uma introdução à programação de aplicações para dispositivos Android. O funcionamento do sistema Android é explicado passo-a-passo, com o objectivo de mostrar como podemos programar as nossas próprias aplicações. Começa com uma introdução ao sistema operativo Android e explica como criar um sistema de desenvolvimento de aplicações compatíveis. Continua com os fundamentos da linguagem de programação e
permite aprender a utilizar periféricos integrados, como o GPS e outros sensores. Uma vez realizados todos os exercícios propostos, conseguimos criar simples apli-cações web e comunicar com bases de dados. Além de explicar como escrever aplicações em linguagem de pro-gramação Java, este livro também ensina a utilizar Ja-vascripts ou scripts PHP para programar as nossas apps.Quando se trata de personalizar o seu smartpho-ne não nos devemos sentir limitados às aplicações existentes. Podemos criar as nossas próprias aplica-ções, porque a programação de dispositivos Android é mais simples do que se pensa!244 páginas • ISBN 978-1-907920-15-8 £34.95 • € 39.95 • US $56.40
80 histórias sobre a electrónica de outroraRetronics
Foi por mero acaso que uma história de uma página sobre um velhinho testador de válvulas da Heathkit, publicado em Dezembro de 2004 na revista Elektor nos levou a redescobrir dezenas de artigos “retrónicos” que foram sendo recuperados e têm atraído um interesse fora do comum com muitas mensagens de leitores e contribuições para essa série a chegarem à redacção da revista. Este livro é uma compilação de cerca de 80 artigos da secção Retronics, publicados entre 2004 e 2012. Histórias que permitem redescobrir equipa-
mentos de teste antigos, computadores pré-históricos, componentes há muito esquecidos e alguns dos pro-jectos de maior sucesso da Elektor, todos revisitados com o objectivo de deixar qualquer técnico de electró-nica a sorrir, ao mesmo tempo que nos conquista um sentimento de nostalgia enquanto nos recostamos a admirar estas jóias de outras eras, as quais são sufi-cientes para deixar muita gente com vontade de re-cuperar muitas destas glórias do passado.193 páginas • ISBN 978-1-907920-18-9 £24.80 • € 29.95 • US $40.00
Sem fios e sem teclasAndroid Elektorcardiograma
Educativo, fascinante e potencialmente útil para qual-quer pessoa, com este conjunto podemos realizar os nossos próprios electrocardiogramas no nosso smar-tphone ou tablet Android! O projecto combina um pequeno interface PIC para controlar um estágio de entrada analógico e muito software. O nosso interface ECG está disponível num formato de módulo pronto a usar ao qual basta acrescentar quatro eléctrodos e a aplicação para Android que corre num smartphone ou tablet. Não existe ligação física entre este terminal e o interface uma vez que se usa comunicação Bluetooth! Placa já montada • Art.# 120107-91Ver www.elektor.com.pt/elektorcardioscope
![Page 78: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/78.jpg)
11
12
10
10
11
12
9
9
•Loja ELEKTOR
78 | Novembro 2013 | www.elektor-magazine.pt
10 licções cativantesPIC Microcontroller Programming
Este livro mostra como programar microcontroladores PIC utilizando a linguagem de programação JAL, gra-tuita e fácil de utilizar. Esta linguagem, extremamente potente, goza de grande popularidade no mundo do modelismo e integra um ambiente de desenvolvimento integrado (IDE), também ele gratuito. Depois de termi-nar todos os exercícios vamos ser capazes de codificar os nossos próprios programas e interpretar software de outras pessoas. Aprendemos ainda os comandos de JAL, fazendo piscar um LED, desenhando um interrup-tor, medindo a posição de um potenciómetro, a gerar sons ou a controlar a luminosidade de um LED. E, por isso, também vamos ser capazes de saber detectar e corrigir erros nos nossos programas. 284 páginas • ISBN 978-1-907920-17-2£29.50 • € 34.50 • US $47.60
Um livro completo sobre RFIDRFID - MIFARE and Contactless Cards in Application
MIFARE é a tecnologia RFID mais usada em todo o mundo e este livro fornece uma introdução prática e completa a estas aplicações. Entre outras coisas, os primeiros capítulos descrevem os componentes físicos fundamentais da tecnologia, os padrões relevantes, o desenho das antenas RFID, considerações de segu-rança e encriptação. É também descrito em detalhe como desenhar o hardware e o software que são ne-cessários a um leitor RFID, incluindo o firmware e todo o software associado de suporte a programação usando qualquer linguagem .NET. Para o desenvolvi-
mento de aplicações, a obra recorre a exemplos que usam o programa “Smart Card Magic.NET” em PC, um ambiente simples que suporta o envio de comandos para um cartão através um simples clique de rato, assim como a possibilidade de se criarem scripts C#. Em alternativa é possível seguir alguns dos muitos exemplos fornecidos usando o Visual Studio 2010 Ex-press Edition. Finalmente, a obra descreve as API mais comuns para leitores de smart cards, focando-se na programação destes cartões usando leitores PC/SC standard e as linguagens C/C++, Java e C#.484 páginas • ISBN 978-1-907920-14-1£44.90 • €49.90 • US $72.50
Dominar a tecnologia SMDLabWorX 2 - Mastering Surface Mount Technology
Este livro é um curso intensivo sobre as técnicas, di-cas e todo o conhecimento necessário para aplicar a tecnologia de montagem em superfície (SMD) em qualquer processo de trabalho. Mesmo para projec-tos de electrónica com restrições de custos, é pos-sível planear um projecto avançado em SMD. Para além de explicar a metodologia e o equipamento, a obra dá atenção aos componentes, tecnologias e mé-todos de soldadura. Muitas dicas práticas e truques sobre SMD tornam este livro numa obra fundamen-tal e ao alcance de todos. Está também disponível
um completo kit de partes com componentes SMD, placas de circuito e esquemáticos para quem quiser replicar os três projectos descritos neste livro.282 páginas • ISBN 978-1-907920-12-7 £29.50 • € 34.50 • US $47.60
Leitura ideal para estudantes e técnicos de electrónica
Processamento Digital de Sinais (DSP) usando Microprocessadores
Este livro é um guia prático e acessível sobre aplica-ções DSP. Apresentando um mínimo de matemática e suportado por exemplos funcionais e construtivos, com programas para microcontroladores testados e aprovados, o autor Dogan Ibrahim consegue cati-var os leitores explicando tudo o que é preciso para desenhar e implementar algoritmos DSP usando os populares microcontroladores PIC. Um livro perfeito para estudantes que estão à procura de bases te-óricas para criar projectos de final de curso. Para pós-graduações, esta obra fornece exemplos sobre projectos DSP avançados e, efectivamente, qualquer pessoa que trabalhe ou queira saber mais sobre sis-temas baseados em DSP deverá encontrar aqui boas razões para ter o livro sempre à mão!428 páginas • ISBN 978-1-907920-21-9£44.90 • € 49.90 • US $72.50
Para mais informações e Encomendas: www.elektor.com.pt/loja Qualquer dúvida ou questão relativamente a encomendas enviar um email para: [email protected] as encomendas são processadas porElektor International Media bvPO Box 11, NL-6114 ZG Susteren, the Netherlands
The Elektor House, Allee 1, Limbricht, the NetherlandsTel +31 46 4389444 | Fax +31 46 4370161
![Page 79: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/79.jpg)
OsciloscópiosA NOVA SÉRIE HMO 3000300 MHz | 400 MHz | 500 MHz
ROHDE & SCHWARZ Portugal | Tel. 21 415 57 00 | [email protected]
A nova série de HMO3000 da HAMEG Instruments oferece um excelente desempenho a um preço atractivo.
A funcionalidade MSO permite analisar todos os canais analógi-cos, mais um adicional de 16 canais digitais.
Os seis modelos diferentes estão disponíveis numa largura de banda de 300 MHz a 500 MHz com 2 ou 4 canais.
NOVO!! SÉRIE HMO3000
Largura de banda até 500 MHZ
a qualquer horaTempo real 4 GSa /s, Conversor A/D Flash Baixo Ruído
Memória 8 MPts, Zoom até 200,000:1
MSO: Opção Sinal Misto HO3508 [HO3516]com Canais Lógicos 8 [16]
Sensibilidade Vertical 1 mV/div., Controlo Offset ±0.2…±20 V
![Page 80: Elektor_342_2013](https://reader036.fdocuments.net/reader036/viewer/2022082211/55cf9926550346d0339be262/html5/thumbnails/80.jpg)
O nome e logo Microchip e PIC são marcas registadas da Microchip Technology Incorporated nos E.U.A. e outros países. mTouch, PICDEM e PICkit 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. ©2013 Microchip Technology Inc. Todos os Direitos Reservados. DS30010039A. ME1072Por08.13
Para informação adicional, visite o site da Microchip emwww.microchip.com/get/eupic16f753
Melhore o desempenho e a efi ciência dos seus projectos, ao mesmo tempo reduzindo os custos, com as capacidades analógicas expandidas do microcontrolador PIC16F753. Com o seu Op Amp integrado, compensação de declive e uma gama completa de periféricos independentes do núcleo, o PIC16F753 garante conversão efi ciente da alimentação e oferece uma plataforma versátil para se acrescentar sensores inteligentes e gestão de corrente em projectos de sistemas embebidos.
O microcontrolador PIC16F753 a 8-bit da Microchip oferece todas as funcionalidades do PIC12F752 e acrescenta um Op Amp com 3 MHz de produto ganho-largura de banda, para além de compensação de declive para fontes de alimentação comutadas.
Formas de onda complementares não-sobrepostas para alimentar entradas de periféricos como comparadores e PWM são garantidas pelo gerador de saída complementar integrado no chip, com controlo de banda morta, controlo de fase e controlo de intervalos, assim como desligar e reinicialização automáticas. Os 8 canais de ADC a 10-bit integrados no chip podem ser usados para acrescentar capacidades de sensores, incluindo interfaces tácteis de tipo capacitivo, enquanto duas saídas de 50 mA suportam a alimentação directa de FETs. Igualmente integrados estão comparadores de alta performance, um DAC a 9-bit e um módulo PWM de captura comparação.
Para projectos de tensão mais elevada sensíveis aos custos, o PIC16HV753 integra um regulador série (shunt) para operação desde 2V até um nível máximo de tensão defi nido pelo utilizador, com uma corrente em modo operacional inferior a 2 mA.
O seu projecto precisa de inteligência analógica num microcontrolador 8-bit? O sistema PIC16F753 suporta sensores inteligentes mais conversão e gestão efi ciente de corrente
PICDEM™ Lab Development Kit(DM163045)
COMECE JÁ A TRABALHAR NOS SEUS PROJECTOS■ Teste o projecto de referência grátis para uma lanterna baseada em LED■ Escolha entre as seguintes ferramentas de desenvolvimento de baixo-custo: - Kit de Desenvolvimento PICDEM™ Lab - PICkit™ 3 - Placa de Demonstração PICkit Low-Pin Count