Arduino, por vezes traduzida ao português como Arduíno,[1] é um computador físico baseado numa simples plataforma de hardware livre, projetada com um microcontrolador de placa única, com suporte de entrada/saída embutido e umalinguagem de programação padrão,[2] na qual tem origem em Wiring, e é essencialmente C/C++.[3] 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.[4]
Pode ser usado para o desenvolvimento de independentes objetos interativos, 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 o programar e o interagir em tempo real. Ele 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 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.[5]
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.[2] 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 atualmente 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.
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,[6][7] além da marca de mais de 50.000 placas vendidas até outubro de 2008.[8]
Índice[esconder] |
Plataforma
Hardware
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.
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 voltagem 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 dememória flash embutido, comparado com outros aparelhos que usualmente necessitam de um chip programador externo.
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 eTTL. 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.[9][10]
A maioria dos pinos de E/S dos microcontroladores são para uso de outros circuitos. A versão Diecimila, que foi substituída pela 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 plugados emprotoboards.
Software
O Arduino IDE é uma aplicação multi-plataforma escrita em Java na qual é derivada dos projetos Processing e Wiring.[11] É 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 derealce 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.[4][12]
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 é executado tem a simples função de piscar um LED. No 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 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.
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.
Até hoje foram produzidas comercialmente 11 versões do dispositivo:[13]
Modelo | Descrição e tipo de conexão ao hospedeiro | Controlador |
---|---|---|
Serial Arduino | Serial DB9 para programação | ATmega8 |
Arduino Extreme | USB para programação | ATmega8 |
Arduino Mini | Versão em miniatura do Arduino utilizando montagem superficial | ATmega168 |
Arduino Nano | Versão menor que o Arduino Mini, energizado por USB e conectado por montagem superficial | ATmega168 |
LilyPad Arduino | Projeto minimalista para aplicações portáteis, utilizando montagem superficial | ATmega168 |
Arduino NG | USB para programação | ATmega8 |
Arduino NG plus | USB para programação | ATmega168 |
Arduino BT | interface bluetooth para comunicação | ATmega168 |
Arduino Diecimila | Interface USB | Atmega168 em um pacote DIL28 (foto) |
ArduinoDuemilanove | Duemilanove significa "2009" em italiano. É energizado via USB/DC, com alternação automática | Atmega168 (Atmega328 para a versão mais nova) |
Arduino Mega | Montagem superficial | ATmega1280 para E/S adicionais e memória |
Licenças de Hardware e Software
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.[13] 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.[12]
Acessórios
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.[14] Por Exemplo (em inglês):
|
Clones
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.[15]
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.[16]
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.
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 |
---|---|
Freeduino SB | Fabricado e vendido como mini-kit pela Solarbotics Ltd. |
Freeduino MaxSerial | Placa com porta padrão serial DB9, fabricado e vendido em pacote ou em partes pela Fundamental Logic. |
Freeduino Through-Hole | Superfície montada, fabricada e vendida como um pacote pela NKC Electronics. |
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. |
metaboard | Projetada para ter pouca complexidade e baixo preço. O hardware e firmware são código aberto. É desenvolvida pela Metalab, umhackerspace em Viena. |
Seeeduino | Derivada da Diecimila. |
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. |
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 baixa da placa para facilitar 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 socket padrão de 600mil e 28 pinos. Capacidade de USB e 6 LEDs embutidos | ATmega328p |
Boarduino | Um clone inexpansivo da Diecimila feito para prototipagem, produzida pela Adafruit | ATmega328P |
Bare Bones Board (BBB) (BBB) e Really Bare Bones Board(RBBB) | Compacto e não expansivo, 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 não expansiva, 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 wireless 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 |
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 |
---|---|
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 em um microcontrolador PIC, com suporte USB nativo e programável pelo programa oficial mais um IDE construída em Python |
Nenhum comentário:
Postar um comentário