Índice:

Como fazer um obstáculo Arduino DIY para evitar o robô em casa: 4 etapas
Como fazer um obstáculo Arduino DIY para evitar o robô em casa: 4 etapas

Vídeo: Como fazer um obstáculo Arduino DIY para evitar o robô em casa: 4 etapas

Vídeo: Como fazer um obstáculo Arduino DIY para evitar o robô em casa: 4 etapas
Vídeo: Fabricando um robô inseto com arduino Formato 2 - Projetos Insanos #05 2024, Novembro
Anonim
Image
Image

Olá pessoal, Neste Instructable, vocês farão um obstáculo evitando o robô. Este Instructable envolve a construção de um robô com um sensor ultrassônico que pode detectar objetos próximos e mudar sua direção para evitar esses objetos. O sensor ultrassônico será conectado a um servo motor que está constantemente varrendo a esquerda e a direita procurando por objetos em seu caminho.

Então, sem mais delongas, vamos começar!

Etapa 1: O que você precisa neste projeto:

O que você precisa neste projeto
O que você precisa neste projeto
O que você precisa neste projeto
O que você precisa neste projeto

Aqui está a lista de peças:

1) Arduino Uno

2) Escudo do Motorista

3) Conjunto de motor de engrenagem, quadro e rodas

4) Servo motor

5) Sensor Ultrassônico

6) Bateria de íon-lítio (2x)

7) Suporte de bateria

8) Fio de ligação macho e fêmea

9) Ferro de soldar

10) Carregador

Etapa 2: Diagrama de Circuito

Diagrama de circuito
Diagrama de circuito

Trabalhando:

Antes de começar a trabalhar no projeto, é importante entender como funciona o sensor ultrassônico. O princípio básico por trás do funcionamento do sensor ultrassônico é o seguinte:

Usando um sinal de disparo externo, o pino de disparo no sensor ultrassônico torna-se lógico alto por pelo menos 10 µs. Uma rajada sônica do módulo transmissor é enviada. Isso consiste em 8 pulsos de 40KHz.

Os sinais retornam após atingirem uma superfície e o receptor detecta esse sinal. O pino Echo está alto desde o momento de enviar o sinal e recebê-lo. Este tempo pode ser convertido em distância usando cálculos apropriados.

O objetivo deste projeto é implementar um robô evitando obstáculos usando sensor ultrassônico e Arduino. Todas as conexões são feitas de acordo com o diagrama de circuito. O funcionamento do projeto é explicado a seguir.

Quando o robô é ligado, ambos os motores do robô funcionarão normalmente e o robô se moverá para frente. Durante esse tempo, o sensor ultrassônico calcula continuamente a distância entre o robô e a superfície reflexiva.

Essas informações são processadas pelo Arduino. Se a distância entre o robô e o obstáculo for inferior a 15 cm, o robô para e faz a varredura nas direções esquerda e direita para uma nova distância usando servo motor e sensor ultrassônico. Se a distância para o lado esquerdo for maior do que para o lado direito, o robô se preparará para uma curva à esquerda. Mas primeiro, ele recua um pouco e então ativa o motor da roda esquerda na direção reversa.

Da mesma forma, se a distância à direita for maior do que a distância à esquerda, o robô prepara a rotação à direita. Este processo continua para sempre e o robô segue em frente sem bater em nenhum obstáculo.

Etapa 3: Programação do Arduino UNO

#incluir

#incluir

#incluir

# define TRIG_PIN A1

# define ECHO_PIN A0

# define MAX_DISTANCE 200

# define MAX_SPEED 255 // define a velocidade dos motores DC

# define MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

distância interna = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); atraso (2000); distância = leitura (); atraso (100); distância = leitura (); atraso (100); distância = leitura (); atraso (100); distância = leitura (); atraso (100); }

void loop () {

distância interna R = 0; distância interna L = 0; atraso (40);

if (distância <= 15) {moveStop (); atraso (100); mover para trás(); atraso (300); moveStop (); atraso (200); distanceR = lookRight (); atraso (200); distanceL = lookLeft (); atraso (200);

if (distanceR> = distanceL) {

Vire à direita(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distância = leitura (); }

int lookRight () {

myservo.write (50); atraso (500); distância interna = leitura (); atraso (100); myservo.write (115); distância de retorno; }

int lookLeft () {

myservo.write (170); atraso (500); distância interna = leitura (); atraso (100); myservo.write (115); distância de retorno; atraso (100); }

int readPing () {

atraso (70); int cm = sonar.ping_cm (); se (cm == 0) {cm = 250; } return cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

if (! vai para a frente) {

vai para a frente = verdadeiro;

motor3.run (FORWARD);

motor4.run (FORWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // aumente lentamente a velocidade para evitar carregar as baterias muito rapidamente {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); atraso (5); }}}

void moveBackward () {

vai para a frente = falso;

motor3.run (PARA TRÁS);

motor4.run (PARA TRÁS); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // aumente lentamente a velocidade para evitar carregar as baterias muito rapidamente {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); atraso (5); }}

void turnRight () {

motor3.run (FORWARD);

motor4.run (PARA TRÁS); atraso (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

void turnLeft () {

motor3.run (PARA TRÁS);

motor4.run (FORWARD); atraso (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

1) Baixe e instale o Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Baixe e cole o arquivo da biblioteca NewPing (biblioteca de função do sensor ultrassônico) na pasta de bibliotecas do Arduino.

  1. Baixe o NewPing.rar abaixo
  2. Extraia para o caminho - C: / Arduino / libraries

3) Faça upload do código para a placa Arduino por meio de um cabo USB

Código de download:

Etapa 4: ótimo

Agora seu robô está pronto para evitar qualquer obstáculo …

Eu ficaria feliz em responder a quaisquer perguntas que você tenha

Emailme: [email protected]

Site:

Inscreva-se no meu canal do YouTube:

Instagram:

Facebook:

Obrigada:)

Recomendado: