Bibliotecas+para+Arduino

Home > Robótica > **Bibliotecas** **Recursos** > RunTimer > Timer2 > CircularBuffer > SerialLog > ActionPlan **Dispositivos** > Ultrassom > Array de sensores > NRF24L01 > Wireless log > RF24Control **Movimento** > StepperMotor > StepperMotorTm > StepperRobot Inicialização > StepperRobot Operação > StepperRobot Recursos > StepperTrio

Aqui uma coleção de bibliotecas para Arduino que foram desenvolvidas durante a execução deste projeto. As bibliotecas ainda estão um tanto fluidas, sendo atualizadas frequentemente, mas tentarei deixar aqui sempre a última versão. Para cada biblioteca existe uma página com os detalhes de uso e exemplos. As classes estão divididas em três grandes grupos: Recursos internos, Dispositivos e Movimento. No final desta página está o link para download de todas elas.

**Recursos internos:** Neste grupo estão classes que não dependem de dispositivos externos. Dão acesso aos recursos do arduino ou implementam funcionalidades sem precisar de mais hardware.
 * ** Classe RunTimer: ** Esta classe implementa um timer simples que permite marcar intervalos de tempo e/ou gerar eventos em intervalos regulares. O controle é feito via software, portanto não usa os timers de hardware do arduino.
 * ** Classe Timer2: ** Se precisar de um controle mais exato de intervalos de tempo, esta classe permite acesso ao timer2 do arduino.
 * ** Classe CircularBuffer: ** Esta classe implementa um buffer circular para armazenar estruturas que precisam ser processadas em sequência.
 * ** Lib serialLog.h: ** Biblioteca feita para facilitar o debug do programa. Implementa uma versão customizada da função printf capaz de imprimir no monitor serial.
 * ** @Classe ActionPlan: ** Este é a classe responsável por fornecer uma estrutura de tomada de decisões de alto nível dentro do robô. Permite estabelecer um plano de ações e monitorar o andamentos dessas ações com possibilidade de rever ou alterar o plano durante sua execução.

**Dispositivos:** Aqui as classes que controlam sensores, atuadores e outros bichos que podem ser conectados ao arduino.
 * ** Classes HcSr04 e HcSr04auto: ** Classes para o controle de sensores de distância por ultrassom HC-SR04 e compatíveis. Oferece a possibilidade de controlar o HC-SR04 usando apenas um pino do arduino.
 * ** Classe HcsrArray **: Classe que dá suporte a um array de sensores HC-SR04, inclusive com o recurso de leitura automática.
 * ** O transceiver NRF24L01 **: Aqui é apresentado este interessante dispositivo que permite a comunicação por rádio-frequência entre dois arduinos. Tem um excelente alcance, altas taxas de transmissão, baixo custo e bastante suporte por bibliotecas de terceiros, fóruns e artigos na internet.
 * ** Wireless log **: A função printfs implementada na biblioteca serialLog.h também tem capacidades wireless utilizando o NRF24L01.
 * ** Classe RF24control: ** Classe para controlar a comunicação entre dois arduinos usando o módulo NRF24L01.

**Movimento:** Aqui estão as classes que compõe a hierarquia que cuida do movimento do robô usando dois motores de passo em configuração sequencial.
 * ** Classe StepperMotor: ** Esta classe implementa o controle básico de motores de passo. É a classe base de uma família de classes mais elaboradas que culminam no controle de movimentos do robô. Não tem muitos recursos, mas cuida de toda a escovação de bits necessária para o controle de um motor de passo.
 * ** Classe StepperMotorTm **: Descendente de StepperMotor, esta classe acrescenta importantes recursos no controle do motor de passo. Controla o tempo de duração dos pulsos e permite a aceleração/desaceleração do motor a fim de conseguir o melhor desempenho possível nos movimentos do motor. É a única classe que não faz parte da hierarquia de movimento, está aqui como um bônus para o caso de ser necessário o controle de apenas um motor de passo. As outras classes controlam dois motores em conjunto.
 * ** Classe StepperRobot: ** Aqui está implementado todo o controle de movimento, incluindo a temporização dos pulsos com a opção de usar ou não o Timer2, controle de aceleração, buffer para armazenamento e execução de movimentos em sequência, controle de posicionamento do robô, calibração, entre outros recursos. É a classe final de uma longa hierarquia de classes.
 * ** Inicialização: ** Nesta página uma introdução à classe e explicações sobre a inicialização, calibração e configurações iniciais do robô.
 * ** Operação: ** Aqui detalhes sobre a operação da classe e comando dos movimentos.
 * **Outros recursos**: Monitoramento, controle de posição e outros recursos adicionados.

Download das bibliotecas
Algumas bibliotecas podem precisar de bibliotecas de terceiros. Veja as dependências na página da biblioteca.