Arduino[2][4][5] é uma plataforma de prototipagem eletrônica de hardware livre e de placa única,[6] projetada com um microcontrolador Atmel AVR com suporte de entrada/saída embutido, uma linguagem de programaçãopadrão,[7] a qual tem origem em Wiring, e é essencialmente C/C++.[8] O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por principiantes e profissionais. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e ferramentas mais complicadas.[9]
Pode ser usado para o desenvolvimento de objetos interativos independentes, ou ainda para ser conectado a um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real. A placa em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de shields[10]. 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,[11] Pure Data,[12] SuperCollider,[13] ActionScript[14] e Java.[15] Em 2010 foi realizado um documentário sobre a plataforma chamado Arduino: The Documentary.
História
O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época. O sucesso foi sinalizado com o obtenção de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica,[16][17] além da marca de mais de 50.000 placas vendidas até outubro de 2008.[18][19]
Atualmente, o seu hardware é feito através de um microcontrolador Atmel AVR, sendo que este não é um requisito formal e pode ser estendido se tanto ele quanto a ferramenta alternativa suportarem a linguagem arduino e forem aceites pelo seu projeto.[7] Considerando esta característica, muitos projetos paralelos inspiram-se em cópias modificadas com placas de expansões, e acabam recebendo os seus próprios nomes.
Hardware
A sua placa consiste num microcontrolador Atmel AVR de 8 bits, com componentes complementares para facilitar a programação e incorporação noutros circuitos. Um importante aspecto é a maneira padrão como os conectores são expostos, permitindo o CPU ser interligado 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 deles.[20]
A grande maioria de placas inclui 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 usem até 8 MHz e dispensem um regulador de tensão embutido, por terem uma forma específica de restrições de fator. Além de ser microcontrolador, o componente também é pré-programado com um bootloader, o que simplifica o carregamento de programas para o chip de memória flash embutido, em comparação com outros aparelhos que geralmente demandam um chip programador externo.[20]
Conceptualmente, quando o seu software é utilizado, ele monta todas as placas sobre uma programação de conexão serial RS-232, mas a forma de implementação no hardware varia em cada versão. As suas placas de serie contêm um simples circuito inversor para converter entre os sinais dos níveis RS-232 e TTL. Atualmente, existem alguns métodos diferentes para realizar a transmissão dos dados, como por placas programáveis via USB, adicionadas através de um chip adaptador USB-para-Serial, como o FTDI FT232. Algumas variantes, como o Arduino Mini e o não oficial Boarduino, usam um módulo, cabo adaptador USB, bluetooth ou outros métodos. Nestes casos, são usados com ferramentas microcontroladoras ao invés do Arduino IDE, utilizando assim a programação padrão AVR ISP.[21][22]
A maioria dos pinos de E/S dos microcontroladores são para uso de outros circuitos. A versão Diecimila, que substituiu a Duemilanove, por exemplo, disponibiliza 14 pinos digitais, 6 das quais podem produzir sinais MLP, além de 6 entradas analógicas. Estes estão disponíveis em cima da placa, através de conectores fêmeas de 0,1 polegadas (ou 0,25 centímetros).[23]
O modelo Nano, Boarduino e placas compatíveis com estas, fornecem conectores machos na parte de baixo da placa, para serem conectados em protoboards.[20]
Software
O Arduino IDE é uma aplicação multiplataforma escrita em Java derivada dos projetos Processing e Wiring.[20][24] É esquematizado para introduzir a programação para artistas e para 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 identaçã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.[9][25]
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:[20]
- setup() – Inserida no início, 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 é executado tem a simples função de piscar um LED. No ambiente de desenvolvimento, o utilizador escreve um programa exemplo como este:[26]
// define LED_PIN 13
int 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 utilizador tentar carregá-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 principalcomo mostrada abaixo:
# include<WProgram.h>
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)
{
// define LED_PIN 13
int LED_PIN = 13;
init();
setup();
for (;;)
loop();
return 0;
}
“WProgram.h” é um recurso para referenciar a biblioteca Wiring, e a função main( ) apenas faz três chamadas distintas: init( ), definida em sua própria biblioteca, setup( ) e loop( ), sendo as duas últimas configuradas 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, enviar os programas para a placa.[27]
Referências
- «Arduino - Notas de lançamento» (em inglês). Projeto Arduino. Consultado em 12 de novembro de 2015
- ↑ Ir para:a b c «Arduino: Robótica para iniciantes». Olhar Digital. 21 de março de 2010. Consultado em 2 de abril de 2010. Arquivado do originalem 25 de março de 2010. Tradução do nome Arduino pela matéria porém mantida no título da mesma.
- ↑ «Arduino - Software» (em inglês). Projeto Arduino. Consultado em 29 de janeiro de 2012
- ↑ Substantivo próprio na língua Italiana, usado para nomear pessoas, porém de origem germânica da palavra “Harduwin” ou “Hardwin”, que pode ser traduzida como Forte e Amigo, este nome se tornou popular graças ao rei italiano Arduino de Ivrea (1002-1015)«Italian Baby Names» (em inglês). Consultado em 16 de outubro de 2013. Arquivado do original em 17 de outubro de 2013
- ↑ rcruz (17 de janeiro de 2011). «Arduíno: robôs em código aberto». Artigo (Paisagem Fabricada - Planeta Sustentável). Editora Abril. Consultado em 29 de janeiro de 2012. Arquivado do original em 17 de novembro de 2012
- ↑ «Arduino: Conheça esta a plaforma de hardware livre»
- ↑ Ir para:a b «O que faz uma Placa Arduino ser um Arduino?» (em inglês). Projeto Arduino
- ↑ «Processo de construção do Arduino» (em inglês). Projeto Arduino
- ↑ Ir para:a b «Página principal do projeto» (em inglês)
- ↑ Incremente seu arduino com shields
- ↑ eberdahl, Stanford. «DIVULGAÇÃO : Workshop sobre novos controladores de música 29 de junho- 2 de julho». Anúncio de Workshop(em inglês e português). UNICAMP. Consultado em 12 de agosto de 2010
- ↑ Ir para:a b c José Henrique Padovani e Sérgio Freire (2008). «Manufatura e programação de controladores: possibilidades de desenvolvimento para aplicação em sistemas musicais interativos» (PDF). XVIII Congresso da Associação Nacional de Pesquisa e Pós-Graduação (ANPPOM). Associação Nacional de Pesquisa e Pós-Graduação em Música. Consultado em 12 de agosto de 2010. Arquivado do original(PDF) em 7 de dezembro de 2013
- ↑ «Página principal LAPPSO». Laboratório de Pesquisa e Produção Sonora da UEM. Consultado em 12 de agosto de 2010. Cópia arquivada em 1 de Dezembro de 2012
- ↑ «Arduino e Flash» (em inglês). Projeto Oficial
- ↑ «Interface Arduino para outras linguagens» (em inglês). Projeto Arduino. Consultado em 9 de novembro de 2009. Arquivado do originalem 24 de julho de 2012
- ↑ «Arquivo 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 livre pode funcionar?». Wired (em inglês). 16 (11): 166–176. Consultado em 30 de abril de 2009
- ↑ Maurício Grego (9 de março de 2009). «O hardware em ‘‘código aberto’‘». Entrevista. Info Online, Editora Abril. Consultado em 1 de agosto de 2010. Arquivado do original em 12 de março de 2009
- ↑ Ir para:a b c d e f g h i j k Diego Kasuo, Felipe Amarante, Rodrigo Medeiros e Silvia Lins. Sob supervisão do Professor Marcelo Barretto (24 de maio de 2010). «Projetos com Arduino» (PDF). UFPA. Consultado em 12 de agosto de 2010[ligação inativa]
- ↑ «Boarduino - Placa compatível com Arduino» (em inglês). Consultado em 28 de janeiro de 2010
- ↑ «ArduinoBoardMini» (em inglês). Consultado em 28 de janeiro de 2010
- ↑ Torrone, Phillip (28 de novembro de 2008). «Open source hardware 2008» (em inglês). Make Online Magazine. Consultado em 12 de agosto de 2010. Arquivado do original em 28 de fevereiro de 2009
- ↑ «Hardware.processing» (em inglês). Processing.org. Consultado em 27 de março de 2010. Arquivado do original em 11 de abril de 2010
- ↑ Ir para:a b «Baixar o Software Arduino» (em inglês). Projeto Arduino. Consultado em 12 de novembro de 2009
- ↑ Duane O’Brien (22 de dezembro de 2008). «Princípios básicos do Arduino». Projeto de um Jogo de Laser. IBM. Consultado em 12 de agosto de 2010
- ↑ Ir para:a b «Brincando de embarcados com o Arduino» (PDF). Apresentação. Programa de Educação Tutorial da UFSC. 17 de novembro de 2006. Consultado em 12 de agosto de 2010[ligação inativa]
- ↑ Erika Guimar~aes Pereira da Fonseca / Mathyan Motta Beppu. Orientador: Prof. Alexandre Santos de la Vega (Dezembro de 2010). «Apostila Arduino» (PDF). UFF. Consultado em 29 de janeiro de 2011
- ↑ Renato Cruz (30 de outubro de 2011). «USP cria centro de tecnologias interativas». Estadão. Consultado em 29 de janeiro de 2012
- ↑ Laboratório de Robótica Móvel. «CaRINA - Carro Robótico Inteligente para Navegação Autônoma». USP. Consultado em 29 de janeiro de 2012. Arquivado do original em 18 de maio de 2012
- ↑ Thiago Kenji Batisti Sato Orientador: Professor Alessandro Zimmer (2010). «Sistema Automotivo de Notificação de Acidente» (PDF). UFP. Consultado em 29 de janeiro de 2012
- ↑ Bruno Moro e Ricardo Suzin. «Automação de sistema de irrigação de pastagem» (PDF). FAG. Consultado em 29 de janeiro de 2012
- ↑ Francisco J. Gomes, Igor L. de Paula, Laís A. Vitoi, Lucas R. Conceição, Paulo C. R. Marciano (2011). «O tutorial do motor de passo»(PDF). COBENGE acessodata=29 de janeiro de 2012. UFJF[ligação inativa]
- ↑ Ir para:a b «Hardware» (em inglês). Projeto Arduino. Consultado em 12 de novembro de 2009
- ↑ «Em Oficina do Construtor: Arduino Nano 3.0» (em inglês). MAKE Online Magazine. 22 de março de 2010. Consultado em 12 de agosto de 2010. Arquivado do original em 26 de março de 2010
- ↑ Maw, Carlyn e Nugent, Rory (23 de outubro de 2008). «Configurando um Arduino numa protoboard» (em inglês). Computação Física da NYU. Consultado em 12 de outubro de 2010. Arquivado do original em 2 de outubro de 2010
- ↑ «Bem-vindo ao Arduino LilyPad» (em inglês). MIT. Consultado em 12 de agosto de 2010
- ↑ Torrone, Phillip (27 de junho de 2007). «Arduino, Arduino, Arduino (NG Plus)» (em inglês). MAKE Online Magazine. Consultado em 12 de agosto de 2010
- ↑ Carlos Henrique de Paula, Edmar Anderson Lanes Junior e Luana do Amaral Harada (27 de novembro de 2008). «Sistema de Automação Residencial Personalizado para fins de Acessibilidade» (PDF). Oficina. UFTPR. Consultado em 12 de agosto de 2010[ligação inativa]
- ↑ «Arduino Uno - Especificações» (em inglês). Makeshed. Consultado em 10 de outubro de 2010
- ↑ «Buy Arduino in authorized and official Arduino distributors». Arduino.org (em inglês). Consultado em 13 de abril de 2017. Arquivado do original em 14 de abril de 2017
- ↑ «Arduino - Credits». www.arduino.cc (em inglês). Consultado em 13 de abril de 2017
- ↑ «Buy Arduino in authorized and official Arduino distributors». Arduino.org (em inglês). Consultado em 13 de abril de 2017. Arquivado do original em 14 de abril de 2017
- ↑ «Arduino Blog » Send in the clones». Consultado em 13 de abril de 2017
- ↑ «Arduino - ArduinoShields» (em inglês). Consultado em 20 de março de 2009
- ↑ «Então você quer fazer um Arduino» (em inglês). Projeto Arduino. Consultado em 17 de março de 2009
- ↑ «Esquemas Abertos, Freeduino» (em inglês). Consultado em 13 de março de 2008. Arquivado do original em 10 de abril de 2008
- ↑ «Nome de Microcontroladores do “Rei Arduino”» (em inglês). Freeduino. Consultado em 18 de agosto de 2010
- ↑ Cunningham, Collin (9 de junho de 2008). «Freeduino SB» (em inglês). MAKE Online Magazine. Consultado em 14 de agosto de 2010. Arquivado do original em 13 de outubro de 2008
- ↑ Ir para:a b c «Arquivos Esquemáticos de PCB Freeduino» (em inglês). Freeduino Oficial. 27 de abril de 2008. Consultado em 14 de agosto de 2010. Arquivado do original em 10 de abril de 2008
- ↑ Priya Ganapati (19 de agosto de 2009). «Hackers Criam uma Placa-mãe Modular» (em inglês). Wired. Consultado em 14 de agosto de 2010
- ↑ «Componentes de Dispositivos Genéricos» (em inglês). Hackerspaces. 18 de junho de 2009. Consultado em 14 de agosto de 2010
- ↑ Marc de Vinck (21 de março de 2009). «Em Oficina do Construtor: Seeeduino V1.1» (em inglês). MAKE Online Magazine. Consultado em 14 de agosto de 2010[ligação inativa]
- ↑ Torrone, Phillip (23 de agosto de 2009). «O Wiseduino» (em inglês). MAKE Online Magazine. Consultado em 14 de agosto de 2009[ligação inativa]
- ↑ «Brasuíno». Projeto oficial. Consultado em 19 de julho de 2011. Arquivado do original em 11 de julho de 2011
mail me: marcio at sieburger dot link