Saltar para o conteúdo

Arduino

Origem: Wikipédia, a enciclopédia livre.
Navegação no histórico de edições: ← ver edição anterior (dif) ver edição seguinte → (dif) ver última edição → (dif)
Arduino

Tela do Arduino IDE mostrando um simples programa exemplo.
Desenvolvedor Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis.
Baseado no Processing, de Casey Reas e Ben Fry.
Comunidade Open Source.
Plataforma C/C++
Lançamento 2005
Versão estável 0017 (12 de agosto de 2009)
Escrito em Java
Sistema operacional Multi-plataforma
Gênero(s) Ambiente de desenvolvimento integrado
Licença Hardware em LGPL ou GPL
Software em Creative Commons
Estado do desenvolvimento Ativo
Página oficial http://www.arduino.cc/en/ (em inglês)

Arduino é um computador físico baseado numa simples plataforma open source de hardware, projetada com um microcontrolador de placa única, com suporte de I/O embutido e uma linguagem de programação padrão,[1] na qual tem origem em Wiring e é essencialmente C/C++ (Com várias pequenas modificações antes de ser transformada em avr-gcc).[2] O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente àqueles que não teriam alcance aos controladores mais sofisticados e e de ferramentas mais complicadas.[3]

Pode ser usado para o desenvolvimento de independentes objetos interativos ou ainda para ser conectado à um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de I/O digital e analógica e uma interface serial ou USB para interligar-se ao hospedeiro, que é usado para programa-lo e interagi-lo em tempo real. Ele em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos em rede, usando extensões controladoras chamadas de shield. A interface do hospedeiro é simples, podendo ser escrita em várias linguagens. A mais popular é a Processing, mas outras que podem comunicar-se com a conexão serial são: Max/MSP, Pure Data, SuperCollider, ActionScript e Java.[4]

Atualmente seu hardware é feito através de um microcontrolador Atmel AVR, sendo que este não é um requerimento formal e pode ser extendido se tanto o hardware quanto a ferramenta alternativa suportarem a linguagem Arduino e forem aceitas por seu projeto.[1] Considerando esta característica, muitos projetos paralelos se inspiram em cópias modificadas com placas de expansões, e acabam recebendo seus próprios nomes.

Apesar do sistema poder ser montado pelo próprio usuário, o projeto atualmente possui um serviço de venda do produto pré-montado, através deles mesmos e também por distribuidores oficiais com pontos de venda mundial.

O projeto iniciou-se em Ivrea, Itália, em 2005, com o intuito de ser um dispositivo controlador para interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época. Seu sucesso foi sinalizado com o recebimento de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica,[5][6] além da marca de mais de 50.000 placas vendidas até outubro de 2008.[7]

Plataforma

Hardware

Sua placa consiste em um microcontrolador Atmel AVR de 8 bits, com componentes complementares para ficilitar a programação e incorporação para outros circuitos. Um importante aspecto do Arduino é a maneira padrão que os conectores são expostos, permitindo a CPU ser interligada a outros módulos expansivos, conhecidos como shields. Os Arduinos originais utilizam a série de chips megaAVR, especialmente os ATmega8, ATmega168, ATmega328 e a ATmega1280; porém muitos outros processadores foram utilizados por clones dele.

A grande maioria de placas incluem um regulador linear de 5 volts e um oscilador de cristal de 16 MHz (Podendo haver variantes com um ressonador cerâmico), embora alguns esquemas como o LilyPad usar até 8 Mhz e dispensam um regulador de voltagem onboard, por ter uma forma específica de restrições de fator. Além de ser microcontrolador, o componente também é pré-programado com um bootloader que simplifica o carregamento de programas para o chip de memória flash embutido, comparado com outros aparelhos que usualmente necessitam de um chip programador externo.

Software

O Arduino IDE é uma aplicação multi-plataforma escrita em Java na qual é derivada dos projetos Processing e Wiring. É esquematizado para introduzir a programação a artistas e a pessoas não familiarizadas com o desenvolvimento de software. Inclui um editor de código com recursos de realce de sintaxe, parênteses correspondentes e endentação automática, sendo capaz de compilar e carregar programas para a placa com um único clique. Com isso não há a necessidade de editar Makefiles ou rodar programas em ambientes de linha de comando.

Tendo uma biblioteca chamada "Wiring", ele possui a capacidade de programar em C/C++. Isto permite criar com facilidade muitas operações de entrada e saída, tendo que definir apenas duas funções no pedido para fazer um programa funcional:

  • setup() – Inserida no inicio, na qual pode ser usada para inicializar configuração, e
  • loop() – Chamada para repetir um bloco de comandos ou esperar até que seja desligada.

Habitualmente, o primeiro programa que um microcontrolador executa tem a simples função de piscar um LED. Na ambiente de desenvolvimento, o usuário escreve um programa exemplo como este:

#define LED_PIN 13

void setup () {
    pinMode (LED_PIN, OUTPUT);     // habilita o pino 13 para saída digital (OUTPUT).
}

void loop () {
    digitalWrite (LED_PIN, HIGH);  // liga o LED.
    delay (1000);                  // espera 1 segundo (1000 milissegundos).
    digitalWrite (LED_PIN, LOW);   // desliga o LED.
    delay (1000);                  // espera 1 segundo.
}

O código acima não seria visto pelo compilador como um programa válido, então quando o usuário tentar carrega-lo para a placa, uma cópia do código é escrita para um arquivo temporário com um cabeçalho extra incluído no topo, e uma simples função principal como mostrada abaixo:

#include "WProgram.h"
#define LED_PIN 13

void setup () {
    pinMode (LED_PIN, OUTPUT);     // habilita o pino 13 para saída digital (OUTPUT).
}

void loop () {
    digitalWrite (LED_PIN, HIGH);  // liga o LED.
    delay (1000);                  // espera 1 segundo (1000 milissegundos).
    digitalWrite (LED_PIN, LOW);   // desliga o LED.
    delay (1000);                  // espera 1 segundo.
}

int main(void)
{
    init();

    setup();
    
    for (;;)
        loop();
        
    return 0;
}

"WProgram.h" é um recurso para referenciar a biblioteca Wiring, e a função main() só faz três chamadas distintas: init(), definida em sua própria biblioteca, setup() e loop(), sendo as duas últimas definidas pelo usuário.

O Arduino IDE usa o Conjunto de ferramentas GNU e o AVR Libc para compilar os programas, para depois, com o avrdude, carregar os programas para a placa.

Referências

  1. a b «O que faz uma Placa Arduino ser um Arduino?». Projeto Arduino 
  2. «Processo de construção do Arduino» (em inglês). Projeto Arduino 
  3. «Página principal do projeto» (em inglês) 
  4. «Interface Arduino para outras linguagens» (em inglês). Projeto Arduino 
  5. «Arquiva Ars Electronica» (em alemão). Consultado em 18 de fevereiro de 2009 
  6. «Arquivo Ars Electronica / RECONHECIMENTO» (em alemão). Consultado em 18 de fevereiro de 2009 
  7. Thompson, Clive (20 de outubro de 2008). «Monte Isso. Compartilhe Isso. Lucre. O hardware Open Source pode funcionar?». Wired. 16 (11). pp. 166–176. Consultado em 30 de abril de 2009 
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.