Se você já assistiu Gigantes de Aço, e se empolgou com as lutas do Atom, vai querer descobrir o universo das competições de robótica no Brasil e torcer para seus robôs preferidos. Mas antes vou me apresentar, meu nome é Taise, mais conhecida como Tatá, faço parte da equipe de robótica Troia, e estou aqui para apresentar uma parte da guerra de robô: a categoria sumô, a qual sou responsável.

Equipe Troia

A categoria sumô é inspirada nas tradicionais lutas japonesas de mesmo nome, em que dois lutadores se enfrentam com o objetivo de tirar o oponente do círculo onde ocorre a luta. Na robótica, a dinâmica é parecida: os robôs substituem os lutadores, e a disputa ocorre em um círculo, chamado dohyo, que pode ser de madeira ou metal, dependendo da modalidade. O objetivo é o mesmo: o primeiro robô que sair do dohyo perde o round, cada partida possui o tempo total de 3 minutos, e é composto por 3 rounds de 1 minuto. O ganhador da partida é determinado pela maior quantidade de rounds vencidos. 

Além disso, o sumô de robôs possui três principais subcategorias: Mega Sumô, que deve ter até 20 cm de largura e comprimento e pesar no máximo 3Kg; Mini Sumô, deve ter até 10 cm de largura e de comprimento e pesar no máximo 500g; e Sumô LEGO®, com o limite de até 15,2 cm para largura e comprimento, pensando no máximo 1Kg. O Mega Sumô e o Mini Sumô possuem dois tipos, o autônomo (Auto)  – quando o robô através de sua programação opera sem precisar de controle externo, com exceção do acionamento feito pelo juiz através de um controle remoto que emita luz infravermelho, no código dos sumôs deve conter uma programação específica: quando o número 1 é acionado o robô deve ligar, mas sem iniciar a partida, ou seja, sem se mover; ao clicar o número 2 a partida inicia e os dois projetos devem começar a disputa; por fim, o número 3 deve fazer os robôs desligarem. O rádio controlado (RC) – quando há um piloto que comanda o robô através de um sistema de rádio-controle. No Sumô LEGO® existe apenas o tipo autônomo.

O tutorial de hoje será divido nos seguintes tópicos e caso você deseje ir para algum deles, basta clicar e você será redirecionado a parte que deseja:

História do Sumôs na Equipe Troia

Reformulação da Placa Yoshi

Desafios Mecânicos na construção de um mini robô de  sumô

Como funciona a programação de um mini robô de sumô

Eletrônica do mini sumô

Soluções Mecânicas para a Karminha RC

Algoritimo da Karminha RC

Conclusão

 

História do Sumôs na Equipe Troia

Para entender mais um pouco sobre a dinâmica dos sumôs na robótica, vou apresentar a Karminha, o único robô da categoria sumô na equipe atualmente, que disputa tanto o mini-auto quanto o mini-RC. Um detalhe importante: para desenvolver projetos de robótica, você deve se guiar por três princípios básicos: eletrônica, programação e mecânica. Para a Little Karmen não é diferente, e, ao longo do artigo irei explicar seu funcionamento com base nesses pontos. Mas antes, contarei brevemente a história dos sumôs na equipe Troia.

O primeiro sumô recebeu o nome de MacGayver, e nasceu antes da criação do Troia, nossa equipe surgiu da união de dois núcleos de estudos: O Ctrl-A e o NemecaBotz; MacGayver foi criado pelo Ctrl-A, um sumô de 3Kg do tipo autônomo, estreou na 7ª edição da Winter Challenge, em 2011, obtendo 9º lugar. Posteriormente, outro sumô foi adicionado à equipe, já como Troia, o novo projeto recebeu o nome de Julius Rock, uma versão melhorada do seu antecessor, e estreou na Summer Challenge 2ª edição, realizada em São Caetano do Sul, no ano de 2012, conseguindo o 8ºlugar. Com o passar do tempo, a dupla foi aposentada. A Winter Challenge 10ª edição foi a última participação do Troia na categoria de sumô 3Kg auto, apenas o Julius Rock participou, ficando em 13º lugar.

Em 2016 os sumôs voltaram, os novos projetos foram batizados de Timão e Pumba, dessa vez na sub-categoria sumô LEGO de 1Kg, desse modo, os robôs podem usar apenas peças da marca LEGO, inclusive seus sensores. A primeira competição da dupla foi a IV Inatel Week of Control and Automation em  2016, com o Pumba como campeão, e o Timão eliminado após cruzar com seu parceiro de Hakuna Matata. Infelizmente a última competição para os dois chegou na Winter Challenge, 13ª edição, com o Timão em 14º lugar e o Pumba em 15º lugar, após o resultado os projetos foram descontinuados.

Agora, iniciando a história da primeira dama do Troia: a Karminha nasce em 2018, inicialmente só como um mini-auto. Durante o desenvolvimento, foram criadas inicialmente duas placas nomeadas de Sushi e Sashimi. A Sushi foi a primeira placa da Karminha, projetada pelo ex-membro “Clevão”, planejada para usar o microcontrolador (componente que funciona como o cérebro do robô) Atmega328p, sensores SHARP para verificar a distância do oponente e  sensores TCRT5000 para verificar a limitação do doyho, através da borda, uma placa promissora, porém, ao ser testada apresentou diversas falhas que afetavam seus componentes, além de não ser viável economicamente, ainda assim, foi utilizada para a primeira competição da Karminha, a Winter Challenge 14ª edição, ficando em 19º lugar. A Sashimi foi desenvolvida em paralelo, mas não chegou a ser testada e foi descontinuada.

O processo de desenvolver um projeto sempre terá erros e acertos, com a Karminha não foi diferente, apesar das dificuldades, após a Winter outra placa foi projetada, A Yoshi, que continua sendo usada, foi criada pela ex-membro Layse, ainda em 2018, para o controle da placa foi escolhido o Arduíno Nano, que usa o Atmega como microcontrolador, sua estreia foi 2019 na IronCup, com a Karminha conseguindo o 12º lugar. Posteriormente o arduíno foi substituído pela bluepill, que utiliza o STM32F103, apresentado para a equipe pelo ex-membro Fidelis que já o utilizava, pela capacidade de processamento e velocidade superior quando comparado ao Arduino Nano, além de possuir um menor custo. Atualmente, a história dos sumôs no Troia segue no tipo RC e Auto com a Little Karmen, a “estrela” do nosso artigo. Por isso, apresentarei para você o funcionamento do projeto de forma mais detalhada, iniciando pela Karminha Autônoma:

 

Equipe Troia Karminha

Karminha autônoma à esquerda e Karminha RC à direita.

 

Reformulação da Placa Yoshi

Iniciamos com a análise da placa Yoshi, reformulada em 2023 pela ex-membro Camila, então responsável do projeto. Vale destacar que a equipe projeta a placa desde a escolha dos componentes à disposição, formato, e trilhas. Para isso, utilizamos o software Altium Designer, a imagem abaixo representa o resultado final desse projeto, e à medida que conhecemos cada componente se tornará mais fácil entender o seu funcionamento. 

 

Yoshi Equie troia

Modelo da Yoshi PCB em 3D no Altium Design, vista superior e inferior, respectivamente.

 

A numeração foi escolhida de forma didática, imaginando o caminho da corrente. Então, o 1 inicia, onde há a conexão com a bateria; Posteriormente temos o jumper (2), que interrompe a trilha, funcionando como um interruptor; Depois, a corrente segue para dois reguladores de tensão (3), um regula para 10 volts, que vai para os motores, e outro para 3,3 volts que alimenta a bluepill; Por fim, a partir da bluepill os outros componentes são alimentados. De forma mais detalhada sobre cada item, temos:

