Primeiros Passos com o Arduino

Se você trabalha com eletrônica, muito provavelmente conhece ou já ouviu falar sobre o Arduino. Se você é de alguma outra área, digamos, arte e design, também é bem provável que já tenha ouvido falar sobre essa plataforma de desenvolvimento open-source. O Arduino é um projeto que se popularizou por todo o mundo devido à sua praticidade, facilidade de trabalho e preço competitivo.

Nesse artigo, vamos apresentar o que é, como surgiu, seus aspectos de hardware e software, bem como um passo a passo para configurar um ambiente de trabalho inicial e implementar o seu primeiro projeto com o Arduino.

Ao fim desse texto, espera-se que você saiba explicar e entenda em que consiste o sistema Arduino e também seja capaz de começar a desenvolver as suas primeiras aplicações. Vamos lá!

 

Figura 1: Plataforma Arduino UNO Rev 3.

O que é Arduino e por que usar ?

 

Em poucas palavras, Arduino é uma plataforma de desenvolvimento de projetos eletrônicos (ou prototipagem eletrônica, como também é comumente dito),  constituída tanto de hardware e software, e que está disponível por meio da licença Creative Commons Attribution Share-Alike license. Isso quer dizer que todos os arquivos de design do projeto Arduino estão disponíveis gratuitamente na internet e que seu software é open-source. Além disso, a plataforma pode ser utilizada tanto para trabalhos pessoais como para fins comerciais, desde que os créditos sejam atribuídos à marca Arduino e os arquivos de projeto também sejam disponibilizados sob a mesma licença.

O projeto surgiu na Itália, em 2015, a partir de um grupo de desenvolvedores liderados por Massimo Banzi. O propósito inicial era criar uma plataforma de baixo custo, fácil de trabalhar, e que pudesse ser usada por estudantes para desenvolver seus protótipos de forma eficiente e barata.         Também foi pensado para auxiliar no ensino de eletrônica para estudantes de artes e design, principalmente tendo em vista a criação de ambientes interativos, algo muito em voga dentro do design e artes contemporâneos.

As principais razões para se utilizar a plataforma Arduino em seus projetos são as seguintes:

  • Baixo custo de prototipagem
  • Softwares de simulação gratuitos disponíveis
  • Fácil de programar
  • Grande número de tutoriais, artigos e projetos prontos na internet
  • Extensa comunidade de desenvolvedores e hobbystas
  • Não requer experiência ou grandes conhecimentos prévios de eletrônica/programação (no entanto, é recomendável saber os conceitos básicos pelo menos)

O Arduino não é a única plataforma de prototipagem eletrônica do mercado. Existem outros projetos e kits de desenvolvimento, os mais comuns são o Raspberry Pi e o BeagleBone. Cada qual utiliza um microcontrolador diferente e possui projeto de hardware com características próprias. Os preços também variam bastante e algumas outras plataformas não são tão populares.

A escolha de qual kit de prototipagem utilizar depende das demandas e necessidades que o seu projeto impõe. Certamente, tendo em vista as razões citadas mais acima, o Arduino é um forte candidato para a maioria dos seus projetos.

 

Aspectos de Hardware

 

Vamos falar um pouco sobre o que o hardware do Arduino. Todas as informações aqui presentes estão disponíveis na página oficial do Arduino (veja aqui) e recomendamos que o leitor a explore como complemento a esse texto.

Não existe apenas um modelo de Arduino. São várias placas disponíveis, cada qual com diferentes níveis de complexidade e funcionalidades diferentes. São 6 classes de plataformas de prototipagem Arduino disponíveis no mercado atualmente. São elas:

  • Entry Level: Versões mais simples e focadas em quem está começando a desenvolver projetos eletrônicos.
  • Enhanced Features: Placas com funcionalidades adicionais voltadas para projetos mais complexos.
  • Internet of Things: Plataformas específicas para projetos de Internet das coisas.
  • Education: Apenas um modelo dessa classe, voltado para o ensino de eletrônica e programação.
  • Wearable: Plataformas com características específicas para o desenvolvimento de wearables, ou “tecnologias vestíveis”, como smartwatches e peças de roupa com eletrônica embutida.
  • 3D printing: Impressora 3D desenvolvida com Arduino.

