Technè

Tecnologia & Experiência do Usuário no C.E.S.A.R

Iniciando com Arduino

Posted by Tiago Barros On outubro - 20 - 2010

Arduino

Arduino é uma plataforma para desenvolvimento de interfaces físicas para os computadores, de forma que seja possível sentir e controlar o mundo físico a partir do seu desktop ou notebook. Esta plataforma consiste em uma placa eletrônica com um microcontrolador e um ambiente de desenvolvimento que permite escrever e executar código nesta placa. Tanto o hardware quanto o software do Arduino são open-source, o que faz com que a ferramenta esteja sempre em constante evolução, impulsionada pela comunidade de usuários.

Arduino pode ser usado para desenvolver objetos interativos, tomando as entradas a partir de uma variedade de switches ou sensores, e controlando uma variedade de luzes, motores e outras saídas físicas. Projetos em Arduino podem ser stand-alone, ou podem ser comunicar com algum software em execução no computador (como por exemplo, Flash, Processing, MaxMSP.). As placas podem ser montadas à mão ou compradas pré-montados. O ambiente de desenvolvimento open-source pode ser baixado gratuitamente.

A linguagem de programação Arduino é uma implementação do Wiring (sub conjunto de C++, mas bem mais fácil :) ), que é baseada no ambiente de programação Processing. A filosofia da plataforma Arduino é de ser fácil de usar, até por pessoas que não são das áreas de eletrônica e computação. Assim, a grande contribuição do projeto em si é justamente a facilidade de utilizar eletrônica e computação como meio (e não como finalidade principal) para o desenvolvimento de objetos interativos, sem que se precise conhecer as partes internas de um microcontrolador, seus registradores e como acessar seus periféricos.

O Hardware padrão da plataforma Arduino é composto por um microcontrolador Atmel  ATmega328, que possui 14 portas de entrada e saída digital (das quais 6 podem ser usadas para saída analógica emulada -- PWM), 6 portas de entrada analógica, 32kB de memória flash e 2kB de memória RAM, rodando com um clock de 16 MHz.

Para começar a desenvolver objetos interativos com Arduino, são necessários 2 componentes principais: a placa Arduino, que pode ser comprada em várias lojas online no Brasil; e o ambiente de desenvolvimento, que pode ser baixado aqui. A maioria das placas Arduino utiliza um chip FTDI para conversão USB /serial, uma vez que o ATmega328 não possui interface USB. Desta forma, é necessário instalar este driver no Windows. Para o Linux, o driver FTDI já faz parte do kernel (a partir do 2.6.31). A nova placa UNO utiliza um ATmega8U2 pra a comunicação USB /serial e não precisa de drivers, apenas um arquivo .inf.

Uma vez instalados os drivers para comunicação e descompactada a IDE, precisamos apenas definir na IDE qual a placa que está sendo usada, para que a IDE reconheça o bootloader e consiga enviar o seu código corretamente para a placa. Depois, é só setar em que porta serial (virtual) está conectada a sua Arduino. Estas duas definições podem ser vistas na figura abaixo.

Configurações Arduino

A proxima figura mostra a interface da IDE, com os seus principais elementos.

Arduino IDE

A estrutura de um programa Arduino (chamado de sketch) é composto por duas funções principais: setup() e loop(). Como é possível perceber, a função setup() é utilizada para o código de inicialização do programa (definição dos pinos de entrada e saída, valores iniciais de variáveis, etc) e só é chamada uma vez, no início da execução. A função loop() fica executando continuamente depois que a função setup() é executada, e possui o código principal do seu programa.

Estrutura do Sketch

Um programa simples que podemos executar no Arduino e que não necessita de nenhum hardware adicional é o programa para fazer um LED piscar, assim, vamos começar por ele. Este exemplo está disponível na própria IDE, menu File->Examples->Basic->Blink . Neste exemplo, vamos utilizar 3 funções da API do Arduino:

  • pinMode() -- função utilizada para configurar um pino digital como entrada ou saída.
  • digitalWrite() -- escreve um valor (0 ou 1) em um pino digital que foi definido como saída.
  • delay() -- “trava” a execução por um determinado intervalo de tempo.

Vamos utilizar o pino 13 como pino de saída para acender e apagar o LED, porque nas placas padrão do Arduino já existe um LED previamente ligado a este pino. Assim, a nossa função setup() precisa apenas configurar este pino como um pino de saída, o que pode ser feito da seguinte forma:

Para que o LED fique piscando indefinidamente, devemos ligá-lo (escrever o valor 1 ou HIGH no pino correspondente) e depois desligá-lo (escrever o valor 0 ou LOW no pino correspondente), sempre aguardando um determinado tempo entre estas operações, que é o que vai definir a velocidade em que o LED ficará piscando. Assim, o código para a nossa função loop() pode ser escrito da seguinte forma:

Código do Blink

Uma vez finalizada a escrita do código, basta clicar no botão de upload ( Botão Upload ) para que o código seja compilado, enviado e executado na placa. Abaixo segue um vídeo do programa rodando na placa Arduino.

Nos próximos posts sobre o Arduino serão abordados outros recursos da plataforma, como entrada e saída analógica e uso de vários sensores e atuadores.

Categorias: Geral

One Response to “Iniciando com Arduino”

  1. [...] primeiro post da série, falamos sobre como iniciar o desenvolvimento de objetos interativos com Arduino. Agora, vamos ver [...]

Leave a Reply