Um robô de limpeza automática de pisos não é um conceito novo. Mas esses robôs têm um grande problema. Eles são muito caros. E se pudéssemos fazer um robô de limpeza de piso de baixo custo que seja tão eficiente quanto o robô disponível no mercado. Este robô usará um sensor ultrassônico e evitará qualquer obstáculo em seu caminho. Ao fazer isso, ele limpará toda a sala.
(Esta foto foi tirada do Circuit Digest)
Como usar o sensor ultrassônico para fazer um robô de limpeza automática de piso?
Como sabemos agora o resumo do nosso projeto. Vamos reunir mais algumas informações para começar a trabalhar.
Etapa 1: Coletando os componentes
A melhor abordagem para iniciar qualquer projeto é fazer uma lista de componentes completos no início e passar por um breve estudo de cada componente. Isso nos ajuda a evitar os transtornos no meio do projeto. Uma lista completa de todos os componentes usados neste projeto é fornecida abaixo.
- Chassi de roda de carro
- Bateria
- Mostrar pincel
Etapa 2: estudar os componentes
Agora, como temos uma lista completa de todos os componentes, vamos dar um passo à frente e estudar brevemente o funcionamento de cada componente.
Arduino nano é uma placa microcontrolada usada para controlar ou realizar diferentes tarefas em um circuito. Nós queimamos um Código C no Arduino Nano para informar à placa do microcontrolador como e quais operações executar. O Arduino Nano tem exatamente a mesma funcionalidade do Arduino Uno, mas em um tamanho bem pequeno. O microcontrolador na placa Arduino Nano é ATmega328p.
Arduino Nano
O L298N é um circuito integrado de alta corrente e alta tensão. É uma ponte dupla completa projetada para aceitar a lógica TTL padrão. Possui duas entradas de habilitação que permitem que o dispositivo opere de forma independente. Dois motores podem ser conectados e operados ao mesmo tempo. A velocidade dos motores é variada através dos pinos PWM.
Motorista L298N
A placa HC-SR04 é um sensor ultrassônico que é usado para determinar a distância entre dois objetos. Ele consiste em um transmissor e um receptor. O transmissor converte o sinal elétrico em um sinal ultrassônico e o receptor converte o sinal ultrassônico de volta ao sinal elétrico. Quando o transmissor envia uma onda ultrassônica, ela reflete após colidir com um determinado objeto. A distância é calculada usando o tempo que o sinal ultrassônico leva para ir do transmissor e voltar para o receptor.
Sensor ultrasônico
Etapa 3: montagem dos componentes
Como agora sabemos como funcionam todos os componentes, vamos montar todos os componentes e começar a fazer um robô.
Pegue um chassi de roda de carro e monte uma escova de exibição na frente dos chassis. Monte o Scotch Brite embaixo do robô. Certifique-se de que está atrás da escova de sapatos. Agora prenda uma pequena placa de ensaio na parte superior dos chassis e, atrás dela, prenda o driver do motor. Faça as conexões adequadas dos motores ao driver do motor e conecte cuidadosamente os pinos do driver do motor ao Arduino. Monte uma bateria atrás do chassi. A bateria irá alimentar o driver do motor que irá alimentar os motores. O Arduino também obterá energia do driver do motor. O pino Vcc e o aterramento do sensor ultrassônico serão conectados ao 5V e o aterramento do Arduino.
Diagrama de circuito
Etapa 4: Introdução ao Arduino
Se você ainda não está familiarizado com o IDE do Arduino, não se preocupe porque um procedimento passo a passo para configurar e usar o IDE do Arduino com uma placa de microcontrolador é explicado abaixo.
- Baixe a versão mais recente do Arduino IDE em Arduino.
- Conecte sua placa Arduino Nano ao seu laptop e abra o painel de controle. no painel de controle, clique em Hardware e som . Agora clique em Dispositivos e Impressoras. Aqui, encontre a porta à qual a placa do microcontrolador está conectada. No meu caso é COM14 mas é diferente em computadores diferentes.
Encontrar o porto
- Clique no menu Ferramentas e defina o quadro para Arduino Nano.
Tabuleiro de Configuração
- No mesmo menu de ferramentas, defina a porta para o número da porta que você observou antes no Dispositivos e Impressoras .
Porta de configuração
- No mesmo menu de ferramentas, defina o processador para ATmega328P (antigo bootloader).
Processador
- Baixe o código anexado abaixo e cole-o em seu IDE Arduino. Clique no Envio botão para gravar o código na placa do microcontrolador.
Envio
Clique aqui para baixar o código.
Etapa 5: Compreendendo o Código
O código é muito bem comentado e autoexplicativo. Mas, ainda assim, é explicado brevemente a seguir.
1. No início, todos os pinos do Arduino que vamos usar são inicializados.
int enable1pin = 8; // Pinos para o primeiro motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pinos para o segundo motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Pinos para sensor ultrassônico const int echoPin = 10; const int buzzPin = 6; longa duração; // Variáveis para distância de flutuação do sensor ultrassônico;
2 void setup () é uma função na qual definimos todos os pinos para serem usados como INPUT ou OUTPUT. A taxa de bauds também é definida nesta função. A taxa de transmissão é a velocidade pela qual a placa do microcontrolador se comunica com os sensores conectados.
void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (buzzPin, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }
3 - void loop () é uma função que é executada continuamente em um loop. Neste loop, informamos ao microcontrolador quando avançar se nenhum obstáculo for encontrado em 50 cm. O robô fará uma curva fechada à direita quando um obstáculo for encontrado.
loop vazio () {digitalWrite (trigPin, LOW); atrasoMicrosegundos (2); digitalWrite (trigPin, HIGH); atrasoMicrosegundos (10); digitalWrite (trigPin, LOW); duração = pulseIn (echoPin, HIGH); distância = 0,034 * (duração / 2); if (distance> 50) // Avançar se nenhum obstáculo for encontrado {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (distance<50) // Sharp Right Turn if an obstacle found { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); // delay }
Agora, como já discutimos tudo que você precisa para fazer um robô de limpeza automática de piso, divirta-se fazendo seu próprio robô de limpeza de piso eficiente e de baixo custo.