quinta-feira, dezembro 27, 2007

Rails ou Django? E agora?

Estou desenvolvendo um site e agora estou na fase de modelagem do sistema.

Logo começarei a programar. Mas estou com uma dúvida: Django/Python ou Rails/Ruby?

Já li dezenas de posts comparando os dois frameworks e cada um tenta mostrar que o seu é o melhor.

Dependendo de quem escreve temos um resultado. Se é um fã do Rails, no fim da comparação, Rails se sai melhor. De modo semelhante, a comparação feita por um fã do Django sempre termina recomendando seu uso em detrimento do outro framework.

Acredito que as comparações são feitas da melhor maneira possível, sem a intenção de prejudicar a outra linguagem / framework analisado.

O que acontece é que quem analisa não conhece tão profundamente as outras linguagens / frameworks quanto conhece o seu. Daí, uma hora o Rails se sai melhor e na outra é o Python o vitorioso.

Seria interessante que alguém especificasse um projeto de médio ou grande porte e que os melhores de cada linguagem / framework fizesse a sua implementação. Aí sim, poderiamos ter uma comparação mais justa.

Gosto das duas linguagens (Python e Ruby), a documentação disponível para ambas é farta e muito boa, as comunidades são muito atenciosas e procuram de fato ajudar quem está iniciando ou tropeçando em algum problema.

Estou pensando até em desenvolver o meu projeto com os dois frameworks e ir comparando, de acordo com o progresso do trabalho, com qual dos dois está sendo mais legal trabalhar. Aí, a partir de um certo ponto, eu prosseguiria só com um.

O chato é que isso vai tomar um tempo muito grande.

É um mar de dúvidas. A única certeza: Quero que seja um destes dois frameworks. Alguém teria como me ajudar a decidir?

sábado, novembro 24, 2007

Assistindo às Vídeo-Aulas da DevMedia no Linux

A DevMedia apresenta uma série de vídeos para os leitores das suas publicações Java Magazine, WebMobile, SQL Magazine, Clube Delphi e .Net Magazine.

Os vídeos, em sua grande maioria, são muito bons. É um excelente material que complementa o que é publicado nas revistas.

Na primeira vez que baixei um dos inúmeros vídeos do site, tive uma amarga surpresa: a necessidade de instalar o CODEC tscc da TechSmith. Este CODEC é proprietário e só está disponível para a plataforma Windows.

- "Que droga! Sou usuário de Linux. Esse pessoal acha que todos os seus leitores usam Windows? Que falta de respeito!" - foi a primeira coisa em que pensei.

Procurei no site da DevMedia um CODEC para Linux. Não há. Li o FAQ das vídeo-aulas e lá falava para que fosse feita a instalação do CODEC ffdshow em caso de problemas com o tscc (tudo isso para o Windows).

Fui no link e para minha grata supresa descobri que o ffdshow utiliza a biblioteca libavcodec do projeto FFMpeg. O FFMpeg faz parte do projeto de descompressão e pós-processamento de vídeo do mplayer, que roda no Linux.

Fiz uma busca no Google e descobri que o FFMpeg realmente funciona no Linux. Instalei-o e consegui assistir às vídeo-aulas da DevMedia sem problemas.

No Ubuntu, podes digitar na linha de comando:

sudo apt-get install ffmpeg

e o problema está resolvido.

Serão instalados, além das bibliotecas, três programas: ffmpeg, ffplay e ffserver.

Para assistir aos vídeos, há duas maneiras.
  • execute, na linha de comando, a instrução abaixo toda vez que quiser assistir a um vídeo com o code tscc:
ffplay nome_do_arquivo.avi
  • Pode-se fazer uma associação do tipo do arquivo (.avi) com o player ffplay. Assim, um clique duplo no arquivo irá fazer com que ele seja executado automaticamente. A seguir vou mostrar como fazer esta associação no Gnome. Para outros ambientes (KDE, por exemplo, o processo é similar).
  1. Clique com o botão direito sobre um arquivo .avi. e clique em Propriedades, conforme a figura 1.

Figura 1 - Visualizando as propriedades do arquivo

Clique na aba Abrir Com da janela de propriedades. Veja a figura 2.

Figura 2 - Aba Abrir Com onde dizemos qual programa ira abrir o arquivo

Se o ffplay não constar na lista, clique no botão adicionar e na caixa de edição de aplicação personalizada digite ffplay e clique no botão adicionar. Veja a figura 3.

Figura 3 - Selecionando ffplay como uma opção de aplicação

Selecione o aplicativo ffplay e clique no botão Fechar. Veja a figura 4.

Figura 4 - ffplay escolhido como aplicativo padrão para os arquivos .avi

A partir deste momento, todos os arquivos .avi serão exibidos com o ffplay, bastando que você dê um clique duplo sobre o nome do arquivo.

A figura 5 mostra um dos cursos da DevMedia executando no meu Linux.

Figura 5 - Vídeo-aula da DevMedia executando no Linux

Agora você pode assistir às vídeo-aulas da DevMedia sem problemas. Bons estudos a todos.

quinta-feira, novembro 01, 2007

Saiba quanto gastou e quanto ganhou com as suas ações

Uma das coisas mais chatas que existe neste mundo de ações é conseguir determinar quanto se gastou e ganhou ou perdeu com a compra das ações.

Você já parou para pensar que se for comprar, por exemplo, R$ 1.000,00 em ações, o valor que será descontado da sua conta será maior que R$ 1.000,00? E você sabe o quanto a mais será cobrado?

E quando você vende suas ações, você sabe se conseguiu pagar os seus custos? E o imposto de renda, então? Tenho que pagar alguma coisa para o Leão? Ou não?

Para complicar ainda mais, as taxas de corretagem cobradas e os emolumentos são variáveis, ou seja, dependem dos valores envolvidos na compra e venda das ações e se a operação é de day trade e da corretora que se utiliza.

Ufa... cansei só de escrever sobre isso.

Eu não gosto de fazer contas e muito menos de perder dinheiro. Assim, modifiquei a planilha CustoEmAcoes.xls do post Qual corretora cobra a menor taxa? e acrescentei uma nova planilha de cálculo.

Esta planilha faz basicamente o seguinte:

Você informa a quantidade de ações compradas, o valor de compra e de venda da mesma e se a operação é de day trade (os campos em verde).

Ela irá te informar o seguinte:
  • quanto dinheiro sairá da sua conta para poder efetuar a compra de x reais em ações.
  • quanto será de corretagem e emolumentos.
  • se e quanto será pago de imposto de renda para o governo.
  • qual o valor de importo de renda deve ser informado na DARF.
  • qual será o lucro líquido, ou seja, o seu ganho verdadeiro após todos os descontos cabíveis.

Inicialmente a planilha exibe os valores para os bancos Bradesco, Real (operando sem e com o uso do home broker) e Itaú.

Tentei deixá-la o mais correta possível, mas eu não garanto a exatidão da mesma. Se você encontrar algum problema, por favor me avise que eu farei a correção.

A planilha pode ser obtida aqui.

sexta-feira, outubro 26, 2007

Qual corretora cobra a menor taxa?

Faz algum tempo que estou querendo investir em ações. Comecei estudando o básico sobre o assunto.

Um ponto que me preocupava muito era: qual corretora escolher? O custo, para mim, é um fator muito importante. Cada centavo economizado com taxas pode ser investido em meu benefício.

O maior problema é comparar os custos entre as instituições, porque dependendo do valor a ser investido as taxas mudam.

Com as informações disponibilizadas nos sites de alguns bancos e algumas corretoras, montei uma planilha onde eu posso simular quais taxas eu pagaria para cada valor investido.

Isso me permite testar diversos valores de modo rápido e obter um resultado claro. O banco Bradesco foi o que apresentou as melhores taxas.

Evidentemente, os custos não devem ser o único fator de decisão sobre qual corretora utilizar, mas este é um fator importante especialmente para micro investidores (por exemplo, eu).


Tu podes obter a planilha aqui.

segunda-feira, outubro 22, 2007

GMouseTool volta a funcionar no Ubuntu

Neste fim de semana foi liberada uma nova versão do Ubuntu, a 7.10. Após a atualização para esta versão, o GMouseTool simplesmente parou de funcionar.

Fiquei sabendo disso devido a uma notificação do SourceForge que um bug havia sido reportado (bug #1817206).

Arregacei as mangas e fui verificar o que estava causando o problema. Felizmente descobri bem depresa a cáca que eu tinha feito. Hehehe, um erro ridículo.

Fiz as correções e já liberei uma nova versão do aplicativo: 1.1.3.

Obrigado usuário anônimo que me informou do problema.

quarta-feira, outubro 17, 2007

Cura Milagrosa

Nas horas vagas, além de desenvolvedor também realizo curas espirituais. Prova disso é o vídeo gravado na quinta-feira, 11 de outubro, quando eu fiz um homem de cadeira de rodas levantar-se.


quinta-feira, setembro 27, 2007

Não clique nunca mais!

Há vários anos eu sofro com tendinite. São dores horríveis, que às vezes estão muito fortes e outras vezes nem tanto.

Além do problema para digitar, também sofro para clicar o botão do mouse. Se eu clicar duas ou três vezes o botão do mouse, já era... são pelo menos uns 20 dias de molho.

Apesar disso, até hoje trabalho com desenvolvimento. Como é possível?

Eu uso vários métodos para reduzir os impactos da minha atividade no meu problema de tendinite.

Entre outras coisas, uso um programa chamado MouseTool e posso dizer, com 100% de certeza, que se hoje estou trabalhando com desenvolvimento de software, é graças, principalmente, a ele.

Este programa permite que eu use o mouse sem precisar clicar. Isso mesmo, ele clica com o botão direito, esquerdo, dá clique duplo e arrasta pastas e arquivos para mim, sem que eu precise apertar seus botões.

O único problema com ele é que ele foi feito para Windows. Eu, como usuário Linux, tinha que me contentar com uma versão muito pobre do MouseTool para o KDE.

Resolvi então fazer a minha própria versão do MouseTool para Gnome. Quero deixá-lo o mais próximo possível da versão original para Windows, tanto na aparência quanto no comportamento.

Hoje, eu coloquei no site do SourceForge a primeira versão do meu programa, que batizei de GMouseTool, em homenagem ao GTK+ e ao MouseTool.

Você pode obter uma cópia do projeto em http://gmousetool.sourceforge.net/.

quarta-feira, setembro 12, 2007

wxWidgets e CodeBlocks no Ububtu Feisty

Quem desenvolve com o wxWidgets sabe que ele é multi-plataforma. Assim, podemos fazer programas que rodem tanto no Linux quanto no Mac e no Windows (que desperdício de esforço).

É sempre possível desenvolvermos e compilarmos para outras plataformas a partir do Linux (isso também é verdade quando se está nos outros SOs). Mas o desejável é que possamos compilar nativamente, em especial se vamos integrar as APIs nativas de determinado sistema operacional no nosso aplicativo.

O ideal é que pudéssemos levar o nosso projeto de um sistema operacional para outro apenas copiando a pasta com seus arquivos. Isso nos pouparia o trabalho de reconfigurarmos nosso aplicativo a cada mudança de ambiente.

Atualmente existem duas IDEs que podem ser executadas no Linux, Mac e Windows: O Eclipse e o Code::Blocks.

O Eclipse é um IDE maduro e com muitos recursos. É feito em java e com a instalação do CDT nos permite utilizá-lo para desenvolvermos programas em C/C++.

O Code::Blocks é uma IDE feita com o wxWidgets e também é multi-plataforma. Não é tão maduro quanto o Eclipse, mas caminha a passos largos para superá-lo (pelo menos no que diz respeito ao C/C++).

Fica a pergunta: se podemos usar o Eclipse (que é um excelente IDE), por que usaríamos o Code::Blocks?

Simples: o Eclipse é feito em Java, come muita memória e espaço em disco. Para quem desenvolve apenas com C/C++, não compensa o custo. Além disso, com o Code::Blocks vem uma ferramenta gráfica para montagem das telas dos aplicativos.

Para quem usa o Ubuntu 7.04 (Feisty Fawn), há uma opção muito conveniente que facilita o uso do Code::Blocks como IDE no desenvolvimento. Podemos configurar os repositórios do wxWidgets e do Code::Blocks. Assim, a cada atualização dos projetos, seremos avisados pelo Ubuntu, conforme mostra a figura 1 abaixo.

Figura 1 - Sistema de notificação de atualizações do Ubuntu

Abra o prompt de comando e digite os comandos abaixo para adicionar as chaves públicas:

sudo wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add -

sudo wget -q http://lgp203.free.fr/public.key -O- | sudo apt-key add -

A seguir, abra o arquivo /etc/apt/sources.list:

sudo gedit /etc/apt/sources.list

adicione as linhas

deb http://lgp203.free.fr/ubuntu/ feisty main
deb http://apt.wxwidgets.org/ feisty-wx main

Salve o arquivo e volte para o prompt de comando. Estando novamente nele, digite

sudo apt-get update

para que o apt-get atualize a sua lista de repositórios.

Ótimo. A partir deste ponto, você pode utilizar o Synaptic para instalar o wxWidgets e o Code::Blocks.

Quase todo dia sai uma nova versão do Code::Blocks. Sempre que isso acontecer, você será avisado e poderá atualizar o seu sistema sem problemas.

A instalação do Code::Blocks no Mac e no Windows ficarão para um outro post.

quarta-feira, agosto 15, 2007

Melhorando o Flock com plugins do Firefox

Ontem eu fiz testes de performance (simples) para comparar a velocidade do Flock em relação ao Firefox. O Flock se saiu bem melhor.

Hoje eu fui no site do Flock e verifiquei que podemos usar os plugins do Firefox. entretanto, três coisas podem acontecer:
  • a instalação ocorrer sem problemas;
  • o Flock adverte que o plugin pode não funcionar corretamente pois ele foi feito para o Firefox;
  • o Flock avisa que o plugin não será instalado pois ele não é compatível com o browser.
Eu instalei alguns dos meus plugins favoritos do Firefox e vou mostrar os resultados obtidos.

DownThemAll 0.9.9.10
O Flock se recusou a instalá-lo dizendo que esta versão só funciona com os releases 0.4 a 0.8 do browser. Vou ter que esperar um outro release para fazer os testes.

AutoCopy 0.6.4, ServerSpy 0.1.2, Usage Counter 0.2.1, ShowIP 0.8.05, AdBlock Plus 0.7.5.1 O Flock advertiu que talvez ele não funcionasse, mas tudo correu perfeitamente e eles estão funcionando sem problemas.

NoScript 1.1.6.12
O Flock disse que talvez não funcionasse, porém funcionou perfeitamente. Inclusive importou sem problemas a minha lista de sites permitidos/bloqueados, que eu havia exportado do Firefox.
Este plugin é essencial para minha navegação. Se ele não tivesse funcionado, o Flock teria sido desinstalado na hora.

Tamper Data 9.8.1
Ele não funcionou direito, conforme advertência do Flock. Mas dá para o gasto. Apesar disso, vou desinstalá-lo.

O Delicious Bookmark 1.5.29
Apesar da instalação ter ocorrido bem e sem nenhuma advertência do Flock, ao reiniciar o brower eu não consegui passar da tela em que devo dizer se vou usar uma conta pré-existente ou criar uma nova. Simplesmente ele não fez nada quando cliquei nos links. A única alternativa foi desinstalá-lo.

Apesar de não ter à disposição todos os plugins que estou acostumado com o Firefox, estes que funcionaram com o Flock são o mínimo necessário para que eu navegue confortavelmente pela net.

terça-feira, agosto 14, 2007

A raposa está ficando para trás

Hoje eu encontrei por acaso um browser chamado Flock.

Apesar do nome ridículo resolvi experimentá-lo (só para ver o quanto o Firefox era melhor e mais rápido que ele).

Acessei alguns sites com o Flock e me surpreendi com a sua velocidade. Pensei que algo estava errado. Coincidência. Ou quem sabe os sites escolhidos eram muito leves.

Não me conformei com o fato dele ser mais rápido que o Firefox. Peguei uma lista de sites bem pesados e fui abrindo um a um com o Flock e com o Firefox para comparar a velocidade de ambos.

Fiquei impressionado com a velocidade do Flock. Ele abriu os sites muito mais depressa que o Firefox e o que é melhor: as páginas ficaram perfeitas.

Vou usá-lo mais um tempo antes de decidir se mudo de vez ou não. O único ponto fraco dele é que quase não existem plugins no momento. Acredito que com a sua popularização, isso vá mudar.

sábado, agosto 11, 2007

Projetando um voltímetro com o galvanômetro

No dia-a-dia dos hobbistas, técnicos e engenheiros, a medição das tensões presentes nos mais diversos circuitos é uma necessidade constante.

O equipamento para esta tarefa é o voltímetro, nosso velho conhecido. Até aí, nenhuma novidade. O que muita gente não sabe é como fazer seu próprio voltímetro.

Neste artigo quero mostrar como podemos projetar nosso próprio voltímetro com galvanômetro.

No artigo Galvanômetro - Alguém ainda sabe utilizá-lo? eu disse que a única medida que existe é a de corrente e que as outras são adaptações desta medida, obtidas com a Lei de Ohm.

- Como faremos então para medirmos voltagens com o galvanômetro?

Vou explicar a idéia que solucionará nosso problema. Depois, exemplificarei o que foi dito com alguns cálculos.

Ao fazer circular uma corrente pelo galvanômetro aparecerá uma diferença de potencial entre seus terminais devido a sua resistência interna. Este é um modo de ver.

O outro é o seguinte: Se eu ligar aos terminais do galvanômetro uma fonte de tensão, circulará pelo mesmo uma corrente que causará o deslocamento da sua agulha.

Para um galvanômetro com resistência interna Rg e escala Ig (corrente máxima que pode circular em sua bobina), temos que a tensão máxima que podemos aplicar entre seus terminais é

Equação 1

Eu disse, também naquele post, que o deslocamento angular da agulha do galvanômetro é proporcional à corrente que circula por sua bobina.

A corrente, de acordo com a velha Lei de Ohm, é proporcional a tensão. Logo, posso reescrever a afirmação acima em função da tensão: o deslocamento angular da agulha do galvanômetro é proporcional à tensão aplicada entre seus terminais.

Vou dar um exemplo prático, para clarear as ideias.

Vamos supor que o resistência interna do galvanômetro (Rg) seja de 300 ohms e que sua escala (Ig) é de 1 mA. Isso implica que a tensão máxima que posso aplicar entre seus terminais é Vg = 0,3 V.

Vou aplicar várias fontes de tensão entre os terminais do galvanômetro, uma fonte por vez, e analisar o deslocamento do ponteiro do galvanômetro e a corrente que circula na sua bobina.

Para V = 0 volt, I = 0 A e a agulha estará em repouso.
Para V = 0,15 volts, I = 0,5 mA e a agulha estará no meio do seu curso (escala).
Para V = 0,3 volts, I = 1 mA e a agulha estará totalmente deflexionada.

Podemos repetir este processo várias vezes, com valores menores ou iguais a Vg e notaremos que o deslocamento da agulha será sempre proporcional à tensão aplicada.

Isso significa que podemos usar este galvanômetro como um voltímetro para medir tensões entre 0 e 300 mV.

- Muito legal! Mas há um probleminha: a grande maioria das tensões que precisamos medir são muito maiores que 300 mV. Se tentássemos usar o galvanômetro diretamente nestes casos, ele iria queimar!

É verdade. Como podemos resolver isso? Simples. Recorreremos novamente à velha e boa Lei de Ohm.

Para tensões maiores que Vg, a corrente será maior que Ig, o que ocasionará a queima do instrumento. Nosso problema consiste em limitarmos a corrente que circula pela bobina do galvanômetro, de modo que para a máxima tensão que queiramos medir, ela não ultrapasse sua escala.

Conseguiremos limitar a corrente com o uso de um resistor em série com a bobina do galvanômetro. A figura 1 ilustra esta idéia.

Figura 1 - resistor série para limitar a corrente que circula no galvanômetro

O equivalente elétrico da figura 1 é apresentado na figura 2, onde o galvanômetro é substituído por sua resistência interna.

Figura 2

O resistor série (Rs), também chamado de resistor multiplicador, multiplica a capacidade de medição de tensão do galvanômetro e deve ter seu valor convenientemente calculado.

Da análise do circuito da figura 2, podemos escrever a equação 2

Equação 2

onde:
  • V - tensão máxima que se deseja medir.
  • Ig - corrente máxima que pode circular pelo galvanômetro.
  • Rg - resistência interna do galvanômetro
  • Rs - resistor série ou multiplicador que se deseja determinar.
Podemos reescrever a equação 2, conforme mostrado abaixo:

Equação 3 - Determinação do resistor série

Por meio da equação 3, podemos calcular um valor de Rs que nos permita medir qualquer valor de tensão.

Vamos fazer um voltímetro que meça até 10V, para exemplificar o que acabei de explicar. Estou assumindo que a resistência interna e a escala do galvanômetro são 300 ohms e 1 mA, respectivamente.

Substituindo os valores apresentados na equação 3, teremos


Em um post denominado Resitores de Precisão, eu disse que nem sempre faz-se necessário o uso de resistores com tolerâncias extremamente baixas. Neste circuito, ao contrário, é fundamental que os resistores sejam o mais precisos possível, pois os erros de medição dependerão muito da precisão do valor do resistor série.

Aconselho que a tolerância seja no máximo de 5% (o ideal é que se usasse resistores de 1%).

Outro ponto a ser notado é que, para muitas medidas, a resistência interna do galvanômetro (Rg) pode ser desprezada.

Se no exemplo anterior tivéssemos desprezado o valor de Rg, Rs seria de 10K ohms, ao invés de 9700 ohms. Isso nos daria um erro de 3%.

Agora, se fôssemos medir uma tensão máxima de 100V, com o mesmo galvanômetro, o valor de Rs seria de 99700 ohms. Se desprezássemos Rg, teríamos Rs = 100K ohms, o que nos daria um erro, neste caso, de apenas 0,3 %.

Note que quanto maior o valor de Rs, mais desprezível se torna o erro devido a não computarmos o valor de Rg nos cálculos.

Do mesmo modo que fizemos no projeto do Amperímetro com Galvanômetro, vamos montar uma configuração de circuito que nos permita medir diferentes grandezas com o mesmo equipamento.

Em outras palavras, a figura 3 abaixo ilustra o esquema de um voltímetro multi-escalas.

Figura 3 - Voltímetro multi-escalas

Outro modo de montarmos o voltímetro multi-escala apresentado na figura 3 é mostrado na figura 4. O leitor atento notará que eles são eletricamente equivalentes.

Figura 4 - Voltímetro multi-escalas - versão alternativa

Fica como exercício para os leitores a determinação das potências dos resistores utilizados nos circuitos mostrados e o cálculo dos erros nas medições pelo uso dos valores apresentados em relação aos calculados.

Apesar de não ter comentado nada no post Amperímetro com Galvanômetro, tanto naquele projeto quanto neste, os valores que podem ser medidos são contínuos, pois como falei no artigo Galvanômetro - Alguém ainda sabe utilizá-lo?, o galvanômetro é um componente polarizado.

Para a medição de sinais alternados é necessário fazer algumas adaptações nos circuitos apresentados.

Pretendo mostrar como fazer estas adaptações em publicações futuras. Antes, porém, quero escrever alguns artigos que forneçam o embasamento necessário para se entender como tais adaptações funcionam.

quarta-feira, agosto 08, 2007

Amperímetro com o Galvanômetro

Em um post anterior eu falei sobre o galvanômetro. Mostrei quais seus parâmetros e como determiná-los experimentalmente. Neste, pretendo mostrar como utilizá-lo na construção de um amperímetro.

A princípio, um galvanômetro com fundo de escala de 1 mA não tem como medir correntes maiores, pois se o mesmo for submetido a correntes maiores ele irá queimar. E agora? Como resolvemos este problema?

Simples. Utilizando a Lei de Ohm, podemos ligar um resistor de desvio em paralelo com o galvanômetro. Este resistor, conhecido como shunt (desvio, em português), atuará como um multiplicador da capacidade de corrente a ser medida.

A figura 1 ilustra a configuração do amperímetro com o resistor shunt (Rs).

Figura 1 - Resistor protegendo o galvanômetro

O que queremos? Medir uma corrente I que é N vezes maior do que a corrente máxima que o galvanômetro agüenta. Em termos matemáticos podemos escrever a equação 1.

Equação 1

Se substituirmos a representação do galvanômetro por sua resistência interna, teremos o esquema mostrado na figura 2.


Figura 2 - Circuito equivalente com resistência interna do galvanômetro

A Lei de Kirchoff das Correntes nos diz que a soma de todas as correntes que entram em um nó é igual a soma de todas as correntes que saem deste mesmo nó. Daí podemos escrever a equação 2.


Equação 2

Graficamente, temos o mostrado na figura 3.


Figura 3 - Representação gráfica da equação 2.

Substituindo a equação (1) em (2), temos:


Equação 3


e, conseqüentemente, temos a equação 4.


Equação 4

Também pela análise de circuitos, mais especificamente da Lei de Kirchoff das Tensões, sabemos que a tensão sob o resistor shunt é a mesma tensão a que está submetida a resistência interna do galvanômetro. Podemos escrever a equação 5:


Equação 5

Substituindo a equação (4) em (5), temos que


Equação 6

O que nos dá a equação 7.


Equação 7

Como interpretamos a equação 7?

Assim: Para que o galvanômetro de resistência interna Rg possa ser utilizado para medir uma corrente N vezes maior que sua corrente máxima de deflexão, o resistor shunt deve ter um valor (N-1) vezes menor que Rg.

Vamos utilizar valores para tornar as coisas mais claras. Supondo que a corrente de escala do galvanômetro seja de 1 mA e sua resistência interna seja de 300 ohms.

Para medirmos uma corrente de 100 mA (ou seja, 100 vezes maior que a corrente do galvanômetro, o que significa que N = 100), o valor do resistor de shunt será


Agora determinamos a potência que o
resistor de shunt dissipará:

Para que Rs opere com segurança, devemos utilizar um resistor que tenha potência pelo menos 2,5 vezes maior que a dissipada. Um resistor de 1/8 W atende com folga esta especificação.

Agora temos Rs completamente especificado: 3,03 ohms x 1/8 W.

Usando esta técnica, podemos determinar valores para o resistor shunt que nos permitam medir praticamente qualquer valor de corrente maior que o alcance do galvanômetro.

Com um pequeno arranjo de resistores e uma chave de 1 pólo e N posições, podemos fazer um amperímetro que tenha N escalas de corrente.

A figura 4 ilustra o esquema de um amperímetro com 4 escalas de corrente.


Figura 4 - esquema de amperímetro de 4 escalas

A chave na posição x1 permite medirmos uma corrente máxima igual à escala do galvanômetro.

Vamos assumir que a escala do galvanômetro seja de 1mA. Neste caso, poderemos medir várias faixas de corrente, dependendo da posição da chave:
  • em x1 podemos medir de 0 a 1 mA
  • em x10 podemos medir de 0 a 10 mA
  • em x100 podemos medir de 0 a 100 mA
  • em x1000 podemos medir de 0 a 1000 mA
Fica como exercício para o leitor a determinação dos resistores shunt x10 e x1000 (x100 nós determinamos durante a explicação).

Para uma melhor compreensão do que foi explicado, aconselho o estudo da análise de circuitos em corrente contínua.

Alguns livros podem ser obtidos aqui.

domingo, agosto 05, 2007

Sinais e Ruídos - conceitos básicos

Quem desenvolve circuitos eletrônicos, seja profissionalmente ou por hobby, volta e meia tem que enfrentar problemas causados por ruídos.

Coloco neste post uma breve explanação sobre o que são ruídos e sinais, pois estes conceitos são importantes e normalmente quem está iniciando não está familiarizado com eles.

O que é um sinal?
Sinal, para nós é toda informação, elétrica/magnética que nos é útil ou contém informações que nos interessam.

Por exemplo, os sinais transmitidos pelas emissoras de rádio ou TV são sinais (de rádio ou TV, respectivamente).

E como caracterizamos os sinais? - Um sinal é caracterizado por sua forma de onda, freqüência e amplitude.

Ruídos
Ruídos são pertubações elétrico/magnéticas que deterioram os sinais que desejamos transmitir, receber ou tratar no nosso circuito.

Um exemplo de fonte de ruído é o liquidificador. Ao ligarmos um liquidificador, ele emite sinais espúrios (ruído) que se propagam, principalmente pela rede elétrica da nossa residência e este ruído irá degradar a imagem dos canais exibidos no televisor.

Um sinal indesejado também pode ser encarado como ruído sob determinadas condições.
Podemos exemplificar esta afirmação com o seguinte exemplo: imagine que você está tentando assistir ao canal 5 no televisor e próximo a sua casa, está a emissora do canal 4.

Muito provavelmente, aparecerão as duas imagens/sons: as do canal 5, que você quer assistir e as do canal 4, que estará interferindo no que é exibido.
Neste caso, o sinal do canal 4 atuará como ruído.

Um ruído, geralmente, é um sinal aleatório (mas nem sempre, conforme o exemplo anterior).

Os ruídos podem ser classificados pelos seus tipos, pelas freqüências em que atuam, e pela sua origem.

Tipos de ruído

São vários os tipos. Cito aqui alguns.
  • Ruído Térmico ou de Johnson-Nyquist: gerado devido à agitação térmica dos átomos. Todo componente eletrônico gera ruído entre seus terminais devido à agitação térmica dos átomos. Quanto maior a temperatura, maior será o ruído Johnson.
    O ruído térmico apresenta aspecto praticamente constante para extensa faixa espectral para frequências de até 10.000 Ghz. Este ruído é quase que um ruído branco.

  • Ruído Shot: Causado pelo fluxo finito de partículas (elétrons ou fótons). O elétron possui carga discreta, logo o fluxo de elétrons possui carga discreta e a circulação dos mesmos gera uma flutuação do campo elétrico e por conseqüência uma flutuação da corrente elétrica.
    Tendo em vista que em um circuito eletrônico sempre haverá fluxo de elétrons durante seu funcionamento, podemos dizer que é impossível nos livrarmos dele.

  • Ruído Rosa, Ficker ou 1/f: ocorre em quase todos os dispositivos eletrônicos, e para uma freqüência f constante, sua potência cai cerca de 3 db por oitava. Para freqüências altas o suficiente, este ruído nunca é o dominante, devido a atenuação da sua potência.
    Uma curiosidade: engenheiros de áudio utilizam o ruído rosa para determinar se o sistema tem resposta em freqüência plana para a banda de interesse.
    Várias são as causas do ruído rosa. Podemos citar a mudança de valor das resistências dos componentes (lembre-se que a resistência de um material varia com a temperatura). Os tubos de raios catódicos, quando emitindo corrente são outro exemplo.

  • Ruído branco: é o sinal que possui componentes de todas as freqüências do espectro e que possui a mesma quantidade de energia para toda a faixa de frequências.
    O nome branco dado ao ruído deve-se a uma analogia com o espectro de cores. A luz branca, percebida pelo olho, na realidade, é a soma de todas as componentes (freqüências) de cor.
    Podemos pensar no ruído branco como a reprodução de todos os tons ao mesmo tempo (Um tom é um som que se repete a uma determinada freqüência).

    Há várias aplicações do ruído branco. Entre elas, podemos citar:
    1. determinação da resposta em freqüência de um sistema (de telecomunicações, equipamentos de áudio e linhas de transmissão)
    2. ajuda no processo de relaxamento e sono das pessoas.
    3. ajuda na concentração das pessoas.
    4. síntese musical, para a síntese subtrativa ou para a simulação de sons percussivos ou de fricção.

Classificação de Ruídos quanto à freqüência
  • Ruído de baixa freqüência: O ruído de baixa freqüência pode ser minimizado com o uso de filtros passa alta.

  • Ruído de freqüência intermediária. Geralmente ruídos de interferência. O ruído de interferência mais comum é o ruído gerado na linha de energia elétrica, com freqüência fundamental de cerca de 60 Hz e suas harmônicas.
    Podemos remover este ruído com filtros, bem como modulando-se a freqüência da fonte de sinais e a freqüência usada na detecção.

  • Ruído de alta freqüência. Os ruídos de alta freqüência são os mais difíceis de se eliminar: o ruído branco ou ruído gaussiano. Podemos, em alguns casos, minimizar este tipo de ruído através de programas que apliquem filtros de transformada de Fourier.
Origem
  • Ruído exógeno -são ruídos devido às interferências externas ao processo ou sistema. Por exemplo, os sinais de uma emissora de rádio ou TV que se sobrepõe ao nosso sinal.

  • Ruído endógeno - são ruídos devido às interferências internas do processo ou sistema. Por exemplo, as interferências geradas pelo funcionamento da fonte chaveada de um circuito.

  • Ruído de repertório - refere-se às inteferências ocorridas diretamente na produção ou interpretação da mensagem, provocadas pelo repertório dos emissores e receptores.

Espero ter esclarecido alguma coisa em relação aos tópicos tratados. Em posts futuros, pretendo abordar, na prática, o projeto de filtros e outras técnicas de redução de ruído.

segunda-feira, julho 16, 2007

Galvanômetro - Alguém ainda sabe utilizá-lo?

Hoje em dia o mudo está cada vez mais digital. Quase todo mundo quer fazer medidas e ver os resultados em equipamentos digitais.

Eu, que brinco com a eletrônica há muitos anos (na verdade, desde agosto de 1983), gosto de usar instrumentos analógicos. E um dos mais úteis e versáteis dispositivos é o galvanômetro.

O galvanômetro é um dispositivo que transforma a corrente que circula em sua bobina em um movimento angular da agulha.

Este movimento angular é proporcional a corrente, ou seja, o galvanômetro é um dispositivo linear. Se dobrarmos a quantidade de corrente que circula por sua bobina, o deslocamento angular dobrará.

Além da intensidade da corrente, a sua polaridade também influi no movimento da agulha do galvanômetro. Daí, concluímos que ele é um dispositivo polarizado, ou seja, devemos tomar o cuidado de não fazer circular por sua bobina uma corrente de polaridade invertida, sob o risco de danificarmos o seu mecanismo.

Para que possamos traduzir o deslocamento angular em unidades de corrente, devemos prover uma escala graduada, conforme mostrado na figura 1.

Figura 1 - Exemplo de escala

Para podermos utilizar o galvanômetro, precisamos conhecer seus três parâmetros: alcance, resistência interna e sensibilidade.

O que são estes parâmetros? - Explico.
  • Alcance - é a corrente máxima que pode circular pela bobina. Nesta situação, o ponteiro do galvanômetro terá a deflexão máxima.

  • Resistência Interna - é a resistência da bobina do galvanômetro. O seu valor é dado pelo comprimento e espessura do material que compõe a bobina e pelo material de que é feita, de acordo com a equação 1 abaixo.
    Equação 1 - Fórmula para o cálculo da resistência de um condutor
    onde
    1. R é resistência da bobina.
    2. r é o coeficiente de resistividade. Cada material tem o seu.
    3. l é o comprimeto do condutor da bobina.
    4. S é a área do condutor da bobina.

  • Sensibilidade - É obtida calculando-se o inverso do alcance e sua unidade de medida é o ohms/volt. Assim, quanto maior o alcance, menor a sensibilidade do galvanômetro e vice-versa. A sensibilidade nos indica a faixa de corrente que pode ser detectada pelo dispositivo, ou seja, quanto mais sensível for o galvanômetro, mais fracas são as correntes que ele consegue medir.

    Por exemplo, um galvanômetro com sensibilidade de 100uA pode medir correntes muito mais fracas do que um com sensibilidade de 1mA.
E para que servem estas informações? Elas são necessárias para utilizarmos o galvanômetro, de modo a não danificá-lo e para obtermos resultados precisos nas medições.

Vou mostrar em outros posts como utilizar o galvanômetro como amperímetro, ohmímetro e voltímetro (aliás, o único medidor que existe é o de corrente, os outros são obtidos graças a adaptações da Lei de Ohm).

Ok. Vamos supor que você tenha um galvanômetro e queira utilizá-lo, mas não saiba quais são seus parâmetros. O que podemos fazer?

Podemos determiná-los experimentalmente.

- Como?

Primeiro determinaremos a resistência interna do galvanômetro. Monte o circuito mostrado na figura 2.

Nota: nos esquemas deste post estou utilizando o símbolo de fonte de corrente para representar o galvanômetro. Isto está errado. Uma coisa não tem nada a ver com a outra. Estou fazendo isso porque não tinha em mãos um símbolo para representar o galvanômetro.

O potenciômetro de 1M ohm deve estar, inicialmente, ajustado para a sua resistência máxima. Do contrário, queimaremos o galvanômetro!
Figura 2 - Determinação do alcance

Gire o eixo do potenciômetro, bem devagar, até que o ponteiro do medidor atinja exatamente o ponto máximo da sua escala.

Depois que isto tiver sido feito, insira um potenciômetro de 1Kohm, conforme ilustrado na figura 2. Não mexa no ajuste do potenciômetro Rp.
Figura 3 - Resistência interna do galvanômetro

Ajuste o eixo do potenciômetro de 1Kohm (Rs) , de modo que o ponteiro do galvanômetro se posicione exatamente na metade da escala.

Quando isto acontecer, não toque mais no eixo do potenciômetro de 1Kohm. Retire-o do circuito e meça com um ohmímetro a resistência apresentada entre os pontos 1 e 2.

O valor obtido será exatamente a resistência interna do galvanômetro.

Agora, vamos obter o alcance do galvanômetro. Monte o circuito da figura 4. Note que o potenciômetro deve estar ajustado para seu valor máximo, do contrário a bobina do galvanômetro irá queimar.
Figura 4 - circuito para determinação do alcance.

Gire o eixo do potenciômetro até que o ponteiro do galvanômetro indique, exatamente, sua posição máxima.

Retire o potenciômetro do circuito sem alterar a posição do seu eixo e meça com um ohmímetro a resistência entre os terminais B e C do potenciômetro.

Vamos chamar esta resistência de Rp (resistência do potenciômetro) e Rg para a resistência interna do galvanômetro (determinada no passo anterior).

Vamos supor que rg = 300 ohms e Rp = 8700 ohms. Para efeitos de cálculo, podemos interpretar o circuito da figura 4 como sendo um resistor Rp em série com outro resistor Rg, conforme mostrado na figura 5.
Figura 5 - Circuito equivalente do potenciômetro e da resistência do galvanômetro

Sabemos que a corrente é função da tensão e da resistência total do circuito. Logo, podemos escrever a equação 2.

Equação 2

A tensão nós conhecemos (9 volts). Rp e Rg também (8700 e 300 ohms, respectivamente). Com estes valores resolvemos a equação 2 e determinamos que o alcance é I = 1mA.

Já sei que o alcance do galvanômetro é de 1mA e daí determino que a sensibilidade é de 1000 ohms/volt.

Pronto. Já temos todos os valores necessários para podermos utilizar o galvanômetro.

Aconselho a leitura destes livros, que tratam de dispositivos e circuitos eletrônicos.

quinta-feira, julho 12, 2007

Resistores de Precisão

Muitos hobistas querem montar seus circuitos mas esbarram em um problema: resistores de precisão.

Em muitos projetos o mais importante não é o valor exato dos resistores, mas a relação entre eles. Nestes casos podemos medir a resistência os nossos resistores e selecionar os mais adequados.

Vou dar um exemplo. Suponha que temos um amplificador inversor, conforme mostrado na figura abaixo.


O ganho do amplificador é dado pela fórmula

Podemos ver que a relação entre Rf e Ri é que determina o ganho do circuito.

Vamos supor que queremos o ganho X.

Se fizermos Rf = 10.000 ohms e Ri = 5.000 ohms, teremos que o ganho será igual a -2.

Se fizermos Rf = 20.000 ohms e Ri = 10.000 ohms, teremos o mesmo ganho -2.

Se usarmos resistores de 5% de precisão, o ganho poderia variar entre -1,81e -2.21, dependendo dos valores reais de Rf e Ri.

Se usarmos resisotres de 2% de precisão, o ganho poderia variar entre -2,08 e -1,92, o que é bem melhor.

Se não tivermos resistores de precisão na mão, podemos pegar os nossos resistores comuns (5% de tolerância), e sairmos medindo vários deles até acharmos 2 que satisfaçam nossa relação, da melhor maneira possível.

Para efeitos de ilustração, adotaremos os seguintes valores nominais: Rf = 20.000 ohms e Ri = 10.000 ohms.

Se achassemos dois resistores de modo que Rf = 20.900 ohms e Ri = 10.400 , o ganho seria de -2,01, bem próximo do obtido com resistores de 2% de precisão (na realidade, melhor!).

Se, por outro lado, conseguíssemos Rf = 21.000 e Ri = 10.500, o ganho seria exatamente -2 (melhor que o resultado dado por resistores de precisão de 2%).

Esta abordagem para usarmos resistores comuns no lugar dos de precisão só são adequados para protótipos, onde teremos apenas 1 ou 2 circuitos. Para projetos comerciais, devido à produção em larga escala, o uso de componentes de precisão é obrigatório.

Circuitos e dispositivos eletrônicos podem ser estudados mais profundamente com estes livros.

Nota:
Conforme o Maurício de Oliveira disse na sua resposta a este artigo, os resistores de precisão são fabricados de modo a minimizar a variação dos seus valores com a variação da temperatura. Logo, a rigor, há sim diferenças entre os resistores de precisão e os resistores comuns.

Neste artigo, que é destinado aos hobbistas, estou desprezando este fato, pois não se trata do desenvolvimento de circuitos profissionais, mas de um modo de substituir resistores de precisão em circuitos caseiros.

sábado, maio 12, 2007

FAXINA NO PC

A partir de hoje só uso o meu computador no modo de segurança.

Apaguei todos os arquivos: os ano1.mpeg, ano2.mpeg,..., ano12.mpeg, teupassado.doc,... Estavam todos com defeito, eram planilhas feitas com informações falsas.

Eliminei a memória ROM, ele só opera com memória RAM: desligou, já sabes...

Fiz um upgrade no anti-vírus, nenhum vírus, por exemplo, I love you, pode infectar o meu sistema operacional.
Por isso, não existe mais Feliz Dia 6 (estava na BIOS), e sim Feliz Dia de Hoje (memória RAM)!


Este poema foi escrito pelo meu amor (Rosane) em 06 de agosto de 2002. Merece ser eternizado.