| Arduino | |
|---|---|
Arduino Uno |
|
| Desenvolvedor | • Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. • Baseado no Processing, de Casey Reas e Ben Fry. • Comunidade Código aberto. |
| Plataforma | C/C++ |
| Lançado em | 2005 |
| Versão estável | 1.0 (30 de novembro de 2011 [1][2]) |
| Escrito em | Java |
| Sistema Operacional | Microsoft Windows, Linux, Mac OS X[3][4] |
| Gênero(s) | Ambiente de desenvolvimento integrado |
| Licença | • Software em LGPL ou GPL • Hardware em Creative Commons |
| Estado do desenvolvimento | Ativo |
| Página oficial | http://www.arduino.cc/en/ (em inglês) |
| Portal das Tecnologias de informação | |
Arduino, palavra por vezes traduzida ao português como Arduíno,[3][5] é uma plataforma de prototipagem eletrônica de hardware livre, projetada com um microcontrolador Atmel AVR de placa única, com suporte de entrada/saída embutido, uma linguagem de programação padrão,[6] na qual tem origem em Wiring, e é essencialmente C/C++.[7] 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 para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas.[8]
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. Ela 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. 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,[9] Pure Data,[10] SuperCollider,[11] ActionScript[12] e Java.[13] Em 2010 foi realizado um documentário sobre a plataforma chamado Arduino: The Documentary.
Índice |
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. Seu sucesso foi sinalizado com o recebimento de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica,[14][15] além da marca de mais de 50.000 placas vendidas até outubro de 2008.[16][17]
Atualmente, seu hardware é feito através de um microcontrolador Atmel AVR, sendo que este não é um requerimento formal e pode ser estendido se tanto ele quanto a ferramenta alternativa suportarem a linguagem Arduino e forem aceitas por seu projeto.[6] 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, os mantenedores possuem um serviço de venda do produto pré-montado, através deles próprios e também por distribuidores oficiais com pontos de venda mundiais.[17]
Sua placa consiste em um microcontrolador Atmel AVR de 8 bits, com componentes complementares para facilitar a programação e incorporação para outros circuitos. Um importante aspecto é a maneira padrão que 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.[18]
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 usam até 8 MHz e dispensam um regulador de tensão embutido, 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.[18]
Conceitualmente, quando seu software é utilizado, ele monta todas as placas sobre uma programação de conexão serial RS-232, mas a maneira que é implementado no hardware varia em cada versão. Suas placas serial 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.[19][20]
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).[21]
O modelo Nano, Boarduino e placas compatíveis com estas, fornecem conectores machos na parte de baixo da placa, para serem plugados em protoboards.[18]
O Arduino IDE é uma aplicação multiplataforma escrita em Java na qual é derivada dos projetos Processing e Wiring.[18][22] É 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 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.[8][23]
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:[18]
Habitualmente, o primeiro programa que é executado tem a simples função de piscar um LED. No ambiente de desenvolvimento, o usuário escreve um programa exemplo como este:[24]
# 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 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" # 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() 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.[25]
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 sua chegada. Ou abrir as janelas de um escritório conforme a intensidade da luz do sol e temperatura ambiente.[26]
Os campos de atuação para o controle de sistemas são imensos, podendo ter aplicações na área de impressão 3D,[27] robótica,[28] engenharia de transportes,[29] engenharia agronômica[30] e musical.[3][31]
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 11 versões do dispositivo:[32]
| Modelo | Descrição e tipo de conexão ao hospedeiro | Controlador |
|---|---|---|
| Serial Arduino [18] | Serial DB9 para programação | ATmega8 |
| Arduino Extreme [18] | USB para programação | ATmega8 |
| Arduino Mini [18] | Versão em miniatura do Arduino utilizando montagem superficial | ATmega168 |
| Arduino Nano[33] | Versão menor que o Arduino Mini, energizado por USB e conectado por montagem superficial | ATmega168/328 |
| LilyPad Arduino[34][35] | Projeto minimalista para aplicações portáteis, utilizando montagem superficial | ATmega168 |
| Arduino NG[10] | USB para programação | ATmega8 |
| Arduino NG plus[36] | USB para programação | ATmega168 |
| Arduino BT[10][18] | interface bluetooth para comunicação | ATmega168 |
| Arduino Diecimila[37] | Interface USB | Atmega168 em um pacote DIL28 (foto) |
| Arduino Duemilanove[18] | Duemilanove significa "2009" em italiano. É energizado via USB/DC, com alternação automática | Atmega168 (Atmega328 para a versão mais nova) |
| Arduino Mega[18] | Montagem superficial | ATmega1280 para E/S adicionais e memória |
| Arduino Uno[38] | 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. |
ATmega328 |
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 leiaute e produção para algumas versões também estão hospedadas.[32] 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.[23]
O Arduino e clones fazem uso de shields (escudos, em inglês), nas quais são placas de circuito impresso normalmente fixados no topo do aparelho, através de uma conexão alimentada por pinos-conectores. Estes são expansões para ele, sendo que disponibilizam várias funções específicas, desde manipulação de motores até sistemas de rede sem fio.[39]
Por exemplo:
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.[25][40]
Devido a isso, um grupo de usuários 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.[41]
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.[42]
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 |
|---|---|
| Freeduino SB | Fabricado e vendido como mini-kit pela Solarbotics Ltd.[43][44] |
| Freeduino MaxSerial | Placa com porta padrão serial DB9, fabricado e vendido em pacote ou em partes pela Fundamental Logic.[44] |
| Freeduino Through-Hole | Superfície montada, fabricada e vendida como um pacote pela NKC Electronics.[44] |
| 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.[45] |
| metaboard | Projetada para ter pouca complexidade e baixo preço. O hardware e firmware são código aberto. É desenvolvida pela Metalab, um hackerspace em Viena.[46] |
| Seeeduino | Derivada da Diecimila.[47] |
| eJackino | 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.[48] |
| Brasuíno | Baseada no Arduino Uno, mas redesenhada com o software livre KiCAD. Mantém compatibilidade com o Arduino Uno original, com algumas melhorias[49]. O hardware é licenciado como GPL. Desenvolvida, fabricada e comercializada pela Holoscópio, do Brasil. |
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 |
|---|---|---|
| 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. | NC |
| Stickduino | Placa de baixo-custo, similar a um pen drive | ATmega168 |
| Roboduino | 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 radio (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 |
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 |
| A Wikipédia possui o portal: Software Livre {{{Portal2}}}
{{{Portal3}}}
{{{Portal4}}}
{{{Portal5}}}
|