Arduino
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
- ↑ a b «O que faz uma Placa Arduino ser um Arduino?». Projeto Arduino
- ↑ «Processo de construção do Arduino» (em inglês). Projeto Arduino
- ↑ «Página principal do projeto» (em inglês)
- ↑ «Interface Arduino para outras linguagens» (em inglês). Projeto Arduino
- ↑ «Arquiva Ars Electronica» (em alemão). Consultado em 18 de fevereiro de 2009
- ↑ «Arquivo Ars Electronica / RECONHECIMENTO» (em alemão). Consultado em 18 de fevereiro de 2009
- ↑ 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