Introdução à Programação de Arduino - Volume 1
Arduino, uma plataforma para programação de microcontroladores
Do ponto de vista de nosso estudo, nos interessa a parte que diz respeito à programação e desenvolvimento do dispositivo que faz o controle efetivo. Ou seja, do microcontrolador, que no exemplo dado é responsável por detectar o latido insistente do cão e realizar uma ação em decorrência disso. A ação foi o envio de um email, mas poderia perfeitamente ter sido outro o evento, como por exemplo o acionamento de um sistema que abastece a vasilha de comida ou de água do amigo. Ou ainda de uma campainha tocando na casa de um vizinho, alertando para o desconforto do fiel amigo. Trocando em miúdos, nos interessa saber como programar o microcontrolador para realizar uma determinada tarefa em função de uma dada condição que se apresente e essa é a proposta desse livro e a razão de nosso estudo: aprender a programar o microcontrolador. Portanto, daqui até o final do livro trataremos de conhecer em pormenores aquela que vem sendo, nos últimos anos, a plataforma de desenvolvimento para microcontroladores que mais popularidade adquire: Arduino. Veremos ao longo do livro que essa popularidade não é fortuita, pelo contrário, ela se justifica plenamente.
Arduino, uma plataforma para programação
de microcontroladores
Uma coisa que eu percebo com alguma frequência é que existe uma certa confusão sobre o Arduino. É um microcontrolador? Um ambiente de desenvolvimento, também conhecido como IDE? Uma linguagem de programação de microcontroladores? Um conceito? O quê, afinal? É importante esclarecer isso antes de prosseguirmos.
Arduino é um conceito, uma ideia, aliás, uma ótima ideia. Mas primeiro, vejamos o que ele não é: não é um microcontrolador e não é uma linguagem de programação e, sendo assim, falar em microcontrolador Arduino ou em linguagem Arduino não faz sentido. Como eu disse, Arduino é, acima de tudo, um conceito, uma nova maneira de pensar e encarar a programação de microcontroladores. Quando falamos em Arduino, estamos falando ao mesmo tempo de, basicamente, três coisas:
• Em primeiro lugar, é uma placa, ou circuito, preparado para o
desenvolvimento de programas para microcontroladores. Normalmente o microcontrolador, alojado na placa, é da Atmel© (leia-se Microchip©), um grande fabricante, podendo ser um entre alguns dos modelos disponibilizados pela Atmel©. Há várias versões de Arduino, como por exemplo o Uno, que utiliza um microcontrolador Atmega328P e que é o objeto de estudo desse livro.
• É também um IDE - Integrated Development Environment ou Ambiente de Desenvolvimento Integrado, especialmente preparado para a programação e desenvolvimento com as placas de Arduino. O IDE pode ser usado com qualquer das versões de placas existentes, como o UNO, já citado, o Duemilanove, o LilyPad, entre outros. Ele é gratuito e open source e existe em duas versões, uma que roda localmente, instalada no seu computador e uma versão web, rodando em nuvem, como veremos mais tarde. Esse IDE vem acompanhado de uma biblioteca extensa e de ferramentas que facilitam grandemente a programação, como veremos logo.
• Um compilador que possibilita converter o programa, escrito num
dialeto do C++ especialmente preparado para essa tarefa, em linguagem de máquina, sequências de zeros e uns, do microcontrolador alvo.
O terceiro item é, na realidade, uma extensão do segundo mas eu o apresentei em separado para ressaltar sua importância. Na prática podemos pensar no Arduino como uma composição de hardware - a placa contendo o microcontrolador, periféricos e sistema de entrada e saída - e software - o IDE. Além dos itens citados, vale a pena destacar novamente a grande biblioteca de funções disponíveis para a execução das mais variadas tarefas comuns em programas dessa natureza. Essa biblioteca confere um enorme poder ao Arduino, permitindo que tarefas complexas sejam realizadas sem exigir esforço em demasia por parte do programador.
Agora, antes de detalharmos cada uma dessas partes, gostaria de falar um pouco sobre a concepção do Arduino e sobre as ideias que levaram à criação dessa plataforma.