• Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. • Baseado no Processing, de Casey Reas e Ben Fry. • Comunidade Código aberto.
Na informática, o Arduino[3][5][6] é 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,[7] usando o microcontroladorAtmel AVR ou ARM com suporte de entrada/saída embutido,[8] A plataforma foi criada em 2005 na Itália,[9] 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.[10] Esta plataforma é atualmente fabricada pela companhia italiana Smart Projects e também pela companhia estadunidense SparkFun Electronics.
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,[12]Pure Data,[13]SuperCollider,[14]ActionScript[15] e Java.[16]
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).[17] 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.[18]
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.[19]
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.[9] 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,[20][21] além da marca de mais de 50 mil placas vendidas até outubro de 2008.[22][23]
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.[8] 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;[9]
Clock, controlado pelo cristal oscilador, geralmente é de 16 MHz, fornecer um ritmo para as atividades do microcontrolador;[9]
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;[9]
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.[24]
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.[24]
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.[25][26]
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).[27]
O modelo Nano, Boarduino e placas compatíveis com estas, fornecem conectores machos na parte de baixo da placa, para serem conectados em protoboards.[24]
Tela do Arduino IDE mostrando um simples programa exemplo
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:[24]
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:[30]
// define LED_PIN 13intLED_PIN=13;voidsetup(){pinMode(LED_PIN,OUTPUT);// habilita o pino 13 para saída digital (OUTPUT).}voidloop(){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>voidsetup(){pinMode(LED_PIN,OUTPUT);// habilita o pino 13 para saída digital (OUTPUT).}voidloop(){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.}intmain(void){// define LED_PIN 13intLED_PIN=13;init();setup();for(;;)loop();return0;}
"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.[31]
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.[32]
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:[38]
Interface USB. Reiniciado pelo computador. Usa regulador de tensão de baixa queda que reduz a tensão de entrada quando alimentado por uma fonte externa.
Atmega168 em um pacote DIL28(foto)
Pinos com PWM: 3; Digitais: 14; De I/O: 20; Analógicos: 6
Utiliza Atmega8U2 para driver conversor Serial-USB, ao invés do FTDI. "Uno" significa "Um" em italiano. Esta versão é considerada a versão 1.0 do projeto, sendo que as placas que sucederem a esta serão referenciadas. LED integrado.
Microcontrolador USB integrado. Wi-Fi 802.11b/g/n de 2.4 GHz. Bluetooth v4.2 LE. Wifi e blueetooth usando o chip NINA W102 ESP32 Sensor de movimento. *Giroscópio
ARM Cortex-M0 + SAMD21 32bits
Pinos com PWM: 5; De I/O: 22; Digitais: 14; Analógicos: 8
Os projetos e esquemas de hardwares são distribuídos sob a licença Creative Commons Attribution Share-Alike 2.5, e estão disponíveis em sua página oficial. Arquivos de layout e produção para algumas versões também estão hospedadas.[38] A código fonte para o IDE e a biblioteca de funções da placa são disponibilizadas sob a licença GPLv2 e hospedadas pelo projeto Google Code.[29]
Acessórios
Um shield de prototipagem, montado num Arduino
O Arduino e seus clones fazem uso de shields (escudos, em inglês): placas de circuito impresso normalmente fixadas no topo do aparelho através de uma conexão alimentada por pinos-conectores. São expansões que disponibilizam várias funções específicas, desde a manipulação de motores até sistemas de rede sem fio.[46]
Exemplos:
O Arduino Ethernet Shield
O XBee Shield
Liquidware TouchShield
Shields Extensores
Liquidware InputShield
Nota: as especificações são apresentadas em língua inglesa.
O documento de política oficial enfatiza que o projeto é aberto para a incorporação de trabalhos paralelos no produto original, e apesar de o hardware e software serem projetados sob licenças copyleft, os desenvolvedores vem expressando um desejo de que o nome "Arduino" (ou derivados dele) seja exclusivo para o produto oficial, e não seja usado para trabalhos de terceiros sem autorização.[31][47]
Metalab, local onde se desenvolve o Metaboard, clone do Arduino
Devido a isso, um grupo de utilizadores criou um projeto alternativo, baseado na versão Diecimila, chamado de Freeduino, sendo que o nome não possui nenhum uso de direito autoral, e é livre para ser usado para qualquer fim.[48]
Alguns produtos compatíveis não oficiais que obtiveram êxito em lançamentos, possuem a terminação duino como forma de se referenciar ao dispositivo da qual derivaram.[49]
Modelos clone
As placas a seguir são quase ou totalmente compatíveis tanto com o hardware quanto com o software do Arduino, incluindo serem capazes de aceitarem placas derivadas do mesmo.
Modelo
Descrição
BlackBoard
Placa brasileira fabricada pela RoboCore. Utiliza o ATmega328 e é compatível com todos os shields feitos para Arduino UNO R3 e versões anteriores a ele.
Placa com porta padrão serial DB9, fabricado e vendido em pacote ou em partes pela Fundamental Logic.[51]
Freeduino Through-Hole
Superfície montada, fabricada e vendida como um pacote pela NKC Electronics.[51]
Illuminato
Utiliza ATMega645 ao invés de um ATMega168. Disponibiliza 64k de flash, 4K de RAM e 32 pinos gerais de E/S. O Hardware e firmware são código aberto. Projetada para ter uma aparência esbelta e tem 10 LEDs que podem ser controlados usando uma instrução "oculta" . é desenvolvida pela Liquidware.[52]
Pacote da CQ no Japão. Similar ao Seeeduino, podendo utilizar placa universais como os shields. Na parte de trás, há uma "estação Akihabara" de seda, parecido com o do Arduino.
Wiseduino
Placa microcontroladora, incluindo um relógio de tempo real (RTC)DS1307, com bateria reserva, um chip EEPROM 24LC256 e um conector para adaptadores XBee.[55]
Brasuíno
Baseada no arduino Uno, mas redesenhada com o software livre KiCAD. Mantém compatibilidade com o Arduino Uno original, com algumas melhorias.[56] O hardware é licenciado como GPL. Desenvolvida, fabricada e comercializada pela Holoscópio, do Brasil.
Funduino
Um clone com o objetivo de ser mais barato, mantém compatibilidade com o Arduino Uno original sem muitas melhorias.
Marminino
Um clone Cearense de baixo custo com trilhas largas e espaçadas, utiliza um ATMEGA 328 e tem objetivo de ser custo mínimo.
MBZ Pro Wifi
Placa standalone brasileira, com suporte ao módulo Wifi ESP-01, conexão para RTC e área de prototipagem para soldar componentes e módulos.
Clones com bootloaders compatíveis
As placas a seguir são compatíveis com o software do Arduino mas não aceitam shields. Elas possuem diferentes conectores para energia e E/S, tais como uma série de pinos do lado de baixo da placa, facilitando assim o uso com ProtoBoards, ou para conexões mais específicas.
Modelo
Descrição
Chip Controlador
Alevino
Módulo compacto, fabricado no Brasil pela Circuitar, com pinagem compatível com Arduino Nano e interface USB externa. Faz parte do sistema Nanoshields.
ATmega328P
Oak Micros om328p
Arduino Duemilanove compactado até um dispositivo que seja capaz de ser prototificada (36mm x 18mm), que pode ser inserida em um soquete padrão de 600mil e 28 pinos. Capacidade de USB e 6 LEDs embutidos
ATmega328p
Boarduino
Um clone de baixo-custo da Diecimila feito para prototipagem, produzida pela Adafruit
ATmega328P
Bare Bones Board (BBB) (BBB) e Really Bare Bones Board (RBBB)
Compacto e de baixo-custo, próprio para prototipagem. Feito pela Modern Device
ATmega168/328P
iDuino
Placa USB para prototipagem, produzida e vendida como um pacote pela Fundamental Logic
ATmega/168/328
Sanguino
Clone de fonte livre do arduino. Possui 64K de flash, 4K de RAM, 32 pinos de E/S gerais, um pino 40 DIP. É desenvolvido com o intuito de ser utilizado pelo Projeto RepRap
ATmega644P
LEDuino
Placa reforçada com I²C, decodificador DCC e uma interface CAN-bus. Produzida utilizando montagem superficial vendida pronta pela Siliconrailway.
Projetado para robótica. Todas as suas conexões são distribuídas para que os sensores e servos possam facilmente serem anexados. Entradas adicionais para energia e comunicação serial também estão disponíveis. Desenvolvida pela Curious Inventor, L.L.C.
NC
Wireless Widget
Compacto (35 mm x 70 mm), Baixa voltagem, bateria de energia igual ao do Arduino, e rede sem fio capaz de alcançar até 120 metros de distância. Projetado para ser tanto portátil quanto a baixo custo, para aplicações RSSF
ATmega168V/328P
ZB1
Placa que inclui Zigbee rádio (XBee). Podendo ser energizado via USB, adaptador de parede ou uma fonte de bateria externa. Projetado para baixo custo em aplicações RSSF
ATmega168
NB1A
Inclui uma bateria reserva para relógio de tempo real e quatro canais DAC, sendo que a maioria dos clones de Arduino precisam de um shield para obter esta função
ATmega328
NB2A
Inclui uma bateria reserva para relógio de tempo real e dois canais DAC. Possui o mesmo chip controlador do Sanguino, porém com memória adicional, linhas de E/S e um segundo UART
ATmega644P
Placas sem ATmega
As seguintes placas aceitam placas extensoras para Arduino mas não utilizam os microcontroladores da ATmega . Sendo assim, eles são incompatíveis com o programa original, entretanto, por causa de terem os requerimentos para funcionar os shields, podem trabalhar com outras IDEs.
Modelo
Descrição
Colduino
Sistema desenvolvido pela BRTOS baseada em arquitetura Freescale Coldfire V1
ARMmitePRO
Placa baseada em ARM, programável em BASIC ou C. Fabricada pela Coridium
Cortino
Sistema desenvolvido para ARM 32-bit, com um microprocessador Cortex M3
Pinguino
Placa baseada num microcontrolador PIC, com suporte USB nativo e programável pelo programa oficial mais um IDE construída em Python
↑«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
↑ abcdefghijkDiego Kasuo, Felipe Amarante, Rodrigo Medeiros e Silvia Lins (supervisão professor Marcelo Barretto) (24 de maio de 2010). «Projetos com Arduino»(PDF). UFPA. Consultado em 12 de agosto de 2010 !CS1 manut: Nomes múltiplos: lista de autores (link)[ligação inativa]
↑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
↑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
↑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. UFJF. Consultado em 29 de janeiro de 2012 !CS1 manut: Nomes múltiplos: lista de autores (link)[ligação inativa]
↑ ab«Arduino Hardware» (em inglês). Projeto Arduino. Consultado em 12 de novembro de 2009
↑Maw, Carlyn e Nug; nt, 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
↑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