terça-feira, julho 30, 2013

Oito Pinos

Este post se baseia na minha nano palestra no primeiro Fnords e Furiosos.



Apesar de formado em Engenharia Eletrônica e ter brincado bastante com eletrônica na juventude, a partir de um certo momento em um passei a mexer somente com software. Isto mudou há uns dez anos, quando eu peguei um projeto de software para um microcontrolador (um PIC). Eu comprei livros e uma placa e me debrucei sobre o site da Microchip e seus datasheets. Foi aí que encontrei os modelos com 8 pinos.

O meu deslumbramento me tornou novamente criança, a ponto de ir mostrar um para o meu pai ("Tá vendo este chipinho aqui? É um computador completo!"). Algum tempo depois teve o segundo encontro dos programadores de C/C++ e eu levei um brinquedinho e a listagem do software para mostrar para o pessoal (não tenho certeza se o Alberto Fabiano participou deste encontro).

Os microcontroladores de 8 pinos continuam firmes e fortes. Além dos PIC, existem também modelos AVR (como os ATtiny x5), que podem ser programados no ambiente do Arduino.

Mas o que podemos fazer com estes oito pinos?

Dois destes pinos são dedicados à alimentação. Estes microcontroladores trabalham com tensões abaixo de 3V até 5.5V, o que permite alimentá-los com pilhas ou baterias (e mais USB ou fontes ligadas à tomada).

Um terceiro pino é normalmente reservado para o sinal de Reset. É possível usar este pino para outras funções, mas isto tem consequências (como dificultar a gravação no caso dos ATtinys).

Estes integrados possuem osciladores internos com velocidade e precisão suficientes para as aplicações mais simples. Se for necessário um valor especial e/ou maior precisão, dois pinos podem ser "sacrificados" para ligar um cristal.

A função mais simples para os pinos restantes é a saída digital: controlar por programa se um pino estará em nível "alto" ou "baixo". Isto pode ser usado, por exemplo, para controlar LEDs. O timer do microcontrolador permite gerar formas de onde e controlar servo motores, gerar sinais de comunicação IR, produzir sons e muito mais. Com circuitos externos as saídas digitais podem controlar tomadas e acionar motores.

Os pinos podem também ser usados como entrada digital, para ligação de sensores simples, como botões, reeds, etc. Entradas e saídas digitais podem ser usadas ainda para implementar comunicações seriais. Vários modelos permitem também a entrada analógica, possuindo um ADC que converte a tensão em um pino em um valor que pode ser manipulado pelo programa. Isto permite ligar sensores mais sofisticados como sensores de luz e magnéticos.

Acima de tudo, é preciso lembrar que microcontroladores executam programas:
  • Podemos fazer operações lógicas, como acionar um motor no pino 4 se os sensores nos pinos 2 e 3 estiverem acionados.
  • Podemos introduzir temporizações, como acionar o pino 4 dez segundos após o sensor no pino 2 indicar uma situação.
  • Contamos com memória, permitindo coisas como acionar o pino 4 se o pino 2 foi acionado 5 vezes.
  • Podemos combinar tudo isto, fazendo lógicas mais complexas como acionar o pino 4 se o pino 2 foi acionado 5 vezes nos últimos 30 segundos e o pino 3 não foi acionado nenhuma vez.
  • Podemos fazer cálculos sofisticados para determinar as saídas em função das entradas.
  • Podemos introduzir fatores (pseudo) aleatórios, algo difícil de fazer com circuito.
Uma outra forma de ver tudo isto é pensar no microcontrolador como um circuito integrado "genérico". onde o programa define a relação entre as entradas e saídas.

Alguns exemplos de projetos que apareceram aqui neste blog e usam microcontroladores de 8 pinos:

Embora 8 pinos possam parecer pouco, com um pouco de imaginação podemos fazer as coisas mais incríveis com eles.

Nenhum comentário: