O artigo mostra a criação de um robô que viaja ao longo das linhas e pode passar por labirintos. Depois de estudar o labirinto, ele pode passar por ele da maneira mais curta possível. O autor por um longo tempo criou este projeto, a sorte o ultrapassou pela terceira vez.
Demonstração da máquina:
Materiais e ferramentas:
- Arduino RBBB
- Micromotores 2 peças
- Suportes para motores de 2 peças
- Rodas 2 peças
- roda de bola
- Sensor de reflexão analógica
- Porcas com parafusos de 2 peças.
- motorista do motor
- Suporte de bateria 4 peças AAA
- Pilhas (pilhas recarregáveis) AAA 4 peças
- Caso
- Porcas, cavilhas, arruelas
- fios de conexão
- solda
- alicates
- ferro de soldar
- chave de fenda
Primeiro passo Teoria
O autor precisava o robô, que por si só encontrará uma saída do labirinto, após o que será capaz de otimizar a viagem de volta. Ao criar uma máquina para labirintos, eles foram guiados pelo método da esquerda. Para tornar mais claro, você deve imaginar que estava em um labirinto e sempre mantenha a mão esquerda na parede. Depois de passar por um determinado caminho, isso o ajudará a sair do labirinto se ele não estiver fechado. O robô só pode trabalhar com labirintos abertos.
Os princípios do método da esquerda são bastante simples:
- Se você puder virar à esquerda, vire à esquerda.
- Se for possível seguir em frente, siga em frente.
- Se você pode virar à direita, vire à direita.
- Se você estiver em um beco sem saída, gire 180 graus.
Além disso, o robô precisa tomar decisões no cruzamento, mas se não desligar na curva, será reto. Para criar uma rota de retorno melhor, cada decisão é gravada na memória.
L = curva à esquerda
R = curva à direita
S = pula uma volta
B = girar 180 graus
Este método é mostrado abaixo em ação usando um labirinto simples como exemplo. O robô percorreu a distância com comandos LBLLBSR.
O caminho saiu bastante, e precisa ser transformado em um SRR ideal. Para fazer isso, é determinado onde o robô virou na direção errada. Em todos os lugares em que o comando "B" for usado, o caminho estará incorreto, pois o robô estava em um impasse, portanto, "B" deve ser substituído por outra coisa. O primeiro movimento errado foi LBL, o robô girou e girou, enquanto era necessário seguir diretamente LBL = S. Assim, o caminho ideal LBL = S, LBS = R. é construído.Com base nessas substituições, o robô constrói um caminho curto ideal para si.
Etapa dois O chassi do robô.
Acrílico com espessura de 0,8 mm tornou-se a base do chassi do robô; o corte foi realizado por laser, conforme o desenho. No arquivo do artigo, haverá um arquivo de desenho do AutoCAD. Não era necessário usar esse material, mas o autor pegou o que estava disponível.
Na parte inferior, são feitos orifícios para a montagem de motores, placas, rodas e sensores. A parte superior possui um orifício grande para os fios.
Etapa três Instalação de rodas.
O autor anexou os dois motores com parafusos. Além disso, eles simplesmente colocam as rodas no eixo, alinhando o eixo com o furo na roda.
O quarto passo. Arduino
Nesse ponto, o autor seguiu primeiro as instruções de montagem do RBBB do Arduino. Além disso, ele cortou parte do quadro para reduzir seu tamanho. O conector de alimentação e o estabilizador foram cortados com uma tesoura para metal. Depois disso, um conector de 9 pinos foi soldado no lado esquerdo da placa para contatos de 5V a A0 para conectar um sensor a ele. Um conector de 4 pinos foi soldado no lado direito da placa para contatos de D5 a D8 e um controlador de motor será conectado a ele. Para fornecer energia, o conector de 2 pinos foi soldado a 5V e GND.
Quinto passo Controlador do motor.
O próprio autor desenvolveu uma placa de circuito impresso para esta etapa, o circuito no formato Eagle está anexado no arquivo abaixo do artigo. O primeiro motor foi conectado aos pinos M1-A e M1-B, o segundo aos M2 e M2-B. A primeira entrada do primeiro motor In 1A foi conectada ao 7º pino do Arduino. Em 1B foi conectado ao pino 6 do Arduino. Na primeira entrada do segundo motor, o In 2A está conectado ao 5º pino do Arduino. Pin In 2B se conecta ao pino 8 do Arduino. Energia e terra estão conectados à energia e terra do Arduino.
Etapa seis Sensores
Este elemento é vendido na forma de uma placa de sensores, inicialmente existem oito deles, os dois extremos foram excluídos pelo autor. Um conector de 9 pinos foi soldado à placa, um fio que leva ao Arduino será conectado a eles. O sensor detecta uma parte branca e preta do labirinto usando a reflexão da superfície.
Sétimo passo. Parte superior.
O chassi com a parte superior do robô conectada por parafusos e racks. A bateria foi presa na parte superior com velcro. Fios dele foram colocados através do buraco preparado. Ao prender, o autor decidiu não usar parafusos, mas deixar a bateria com velcro para facilitar a troca. Usando o interruptor na caixa da bateria, uma verificação de desempenho foi realizada.
Passo Oito. Instalação de sensores.
Os sensores foram parafusados na parte inferior da máquina. O pino GND está conectado ao GND Arduino. Em seguida, o pino Vcc é conectado ao 5V Arduino. Os ADCs do Arduino 5-0 conectaram os pinos dos sensores analógicos 6-1.
Etapa nove. Alimento.
O Arduino acabou de soldar os fios da bateria. Ligar e desligar o robô será um interruptor para a bateria, por isso foi decidido usar a solda. Isso completa a montagem do robô.
Etapa dez A parte do software.
O programa possui várias funções responsáveis pelo algoritmo de operação. A função "mão esquerda" recebe leituras dos sensores e controla o robô de acordo com essas regras. A função de rotação é ativada antes que o robô perceba uma linha preta, tendo notado que está viajando em linha reta. Uma função de otimização de caminho também está integrada. O programa pode ser baixado sob o artigo no arquivo.
Vídeo do robô: