RC Sumo Robot Brushless

by Giovani Moreira in Circuits > Microcontrollers

3640 Views, 16 Favorites, 0 Comments

RC Sumo Robot Brushless

IMG_7511-01.jpg

Uma publicação comentando o como foi construir um robô sumô Brushless e um pouco sobre minhas experiências. Pode ser que não seja exatamente um passo-a-passo como normalmente é por aqui.

Supplies

Antes de começar, gostaria de pedir desculpas, meu inglês não é dos melhores. Irei escrever a publicação em português brasileiro, então por favor, utilizem o tradutor da página para sua respectiva linguagem. E por favor, qualquer contribuição é bem vinda, não sou especialista em nada que falei no post, a postagem ainda não está completa e qualquer ajuda é muito importante.

Breve História De Robôs Sumô E Como Me Envolvi Com Eles.

20180824_111114 - Copia.jpg
20180824_111119.jpg
20180926_210013 - Copia.jpg
20180926_210031.jpg
20181008_215620 - Copia.jpg
20180824_111125 - Copia.jpg
20180817_141354.jpg

Em 2018, surgiu a oportunidade de construir um robô sumo - rádio controlado de 1kg e 20cm x 20cm - para uma competição entre escolas durante o ensino médio (aqui normalmente os estudantes tem entre 16 a 18 anos no curso). Essa categoria é, na minha opinião, uma das menos caras e menos difíceis de desenvolver o robô, assim, eu e meus amigos nos juntamos como tentativas de participar deste evento com um robô. Sem experiência, desenvolvemos o robôs completamente, e aprendemos muito com o processo, o primeiro protótipo se chama "Passavara", ou algo como "pass dick" traduzindo literalmente (por favor, não levem o nome troll a sério, eu sei que não é dos mais educados hahaha). O Passavara foi um robô relativamente simples, que contém dois motores DC de 12V com redução embutida, nano Arduino, módulo Bluetooth, driver de controle de motores escovados e bateria de lipo 11.1V (inclusive o projeto foi baseado em alguns modelos já disponíveis na Internet, como esse daqui mesmo: https://www.instructables.com/id/Android-Controlle... ). Escolhermos fazer um robô mais simples para poder dedicar-se a uma boa construção, e com muito esforço e muitos testes, nasce nosso projeto em sua primeira versão. Infelizmente, durante uma competição o Passavara teve diversos problemas mecânicos, como engrenagens do motor racharam, e o motor deixou de funcionar sem motivo aparente, esses problemas junto com o grande atraso de resposta no Bluetooth não deram muitas chances de conquistar pódio naquele ano. Vou deixar algumas imagens dele e qualquer dúvida sobre, pergunte! Não irei prolongar muito mais sobre esse robô pois o foco é seu irmão mais novo.


No vídeo eu sou o piloto que está sentado :)

Novo Robô - Sistema De Locomoção

20181207_155944.jpg
20181112_203156.jpg
20181018_113548.jpg
20181127_181226.jpg
20181112_203431.jpg
20181127_181505.jpg
20181127_203904.jpg

Ao redor do mundo existem diversas modalidades de competição para robôs sumô, cada modalidade exige um tipo diferente de projeto para se ter bons resultados. No final de 2018, eu e o Abner ( meu colega que embarcou no projeto 2.0) decidimos, com base em todos os erros do robô anterior, criar um novo sumô, mas que dessa vez fosse mais forte, mais leve, e mais confiável que o anterior. A categoria de 1kg e 20cm x 20cm que estávamos pretendendo competir novamente se parece com a categoria de sumô mini 500g que existe em outros lugares, pois não disponibilizava um dohio de metal, e sim de madeira MDF, tirando a possibilidade de implementar ímãs para aumentar a tração nas rodas. Assim, temos um robô de tamanho igual ao da categoria 3kg tendo um terço de seu peso.

Iniciamos o projeto escolhendo o motor que iríamos usar, a princípio não sabíamos qual, mas depois de pesquisar bastante vimos que motores brushless costumam ter um desempenho bem superior aos escovados de mesmo porte. Entretanto, motores brushless tem alguns problemas que os escovados não, eles são muito mais difíceis de introduzir um bom controle e costumam ter muitas rotações, necessitando de uma maneira de diminuir suas rotações para ser possível dirigir o robô. Costuma ser bem comum motores com escova virem com reduções acopladas ao motor, e com os brushless não.

Reduções são mecanismos que impulsionados pelo giro do motor, conseguem através de uma ou mais engrenagens diminuir a rotação final do conjunto e aumentar seu torque. E deparando novamente com outro problema, o limite de peso é uma preocupação grande na categoria e reduções com muitas engrenagens se tornam muito pesadas, trazendo outro problema.

Decidimos escolher o motor mesmo sem saber exatamente como faríamos com sua redução de RPM, e escolhemos um motor brushless verde com um kv declarado de 4000RPM/V : https://pt.aliexpress.com/item/32821180034.html?sp... .

Teste do motor do robô.

Após uma longa pesquisa para ver como iria ser feito, nos deparamos com um tipo não muito convencional de redução, chamado "worm gear" ou engrenagem helicoidal. Esse tipo de engrenagem não é a mais eficiente no quesito desperdício de energia, mas é um sistema que consegue reduzir muito as rotações, ocupa pouco espaço e pesa menos, comparado a outras. Escolhemos esse modelo da Yimaker de 1:60 : https://pt.aliexpress.com/item/32712659504.html?sp... .

Sistema de engrenagem helicoidal em funcionamento.

Vou deixar algumas fotos para ficar mais claro como funciona esse sistema de redução e como desenvolvemos as idéias do papel para a prática.

Modelagem E Impressão 3D

20190211_184953.jpg
20190207_140607.jpg
20190403_185759.jpg
20190513_172456.jpg
20190513_172507.jpg
20191003_134509.jpg
20191004_103751.jpg
20191005_103935.jpg
IMG-20190512-WA0003.jpg
IMG-20191004-WA0017.jpg
IMG-20190512-WA0001.jpg
IMG-20190512-WA0002.jpg
IMG-20190512-WA0003.jpg
IMG-20190512-WA0011.jpg
IMG-20191003-WA0001.jpg
IMG-20191004-WA0004.jpg
IMG-20191004-WA0005.jpg
IMG-20191004-WA0008.jpg
IMG_7547.JPG

Depois de decidirmos o motor e o método de redução no passo anterior, precisamos desenvolver um suporte que comportasse todos os componentes mecânicos e apresentasse uma boa rigidez estrutural. Não foi simples, desenvolver algo do nada sem auxilio de ninguém experiente pode ser um processo árduo e repetitivo, então se estiver nessa etapa não tenha medo de errar, consigo contar mais de dez versões de uma única peça que acopla o motor, as engrenagens e a roda; erro após erro, fomos melhorando onde precisava e quando finalmente a peça estiver terminada ainda temos o resto do robô para fazer.

Mais uma das versões que não deram certo.

Esse processo de modelar, imprimir e testar foi repetido inúmeras vezes no robô, e portanto vão algumas dicas:

- Não tenha medo de errar, isso faz parte do processo de aprendizagem e vai ajudar a perceber onde podem haver futuras melhorias;

- Procure desenvolver o robô em um software de modelagem 3D, ter o trabalho do robô de maneira virtual além de possibilitar que você imprimar peças ao invés de fazer manualmente, traz um profissionalismo maior ao projeto. E se não conhece ou não sabe modelar em um software, é uma boa hora para aprender, existem diversas alternativas gratuitas como o Freecad, e aulas no Youtube para aprender como fazer;

O robô no SolidWorks, não é a versão final.

- Se tiver a oportunidade de utilizar uma Impressora 3D, aproveite-a, não são todas as pessoas que tem acesso a essa tecnologia, não tenha medo de aprender como funciona seu equipamento e de usar no seu robô. E se não tiver uma impressora 3D, não se apavore, tudo o que você fizer manualmente vai ser auxiliado pelo desenho que fez no software de modelagem.

Voltando ao Passavara, após desenvolver o suporte do motor (que acopla também a roda e a engrenagem) precisamos desenvolver as outras partes do robô, como as laterais, a base do robô, a frente e a rampa. Na modelagem, fazemos as peças terem a funcionalidade que o projeto necessita, como prender os sensores, separar partes móveis da eletrônica e outras. Baseamos nosso projeto, visualmente, nos famosos robôs sumô japoneses.

Para esse projeto utilizamos o SolidWorks e o Ultimaker Cura. O SolidWorks é um software de modelagem e simulação de componentes/estruturas, ele tem muitas ferramentas e é um dos mais usados junto ao Fusion360. E o Ultimaker Cura é o software que irá interpretar a peça 3D e traduzir em um uma série de comendos para a impressora executar, esses comandos são chamados GCODE, e é a linguagem que a máquina lê.

Se você for utilizar a impressora 3D, é muito importante que ande com os dois softwares juntos (o de modelagem e o de impressão, seja qual for que esteja utilizando) pois assim poderá ver se sua modelagem é viável de ser impressa ou se vale a pena da forma que fez.

Parte Eletrônica

20191005_122244.jpg
20191023_170235.jpg
20181127_161346.jpg
20181205_140236.jpg
20181205_151105.jpg
tgy-hw-25a.jpg
Arduino-BLDC-Motor-Control-Circuit-Diagram-Schematic.png
20191108_171533-01.jpg
20191108_153804-01.jpg
20191108_154137.jpg

Aqui está uma das partes mais importantes, ela vai ser responsável por coordenar os motores de acordo com os comandos que receber do controle. O Passavara foi projetado para ser um robô rádio controlado e também autônomo, entretanto vamos focar no sistema rádio controlado.

Como dito antes, o sistema de controle do motor brushless é totalmente diferente dos motores brushed, e isso pode ser explicado por sua construção interna. Motores DC escovados são motores que ligam e desligam suas bobinas através de um sistema de comutação interna, essa comutação ocorre como próprio giro do motor, portanto, eles são capazes de girar utilizando uma fonte de tensão contínua. Com os motores brushless o sistema tem que ser totalmente diferente, eles são essencialmente motores trifásicos, ou seja, o acionamento das suas bobinas são feitos através de uma fonte de tensão que varia para gerar um fluxo magnético que impulsiona o motor, fazendo ele girar. De maneira bem abstrata, os motores escovados DC tem um comutador físico para suas bobinas, enquanto os brushless um comutador eletrônico. Existem outras diferenças entre os dois motores, mas na minha opinião essa é a principal.

Para ligar motores brushless em uma fonte de tensão "fixa", como uma bateria ou uma fonte de bancada, é necessário que seja feita a comutação nas bobinas, e para isso utilizamos o ESC (Eletronic Speed Controler), ele é o responsável pelo controle completo do motor. Os ESC's mais comuns são fabricados para serem utilizados em drones, e drones, diferente de robôs sumô, não precisam reverter a o giro do motor constantemente durante uma partida, por isso eles não costumam vir de fábrica programados para isso.

Uma rápido resumo no funcionamento de um ESC: Os ESC's (os mais comuns) tem basicamente duas entradas e duas saídas:

Entradas - Alimentação (varia de acordo com cada um);

- Sinal PWM ( é o sinal que o ESC recebe e determina a velocidade e o sentido de rotação);

Saídas - Saída do motor (Três fios para acionamento do motor);

- Saída 5v (para alimentar periféricos - BEC).

Explicação mais detalhada sobre os ESC's.

O ESC funciona comutando a tensão na saída do motor, para isso um microcontrolador é programado para acionar múltiplos transistores de alta eficiência nos momentos corretos, para gerar o fluxo magnético no interior do motor, assim o microcontrolador é o cérebro da operação, ele monitora e gerencia o motor de acordo com o sinal de entrada PWM. Para habilitar a função de reversão de rotação no ESC, precisamos reprogramar o microcontrolador embutido nele, e para isso vou deixar um vídeo muito bom como tutorial:

nele o Robert Cowan mostra os passos detalhadamente, melhor do que eu poderia explicar aqui em palavras.

No projeto, para poder controlar melhor o robô, decidimos mixar os canais para responder melhor nos comandos do controle Spektrum Stx2 estilo "arma", onde o gatilho direciona o robô para frente ou para trás e a roda para direita ou para a esquerda. Para fazer a mixagem em tempo real utilizamos um Arduino Nano, que fazia a leitura do receptor do controle, interpretava de acordo com a programação e gerava o PWM para os dois ESC's do robô em conjunto. Não irei focar na programação do Arduino pois não fiquei responsável por essa etapa, mas resumidamente posso falar o que ocorria:

o controle do motor é feito através da leitura da largura de pulso, onde um pulso nominal de 1,5ms determina que o motor fique parado, ao aumentar a largura de pulso entre 1,5 e 2ms o motor começa a girar e conforme o pulso é maior, a velocidade é maior; assim, o mesmo ocorre com o pulso entre 1,5 e 1ms, entretanto com a rotação invertida. Ao inserir o Arduino, mapeamos os comandos do controle e traduzimos em ordens para os dois ESC's ao mesmo tempo.