- Componente necessário:
- Montagem do robô limpador de piso:
- Fiação e conexões:
- Explicação de programação:
Os limpadores automáticos de pisos não são novidade, mas todos compartilham um problema comum. Todos eles são muito caros para o que fazem. Hoje vamos fazer um Robô de Limpeza Doméstica Automática que custa apenas uma pequena fração dos existentes no mercado. Este robô pode detectar os obstáculos e objetos à sua frente e pode continuar se movendo, evitando os obstáculos, até que toda a sala seja limpa. Tem uma pequena escova ligada a ela para limpar o chão.
Verifique também nosso Smart Vacuum Cleaning Robot usando Arduino
Componente necessário:
- Arduino UNO R3.
- Sensor ultrasônico.
- Escudo do driver do motor Arduino.
- Chassi do robô com tração nas rodas.
- Computador para programar o Arduino.
- Bateria para motores.
- Um banco de energia para alimentar o Arduino
- Uma Escova De Sapato.
- Um esfregão Scotch Brite.
Nota: Em vez de usar baterias, você também pode usar um longo fio de 4 fios, como fizemos. Embora esta não seja uma solução muito elegante ou prática, você pode fazer isso se não estiver planejando usá-la no mundo real todos os dias. Certifique-se de que os comprimentos do cabo são suficientes.
Antes de entrar em detalhes, vamos primeiro discutir sobre Ultrasonic.
Sensor Ultrassônico HC-SR04:
O Sensor Ultrassônico é usado para medir a distância com alta precisão e leituras estáveis. Ele pode medir distâncias de 2 cm a 400 cm ou de 1 polegada a 13 pés. Ele emite uma onda de ultrassom na frequência de 40 KHz no ar e se o objeto entrar em seu caminho, ele retornará ao sensor. Usando o tempo que leva para atingir o objeto e voltar, você pode calcular a distância.
O sensor ultrassônico usa uma técnica chamada “ECHO”. “ECHO” é simplesmente uma onda sonora refletida. Você terá um ECO quando o som for refletido de volta após chegar a um beco sem saída.
O módulo HCSR04 gera uma vibração sonora na faixa ultra-sônica quando fazemos o pino 'Trigger' alto por cerca de 10us que enviará uma explosão sônica de 8 ciclos na velocidade do som e após atingir o objeto, será recebido pelo pino Echo. Dependendo do tempo que a vibração do som leva para voltar, ele fornece uma saída de pulso apropriada. Se o objeto estiver longe, levará mais tempo para que o ECHO seja ouvido e a largura do pulso de saída será grande. E se o obstáculo estiver próximo, o ECHO será ouvido mais rápido e a largura do pulso de saída será menor.
Podemos calcular a distância do objeto com base no tempo que a onda ultrassônica leva para retornar ao sensor. Como o tempo e a velocidade do som são conhecidos, podemos calcular a distância pelas seguintes fórmulas.
Distância = (Tempo x Velocidade do som no ar (343 m / s)) / 2.
O valor é dividido por dois, pois a onda se propaga para a frente e para trás cobrindo a mesma distância. Assim, o tempo para alcançar o obstáculo é apenas metade do tempo total gasto
Portanto, distância em centímetros = 17150 * T
Nós já fizemos muitos projetos úteis usando este sensor ultrassônico e Arduino, verifique-os abaixo:
- Medição de distância baseada em Arduino usando sensor ultrassônico
- Alarme de porta usando Arduino e sensor ultrassônico
- Monitoramento de dumpster baseado em IOT usando Arduino
Montagem do robô limpador de piso:
Monte o Arduino no chassi. Certifique-se de não causar curto-circuito em nada caso seu chassi seja de metal. É uma boa ideia obter uma caixa para o Arduino e a blindagem do controlador do motor. Fixe os motores com as rodas e o chassi usando parafusos. Seu chassi deve ter opções de fábrica para fazer isso, mas se não tiver, você pode improvisar uma solução diferente. Epóxi não é uma má ideia. Monte a escova para sapatos na parte frontal do chassi. Usamos uma combinação de epóxi M-Seal e parafusos perfurados para isso, embora você possa usar qualquer outra solução que possa ser mais fácil para você. Monte o esfregão Scotch Brite atrás da escova. Usamos um eixo passando pelo chassi que o mantém em jogo, embora isso também seja improvisável. Um eixo com mola pode ser usado para acompanhá-lo. Monte as baterias (ou cabos na parte traseira do chassi).Epóxi ou porta-bateria são boas maneiras de fazer isso. A cola quente também não é ruim.
Fiação e conexões:
O circuito para este robô automático de limpeza doméstica é muito simples. Conecte o sensor ultrassônico ao Arduino conforme mencionado abaixo e coloque a proteção do driver do motor no Arduino como qualquer outra proteção.
O pino Trig do Ultrasonic é conectado ao 12º pino no Arduino, o pino Echo é conectado ao 13º pino, o pino de tensão ao pino 5V e o pino Terra ao pino terra. O pino Echo e o pino Trig permitem que o Arduino se comunique com o sensor. A energia é fornecida ao sensor por meio dos pinos de tensão e aterramento, e os pinos Trig e Echo permitem que ele envie e receba dados com o Arduino. Saiba mais sobre a interface do sensor ultrassônico com o Arduino aqui.
A blindagem do motor deve ter pelo menos 2 saídas, e elas devem ser conectadas aos seus 2 motores. Normalmente, essas saídas são rotuladas como “M1” e “M2” ou “Motor 1” e “Motor 2”. Conecte as baterias e o banco de energia à blindagem do motor e ao Arduino, respectivamente. Não os conecte de forma cruzada. A blindagem do motor deve ter um canal de entrada. Se você estiver usando fios, conecte-os a adaptadores AC.
Explicação de programação:
Abra o IDE do Arduino. Cole o código completo do Arduino, fornecido no final deste tutorial, no IDE. Conecte seu Arduino ao computador. Selecione a porta em Ferramentas / Porta. Clique no botão de upload.
Teste o robô. Se girar muito pouco ou muito, experimente os atrasos até ficar perfeito.
Antes de entrar no código, precisamos instalar a Adafruit Motor Shield Library para acionar os motores DC. Como estamos usando o escudo do driver do motor L293D, precisamos fazer o download da Biblioteca do AFmotor aqui. Em seguida, adicione-o à pasta da biblioteca do Arduino IDE. Certifique-se de renomeá-lo para AFMotor . Saiba mais sobre como instalar esta biblioteca.
O código é fácil e pode ser entendido facilmente, mas aqui explicamos algumas partes dele:
O código abaixo configura o robô. Primeiro incluímos a Biblioteca Adafruit para acionar os motores com o escudo do driver do motor. Depois disso, definimos o pino Trig e o pino Echo. Também configura os motores. Ele define o pino Trig para saída e o pino Echo para entrada.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
O código abaixo diz ao Arduino para fazer um loop dos comandos a seguir. Depois disso, ele usa o sensor para transmitir e receber sons ultrassônicos. Ele calcula a distância que está do objeto assim que as ondas ultrassônicas voltam, após notar que o objeto está dentro da distância definida, ele diz ao Arduino para girar os motores de acordo.
loop vazio () {longa duração, distância; digitalWrite (trigPin, LOW); atrasoMicrosegundos (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duração = pulseIn (echoPin, HIGH); distância = (duração / 2) / 29,1; if (distância <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (PARA TRÁS); motor2.run (PARA TRÁS); atraso (2000); // MUDE ISTO DE ACORDO COM O MODO DE GIRO DO ROBÔ.
Isso faz com que o robô gire girando um motor e mantendo o outro estagnado.
O código abaixo faz com que o robô gire os dois motores na mesma direção para fazê-lo avançar até detectar um objeto no limite mencionado.
else {motor1.setSpeed (160); // MUDE ISSO DE ACORDO COM A RAPIDEZ QUE SEU ROBÔ DEVE IR. motor2.setSpeed (160); // ALTERE ISSO PARA O MESMO VALOR QUE VOCÊ COLOU ACIMA. motor1.run (FORWARD); motor2.run (FORWARD); }