Introdução ao Desenvolvimento na plataforma Arduino
Autor: marvinlemos.net | Publicado: 2010-12-08T09:41:00-08:00

Arduino é uma pequena placa com um microcontrolador e uma entrada USB para conectar a um computador, além de possui vários sockets de forma que a placa pode ser conectada a um grande número de dispositivos externos, como, por exemplo, motores, sensores de luz, temperatura, microfones, etc. Eles podem ser alimentados através de uma conexão USB com o computador ou por meio de uma bateria de 9V. Podem ser controlados a partir do computador ou programados através do computador e, em seguida, desconectados deles, operando de forma independente.   	 	 	 	p { margin-bottom: 0.08in; }   Arduino é uma plataforma de hardware livre, significando que qualquer pessoa ou empresa pode projetar e criar seus próprios clones do Arduino e vendê-los.     O nome “Arduino” é reservado aos fabricantes originais. Contudo, desenvolvedores de clones do Arduino frequentemente deixam as letras “duino” ao fim do nome dos seus produtos, como, por exemplo, Freeduino e DFRduino.   	 	 	 	p { margin-bottom: 0.08in; }   Programar o Arduino é fácil e a IDE de desenvolvimento está disponível para as plataformas Windows, Mac e Linux, sem nenhum custo.   	 	 	 	p { margin-bottom: 0.08in; }a:link {  }  Para começar a desenvolver para o Arduino, é necessário, primeiro, ir ao site oficial (www.arduino.cc) e fazer o download da IDE de desenvolvimento. Além disso, é necessário adquirir um Arduino. Recomendo a leitura deste post e deste para saber como adquirir seus equipamentos.   Na verdade, há diferentes projetos de placas Arduino. Cada uma podendo ser usada em projetos diferentes. Contudo, todos podem ser programadas com o mesmo ambiente de desenvolvimento do Arduino e, em geral, programas que funcionam em uma placa irão funcionar nas outras.  Neste artigo, pretendo demonstrar minha experiência inicial com a placa Arduino Uno. Adquiri este kit para iniciante através da Multilógica. O kit custou R$ 218,00, fora o custo do sedex. Apesar do site oferecer um carrinho de compras, aparentemente não está funcionando. Assim, para comprar qualquer produtos deles, deve ser encaminhado um e-mail para info@multilogica-shop.com informando os itens de interesse mais o seu CEP. Eles calculam o frete e respondem com o preço final. A resposta da empresa foi muito rápida e, em três dias, recebi o meu kit.   	 	 	 	p { margin-bottom: 0.08in; }   O Kit é composto dos seguintes itens:  1 	Arduino Uno1 	Cabo USB - Para conectar o 	Arduino ao seu computador 	1 	Protoboard - Para testar 	seus primeiros circuítos conectando os outros componentes do kit 	sem soldas 	 	1 Sensor de temperatura (termistor ntc 1k) 	1 	Sensor de luminosidade (LDR 5mm)  	 	 	1 potenciômetro 10kΩ  	 	1 	chave momentânea (botão)  	 	5 	LEDs amarelos  	 	5 	LEDs verdes  	 	5 	LEDs vermelhos  	 	15 	resistores 330Ω  	 	2 	sensores/atuadores piezoelétricos  	 	10 	jumpers (para conexões) 15cm  	 	10 	jumpers (para conexões) 10cm  	 	10 	jumpers (para conexões) 5cm   	 	 	 	p { margin-bottom: 0.08in; }   A placa pode ser alimentada com qualquer voltagem entre 7 e 12 volts. Assim, uma pequena bateria de 9V será suficiente para pequenas aplicações. Entretanto, enquanto você estiver desenvolvendo a sua aplicação e testando na placa, é conveniente deixar a placa sendo alimentada através de uma conexão USB com o seu computador (Conforme ilustrado na figura abaixo).   Há duas filas de conectores nas extremidades da placa Arduino UNO. A fila no topo do diagrama é composta basicamente de pins digitais (on/off), embora qualquer pin marcado com “PWM” pode ser usada com saída analógica. A fila na parte de baixo é composta de conectores de energia na parte esquerda e entradas analógicas na parte da direita.   O mais interessante é que esses conectores são organizados de forma que placas “shields” possam ser plugadas à placa principal. Além disso, outros shields podem ser plugados no shield conectado à placa principal, estendendo, assim, a funcionalidade do seu Arduino.   É possível comprar shields para as mais variadas funções:   	Conectar a redes ethernet 	Telas LCD e touch screens 	 	Xbee (comunicação sem fio utilizando o protocolo Zigbee) 	 	Som 	 	Controle de Motor    	 	 	 	p { margin-bottom: 0.08in; }   Instalando o software de Desenvolvimento   	 	 	 	p { margin-bottom: 0.08in; }a:link {  }   Conforme dito anteriormente, o software está disponível no site oficial (www.arduino.cc). Como nos meus testes estou utilizando Linux, baixei a versão específica no seguinte endereço: http://files.arduino.cc/downloads/arduino-0021.tgz (versão 32-bits).   Em seguida, basta extrair o conteúdo do arquivo em qualquer diretório do sistema. Será criado uma pasta chamada “arduino-0021”.	 	 	 	p { margin-bottom: 0.08in; }   Entre nessa pasta e execute um arquivo chamado “arduino”.O ambiente de trabalho está ilustrado na imagem abaixo:   	 	 	 	p { margin-bottom: 0.08in; }   Configurando o ambiente   Conecte o Arduino ao computador, através da porta USB e espere alguns segundos, para que o sistema reconheça o novo dispositivo. Para você ter certeza que a placa foi reconhecida, abra um terminal e, no prompt, execute o seguinte comando:   $ dmesg   Procure nas últimas linhas, uma linha mais ou menos parecida com essa:   [56999.967291] usb 5-2: FTDI USB Serial Device converter now attached to ttyUSB0   Essa mensagem indica que o kernel reconheceu um novo dispositivo conectado através da porta /dev/ttyUSB0. O sistema nem sempre reconhece como ttyUSB0, mas, em geral, é /dev/tty<alguma_coisa>   Em seguida, devemos configurar o ambiente de desenvolvimento para utilizar a porta serial que o sistema reconheceu. Esta configuração em feita em “Tools” → “Serial Port”.   Além disso, temos que configurar a placa que estamos utilizando. Clique em “Tools” → “Board” e escolha a opção “Arduino Uno”.   Hello World !!!!     Nosso primeiro projeto será o equivalente Hello World para dispositivos embarcado. Neste caso, como não temos um terminal para imprimir a famosa mensagem, vamos pedir para o  nosso programa piscar (blink) um LED.   A placa do Arduino vem com um LED embutido, conectado ao pin digital 13. Esta conexão ao LED faz com que o pin seja sempre de saída (output), mas como o LED usa pouca quantidade de corrente, ainda é possível conectar outras coisas ao pin.   Com a IDE do Arduino aberta e com as configurações de Serial Port e Board acertadas, conforme explicado anteriormente, vamos escrever o nosso programa, ou, sketch, como os programas para a plataforma são chamados dentro da comunidade Arduino.   Escreva o código abaixo:   int ledPin = 13; void setup() {                     // initialize the digital pin as an output.    // Pin 13 has an LED connected on most Arduino boards:    pinMode(ledPin, OUTPUT);        }   void loop() {    digitalWrite(ledPin, HIGH);   // set the LED on    delay(200);              // wait for a second    digitalWrite(ledPin, LOW);    // set the LED off    delay(200);              // wait for a second  }    Ainda não tinha comentando, mas a programação é feita basicamente em C. Caso você não tenha familiaridade com essa linguagem de programação, recomendo procurar as várias apostilas e tutoriais disponíveis na internet.   Perceba que no nosso código temos duas funções, retornando void: setup() e loop(). A função setup() é executada apenas uma vez, durante a inicialização do sketch (termo muito utilizado, pela comunidade, em substituição ao nome 'programa'). É utilizada, como o próprio nome sugere, para realizar configurações. Nesse nosso caso, estamos definindo qual o modo de operação do pin que utilizaremos para conectar o LED. Como falei no começo dessa seção, utilizaremos o pin 13, que já possui um LED embutido, conectado a ele. Assim, definimos que o pin será de saída (output). Fizemos essa configuração através da chamada à função pinMode():   pinMode(ledPin, OUTPUT);       A função pinMode() recebe dois parâmetros. O primeiro corresponde ao pin que estamos trabalhando, no caso o 13. O segundo parâmetro corresponde à forma de trabalho do pin, neste caso, utilizamos a constante OUTPUT para especificar que o pin será de saída.   A função loop() é função principal do seu sketch. É nesta função que colocamos o código responsável por fazer o LED piscar.   O código é bastante simples. Inicialmente, fazemos o LED acender, chamando a função   digitalWrite(ledPin, HIGH). Perceba que passamos como parâmetro o pin e a constante HIGH, indicando que queremos acender. Em seguida, utilizamos a função delay(200) para fazer com o processador pare por 200milisegundos. Depois, através da função digitalWrite(), apagamos o LED e, por último, fazemos com que o processador pare, novamente, por 200 milisegundos.   A função loop, como o próprio nome indica, é executada em loop infinito, enquanto a placa estiver sendo alimentada.   Depois te terminado o código, temos que fazer o upload para a placa. Com a placa conectada através da interface USB, clique no botão Upload da IDE, conforme indicado na figura abaixo.   	 	 	 	p { margin-bottom: 0.08in; }   Se tudo ocorrer bem, haverá uma pequena pausa e então, os dois LEDs vermelhos começarão a piscar, indicando que o sketch está sendo transferido para a placa. Esta operação deve demorar em torno de 5 a 10 segundos.   Quando a transferência estiver terminada, a placa será automaticamente reiniciada e, se tudo tiver ocorrido bem, o LED conectado no pin 13 irá piscar intermitentemente. A imagem abaixo ilustra a posição do LED.