- Início
- APRESENTAÇÃO
- AUTOMAÇÃO DE ESTACIONAMENTOS
- FONTES ALTERNATIVAS DE ENERGIA
- DEFINIÇÃO DE AUTOMAÇÃO
- DEFINIÇÃO DE ELETRÔNICA
- A evolução da Eletrônica
- Medidas Eletrônicas
- Algebra Booleana ou Algebra de Boole
- Mapas de Karnaugh
- RFID
- Transistor
- Diodo Semicondutor
- Microcontroladores
- Arduino
- Técnologia SMD
- Memórias
- Sistemas de Numeração Conversão entre bases
- MATERIAIS PIROELÉTRICOS E PIEZOELÉTRICOS
- ESCOLHENDO O MELHOR MULTÍMETRO
- A NORMA RS232C PARA PORTAS SERIAIS
- ALÁLISE DE UM EQUIPAMENTO POR ETAPAS
- Mural de recados
- Contactos
Arduino
Arduino, palavra por vezes traduzida ao português como Arduíno, é 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, a qual tem origem em Wiring, e é essencialmente C/C++. 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.
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, Pure Data, SuperCollider, ActionScripte Java. 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. Seu sucesso foi sinalizado com o recebimento de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, além da marca de mais de 50.000 placas vendidas até outubro de 2008.
Atualmente, 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 aceitas por seu projeto. 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.
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 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.
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.
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 plugados em protoboards.
Software
O Arduino IDE é uma aplicação multiplataforma escrita em Java derivada dos projetos Processing e Wiring. É 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.
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:
- – Inserida no inicio, na qual pode ser usada para inicializar configuração, esetup()
- 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 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 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 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 sua chegada. Ou abrir as janelas de um escritório conforme 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 e musical.
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 11 versões do dispositivo:
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/328 |
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) |
Arduino Duemilanove | 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 |
Arduino Uno | 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 |
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 leiaute e produção para algumas versões também estão hospedadas. 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.
Acessórios
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.
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.
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.
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.
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, um hackerspace 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. |
Brasuíno | Baseada no Arduino Uno, mas redesenhada com o software livre KiCAD. Mantém compatibilidade com o Arduino Uno original, com algumas melhorias. O hardware é licenciado como GPL. Desenvolvida, fabricada e comercializada pela Holoscópio, do Brasil. |
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 |
---|---|---|
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 |
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 |