Na informática, o ArduinoSubstantivo 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) é uma série de microcomputadores de placa única com componentes integrados. Série de plataformas programáveis de prototipagem eletrônica (para testes e projetos eletrônicos) de placa única e hardware livre (código aberto), que permite aos usuários criar objetos eletrônicos interativos e independentes, usando o microcontrolador Atmel AVR ou ARM com suporte de entrada/saída embutido, A plataforma foi criada em 2005 na Itália, com o objetivo de criar ferramentas de baixo custo, acessíveis, flexíveis, independentes e de fácil uso para principiantes, amadores e profissionais, com foco especial naqueles que não têm acesso a controladores sofisticados e ferramentas complexas. Esta plataforma é atualmente fabricada pela companhia italiana Smart Projects e também pela companhia estadunidense SparkFun Electronics.

O microcomputador trabalha com uma linguagem de programação padrão, essencialmente C/C++ (com origem na linguaguem Wiring).

Uma típica placa Arduino é composta por um microcontrolador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao computador/smartphone hospedeiro, usado para programá-la e interagi-la em tempo real. 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.

O microcontrolador do Arduino é programado para produzir sinais elétricos que controlam os sensores e atuadores conectados, que podem realizar várias tarefas, como por exemplo automação residencial (controle de aparelhos). Algumas versões da placa não possui recurso de rede integrado, sendo comum combinar um ou mais Arduinos deste modo, usando extensões chamadas shields.Incremente seu arduino com shields

O nome Arduino vem de um bar na comuna italiana de Ivrea, onde alguns dos fundadores do projeto costumavam se reunir. O bar foi nomeado após Arduíno de Ivrea, que foi o marquês de Ivrea e rei da Itália de 1002 à 1014.

Em 2010 foi realizado um documentário sobre a plataforma chamado Arduino: The Documentary.

História A plataforma iniciou em 2005 na cidade italiana de Ivrea (Itália) com os pesquisadores David Cuartielles, David Mellis, Gianluca Martino, Massimo Banzi e, Tom Igoe. Inicialmente projetada 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 na premiação Prix Ars Electronica, além da marca de mais de 50 mil placas vendidas até outubro de 2008.

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. 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

Componentes básicos A placa Arduino é composta basicamente pelos seguintes componentes: Microcontrolador, que realiza o controle das operações e instruções dadas à placa; Clock, controlado pelo cristal oscilador, geralmente é de 16 MHz, fornecer um ritmo para as atividades do microcontrolador; Módulo de comunicação com um computador, composto por uma entrada USB e um microcontrolador dedicado, uma ponte para upload de um código para o Arduino; Conector de alimentação; Conectores para sensores, esses fazem ou leitura analógica ou leitura digital.

Hardware thumb|esquerda|Arduino conectado a uma protoboard|200px

A sua placa consiste num microcontrolador Atmel AVR de 8 bits, com componentes complementares para facilitar a programação e incorporação em outros 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.

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.

thumb|direita|FTDI acoplado num Arduino NG|200px

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.

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).

O modelo Nano, Boarduino e placas compatíveis com estas, fornecem conectores machos na parte de baixo da placa, para serem conectados em protoboards.

thumb|direita|Tela do Arduino IDE mostrando um simples programa exemplo|200px

Software O Arduino IDE é uma aplicação multiplataforma escrita em Java derivada dos projetos Processing e Wiring. É 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.

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 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:

// 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 principal como 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.

Aplicações A principal finalidade do Arduino num sistema é facilitar a prototipagem, implementação ou emulação do controle de sistemas interativos, a nível doméstico, comercial ou móvel, da mesma forma que o CLP controla sistemas de funcionamento industriais. Com ele é possível enviar ou receber informações de basicamente qualquer sistema eletrônico, como identificar a aproximação de uma pessoa e variar a intensidade da luz do ambiente conforme a sua chegada. Ou abrir as janelas de um escritório de acordo com a intensidade da luz do sol e temperatura ambiente.

Os campos de atuação para o controle de sistemas são imensos, podendo ter aplicações na área de impressão 3D, robótica, engenharia de transportes, engenharia agronômica, musical. ou até mesmo em ambiente escolar, para o desenvolvimento de experimentos otimizando assim a aprendizagem dos alunos tanto na área de física quanto de química.thumb|direita|Diecimila Hardware oficial O Arduino original é fabricado pela companhia italiana Smart Projects, porém a estadunidense SparkFun Electronics também possui algumas marcas comerciais sob a mesma licença.

Foram produzidas comercialmente 13 versões do dispositivo: