O ecossistema Arduino ajuda bastante. Gastando pouco, você pode construir ou comprar uma placa Arduino ou módulos acessórios para incrementar seu projeto. Há software livre ou gratuito para compilar seus programas e programá-los na placa e estão disponíveis para Windows, Linux ou MacOS. E para facilitar a vida do estudante, há vasta quantidade de informação disponível por aí, nos blogs, fóruns, apostilas e livros.
Neste artigo, vou tentar reunir o essencial para quem quer montar um ambiente de desenvolvimento completo, com compilador e programador. E o melhor, tudo gratuito!
Hardware
Para ter uma placa Arduino, um bom ponto de partida é o site oficial: www.arduino.cc. Mas é importante ter em mente que o projeto das placas é aberto (hardware livre) e você mesmo pode tentar construi-las. Outra alternativa é procurar na internet por quem já vende as placas prontinhas para serem usadas. No Mercado Livre, as placas custam a partir de uns R$ 45,00. No eBay, a partir de US$ 15,00.Mas o que é uma placa Arduino?
Basicamente, é um computador completo, com CPU, RAM, Flash e vários pinos digitais. Talvez não tão poderoso quanto seu desktop ou notebook, mas o suficiente para se conectar a botões, teclados, fones de ouvido, displays, sensores e vários outros dispositivos. Você pode arranjar essas coisas de equipamentos usados (isso é muito legal) ou comprar na internet ou em lojas de eletrônica.
As plaquinas Arduino já estão prontas para rodar o programa que você gravar na Flash, basta alimentá-la por USB (5V) ou pela entrada específica, que aceita entre 5V e 12V. Também são programáveis, ou seja, basta conectá-las na USB para subir um novor programa. Muito fácil!
Arduino IDE
Para quem está começando a programar em Arduino, o Arduino IDE talvez seja o mais indicado. É a ferramenta "oficial" do Arduino, que roda em Windows, Linux e MacOS. E o mais legal: se você usa outro sistema operacional, pode baixar os fontes e compilar em seu próprio ambiente.O Arduino IDE é o que a gente costuma chamar de Ambiente de Desenvolvimento Integrado (IDE, na sigla em inglês) e possui várias ferramentas de trabalhor: o editor de código-fonte, o compilador, o programador, o monitor de porta serial... é baseado no GCC, o compilador C da GNU, mas para deixar a linguagem C mais palatável e tirar o receio do iniciante, os desenvolvedores da ferramenta simplificaram algumas coisas:
- trocaram a famosa função void main() da linguagem C pelas funções void setup() e void loop(). Todo o código que você colocar em setup será executado uma vez, ao iniciar o programa. Todo o código na função loop vai rodar enquanto a placa estiver alimentada.
- nada de projetos ou makefiles para dificultar a vida de quem está começando, basta criar um novo "sketch".
Minha dica para quem está começando e morrendo de medo de se envolver com linguagem C: relaxa. O Arduino IDE vem com várias funções prontas para facilitar a programação em Arduino. Também há várias bibliotecas para situações específicas, como ler os dados de um sensor ou exibir um texto num display.
Minha dica para quem já é profissional e morrendo de raiva de terem feito tantas modificações: relaxa. Ainda é o bom e velho GCC rodando debaixo dos panos e, precisando, você pode evitar as funções e bibliotecas prontas e fazer tudo por conta própria.
De qualquer forma, se você já baixou o Arduino IDE e já tem uma placa Arduino, que tal testar seu ambiente? No menu File > Examples há muitos exemplos testando as funções para entra e saída com as portas digitais, controle analógico, manipulação de strings, comunicação, etc.
Eu peguei o exemplo blink, que pisca o LED do pino 13 da própria placa: um segundo ligado, um segundo desligado, repetidamente. Observe:
/*
Pisca-Pisca
Liga um LED por um segundo, então o desliga, repetidamente.
*/
// O pino 13 tem um LED na maioria das placas Arduino
int led = 13;
void setup() {
// configura a porta do LED como saída
pinMode(led, OUTPUT);
}
// roda o código abaixo enquanto a placa estiver ligada
void loop() {
digitalWrite(led, HIGH); // liga o LED
delay(1000); // espera 1s
digitalWrite(led, LOW); // desliga o LED
delay(1000); // espera 1s
}
Até que não é tão difícil, hein?