terça-feira, 25 de outubro de 2011

Introdução ao Arduino - Plataforma de Hardware e Software Open-Source

Faz bastante tempo desde a última vez que escrevi neste blog, a roda já havia sido inventada mas a Internet ainda estava nos seus primórdios. :) Parece que o pessoal se cansou de escrever por aqui, depois que os filhos nasceram e cresceram os brinquedos mudaram, o máximo em tecnologia que o pessoal está utilizando são móbiles motorizados e com controle remoto. :)

Nesse post vou falar um pouco da introdução e funcionamento do Arduino, fique tranquilo que vai ser bem light, qualquer um com noções em informática vai tirar de letra.
Já faz algum tempo que me interesso por temas como automação residencial e robótica, entretanto era muito difícil encontrar um microcontrolador que fosse de fácil utilização, não que eu não possa programar em liguagem de máquina, pelo contrário, até acho fascinante mas pra ligar e apagar LEDs e relês, entretanto quando adicionamos itens como ethernet e rádio a coisa começa a ficar um pouco mais complicada.

Foi então que descobri o Arduino, uma plataforma de hardware e software open-source com muuuita documentação e o mais importante, BIBLIOTECAS. Isso quer dizer que para praticamente qualquer dispositivo que você queira interagir, há uma biblioteca disponível, como por exemplo: ethernet, teclados matriciais, servo motores, motores de passo, WiFi, rádio frequência, e assim por diante, a quantidade de bibliotecas é muito grande.

Neste primeiro post (espero escrever mais de um!) vou comentar bem por cima como funciona o Arduino e o exemplo de código. Só pra que ninguém se decepcione, pretendo postar num próximo artigo um pouco do módulo de rádio-frequência RFM12B que permite a comunição por rádio entre Arduinos, aumentando as possibilidades para o desenvolvimento de qualquer projeto.


Hardware
O Arduino esta baseado na linha de microcontroladores ATmega da Atmel. Entre os modelos compatíveis temos o ATmega168, ATmega328, ATmega1280 e ATmega2560. Os dois primeiros são muito similares, diferindo basicamente na quantidade de memória (16KB e 32KB respectivamente), assim como os outros dois (128KB e 256KB).
Em relação às características básicas do microcontrolador como entradas e saidas analógicas e digitais e memória temos o seguinte (exemplo para o modelo ATmega328, presente no hardware UNO):

  • 14 entradas/saídas digitais (6 delas podem ser usadas como PWM);
  • 6 entradas analógicas;
  • 1 interface serial;
  • 32KB de flash;
  • 2KB de SRAM;
  • 1KB de EEPROM.
As placas de desenvolvimento do Arduino já vem com todos os componentes necessários para o desenvolvimento, ou seja, a placa já vem montada, é plugar na USB, pendurar os componentes e sair programando. Abaixo um exemplo do Arduino UNO com interface USB:



Como vocês podem ver, do lado esquerdo temos o conector USB e o conector de energia. Eles não devem ser ligados simultâneamente. Enquanto estiver desenvolvendo, provavelmente só vai precisar do USB, assim você alimenta sua placa e ainda pode fazer o upload dos programas e acompanhar seu andamento via interface serial, isso mesmo, a interface USB serve pra tudo isso.

Na parte superior da placa temos os pinos de 0 a 13 sendo eles entradas/saidas digitais, interface serial e PWM, conforme descrito na imagem. Por ultimo temos na parte inferior o ATmega328 e as entradas analógicas assim como Reset, GND e 5V, entre outros.


Software
Lembra que eu disse que o Arduino era composto por hardware e software open-source, isso mesmo, o IDE (ambiente de desenvolvimento integrado) do Arduino também é open-source e pode ser baixado aqui, com versões para Windows, Linux e Mac. É no IDE que você vai desenvolver o programa que irá rodar no Arduino, e com ele irá fazer o upload do programa para a placa. A janela abaixo mostra a tela inicial do IDE:



O IDE está divido basicamente em três partes, a barra de botôes onde você pode compilar e fazer o upload do código para sua placa, o primeiro quadrado em branco onde você vai digitar seu código e o quadrado em preto onde você vê os erros de compilação, caso existam.


Código Exemplo 
Abaixo temos um código de exemplo que acende um LED conectado ao pino 13 do seu Arduino uno a cada 1 segundo:

void setup()
{
//define o pino 13 como saída 
pinMode(13, OUTPUT);

void loop()
{
digitalWrite(13, HIGH); // liga o LED conectado ao pino 13
delay(1000); // Espera 1 segundo
digitalWrite(13, LOW); // desliga o LED conectado ao pino 13
delay(1000); // Espera 1 segundo

Copie e cole o trecho acima no IDE, plugue seu Arduino UNO na USB e faça o upload para a placa, você vai ver o LED onboard do Arduino piscar a cada 1 segundo.

No próximo post vamos ver algo bem mais complexo, espero que vocês tenham gostado e já saiam na procura de um Arduino pra comprar. Consegui o melhor preço do meu Arduino Mega no Mercado Livre, os sites especializados vão querer cobrar o dobro do preço.

[]'s e até a próxima!