sábado, 28 de junho de 2014

Arduino: Gerenciando Bibliotecas (parte 1)

Uma das tarefas de quem programa para Arduino é gerenciar suas bibliotecas. Normalmente é uma tarefa simples, mas nem sempre intuitiva.

Nesse mini-artigo, listo algumas tarefas e o passo-a-passo relacionado a elas.

1. Criar uma biblioteca.

Em minha opinião, a melhor forma de se criar uma biblioteca para o Arduino é usar seu editor de programas preferido. O ambiente de desenvolvimento do Arduino foi projetado para criar Sketches, e não bibliotecas.

1.1 Crie um diretório com o nome da biblioteca, por exemplo Testlib.

$ mkdir Testlib

1.2 Crie os arquivos da biblioteca dentro do diretório criado. Nomeie os arquivos como Testlib.h e Testlib.cpp.

1.3 Abra o ambiente de desenvolvimento do Arduino e importe a biblioteca recém criada: Acesse o menu Sketch -> Import Library, e escolha a sua biblioteca. Caso não a visualize, verifique se os nomes foram criados corretamente (somente arquivos .h e .cpp). Numa inclusão correta, surgirá a linha abaixo no sketch:

#include "testlib.h"


1.4 Usando o ambiente de desenvolvimento, compile a biblioteca. Caso surjam erros, volte a editar os arquivos da biblioteca com seu editor de programas.

Para maiores detalhes, ver referência abaixo.

ReferênciaWriting a Library for Arduino

2. Adicionar uma biblioteca de terceiros

Muitas vezes, temos de baixar e instalar bibliotecas de terceiros para certos projetos. Recentemente adquiri um sensor DHT11 (humidade e temperatura) e tive de baixar a biblioteca que o gerencia.

2.1 Baixando os fontes:

Acesse o link http://playground.arduino.cc/main/DHT11Lib, copie os fontes dht11.h e dht11.cpp, salvando como arquivos texto.

2.2 Crie um diretório chamado DHT11 e copie os arquivos para ele.

2.3 Mova o diretório DHT11 (e os arquivos internos) para a pasta das bibliotecas do Arduino.

2.4 Abra o ambiente de desenvolvimento do Arduino e importe a DHT11: Acesse o menu Sketch -> Import Library.

Se tudo foi feito corretamente, surgirá a linha #include <dht11.h> no sketch automaticamente.

Esse é o método manual de instalar bibliotecas. O link a seguir detalha o método automatizado de instalação: http://arduino.cc/en/Guide/Libraries.

3. Incluindo uma biblioteca dentro de outra

Falamos até agora um pouco sobre a criação e instalação de bibliotecas para o Arduino. Agora descreveremos um "arremedo técnico" para que possamos referenciar elementos de uma certa biblioteca dentro de outra.

Esclarecendo o problema: recentemente, trabalhando num projeto de hexápode, tentei incluir a biblioteca "Servo" dentro de uma biblioteca que criei. Minha surpresa foi verificar que não era possível fazer isso. O ambiente de desenvolvimento do Arduino não traz facilidades para incluir uma biblioteca para dentro de outra. Tentei várias formas de include: referenciamento global, local etc. Nada deu jeito.

Então, pesquisando um pouco nos fóruns, encontrei uma dica que resolvel facilmente o problema. Basta escrever a biblioteca conforme o item 1. No Sketch criado, apenas inclua ambas as bibliotecas criadas, tendo o cuidado de colocar primeiro a biblioteca base. Por exemplo, se a biblioteca Testlib que criamos precisa acessar elementos da biblioteca Servo e da DHT11, nós simplesmente incluímos no sketch, na seguinte ordem:


# include <servo.h>
# include <dht11.h>
# include <testlib.h> 


Nenhum comentário:

Postar um comentário