A alimentação da nossa placa, para isso usamos uma bateria de 11,1  volts do modelo Ministar de 350mAh, a tensão é dimensionada conforme os motores e o tamanho da bateria é considerado também, para não fugir das proporções do robô. O VCC se liga à parte positiva da bateria, e o GND à parte negativa.
Aqui temos o jumper, funciona como um interruptor, quando o jumper não está conectado corretamente a energia da bateria não passa pelas placas, isso facilita quando queremos desligar o robô momentaneamente, por não precisar desconectar a bateria. O jumper (contornado em amarelo) pode ser visualizado melhor na imagem abaixo: 
 

Yoshi soldada

Placa Yoshi soldada

 

Esses são os reguladores de tensão da nossa placa, usamos mini360, que são reguladores chaveados, ou seja, é possível variar a saída da tensão para a desejada. Como mencionado, o primeiro regula para 10 volts, os motores aguentam até 15 volts, porém perdem a vida útil de forma mais acelerada quando operam com tensão acima de 10 volts. A bluepill aguenta até 3,3 volts, por isso, o segundo regulador possui essa tensão de saída.

Os conectores dos motores, a Karminha usa o motor fingertech silver spark 50:1 do tipo escovado, ele foi considerado pelo custo benefício e capacidade de torque, o tamanho também é importante já que a largura máxima para sua categoria é de 10 cm.

01 - Bluepill

A bluepill é a placa de controle da Karminha, com o microcontrolador STM32F01C8T6, possui uma memória interna de 64Kb, necessário para o armazenamento do código, além de possuir um clock de 72MHz que permite um processamento mais rápido. A bluepill possui 48 pinos, e a funcionalidade de cada um deles é considerada para o projeto, assim, ao desenhar a placa vemos qual pino é adequado para o controle de cada componente.

As duas ponte H de modelo A4950, são essenciais para o acionamento dos motores, de forma simples, uma ponte H é um CI (Circuito integrado) que funciona direcionando o sentido do fluxo da corrente, assim, possibilitando o motor girar em sentido horário ou anti-horário. O A4950 é usado na equipe em outros projetos, é facilmente encontrado e de simples uso.

Nesses pads são conectados o que chamamos de sensores de borda, sua função, como o nome diz, é identificar a borda do dohyo que possui a cor branca, enquanto o interior é preto. Assim, o sensor de borda evita que a Karminha se “suicide”, ou seja, saia sem a interferência do oponente. Para isso usamos o IR QRE1113 que funciona com base na refletância, ele possui um Led emissor de luz infravermelho e um fototransistor sensível à luz infravermelha, assim, o sensor indica a quantidade de luz refletida, com base nisso é possível identificar a borda.

O receptor infravermelho é usado em todos os sumôs auto, ele é um requisito para a categoria e deve operar na frequência padrão de 38 kHz.

A conexão indica o expansor de portas, nele são conectados os sensores de distância analógicos VL53L0X, 5 ao todo, e funcionam como os olhos da Karminha, são eles que irão identificar a localização do oponente. Sensores digitais possuem facilidades e uma qualidade superior, porém, atualmente não são viáveis para equipe pelo alto custo. Assim, dentre as opções analógicas, o VL53L0X se mostrou o melhor, por ter um tempo de resposta bom, por ser possível encontrar muita informação sobre como usá-lo na internet e pela precisão.

O switch tem uma funcionalidade muito interessante, a partir dele é possível acessar estratégias diferentes, assim, em uma partida, dependendo do seu oponente, ao configurar o switch, a Karminha muda sua programação padrão, na parte de programação será possível entender melhor o seu funcionamento.

Onde é conectado o receptor. A placa Yoshi atualmente não é usada para a Karminha RC, pois a equipe recentemente definiu o uso de outra placa e outra estrutura para o tipo RC. Mas, no projeto da placa Yoshi mais recente, essa mudança ainda não havia ocorrido, assim era usada em ambas modalidades.

Por fim, o módulo Bluetooth, apesar de ainda não ter sido implementado na equipe, tem a mesma ideia do Switch, ou seja, ele pode ser usado para acessar estratégias. A equipe ainda tem planos para poder testar essa funcionalidade devidamente.

 

Desafios Mecânicos na construção de um robô de mini sumô

Ao projetar um mini-sumô há alguns pontos importantes a se considerar, primeiro, nos norteamos conforme as especificações da categoria. As dimensões não podem passar de 10 cm de largura por 10 cm de comprimento, a altura é ilimitada, e o peso deve ficar perto de 500g. Assim, a mecânica tem que levar em conta o tamanho das rodas, dos motores, a disposição da placa, da bateria, enfim, de tudo que compõe a Karminha. Outro ponto que vale destacar é o peso, se você tiver um robô muito leve seu oponente te empurrará para fora do dohyo muito fácil.

A partir dessas considerações a estrutura da Karminha atual foi projetada pelo ex-membro Samuel junto com as sugestões de Camila, então responsável do projeto. Na equipe utilizamos o software Solidworks para fazer a modelagem 3D dos nossos robôs, além de possuímos a licença gratuitamente para usá-lo, o SolidWorks é uma ferramenta muito completa, por permitir fazer várias simulações das forças que podem atuar no projeto, a partir disso, podemos, por exemplo, encontrar pontos de fadiga na estrutura. 

O corpo da Little Karmen é impresso em ABS, um tipo de filamento para impressoras 3D caracterizado por ser resistente a altas temperaturas e a impactos (importante no caso dos sumôs), além disso, utilizar ABS é economicamente mais viável para equipe, por termos parceria com um fornecedor e possuímos uma impressora 3D que utiliza esse filamento.

Outro ponto interessante nesse universo dos robô-sumô é o uso de lâminas, elas são colocadas na frente do sumô e devem estar ser o mais nivelado possível do piso do dohyo para facilitar “rampar” o oponente, ou seja, quanto mais rente ao chão mais fácil o inimigo será empurrado. Uma curiosidade é que utilizamos lâminas para raspador de vidro, são baratas e funcionam muito bem para o projeto, mas existem lâminas específicas para os mini-sumôs.

Comentando um pouco mais do projeto mecânico da Karminha, a placa foi desenhada para encaixar na estrutura, ficando visualmente bonito e sem risco de soltar, ainda possibilitou um espaço interno usado para por pesos para dificultar que o oponente a empurre. Além disso, há a disposição dos sensores: no caso dos sensores de distâncias (que estão em roxo) foram dispostos a fim de evitar pontos cegos, são ao todo cinco, sendo dois nas laterais, mais dois nas diagonais e um na frente; Utilizamos dois sensores de borda que ficam na parte de inferior da estrutura em sentido ao chão e são colocados nas extremidades na rampa.

 

Karminha 3D

Projeto da Karminha no Solidworks, vista frontal e inferior

 

Como funciona a programação de um mini robô de sumô

A programação para um robô autônomo é como se ensinássemos ele a pensar, basicamente você cria um norte para que o robô possa seguir suas funções de acordo com as informações enviadas pelos sensores. Para isso, usamos como linguagem de programação o C++ pela facilidade e familiaridade da equipe. Como editor de código usamos o Visual Studio Code, este software permite personalizar o ambiente de trabalho e incluir diversas extensões que facilitam a programação, assim se adequa muito bem para as atividades de programação da equipe. Dentro do VS Code usamos a IDE PlatformIO, IDE vem do inglês Integrated Development Environment, que significa Ambiente de Desenvolvimento Integrado, seu objetivo é que em um único ambiente seja possível compilar, editar e depurar o código, além de acessar o terminal. 

Partindo para o código, vamos iniciar com a Main, que é ponto de partida e de término de um programa, isso significa que é a primeira parte do código a ser executada e norteará o caminho que ele deve seguir. Assim, para poder começar, é importante a inclusão de algumas bibliotecas: temos o Arduino.h que permite usar funções do arduino na programação; o IRremote.h usado para o receptor infravermelho; e ainda há classes que funcionarão como bibliotecas criadas para simplificar o código, esses arquivos incluem classes e funções específicas do projeto, são: estrategias.h, motor.h, radioControle.h, sensBord.h, sensDist.h, testes.h. Por fim, há a biblioteca defines.h que define os pinos a serem usados e alguns parâmetros para os sensores.

 

Código Main Karminha

Trecho inicial da main.

 

É possível visualizar na main as bibliotecas que são incluídas usando a função #include, própria da linguagem C++; Após isso, temos a primeira coisa que será verificada no código: se a Karminha está no modo autônomo ou não. Como havia dito, a Yoshi não é mais utilizada para a Karminha RC, porém, quando o código foi feito ainda era necessário que ela operasse das duas formas. 

Assim, vamos analisar o código a partir da linha 12; Temos o bool autonomo = false que é uma função booleana, isso significa que ela retorna dois tipos de valores: falso ou verdadeiro, e autonomo é a variável nesse caso, como inicia com false, significa que no primeiro momento a Karminha não está no modo autônomo; na linha 13 o int inicializa a variável estrategia com o valor 0. Após isso temos uma função Void  que irá ler qual estratégia foi selecionada através do Switch, para isso o código lê os sinais dos pinos do switch (EST1, EST2, EST3, EST4) usando o digitalRead, note que está escrito !digitalRead, o sinal de exclamação inverte o sinal lógico lido, e é necessário porque esses pinos, por padrão estão em estado High (lido como 1), os valores enviados pelo switch são dados como um número binário, já que são um sinal digital que só operam em dois estados High(1) ou Low (0), na variável estrategia é armazenado o valor já convertido em decimal, por conta do cálculo feito pelo trecho (!digitalRead(EST4) + (!digitalRead(EST3) * 2) + (!digitalRead(EST2) * 4) + (!digitalRead(EST1) * 8)). Ainda dentro da função Void, a linha 18 determina que a Karminha está em modo autônomo quando o valor da estratégia for diferente de 0; e o Serial.println(estrategia) imprime a variável estrategia, isso é útil para fins de monitoramento.

Quando se programa utilizando a biblioteca do arduino, devemos seguir uma estrutura pré definida de duas seções: o Void Setup e o Void Loop. O primeiro é utilizado para configurar parâmetros iniciais, como pinos de entrada e saída e inicializar periféricos (no nosso caso, os sensores e motores), um detalhe importante que diferencia o Void Setup é que o código contigo nessa seção será executado apenas uma vez no início do programa. Como é possível observar no trecho abaixo, definimos através do comando pinMode os pinos do switch e configuramos com uma entrada Pull up, além de definirmos o pino do led como saída e ligá-lo usando digitalWrite(LED_BUILTIN, HIGH); Inicializamos os motores, os sensores de distância e o receptor infravermelho. O Serial.begin(9600) prepara o microcontrolador a receber e enviar informações para dispositivos que usem comunicação serial, como por exemplo um USB, que usamos para passar o código para bluepill e monitorar o funcionamento dos sensores.

 

Setup karminha

Void Setup utilizado na main.

 

Após o Void Setup temos o Void Loop, que, como o próprio nome indica, cria um ciclo de repetição, ou seja, o código será executado continuamente. No caso do nosso código, utilizamos condições (if e else if) para conduzir as ações da Karminha, assim, primeiro temos o if (autonomo), se o modo autônomo não estiver selecionado, será ativado o modo RC, mas, caso esteja no modo autônomo, será executado a leitura do receptor infravermelho (linhas 71 a 74);

Após a leitura, há um if para verificar qual botão foi acionado, essa informação é usada em novos if, como é possível visualizar na linha 84 e 85, quando o estágio 3 é ativado, ou seja, o botão 3 é selecionado no controle remoto, o motor deve parar; Se não estiver no estágio 3, um else if que tem como parâmetro o estágio 2 dão continuidade ao código, nesse estágio ocorre as leituras da estratégia colocada no switch, dos sensores de borda e dos sensores de distância; Se o sinal enviado para o receptor não corresponde nem ao botão 3 ou ao 2, há o estágio 1, que ativa o led da Karminha, indicando que ela está preparada para a luta. 

 

Loop Karminha Troia

Void Loop utilizado na main.

 

Além da main há outras partes do código, destaco o funcionamento dos sensores de borda, motores e sensores de distância, os quais detalharei brevemente:

● Sensores de borda: nessa parte do código ajustamos parâmetros para a cor preta e a cor branca, para descobrir esses valores analisamos qual valor é retornado pelo  IR QRE1113 quando colocado em cada cor, além disso, implementamos a lógica para leitura e processamento dos dados.

● Motores: funcionam com base no método PWM, que significa Pulse Width Modulation, é uma forma de controlar a potência, assim é possível determinar a velocidade, o sentido e condições de parada dos motores.

● Sensores de distância: utilizamos as bibliotecas VL53L0X.h e Wire.h. A primeira é própria para ativar as funções do sensor VL53L0X, e a segunda é para possibilitar o uso da comunicação I2C usada para o envio e recebimento dos dados. Também determinamos de quanto em quanto tempo a distância será aferida. Além de estabelecer a lógica de controle, como por exemplo, o que deve ocorrer quando o sensor na lateral esquerda identifica um objeto.

 

Eletrônica do mini sumô

O mini sumô, eletronicamente, funciona exatamente como um carrinho de controle remoto. É necessário um método de controle para os motores, um receptor e uma fonte de alimentação. Por isso, em 2024 foi sugerido outra placa para a Karminha autônoma, a fim de simplificar a eletrônica e ganhar mais autonomia para projetar a estrutura, com menos limitação de espaço. A equipe já possuía a placa Atomic, usada em projetos como o Bala no Alvo, um robô de combate da categoria fairyweight (150g), foi criada para o controle da locomoção de um robô, seus componentes serão detalhados a seguir.

 

Atomic PCB

Modelo da Atomic PCB em 3D no Altium Design, vista superior e inferior, respectivamente.

 

  • 01 - Estes são os pads para a alimentação da nossa placa, usamos uma bateria Tattu de 300mAh com tensão de 11.4 volts por ser menor que a Ministar usada para Karminha Autônoma.
  • 02 - Este é um regulador linear AMS117 que regula a tensão para 5 volts, a escolha desse componente se dá pela facilidade em utilizá-lo em projetos eletrônicos, seu uso é necessário por conta do receptor e microcontrolador dispostos na placa.
  • 03 - As pontes H da nossa placa, são do modelo A4950, também usado na Yoshi.
  • 04 - Os pads dos motores, nós usamos o mesmo motor da Karminha auto, o fingertech silver spark 50:1, eles são alimentados pela tensão da bateria.
  • 05 - O microcontrolador na nossa placa, um ATmega328P-AU, possibilita que os sinais do receptor cheguem até os motores, assim conseguimos controlar a locomoção. Mas porque não usar a bluepill? como não trabalhamos ainda com o STM32 diretamente na placa, colocar a bluepill ocuparia muito espaço, e pela programação da Karminha RC ser mais simples, e, consequentemente, utilizar menos memória e processamento, o Atmega atende bem à função da Atomic.
  • 06 - Estes pads são conectados ao receptor, temos a alimentação de 5 volts, o gnd e o sinal. Usamos o rádio-controle Hobbyking GT2E de 2 canais, que operam na frequência de 2.4ghz, e o receptor referente, modelo HK-GT2E 3CH.
  • 07 - Estes pinos são usados para programar o atmega, para isso usamos o gravador USBasp AVR que possibilita gravar o código na memória do nosso microcontrolador. 

 

Soluções Mecânicas para a Karminha RC

O novo projeto para Karminha RC visou trazer o centro de massa para a frente, buscando solucionar dois problemas: ela empinava com muito facilidade ao acelerar, e o outro que persiste na estrutura da Karminha Auto, antes usada para o modo RC, ocorre pela mesma razão: a falta de peso à frente do robô, com isso o oponente consegue rampá-la e fazer com que ela capote, quando isso ocorre a luta é basicamente perdida. Como o mini sumô RC não utiliza sensores, podemos utilizar uma placa menor, o que possibilita mais liberdade ao projeto mecânico. Com esse norte o membro Phellipe projetou a nova Little Karmen.

 

Karminha 3D Atual

Projeto atual da Karminha RC no Solidworks, vista frontal e traseira.

 

Essa estrutura é impressa em ABS na própria oficina do Troia (apelidado de QG), a eletrônica fica na parte acima dos motores, e a rampa, usinada pelos membros, é feita de aço.

 

Karminha no Dohyo

Karminha RC no dohyo.

 

 

Algoritmo da Karminha RC

Finalizando este artigo, temos a programação da Karminha RC. Nesse caso o ATmega recebe o código e faz o controle das informações que nosso robô precisa para funcionar. Primeiro vamos pensar em como funciona o nosso controle, na imagem 9 é possível vê-lo. O hobbyking é um rádio-controle de 2 canais, ou seja, ele envia dois tipos de dados, e para isso possui um gatilho e uma rodinha, o primeiro é responsável pelo sentido do robô, ou seja, movendo-o para trás ou para frente, e o outro pela direção virando as rodas para esquerda ou para a direita. Todos os comandos feitos no controle serão enviados pelo receptor, e em seguida para o ATmega, e, por fim, para as pontes H que farão o acionamento dos motores.

Um detalhe importante é que usamos outra forma de gravação para a Karminha RC, no caso o USBasp em conjunto com o AVRdude, que é um software que permite gravar código nos microcontroladores da família Atmel AVR, como o que usamos. Para isso, temos que usar o arduinoIDE, assim o AVRdude consegue acessar o programa contido no computador.

Partindo para o código, iniciarei com o void setup, nele definimos o tipo de entrada de  cada pino. O ATmega envia informações para o IN1, IN2, IN3 e IN4, pinos das pontes H, por isso são de saída (OUTPUT). Temos também os CH1 e CH2 que são conectados ao receptor, sendo assim, nesse caso nosso microcontrolador é quem recebe os dados, por isso é uma entrada (INPUT).

 

Código Karminha

Código na Arduino IDE

 

Após isso, temos o void loop, o programa que rodará sempre no nosso robô. O FRTR e o DIR são variáveis que irão armazenar os valores do canal 1 e o canal 2, respectivamente; O fail safe é uma boa prática de segurança, pois o receptor pode receber informações do controle mesmo quando não acionado, por interferências externas, sensibilidade, etc. Assim, como o controle tem uma faixa de operação de mais ou menos 1000 a 2000 quando o gatilho ou a roda é acionada (no código está de 850 a 2150 como margem de segurança para casos em que há pequenas flutuações do sinal), temos um IF para acionar a função desligado, que para a locomoção quando as variáveis recebem valores fora desses parâmetros.

Em caso do FRTR e DIR estarem fora dos padrões para o fail safe, temos o Else que chama funções criadas anteriormente para o funcionamento da Karminha, Primeiro temos o duty_FRTR e o duty_DIR, as duas variáveis usam a função call_of_duty(), que nada mais é do que a conversão do sinal PPM(usado pelo receptor) para o PWM(usado pela ponte H). Além disso, temos a função logica(), ela será responsável por interpretar o que o robô deve fazer, através dos valores de PWM, que opera na faixa de -250 a 250, no caso do gatilho, valores positivos indicam que os motores devem ir para frente e valores negativos para trás, e para a rodinha, valores positivos indicam virar para direita e valores negativos para esquerda.

Por fim, após analisar qual comando o robô deve seguir, as pontes H são acionadas e fazem a Karminha andar conforme o comando do controle.

 

Conclusão

Assim, chegamos ao final do nosso artigo, espero que você, leitor, tenha conseguido entender um pouco mais sobre os robôs-sumô e seu funcionamento. Também agradeço por mim, e  pelo Troia à Curto Circuito pela oportunidade de falar sobre esse projeto tão importante e amado. Qualquer dúvida ou se quiser conhecer mais sobre o mundo da guerra de robôs nossa equipe está disponível nas redes sociais.