Fala pessoal, tudo bem com vocês? O tutorial de hoje é especial, e caso você que seja fissurado no Arduino e usa, em muitos projetos, bibliotecas como a <Servo.h>, este post vai te levar a um outro nível, agora você vai aprender a criar uma biblioteca que tem a função de facilitar o código PISCA LED, com a biblioteca pronta e inserida no código, o led irá piscar com apenas 01 linha de programação!
Mas o que é uma Biblioteca?
Uma biblioteca ou pacote é um conjunto de instruções desenvolvidas para executar algumas tarefas específicas relacionadas a um determinado, sensor, processo ou atuador. Por exemplo, peguemos a biblioteca do acelerômetro MPU6050, a biblioteca dele é a MPU6050.h e ela possui funções desenvolvidas especificamente para rodar tarefas como, configurar o acelerômetro, ler dados de aceleração, giroscópio, temperatura e etc. Esse é o segredo que fez a biblioteca se tornar tão popular, as funções facilitam o desenvolvimento de um código o tornando mais simples e organizado.
E desenvolver uma biblioteca própria, não é bicho de sete cabeças, elas podem ser desenvolvidas por qualquer pessoa, inclusive por nós, meros mortais que ao se dedicar no desenvolvimento delas ajudamos crianças, jovens e estudantes a entrar no mundo da programação de uma forma mais simples e amigável, tornando prazeroso este processo de descoberta da tecnologia, então sem mais enrolação, vamos a programação.
Desenvolvendo a biblioteca
Abra a IDE do Arduino e crie um novo arquivo e escreva um cabeçalho como na imagem abaixo:
Mesmo não tendo codificado nada ainda vamos salvar este novo arquivo que acabamos de criar, ele será o primeiro programa salvo, ele será o programa que irá apresentar um exemplo para o uso da nossa biblioteca, salve com um nome que faça sentido pois ele aparecerá na aba exemplos da IDE do Arduino
Agora sim vamos começar a codificar a nossa biblioteca, abra uma outra nova aba e a salve com o nome: piscaLed.h!
Achou algo semelhante? Pois é, o .h é a extensão conhecida quando importamos uma biblioteca, lembra? #include <SoftwareSerial.h>, então verdadeiramente esse é o arquivo que dá o nome a sua biblioteca, por isso nomeei a minha com um nome sugestivo, piscaLed.h. Logo, quando algum maker for importá-la para o código irá escrever #include <piscaLed.h>.
No código da extensão .h tem algumas instruções que é novidade para alguns como o class, public, private e #endif, alguns desses conceitos são derivados da programação orientada a objetos (POO), que não é o nosso foco no momento, mas vamos passar rapidamente por elas:
- class: é com essa palavra chave/reservada que criamos uma classe, que em nosso caso definimos ser pisca.
- public: é quando quero definir que a variável/função dentro dessa estrutura é pública, o que em orientação objetos quer dizer que podemos acessar a variável/função dentro e fora da classe originária.
- private: é quando quero definir que a variável/função dentro dessa estrutura é privada, isso quer dizer que só é possível acessar dentro da própria classe que contém a variável/função.
- #ifndef Esta diretiva verifica se o identificador não está definido no momento.
- #endif Esta diretiva acaba com o escopo da diretiva.
Agora salve este arquivo, e depois abra mais uma nova aba, como nas imagens abaixo:
Essa nova aba vamos dar o nome de piscaLed.cpp, agora criaremos um novo código nesta arquivo, porém com a extensão .cpp, que se refere a famosa linguagem de programação C++ (C plus plus).
Nesse arquivo você precisa incluir a biblioteca Arduino.h e a biblioteca piscaLed.h, a que estamos criando, nela será escrita a lógica em si do funcionamento da biblioteca, e para entendermos esse conteúdo será necessário o conhecimento de um pouco de lógica de programação em C++, caso deseje um post sobre este assunto comenta aqui, que poderemos planejar um.
Vamos falar da única linha diferente, a linha em que usamos a classe pisca como :: junto com uma função criada que chamamos piscaTempo, o que está acontecendo nessa linha?
Essa função piscaTempo( ) é a que vai ficar visível para o usuário e você está atribuindo ela a classe pisca, que por sua vez está definida no arquivo piscaLed.h, a mesma incluída acima, agora entendeu porque precisamos incluí-la?
Parece complicado? Se ficou muito abstrato, pense assim: no arquivo .h nós definimos a estrutura da classe pisca, lá foi dado o nome pisca para a classe, foi definido que ela terá duas funções públicas, uma chamada pisca e que recebe como parâmetro um inteiro que demos o nome de pin, e uma outra função chamada piscaTempo que também recebe como parâmetro um inteiro que neste caso recebeu o nome de ms(abreviação de milisegundos).
Usando a biblioteca
E agora para finalizar, vamos mostrar como utilizar a biblioteca que acabamos de criar!
Comece fechando o seu programa:
Vá até a pasta onde salvou os arquivos que fizemos ao longo deste tutorial, e crie um novo arquivo .txt e dê o nome keywords.txt para ele.
Por exemplo, eu salvei os meus arquivos na minha área de trabalho na pasta exemploPisca, como vocês podem ver na imagem abaixo:
Agora que localizei onde salvei os arquivos, acessei a pasta e adicionei um novo arquivo chamado keywords.txt, como nas imagens que seguem abaixo:
Abra este novo arquivo e digite o seguinte texto nele:
Agora salve este arquivo e adicione uma nova pasta que terá o nome de exemplos, como descrito nas imagens abaixo:
Agora arraste o arquivo de exemplo para a pasta exemplos que acabamos de criar, é aquele primeiro arquivo que criamos, que dei a sugestão para você nomeá-lo de forma que fizesse sentido, lembra?
No meu caso aqui, o arquivo tem o nome de exemploPisca, na imagem abaixo você pode vê-lo dentro da pasta exemplos:
Agora adicione uma nova pasta que deve ter o mesmo nome do arquivo de exemplo:
E arraste o arquivo para dentro desta pasta que acabamos de criar:
No meu caso ficou assim:
Agora copie a sua pasta raiz, que no meu caso está na área de trabalho e chama exemploPisca:
Agora navegue até o local de instalação da sua IDE do Arduino, lá existe uma pasta chamada libraries (que traduzindo quer dizer bibliotecas), acesse esta pasta e cole a sua pasta dentro dela, você pode conferir esta parte do processo nas imagens abaixo:
Programando o código de exemplo
Segura aí que ainda não acabou, mas estamos quase lá 🙂
Agora vamos abrir o código de exemplo, que está na sua pasta que acabamos de colar na pasta libraries, que por sua vez fica na pasta de instalação da IDE do Arduino:
Nós não programamos nada neste arquivo, então quando abri-lo ele terá apenas o cabeçalho:
O código será super simples, e pode se visto na imagem abaixo:
Agora abra um novo programa na IDE do Arduino, vá em exemplos -> exemploPisca -> exemplos -> exemploPisca, como nas imagens abaixo:
Pronto, a partir de agora, quando você desejar piscar um LED basta invocar a biblioteca com a instrução #include <piscaLed.h>, definir um objeto que no caso chamei de led e informar qual porta do Arduino este LED estará conectada e na função loop basta usar a função piscaTempo com o objeto led ou qualquer outros que você criar.
Pronto! Chegamos ao fim de mais um tutorial galera! Compartilha ai com os amigos para nos ajudar a continuar a escrever mais tutoriais aqui para vocês!
Quer baixar toda esta solução para a biblioteca de Pisca Led que fizemos neste tutorial, então acesse o nosso repositório no Github clicando no link abaixo:
Você quer conhecer uma aplicação real de um projeto que foi necessário criar uma biblioteca para facilitar o uso do módulo desenvolvido para o Arduino? Então acesse este link da Roboticamente e confira!
E se estiver procurando por Arduino, dê uma olhada em nossa loja na sessões de kits, pois temos sempre novidades por lá e com os melhores preços, clique aqui para conferir!
Uma dica interessante ao avaliar uma biblioteca é olhar o número de estrelas e issues no GitHub e ver também se ela está disponível oficialmente na IDE Arduino. E foram as bibliotecas que ajudaram a tornar o Arduino tão popular, onde crianças e adultos não precisam ser engenheiros ou desenvolvedores de software, para criarem seus projetos e colocarem sua criatividade em prática.