quinta-feira, 21 de julho de 2011

Arduino

 




Arduino é uma plataforma de prototipagem baseada no uso livre de software e hardware. Ele foi inicialmente planejado para artistas, designs e outros interessados em criar ambientes e objetos.

Não demorou muito para que esta plataforma logo fosse aplicada no Ensino da Física, com inúmeras possibilidades.


O Arduino Duemilanove ("2009") é uma placa de microcontrolador baseada no ATmega328. Ele possui 14 pinos de entrada/saída digital (dos quais 6 podem ser usados como saídas analógicas PWM), 6 entradas analógicas, um cristal oscilador de 16 MHz, uma conexão USB, uma entrada para alimentação, um cabeçalho ICSP e um botão de reset. Ele contém tudo que é necessário para que o microcontrolador funcione; para começar, apenas faça a conexão com um computador através de um cabo USB ou use uma fonte de alimentação de corrente contínua ou uma bateria.

"Duemilanove" significa 2009 em italiano e o nome foi escolhido pelo ano de lançamento. O Duemilanove é a mais recente de uma série de placas Arduino USB.

Para aqueles mais interessados no esquema de montagem da placa há esse link que leva direto para um arquivo PDF no site http://arduino.cc .
Na sequência do post, algumas informações técnicas adicionais do Arduino.

Algumas características da placa de microcontrolador Arduino.
MicrocontroladorATmega328
Voltagem operacional5V
Voltagem de alimentação (recomendada)7-12V
Voltagem de alimentação (limites)6-20V
Pinos I/O digitais14 (dos quais 6 podem ser saídas PWM)
Pinos de entrada analógica6
Corrente contínua por pino I/O40 mA
Corrente contínua para o pino 3.3V50 mA
Memória flash32 KB (2KB usados para o bootloader)
SRAM2 KB
EEPROM1 KB
Velocidade de clock16 MHz

Alimentação

O Arduino Duemilanove pode ser alimentado pela conexão USB ou por qualquer fonte de alimentação externa. A fonte de alimentação é selecionada automaticamente.
Alimentação externa (não-USB) pode ser tanto de uma fonte ou de uma bateria. A fonte pode ser conectada com um plug de 2,1mm (centro positivo) no conector de alimentação. Cabos vindos de uma bateria podem ser inseridos nos pinos Gnd (terra) e Vin (entrada de voltagem) do conector de alimentação.
A placa pode operar com uma alimentação externa de 6 a 20 volts. Entretanto, se a alimentação for inferior a 7 volts o pino 5V pode fornecer menos de 5 volts e a placa pode ficar instável. Se a alimentação for superior a 12 volts o regulador de voltagem pode super-aquecer e avariar a placa. A alimentação recomendada é de 7 a 12 volts.
Os pinos de alimentação são:
  • VIN. Entrada de alimentação para a placa Arduino quando uma fonte externa for utilizada. Você pode fornecer alimentação por este pino ou, se usar o conector de alimentação, acessar a alimentação por este pino.
  • 5V. A fonte de alimentação utilizada para o microcontrolador e para outros componentes da placa. Pode ser proveniente do pino Vin através de um regulador on-board ou ser fornecida pelo USB ou outra fonte de 5 volts.
  • 3V3. Alimentação de 3,3 volts fornecida pelo chip FTDI. A corrente máxima é de 50 mA.
  • GND. Pino terra.

Memória

ATmega328 tem 32 KB de memória flash para armazenar código (dos quais 2 KB são utilizados pelo bootloader), além de 2 KB de SRAM e 1 KB of EEPROM (que pode ser lida e escrita através da biblioteca EEPROM ).

Entrada e Saída

Cada um dos 14 pinos digitais do Duemilanove pode ser usado como entrada ou saída usando as funções de pinMode(),digitalWrite(), e digitalRead(). Eles operam com 5 volts. Cada pino pode fornecer ou receber um máximo de 40 mA e tem um resistor pull-up interno (desconectado por padrão) de 20-50 kOhms. Além disso, alguns pinos têm funções especializadas:
  • Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais TTL. Estes pinos são conectados aos pinos correspondentes do chip serial FTDI USB-to-TTL.
  • External Interrupts: 2 and 3. Estes pinos podem ser configurados para disparar uma interrupção por um baixo valor, uma elevação ou falling edge ou uma mudança de valor. Veja a função attachInterrupt() para mais detalhes.
  • PWM: 3, 5, 6, 9, 10, e 11. Fornecem uma saída analógica PWM de 8-bit com a função  analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos suportam comunicação SPI, que embora compatível com o hardware, não está incluída na linguagem do Arduino.
  • LED: 13. Há um LED já montado e conectado ao pino digital 13. Quando o pino está no valor HIGH, o LED acende; quando o valor está em LOW, ele apaga.
O Duemilanove tem 6 entradas analógicas e cada uma delas tem uma resolução de 10 bits (i.e. 1024 valores diferentes). Por padrão, elas medem de 0 a 5 volts, embora seja possível mudar o limite superior usando o pino AREF e um pouco de código de baixo nível. Adicionalmente alguns pinos têm funcionalidades especializadas:
  • I2C: 4 (SDA) and 5 (SCL). Suportam comunicação I2C (TWI) usando a biblioteca Wire (documentação no site do WIRE).
Há ainda alguns outros pinos na placa:
  • AREF. Referência de voltagem para entradas analógicas. Usados com analogReference().
  • Reset. Envie o valor LOW para resetar o microcontrolador. Tipicamente utilizados para adicionar um botão de reset aos shields que bloqueiam o que há na placa.

Comunicação

Com o Arduino Duemilanove a comunicação com um computador, com outro Arduino ou com outros microcontroladores é muito simplificada. O ATmega328 permite comunicação serial no padrão UART TTL (5V), que está disponível nos pinos digitais 0 (RX) e 1 (TX). Um chip FTDI FT232RL na placa encaminha esta comunicação serial através do USB e os  drives FTDI (incluído no software do Arduino) fornece uma porta COM virtual para o software no computador. O software Arduino inclui um monitor serial que permite que dados simples de texto sejam enviados à placa Arduino. Os LEDs RX e TX da placa piscam quando os dados estão sendo transferidos ao computador pelo chip FTDI e a conexão USB (mas não quando há comunicação serial pelos pinos 0 e 1).
biblioteca SoftwareSerial permite comunicação serial por quaisquer dos pinos digitais do Duemilanove.

Programação

O Arduino Duemilanove pode ser programado com o software Arduino (download). Para mais detalhes veja referência e tutoriais.
O ATmega328 no Arduino Duemilanove vem pré-gravado com um bootloader que permite enviar novos programas sem o uso de um programador de hardware externo. Ele se comunica utilizando o protocolo original STK500 (referênciaC header files).
Você também pode programar o ATmega328 através do ICSP (In-Circuit Serial Programming) header; veja estas instruções para mais detalhes.

Reset automático (Software)

Algumas versões anteriores do Arduino requerem um reset físico (pressionando o botão de reset na placa) antes de carregar um sketch. O Arduino Duemilanove é projetado de modo a permitir que isto seja feito através do software que esteja rodando no computador conectado. Uma das linhas de controle de hardware (DTR) do FT232RL está conectada ao reset doATmega328 via um capacitor de 100 nanofarads . Quando esta linha é resetada (ativo baixo) o sinal cai por tempo suficiente para resetar o chip. O software Arduino usa esta característica para permitir carregar o programa simplesmente pressionando o botão "upload" no ambiente Arduino. Isto significa que o "bootloader" pode ter um "timeout" mais curto, já que a ativação do DTR (sinal baixo) pode ser bem coordenada com o início do "upload".
Esta configuração tem outras implicações. Quando o Duemilanove está conectado a um computador rodando Mac OS X ou Linux, ele reseta toda vez que a conexão é feita por software (via USB). No próximo meio segundo aproximadamente, o bootloader estará rodando no Duemilanove. Considerando que é programado para ignorar dados espúreos (i.e. qualquer coisa a não ser um "upload" de um novo código), ele interceptará os primeiros bytes de dados sendo enviados para a placa depois que a conexão é aberta. Se um "sketch" rodando na placa recebe configuração de uma vez ou outros dados ao inicializar, assegure-se que o software que esteja comunicando espere um segundo depois de aberta a conexão antes de enviar estes dados.
Proteção contra sobrecorrente USB
O Arduino Duemilanove tem um polifusível resetável que protege a porta USB do seu computador contra curto-circuito e sobrecorrente. Apesar da maioria dos computadores possuírem proteção interna própria, o fusível proporciona uma proteção extra. Se mais de 500mA foram aplicados na porta USB, o fusível irá automaticamente interromper a conexão até que o curto ou a sobrecarga seja removida.

Características físicas

O comprimento e largura máximos do Duemilanove são 2,7" (68,50 mm) e 2,1" (53,34 mm) respectivamente, com o conector USB e o jack de alimentação indo um pouco além destas dimensões. Três furos de fixação permitem a  montagem da placa numa superfície ou caixa. Note que a distância entre os pinos de entrada e saída digitais nº 7 e nº 8 é de 160 mil (milésimos de polegada), não é sequer múltiplo do espaçamento de 100 mil dos outros pinos.

Caso esteja interessado em adquirir sua placa Arduino, pode clicar nesse link.

Nenhum comentário:

Postar um comentário