Relógio Binário com Arduino

O Arduino nada mais é que uma plataforma para desenvolvimento ágil com microcontroladores, baseado na família ATMega da Atmel. Com uma IDE simples de usar, um número grande de bibliotecas prontas e uma comunidade ativa e amigável, é sempre possível encontrar novos usos para a plaquinha — que é montada por inúmeros fabricantes ao redor do mundo, embora seja fácil montar uma sua.

Daniel Andrade resolveu montar um relógio binário, muito parecido com as versões comerciais existentes. Mostra todo o esquemático (que é realmente simples) e o código-fonte (tão simples quanto), além de ensinar como ler as horas nesse relógio não convencional (pelo menos para quem não trabalha com esses números, números binários são meio alienígenas).

Scanner Musical

scanjet.jpgEmbora já um pouco antiga, esta página mostra um easter egg de um modelo de ScanJet, da HP. A linguagem de controle do ScanJet 4C (e provavelmente outros modelos) possui um comando não documentado, chamado PLAY TUNE. O comando varia a taxa de passos do motor, fazendo com que estes produzam sons audíveis.

O software para download no site permite que se teste a funcionalidade. Para os incrédulos, eis o vídeo:

PIC Pong

ponggame_big.jpgO site do Rickard Gunee já é conhecido de muita gente. Ele ensina técnicas de geração de vídeo via software, utilizando microcontroladores e conversores Digital-Analógicos simples (usando apenas resistores). Um dos exemplos é um jogo “PONG”, feito apenas com um PIC 16F84 rodando a 12MHz.

Há o código fonte, layout e esquemáticos para montar o seu próprio video game.

Conversor de nível de serial

rs232smart2.jpgProgramar microcontroladores pode ser uma tarefa chata sem um debugger. Interfaces seriais são ótimas para isso, já que é possível enviar e receber informações textuais de um computador.

O maior problema (ou melhor, desconforto) surge quando se está prototipando alguma coisa na protoboard, e nunca se acha um conversor de nível de serial (como um MAX232) e os capacitores na sua caixa de componentes. Ou, pior ainda: ter que montar sempre o mesmo circuito para fazer debug em seu código é um tanto entediante, para não dizer que é perda de tempo.

Uma solução simples é apresentada nessa página: uma placa já com o circuito básico montado, incluindo o conector DB9. Aparentemente ridículo, mas uma mão na roda.

Utilizando displays de Nokia 6100 com microcontroladores

nokia_display_1.jpgCom uma área de 132×132 pixels e 4096 cores, baixo consumo de energia e preço convidativo (em torno de R$50 em assistência técnica de telefones), os displays de telefones celulares da Nokia são uma boa pedida para montar ricas interfaces com o usuário.

Thomas Pfeifer explica como ele ligou tais displays em microcontroladores da Atmel (um ATMega8). Inclusive como fez a divisão de tensão, já que o display trabalha a 3.3V e o AVR a 5V. Mostra alguns exemplos, inclusive com vídeos: um simples osciloscópio, uma imagem 3D (apenas wireframe) e um demo com degradês. Além, é claro, de várias imagens demonstrativas.

Tão (ou mais) interessante que os displays do Nokia 3310, que são monocromáticos e de menor resolução.

AVRUSB: implementação USB via software

avrusb.gifCom a grande disponibilidade de portas USB nos computadores pessoais de hoje em dia, é comum que o interesse para usá-las nos mais variados projetos exista. Infelizmente o protocolo é um pouco trabalhoso para implementar do zero e, mesmo que existam soluções prontas em silício, são geralmente de difícil obtenção (principalmente aqui no Brasil) e de difícil soldagem (a maioria requer soldagem em superfície).

Pensando nisso, uma empresa austríaca desenvolveu uma implementação do protocolo USB inteiramente em software, e a disponibilizou gratuitamente na Internet (embora exista opção para uso comercial). Os requisitos são até altos em se tratando de microcontroladores (2kB de flash, 128bytes de RAM e clock de no mínimo 12MHz), mas um preço absolutamente baixo para se pagar pelos benefícios.

Suportando USB 1.1 e escrita em C, a biblioteca pode ser obtida neste site. Vários exemplos são mostrados na página também, como conversores de joysticks de Super Nintendo, controlador de servomotor e controle remoto infra-vermelho.

Gravadores de AVR feitos em casa

 

fjitnecc8meukikv6ymedium.jpgEste artigo no Instructables mostra como montar um gravador de AVR do modo mais barato possível. Apesar de funcionar, aconselho fazer a montagem dele em uma protoboard e usá-lo para montar um USBasp. Afinal, hoje em dia é muito mais fácil encontrar um computador com porta USB que um com porta paralela.

Ambos gravadores são multi-plataforma (funcionam pelo menos em Linux e em Windows) e requerem um número mínimo de peças.

Procyon “AVRlib”: Libere o potencial dos AVRs!

Embora a capacidade dos microcontroladores esteja crescendo assustadoramente, ainda há a necessidade de interfaceamento com dispositivos externos. Controladores de rede, memórias, decodificadores MP3, receptores GPS. Obviamente, escrever drivers para todos estes dispositivos é um tanto demorado e de certa forma inútil, pois isso já foi feito e disponibilizado de graça na Internet.

A Procyon “AVRLib” engloba códigos em várias categorias:

  • Geral (funções auxiliares diversas)
  • Periféricos Embutidos nos AVR (timers, UART, conversor analógico-digital, interfaces SPI e I²C, interrupções)
  • Periféricos Externos (displays LCD alfanuméricos, memórias diversas, interface IDE/ATA, servo-motores, decodificadores de MP3, receptor GPS, etc)
  • Suporte à Rede (dispositivos de rede, protocolos)
  • Emulação de Hardware em Software (I²C master, UART, barramento de memória, etc)

Tudo documentado e fácil de usar, o código é bem escrito e enxuto, e é distribuído sob a licença GNU GPL.