Vamos focar no Arduino UNO, uma placa entry-level e um dos modelos mais populares e de custo mais acessível. É uma placa ideal para quem está dando os primeiros passos na eletrônica e no universo Arduino.

Como visto na figura 1, a placa possui uma série de pinos disponíveis para ligação e conectores para interfacear com o mundo externo. O MCU é um  Atmega328p (datasheet). As principais características da placa são:

  • 14 I/Os digitais, dos quais 6 podem ser usados como PWM
  • 6 Inputs analógicos
  • Oscilador de 16MHz
  • Conector USB
  • Conector de alimentação
  • ICSP header
  • Botão de reset

A placa pode ser alimentada tanto pelo cabo USB como por adaptador AC/DC. Todos os features do microcontrolador estão disponibilizados para interfacear com o mundo externo. Em geral, as entradas analógicas são utilizadas para ler sensores externos e as saídas PWM e outputs digitais são utilizadas para controlar motores e atuadores e acionar drivers para cargas externas.

 

Aspectos de Software

 

A IDE do Arduino também é open-source. Seu ambiente gráfico foi desenvolvido em Java e baseado em Processig e outras linguagens open-source. O ambiente de programação está disponível para Windows, MAC e Linux. O download pode ser feito diretamente na página oficial.

A linguagem de programação utilizada para escrever os códigos para Arduino é baseada nas tradicionais C/C++ (com modificações) e possui um grau de abstração muito alto e uma série de bibliotecas que encapsulam a maior parte da complexidade do microcontrolador.

Esse alto grau de abstração e o set de bibliotecas são os grandes responsáveis por fazer a programação mais intuitiva e rápida, pois não é necessário que o desenvolvedor conheça os registradores, os detalhes de memória e a dinâmica do processador.

 

Figura 2: IDE do Arduino UNO

 

Vemos que a IDE é bem simples e enxuta.

No alto temos as seguintes abas: File,  Edit, Sketch, Tools e Help. Essa última em especial  é interessante de ser sempre frequentada pelo usuário pois possui referências importantes e é a principal fonte de informações e troubleshooting.

Logo abaixo desse menu principal têm-se alguns ícones de atalho. São eles (da esquerda para a direita):

 

Figura 3: toolbar de atalhos

 

  • Verify: identifica erros de sintaxe no código
  • Upload: Carrega o software na placa
  • New: Cria uma nova aba “Sketch” em branco
  • Open: Abri um Sketch do Sketchbook
  • Save: Salva o Sketch em desenvolvimento

Para saber mais sobre programação em Arduino e linguagens C/C++ consulte nosso post “Programação: Primeiros Passos”, disponível aqui.

 

Preparando-se para Programar o Arduino

 

Agora que já sabemos o que é e quais as características de software e hardware do Arduino, vamos preparar e configurar o nosso setup de desenvolvimento.

Do ponto de vista do hardware, basta alimentarmos a placa e conectarmos o cabo USB ao computador. As demais configurações são feitas todas pela IDE. Veja os passos abaixo:

  • Alimentar e conectar Arduino ao PC pelo cabo USB
  • Na IDE, selecionar o modelo da placa
    1. Abir aba Tools, selecionar a opção Board e depois selecionar Arduino Uno
  • Selecionar porta serial para a qual a placa foi atribuída
    • Abrir aba Tools, selecionar a opção Serial Port e depois selecionar a porta COMX, em que X é o número que o PC associou à porta serial atribuída ao Arduino.

As figuras 4 e 5 ilustram os passos 2 e 3.

 

 

Figura 4: Selecionando a placa correta na IDE

 

 

Figura 5: Selecionando a porta serial (imagem de MauryMartinez)

 

Após essas configurações a IDE está pronta para carregar os programas desenvolvidos no Arduino e rodar qualquer exemplo disponível.

 

Programando a primeira aplicação

Vamos agora fazer o primeiro exemplo no Arduino. O exemplo mais simples, geralmente o  primeiro feito para se testar uma placa ou quando se está aprendendo pela primeira vez, é o famoso “Led Blink”, isto é, vamos escrever um programa para fazer um led piscar.

A plataforma Arduino UNO possui um led onboard previamente conectado ao estado lógico do pino 13. Assim, podemos utilizar esse led para o nosso exemplo.

Outra boa notícia é que a IDE dispõe de uma boa e completa biblioteca de exemplos que podem ser usados como base para uma gama muito variada de aplicações. Para acessar o exemplo do Led Blink, vá em Files → Examples → Basics → Blink.

Na figura 6 vemos o código desse exemplo:

 

Figura 6: Código exemplo Led Blink

 

No exemplo acima podemos ver as duas partes que sempre vão estar presentes em todos os seus projetos com Arduino. A função void Setup() e a função void loop().  A primeira é responsável por configurar e fazer todos os settings necessários para uma dada aplicação. Por exemplo, no caso do Led Blink, vemos a linha:  pinMode( Led, OUTPUT) .

Essa linha de código é responsável por inicializar as portas digitais como saídas. Outras configurações como frequência de sinais PWM, inicialização de portas como entrada, configurações de canais seriais, dentre outros, são todas feitas nessa função.

A segunda rotina consiste no loop infinito que se repetirá por toda a aplicação. Ou seja, após o Arduino ser energizado, o primeiro trecho de software que vai rodar é a função void setup() e, logo após, o software entre na rotina void loop(), e repete o código dentro dessa rotina continuamente. É nesse loop infinito que deve ser colocado o código referente a aplicação em si.

No caso do Led Blink temos o seguinte código no loop infinito:

 

Figura 7: Código da aplicação Led Blink presente no loop infinito

Nesse código, é chamada a função digitalWrite(led, High), responsável por atribuir nível alto ao pino led, que no caso corresponde ao pino 13 (repare na figura 6 que led é uma variável inteira para a qual foi atribuída o valor 13), ou seja, o led  ligado ao pino 13 é ativado.

Logo em seguida é chamada a função delay(1000), que pausa a execução do loop por mil milissegundos, isto é, por um segundo.

Depois de aguardar esse tempo, a função digitalWrite() é novamente chamada, mas dessa vez para atribuir nível lógico baixo ao pino 13, ou seja, para desligar o led ligado ao pino 13. Por fim, novamente a funçao delay(1000) é chamada para fazer mais uma pausa de um segundo.

Dessa forma, o led fica piscando em intervalos contínuos de um segundo. Eis o nosso exemplo Led Blink ! Simples não é ?!

Para carregar o código na placa basta clicar no ícone de Upload. O firmware será gravado no microcontrolador Atmel da placa e a primeira aplicação para fazer o led piscar estará pronta. Sempre que o Arduino for energizado o led do pino 13 ficará piscando em intervalos regulares de um segundo.

 

Simulação de aplicações Arduino com Fritzing

 

É uma prática comum e muito recomendada que todo projeto de eletrônica seja primeiro simulado via software antes de ser montado no hardware. Além de ser uma boa prática que permite ao desenvolvedor debugar e identificar erros no firmware antes mesmo de embarcar na plataforma, os simuladores também permitam que aplicações sejam desenvolvidas sem que a placa esteja necessariamente presente.

Um simulador muito popular para circuitos com Arduino é o Fritzing. É um software open-source que dispõe de uma ótima e intuitiva interface gráfica.  Nesse post apresentamos e mostramos alguns exemplos com essa ferramenta.

 

Considerações finais

 

Se você chegou até aqui, então você já sabe o que é e como funciona a plataforma Arduino. O exemplo do Led Blink é uma aplicação muito básica e recomendamos que você explore os outros exemplos disponíveis na IDE e acompanhe os posts aqui do blog. Há um ótimo documentário que muito recomendamos sobre a história do Arduino e como tudo começou (veja aqui!). Recomendamos também a ótima palestra proferida por Massimo Banzi, já mencionado no início do texto, realizada pelo famoso Ted Talks e que pode ser vista aqui.

A plataforma Arduino permite que qualquer pessoa desenvolva aplicações eletrônicas microcontroladas, e foi um marco na popularização de sistemas interativos nas áreas de design e artes, pois tornou a vida de muitos profissionais fora da área de eletrônica muito mais fácil.

Para quem trabalha com eletrônica, seja como profissional ou por hobby, o arduino permite a prototipagem e a implementação de projetos de forma rápida e com baixo custo, não sendo necessário enveredar por datasheets gigantes ou esmiuçar placas fabricadas artesanalmente à procura de problemas.  Hands on!

 

Faça sua avaliação.
Por favor, aguarde...