Índice:

Robô Arduino Sumo: 5 etapas
Robô Arduino Sumo: 5 etapas

Vídeo: Robô Arduino Sumo: 5 etapas

Vídeo: Robô Arduino Sumo: 5 etapas
Vídeo: Arduino robot sumo 2024, Julho
Anonim
Robô Arduino Sumo
Robô Arduino Sumo

Antes de começarmos

O que é o robô de sumô?

É um robô autocontrolado com dimensões e características específicas, também é projetado em formas hostis que o qualificam para participar de concursos e competições com outros robôs.

O nome “sumô” veio de um antigo esporte japonês, que consiste em dois oponentes lutando em um ringue, cada um tentando empurrar o outro para fora dele. E é isso que os robôs também deveriam fazer nas competições de robótica de sumô, onde dois robôs colocados no ringue e uns aos outros tentando empurrar seu oponente.

A ideia:

Construa um robô com certas especificações e compatível com as leis dessa competição (Sumo), este robô deve estar em dimensões exatas para lutar e sobreviver para não ser riscado fora do ringue de forma alguma.

Então, vamos dar uma olhada nas leis de competição de robôs de Sumô:

Vou explicar alguns papéis importantes que você deve considerar ao construir seu próprio SUMO. Também pode ajudá-lo a imaginar e inovar sua própria ideia sem entrar em detalhes profundos.

1. Dimensões: Largura máxima 20 cm, Comprimento máximo 20 cm, Altura não especificada.

2. Forma: a forma do robô pode ser mutável após o início da corrida, mas sem as partes inseparáveis para manter sendo um objeto central.

3. Peso: não excede 3 kg.

4. O robô deve ser autocontrolado.

Etapa 1: Componentes

Image
Image
Usos para cada componente
Usos para cada componente

1 Arduino Ano3

2 motor DC

1 L298N Dual H Bridge para Arduino

1 sensor ultrassônico

2 IR TCRT5000

1 bateria 9v

Bateria AA 4 * peças de 1,5 v + compartimento de bateria

4 rodas de robô

fios de ligação

Etapa 2: usos para cada componente

Usos para cada componente
Usos para cada componente
Usos para cada componente
Usos para cada componente

Agora que temos os componentes necessários, vamos entrar em detalhes para saber o que é usado para..

1- Arduino Ano3

É uma placa principal que controla todas as partes e as conecta

2- Motor DC

Que ajudam o robô a manobrar e se mover dentro do anel da COMPETÊNCIA

4- L298N Dual H Bridge para Arduino

É um pequeno painel que fornece tensão constante aos motores, além do suporte da placa Arduino com bom controle de movimento e tensão.

5- Sensor ultrassônico

O sensor ultrassônico é usado para localizar o robô do oponente e geralmente é colocado no topo do robô.

6- IR TCRT5000

Como já mencionamos, o anel de concurso é desenhado em um determinado tamanho e tem duas cores, o preenchimento é preto e a moldura é branca. O competidor não deve sair. Portanto, usamos o sensor IR para garantir que o robô não fique fora do ringue. Este sensor tem a capacidade de distinguir entre as cores do anel).

7- Bateria 9v

Suporta a placa principal (Arduino) com a voltagem importante.

8- bateria AA 4 * peças de 1,5 v + compartimento de bateria

Suporta os dois motores (Motor DC) com a tensão importante e deve ser separado para dar força total às rodas.

9- Fios de ligação

Etapa 3: Design

Projeto
Projeto
Projeto
Projeto

Fiz dois designs de robô de sumô usando o esboço 3D do Google porque gosto de criar modelos de papel dos meus robôs antes de cortar peças de acrílico no cortador a laser. Para verificar se todas as peças se encaixarão corretamente, é importante que os modelos de papel sejam impressos no tamanho exato dos desenhos.

E eu levo em consideração estar em uma medição específica com as leis de concorrência, então tente pensar em projetos mais criativos e faça seu próprio modelo.

Para ficar mais sensível ao peso do robô em apresente ou então coloque as baterias na frente do robô com o escudo frontal em um ângulo de 45 graus em relação à forma do robô.

Baixe o design 1 aqui

Baixe o design 2 aqui

Você também pode baixar o modelo de modelo de papel

Abra o arquivo PDF com Adobe Acrobat Reader (software recomendado)

Etapa 4: Estratégia de jogo

Image
Image
Estratégia de jogo
Estratégia de jogo

Como mencionamos antes, o robô deve ter sua própria capacidade de se controlar, então isso nos dá a capacidade de programá-lo em mais de uma maneira, dependendo de como você deseja que o robô jogue no ringue, assim como qualquer oponente no real quero ganhar o jogo.

Estratégia de jogo (1):

· Faremos o robô em torno de si continuamente.

· O robô está sempre medindo a distância continuamente durante a rotação.

· Se a distância medida do oponente for menor que (10cm por exemplo), isso significa que o oponente está na nossa frente do robô diretamente.

· O robô deve parar de girar e então iniciar o ataque (avançar com força total rapidamente).

· O robô deve fazer as leituras dos sensores IR sempre para se certificar de que não cruzamos a borda do anel.

· Se for lido de presença de infravermelho da cor branca, ele deve mover o robô diretamente na direção oposta do sensor (por exemplo: Se o sensor frontal, que deu uma indicação da cor branca do robô se move para trás)!

Estratégia de jogo (2):

· No robô inicial, meça a distância à frente.

· O robô recua na mesma distância medida.

· O robô para de girar e então começa o ataque repentinamente (avance com força total).

· No caso de um oponente, o robô deve girar 45 graus para sobreviver se cair do ringue.

· O robô deve fazer as leituras dos sensores IR sempre para se certificar de que não cruzamos a borda do anel.

· Se Ler de presença de infravermelho da cor branca, ele deve mover o robô diretamente na direção oposta do sensor (por exemplo: Se o sensor frontal, que deu uma indicação da cor branca do robô se mover para trás)!

Etapa 5: Programação

Programação
Programação

por favor verifique o circuito e o código

* Atualização 2019-03-26

Baixe a biblioteca Ultrasonic aqui primeiro e instale-a:

github.com/ErickSimoes/Ultrasonic/blob/mas…

/*

por ahmed Azouz

www.instructables.com/id/How-to-Make-Ardu…

Baixe a lib aqui primeiro

github.com/ErickSimoes/Ultrasonic/blob/ma…

*/

#include Ultrasonic.h

Ultra-sônico ultrassônico (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // sensor dianteiro #define IR_sensor_back A1 // senson traseiro dist distance;

void setup ()

{Serial.begin (9600); atraso (5000); // de acordo com funções de compatibilidade de sumo} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); distância = ultrasonic.read (); GIRAR (200); // inicia a rotação if (distância <20) {Stop (); while (distância 650 || IR_back> 650) {break;} delay (10); } if (IR_front <650) // <650 significa linha branca {Stop (); atraso (50); PARA TRÁS (255); atraso (500); } if (IR_back <650) // {Stop (); atraso (50); FORWARD (255); atraso (500); } / * ----------- debugging ---------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println ("cm"); Serial.println ("Frente IR:"); Serial.println (IR_front); Serial.println ("IR back:"); Serial.println (IR_back); * /

} //--------------------------------------------

void FORWARD (int Speed) {// Quando queremos que o Motor se mova para frente, // apenas cancele esta parte na seção de loop. analogWrite (IN1, velocidade); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, velocidade); } // -------------------------------------------- void BACKWARD (int Speed) {// Quando quisermos que o Motor se mova para frente, // anule esta parte na seção de loop. analogWrite (IN1, 0); analogWrite (IN2, velocidade); analogWrite (IN3, velocidade); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Quando queremos deixar o motor girar, // anula esta parte na seção de loop. analogWrite (IN1, velocidade); analogWrite (IN2, 0); analogWrite (IN3, velocidade); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Quando queremos parar o motor, // apenas anula esta parte na seção de loop. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Recomendado: