Você está na página 1de 26

CEP - CENTRO DE EDUCAÇÃO PROFISSIONAL “TANCREDO NEVES”

E3A – Eletrônica - EMTI

Gabriel de Assis Braga

Gabriella Vitória Machado Costa

Pedro Henrique Cintra

RoboFight

BRAZÓPOLIS 2023

Página 1 de 26
Gabriel de Assis Braga

Gabriella Vitória Machado Costa

Pedro Henrique Cintra

RoboFight

Projeto apresentado ao CEP - Centro de Educação


Profissional “Tancredo Neves”, como requisito
parcial para obtenção do título de Técnico em
Eletrônica sob a orientação do professor João José
Ribeiro Neto.

BRAZÓPOLIS 2023

Página 2 de 26
Dedicamos esse trabalho a todos aqueles que acreditaram e confiaram no nosso
potencial, em especial aos nossos pais, amigos e professores.

Página 3 de 26
AGRADECIMENTOS
Agradecemos todos os professores que nos apoiaram e passaram
conhecimento durante toda a formação técnica. Foram muitas experiências e
aprendizados adquiridos e que, com certeza, irão nos ajudar a dar grandes passos no
futuro.

Também gratificamos todos nossos amigos, pois foram eles que nos deram
apoio moral e emocional para não desistir. Todo esse apoio somado a troca de
experiências e conhecimento foram necessários para chegarmos até aqui.

Ademais, agradecemos aos nossos pais e familiares, pelo apoio moral,


emocional e financeiro. Sem eles, o desenvolvimento do projeto seria muito mais difícil
e talvez não tivéssemos concluído o curso.

Por fim, o agradecimento para aqueles que terão curiosidade de conhecer


nosso projeto, pois, sem estes, não alcançaríamos o objetivo do trabalho.

Página 4 de 26
“Nós não cometemos erros, apenas pequenos acidentes felizes.”

(Bob Ross)

Página 5 de 26
RESUMO

O projeto tem como premissa a confecção de dois robôs para realizar uma
luta de sumô. Sem foco competitivo, o trabalho visa a diversão criando um jogo
baseado nas competições nacionais e internacionais de luta de robô. Destaca-se
que estes dois robôs possuem premissas opostas: um totalmente autônomo,
equipado com sensores, enquanto o outro será manual, controlado por um joystick.

Palavras-chave: Robôs. Arduino. Luta. Jogo. Sensores. Automatização. Sumô.

Página 6 de 26
ABSTRACT

The project has as its premise the making of two robots to carry out a sumo
fight. Without a competitive focus, the work aims at fun creating a game based on
national and international robot fighting competitions. It is noteworthy that these two
robots have opposite premises: one is totally autonomous, equipped with sensors,
while the other will be manual, controlled by a joystick.

Keywords: Robots. Arduino. Fight. Game. Sensors. Automation. Sumo.

Página 7 de 26
Sumário

1.0 Introdução ........................................................................... 09

2.0 Justificativa .......................................................................... 11

3.0 Objetivos .............................................................................. 12

3.1 Objetivo geral ........................................................................ 12

3.2 Objetivo específico ................................................................ 12

4.0 Fundamentação Teórica ...................................................... 13


4.1 Desenvolvimento teórico ....................................................... 13

4.2 Materiais ................................................................................ 14

4.3 Procedimento metodológico .................................................. 14

5.0 Conclusão ............................................................................ 16

6.0 Referências bibliográficas .................................................. 17

7.0 Apendice ............................................................................... 18

Página 8 de 26
1.0 Introdução

Lutas de robôs são, nacionalmente, pouco conhecidas enquanto campeonato, mas


ainda assim trazem grandes conquistas para aqueles que participam da modalidade.
Mesmo não sendo muito noticiado, o Brasil é conhecido internacionalmente pela
realização de grandes feitos nessas competições. Tal desvalorização no país se
deve a falta de divulgação dessas competições, conquistas da nação e até mesmo
os benefícios de ingressar nesse mundo por parte das mídias sociais.

A diversão já começa na confecção do seu robô, onde é possível soltar a imaginação


e criar os mais variados tipos de lutadores, que podem te levar a conquista de
grandes troféus. Independente de qual modalidade escolher, robô automático ou
manual, a montagem pode ser um desafio divertido e trazer muito aprendizado na
área de programação e montagem de circuitos.

A batalha começa ao colocar dois robôs frente a frente na arena — uma plataforma,
geralmente de madeira, branca com bordas pretas — e o grande objetivo é o
enfrentamento das máquinas por um tempo até que haja um campeão: aquele que
derrubou o oponente da arena. Baseada na luta joponesa conhecida como Sumô,
com os mesmos princípios e objetivos, essa modalidade excêntrica surge, também
no Japão, durante os anos 2000. Os robôs podem ser dividos em categorias que
leva em consideração sua estrutura: peso, controle, etc.

Página 9 de 26
Trazendo uma releitura destas grandes competições, o projeto RoboFight entra no
cenário propondo uma nova forma de participar. Sem fins competitivos, esse
trabalho transforma o que antes era uma competição em um jogo, ainda sim
garantindo a diversão dos telespectadores.

Por mais que, nos campeonatos, os robôs são, geralmente, automáticos, ou seja,
equipados com alguns sensores, na RoboFight há dois robôs que podem fugir um
pouco do padrão. Mesmo que para fins semelhantes, os robôs deste projeto
possuem propostas bem diferentes: um deles é totalmente automático —
semelhante aos usados nas lutas competitivas — e o outro manual, ou seja,
controlado por um joystick a distância. Assim, os telespectadores poderão ter uma
participação direta se aceitarem participar do desafio: derrubar o robô automático da
arena.

Página 10 de 26
2.0 Justificativa

Por mais recompensadoras que as competições de luta de robôs possam ser,


ainda são pouco conhecidas no ambiente nacional enquanto competição. A
RoboFight não só amplia o alcance da área como também aplica todo o
conhecimento eletrônico adquirido no curso.

Página 11 de 26
3.0 Objetivos

3.1. Objetivo geral

Desenvolver um jogo baseado nos campeonatos de luta de robôs de sumô,


que coloca em campo dois robôs, um automático e outro manual, onde o
telespectador o controla a distância.

3.2. Objetivo específico

• Divulgar as lutas de robô;


• Desenvolver um projeto que o público possa participar;
• Explicar o funcionamento de alguns tipos de sensores e módulos de
maneira didática e de fácil compreensão;
• Estimular o público a conhecer uma das diversas aplicações de robôs;
• Aplicar o conhecimento eletrônico adquirido no curso;

Página 12 de 26
4.0 Fundamentação Teórica

4.1. Desenvolvimento Teórico

O robô automático será equipado com diversos sensores e motores afim de


deixa-lo independente. Para que ele funcione de forma eficiente é necessário
que cumpra alguns requisitos, tais como: verificar se há algum oponente na
arena e detectar e desviar das bordas.
Para a verificação de oponentes na arena será utilizado um sensor
ultrassônico HC-SR04, que funciona por meio da liberação de um
frequência sonora que, após detectar algum oponente, tem a frequência
refletida de volta ao sensor, que traduz essa informação para medida da
distância. Já para detectar as bordas, o sensor de obstáculos reflexivo
infravermelho TR5000 cumpre o papel. Seu funcionamento é parecido com
o do sensor ultrassônico, mas ao invés de utilizar o som, usa luz
infravermelha.
Para realizar a movimentação do robô, utiliza-se motores de corrente
contínua, pois estes podem ser alimentados com baterias e pilhas. Estes
motores serão ligados em uma ponte H dupla HG7881, cuja função desta é
controlar, simultaneamente, dois ou mais sensores (fator determinado pelo
modelo da ponte H).
No que se refere ao robô manual, não há a necessidade da utilização de
sensores tais como os utilizados no robô automático. Sua montagem e
funcionamento são bem mais simples: utiliza-se o receptor bluetooth de um
controle de PS2 que recebe os comandos do joystick do controle, enviandoos
para o ESP. A escolha do controle bluetooth se deu por se apresentar como
uma maneira acessível e segura para todos participarem, pois pode-se
manter uma certa distância entre a arena e o jogador — fator importante para
a segurança do público.
No robô manual, se repete a utilização dos motores de corrente contínua
ligados em uma ponte H pelos mesmos motivos anteriormente citados. Os
robôs utilizarão um arduíno e um ESP, respectivamente, que ficam
responsáveis por controlar todos os outros componentes se baseando na

Página 13 de 26
programação previamente inserida neles. Um interruptor e pilhas
recarregáveis também são indispensáveis para os dois: o interruptor permite
ligar e desligar o robô, evitando desperdício da carga das pilhas, mesmo
sendo recarregáveis podem ter seu tempo útil melhor aproveitado se
utilizadas de forma eficiente.
A carcaça dos robôs podem feitas do mesmo material acrílico ou papel, que
por mais que pareça não muito resistente, é de fácil manipulação e reforço.
Por fim, a arena pode ser feita com um círculo de madeira, e deve ser
colorida de branco, com um contorno em preto próximo as bordas para
melhorar o funcionamento do sensor infravermelho.

4.2. Materiais

• 1 Arduíno Uno;
• 1 ESP8266;
• 2 Mini Protoboard;
• 2 Ponte H Dupla (HG7881);
• 2 Sensores infravermelho (TR5000);
• 1 Sensor ultrassônico (HC-SR04);
• 1 Controle Bluetooth de PS2;
• 2 Kit Chassi 2WD (cada um possui dois motores DC, um suporte para quatro
pilhas AA, um interruptor, duas rodas e uma base para o robô);
• 8 Pilhas AA recarregáveis ou não;
• Jumpers;
• Papelão;
• Madeira;
• Tinta branca e preta;

4.3. Procedimento Metodológico

A montagem iniciou-se com a confecção de rampas de papelão para


complementar a carcaça dos robôs e deixá-los mais dinâmicos, ambas
rampas foram feitas com papelão porém uma delas precisou ser adaptada
Página 14 de 26
para o anexo do sensor ultrassônico. Em seguida, os Kit Chassi foram
montados seguindo as instruções oferecidas pelo site do vendedor. A seguir,
os códigos que controlariam os robôs começou a ser desenvolvido utilizando
a ferramenta Arduino IDE e, após finalizados, foram enviados para seus
respectivos controladores: o Arduino e o ESP. O primeiro robô a ganhar vida
foi o manual, utilizando um dos Kit Chassi e os seguintes componentes:
ESP8266, uma Ponte H Dupla HG7881 e o Controle Bluetooth de PS2; tudo
sendo alimentado por quatro pilhas AA. De começo, anexou-se a Mini
Protoboard na carcaça do robô com fita dupla-face, em seguida o ESP foi
conectado no centro da placa de ensaio. Logo, o suporte para as pilhas e a
Ponte H Dupla foram anexados também com fita dupla-face próximo ao ESP.
Os dois motores DC presentes no Kit Chassi tiveram, cada um, dois fios
soldados em suas entradas que foram conectados na Ponte H. Ademais, não
foi necessário utilizar mais solda, visto que a variedade de jumpers usados
permitiu que a montagem se tornasse mais dinâmica. E, finalmente, os testes
do robô manual puderam começar.
Paralelo a isso, a confecção do robô automático começou. Utilizando o Kit
Chassi e a rampa de papelão (esta, com suporte para o anexo do sensor
ultrassônico) a carcaça estava completa. Neste caso, o Arduino não foi
conectado na mini protoboard, mas sim anexado no meio da carcaça. Por ser
uma montagem um pouco mais complexa do que o robô anterior, a mini
protoboard foi anexada perto do arduino, servindo apenas para juntar as
entradas/saídas em comum. Na carcaça do robô, buracos em pontos
estratégicos foram feitos com ferro quente, e outros já vieram de fábrica, em
dois deles, um em cada extremidade, foram anexados os dois sensores
infravermelhos. Na montagem deste robô, foi soldado apenas os fios nas
entradas dos dois motores DC, enquanto que o restante dos componentes foi
utilizado jumper para uma ligação mais limpa e segura. Por fim, o teste do
robô automático pode ser feito.
Após o sucesso na montagem de ambos os robôs, iniciou-se a construção da
arena para a luta acontecer. O ambiente foi construído em madeira cortada
em uma forma circular, com diâmetro aproximado de 100cm e altura de 6cm..
A plataforma foi pintada completamente de preto fosco, e, em seguida,

Página 15 de 26
circunscrita por uma borda branca de 2cm de largura. Agora, os robôs
possuem um grande espaço para lutarem e os testes finais, enfim,
começaram.

Página 16 de 26
5.0 CONCLUSÃO

A proposta de desenvolver um jogo inspirado nos campeonatos de luta de


robôs de sumô representa uma aplicação prática do conhecimento eletrônico
adquirido no curso. Além disso, essa iniciativa não apenas amplia o alcance
dessa área ainda pouco conhecida no ambiente nacional, mas também
proporciona uma experiência interativa ao permitir que os telespectadores
controlem um dos robôs à distância. A RoboFight, ao unir a paixão por
competições de robôs com a aplicação de conhecimentos eletrônicos, não só
promove a disseminação desse campo como também oferece uma
experiência emocionante e educativa para os entusiastas.

Página 17 de 26
6.0 REFERÊNCIAS BIBLIOGRÁFICAS

https://produto.mercadolivre.com.br/MLB-689564321-4-pilhas-recarregavel-
mox-aa-2600-pilha-pequena-_JM#shipping

https://www.eletrogate.com/carrinho/index

https://www.youtube.com/brincandocomideias ;

https://www.instagram.com/canalbrincandocomideias/

https://cursodearduino.net/

https://cursoderobotica.net

https://www.arducore.com.br/

https://produto.mercadolivre.com.br/MLB-2161711605-modulo-sensor-
ultrassonico-hc-sr04-arduino-pic-raspberry-_JM

Página 18 de 26
7.0 APENDICE: Robô Manual

#include <PS2X_lib.h>

#define motorA1 5 // A-1A (Pino digital 5)

#define motorA2 3 // A-1B (Pino digital 3)

#define motorB1 6 // B-1A (Pino digital 6)

#define motorB2 9 // B-2A (Pino digital 9)

#define velocidadeE 255

#define velocidadeD 255

PS2X ps2x;

void setup() {

Serial.begin(9600);

configuraControle();

pinMode(motorA1, OUTPUT);

pinMode(motorA2, OUTPUT);

pinMode(motorB1, OUTPUT);

pinMode(motorB2, OUTPUT);

digitalWrite(motorA1, LOW);

digitalWrite(motorA2, LOW);

digitalWrite(motorB1, LOW);

digitalWrite(motorB2, LOW);

Página 19 de 26
Serial.println("Parado");

void loop() {

ps2x.read_gamepad();

if (ps2x.Button(PSB_PAD_UP)) { // ANDAR PRA FRENTE

moverFrente();

Serial.println("Andando pra frente");

} else if (ps2x.Button(PSB_PAD_RIGHT)) { // VIRAR PRA DIREITA

virarDireita();

Serial.println("Andando pra direita");

} else if (ps2x.Button(PSB_PAD_LEFT)) { // VIRAR PRA ESQUERDA

virarEsquerda();

Serial.println("Andando pra esquerda");

} else if (ps2x.Button(PSB_PAD_DOWN)) { // ANDAR PRA TRAS

moverTras();

Serial.println("Andando pra trás");

} else { // FICAR PARADO

pararMotores();

Serial.println("Parado");

delay(50);

void configuraControle() {

Página 20 de 26
int erroControle = ps2x.config_gamepad(13, 11, 10, 12, true, true);

if (!erroControle) {

Serial.println("Controle encontrado");

} else {

Serial.println("Controle não encontrado");

while (erroControle) {

if (bitRead(millis(), 11)) erroControle = ps2x.config_gamepad(13, 11, 10,


12, true, true);

void moverFrente() {

analogWrite(motorA1, velocidadeE);

analogWrite(motorA2, LOW);

analogWrite(motorB1, velocidadeD);

analogWrite(motorB2, LOW);

void moverTras() {

analogWrite(motorA1, LOW);

analogWrite(motorA2, velocidadeE);

analogWrite(motorB1, LOW);

analogWrite(motorB2, velocidadeD);

void virarEsquerda() {

Página 21 de 26
analogWrite(motorA1, velocidadeE);

analogWrite(motorA2, LOW);

analogWrite(motorB1, LOW);

analogWrite(motorB2, LOW);

void virarDireita() {

analogWrite(motorA1, LOW);

analogWrite(motorA2, LOW);

analogWrite(motorB1, velocidadeE);

analogWrite(motorB2, LOW);

void pararMotores() {

analogWrite(motorA1, LOW);

analogWrite(motorA2, LOW);

analogWrite(motorB1, LOW);

analogWrite(motorB2, LOW);

Página 22 de 26
APENDICE: Robô Automático

#include <NewPing.h>

// Sensor Infravermelho

#define frontal 3

#define traseiro 4

// Sensor Ultrassonico

#define echo 8

#define trig 7

#define maxdist 100

NewPing sensorUltra(trig,echo,maxdist);

// Motores

#define MOTOR_A1A 5

#define MOTOR_A1B 6

#define MOTOR_B1A 9

#define MOTOR_B1B 10

#define velocidade 200

void setup() {

pinMode(MOTOR_A1A, OUTPUT);

pinMode(MOTOR_A1B, OUTPUT);

Página 23 de 26
pinMode(MOTOR_B1A, OUTPUT);

pinMode(MOTOR_B1B, OUTPUT);

pinMode(frontal,INPUT);

pinMode(traseiro, INPUT);

Serial.begin(9600);

void loop() {

if(digitalRead(frontal)==HIGH){

Serial.println("BORDA FRONTAL DETECTADA!");

moverTras();

delay(20);

} else if(digitalRead(frontal)==LOW){

radar();

if(digitalRead(traseiro)==HIGH){

Serial.println("BORDA TRASEIRA DETECTADA!");

moverFrente();

delay(20);

} else if(digitalRead(frontal)==LOW){

radar();

}}

Página 24 de 26
void moverFrente() {

parar();

digitalWrite(MOTOR_A1A, 200);

digitalWrite(MOTOR_A1B, LOW);

digitalWrite(MOTOR_B1A, 200);

digitalWrite(MOTOR_B1B, LOW);

delay(1);

void moverTras() {

parar();

delay(1);

digitalWrite(MOTOR_A1A, LOW);

digitalWrite(MOTOR_A1B, 200);

digitalWrite(MOTOR_B1A, LOW);

digitalWrite(MOTOR_B1B, 200);

delay(1);

void verificarOponente(){

parar();

digitalWrite(MOTOR_A1A, 150);

digitalWrite(MOTOR_A1B, LOW);

digitalWrite(MOTOR_B1A, LOW);

digitalWrite(MOTOR_B1B, LOW);

delay(1);

Página 25 de 26
}

void parar(){

digitalWrite(MOTOR_A1A, LOW);

digitalWrite(MOTOR_A1B, LOW);

digitalWrite(MOTOR_B1A, LOW);

digitalWrite(MOTOR_B1B, LOW);

delay(1);

void radar (){

int distancia = sensorUltra.ping_cm();

Serial.println(distancia);

if(distancia>50){

Serial.println("Nenhum Oponente Detectado. Sigo procurando um oponente


digno!");

verificarOponente();

} else {

Serial.println("Oponente Detectado. ATACAR!");

moverFrente();

delay(100);

Página 26 de 26

Você também pode gostar