Biblioteca do Robô TON-BOT (https://ioton.cc/ton-bot)
Dependents: ton-bot_teste ton-bot_seguidor_linha ton-bot_seguidor_parede
ton-bot.h
- Committer:
- krebyy
- Date:
- 2017-06-29
- Revision:
- 0:a79d499cd558
- Child:
- 1:9a99f8884c3b
File content as of revision 0:a79d499cd558:
/** ****************************************************************************** * @file ton-bot.h * @author Kleber Lima da Silva (kleber@ioton.cc) * @version V0.0.1 * @date 19-Junho-2017 * @brief Biblioteca do Robô TON-BOT (https://ioton.cc/ton-bot). ****************************************************************************** * @attention * * COPYRIGHT(c) 2017 IOTON Technology * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "mbed.h" #include "QEI.h" /* Constantes ----------------------------------------------------------------*/ #define PAREDE_ESQUERDA 0b100 #define PAREDE_FRONTAL 0b010 #define PAREDE_DIREITA 0b001 #define INFINITO 8888 /* Indica a não identificação de linha */ #define BRANCA 0 #define PRETA 1 #define DEFAULT_LINHA PRETA #define DEFAULT_FRONTAL_TH 0.3 #define DEFAULT_LATERAL_TH 0.3 /******************************************************************************/ /** @addtogroup Biblioteca do Robô TON-BOT * @{ */ /** * @brief Inicializa e configura os sensores do TON-BOT * @param cor_linha: cor da linha do seguidor de linha * @param frontal_th: limiar para reconhecer parede frontal ou não * @param lateral_th: limiar para reconhecer paredes laterais ou não * @return Nenhum */ void initTonBot( int cor_linha = DEFAULT_LINHA, float frontal_th = DEFAULT_FRONTAL_TH, float lateral_th = DEFAULT_LATERAL_TH); /******************************************************************************/ /** @defgroup Buzzer * @{ */ /** * @brief Gera vários beeps, o programa fica nesta rotina enquanto os beeps * são gerados * @param vezes: Número de beeps a serem gerados * @param t_on: Tempo que o buzzer fica ligado [ms] * @param t_off: Tempo que o buzzer fica desligado [ms] * @return Nenhum */ void beeps(uint8_t vezes, uint16_t t_on, uint16_t t_off); /** * @brief Gera um beep que pode ser usado durante o funcionamento do robô * @param duracao: Tempo do beep [ms] * @return Nenhum */ void beep(uint16_t duracao); /** * @} */ /******************************************************************************/ /** @defgroup Encoders * @{ */ /** * @brief Realiza a leitura do encoder da esquerda * @param Nenhum * @return Contagem do encoder da esquerda */ int32_t getEncoderEsquerda(void); /** * @brief Reseta a contagem do encoder da esquerda * @param Nenhum * @return Contagem do encoder da esquerda */ void resetEncoderEsquerda(void); /** * @brief Realiza a leitura do encoder da direita * @param Nenhum * @return Contagem do encoder da direita */ int32_t getEncoderDireita(void); /** * @brief Reseta a contagem do encoder da direita * @param Nenhum * @return Contagem do encoder da direita */ void resetEncoderDireita(void); /** * @} */ /******************************************************************************/ /** @defgroup Motores * @{ */ /** * @brief Atualiza o PWM dos motores da esquerda e da direita * @param pwm_esquerda: -1.0 a 1.0 * @param pwm_direita: -1.0 a 1.0 * @param fast_decay: modo de acionamento (default = false -> slow decay) * @return Nenhum */ void setMotores(float pwm_esquerda, float pwm_direita, bool fast_decay = false); /** * @} */ /******************************************************************************/ /** @defgroup Sensores * @{ */ /** * @brief Realiza a leitura dos sensores de parede * (atualiza os sensores frontais e laterais) * @param lf Valor proporcional a distância do sensor frontal esquerdo * @param l Valor proporcional a distância do sensor diagonal esquerdo * @param r Valor proporcional a distância do sensor diagonal direito * @param rf Valor proporcional a distância do sensor frontal direito * @return paredes: máscara de bits indicando presença (1) ou não (0) * de paredes. O bit mais significativo representa a parede da esquerda. * Ex.: 011 = presença de parede frontal e direita. */ uint8_t getSensoresParede(float* lf, float* l, float* r, float* rf); /** * @brief Verifica os sensores de linha * @param Nenhum * @return erro: valores entre -40 e 40 (valores negativos indicam que * o robô precisa se deslocar para a esquerda) */ int32_t getSensoresLinha(); /** * @} */ /************************ (C) COPYRIGHT IOTON Technology **********************/ /***********************************END OF FILE********************************/