Ter robôs fazendo tarefas rotineiras para nós é algo bem interessante, ainda mais na parte da limpeza. Portanto, neste post, veremos uma forma simples de criar um robô aspirador de pó.

Informações básicas

O que é o projeto

O projeto que mostrarei consiste de um simples robozinho de duas rodas capaz de aspirar pequenas sujeiras. Como a ideia é criar algo simples, o robô não vai ter autonomia ou inteligência para decidir onde limpar. Por conta disso, o foco do post é mais o aprendizado do que mostrar algo realmente útil.

De toda forma, com os passos que mostrarei, você deve conseguir implementar melhorias e adaptar o projeto às suas necessidades.

Observações e limitações

Meu objetivo com esse projeto é dar um ponta pé inicial no desenvolvimento de um robô aspirador de pó realmente funcional. Por conta disso, algumas coisas que mostrarei ficaram com cara de improviso. E acho importante deixar claro que o aspirador só consegue aspirar pequenas partículas (pó de fato) em uma região bem pequena.

Criando robô aspirador de pó

Materiais necessários

Adiante estão listados os componentes que utilizei para montar o projeto:

  • Arduino UNO.
    • Pode ser outro Arduino.
  • Kit chassi 2WD redondo.
    • Além da própria estrutura, o kit vêm com 2 motores, rodas normais, rodas bobas, fios e suporte de 4 pilhas AAA.
  • 4 pilhas AAA.
  • Ponte H L293d.
    • Pode usar um módulo de ponte H, que é ainda mais fácil.
  • Motor DC com faixa de tensão de 3 a 6V.
    • Motor para fazer a função de aspirador de pó. O ideal é usar um motor forte para que o robô consiga puxar a sujeira sem problemas.
  • Garrafa PET.
    • Empregada na parte do aspirador de pó. 
    • Usei uma de desinfetante, mas pode ser de refrigerante.
  • Papelão.
    • Empregado na parte do aspirador de pó.
  • Hélice de ventilador.
    • Resolvi imprimir uma na impressora 3D. Tentei buscar algumas online, mas acabei decidindo criar uma hélice.
    • Ao invés de imprimir, você pode tentar improvisar uma com uma chapa metálica.
  • Tubo/mangueira de plástico pequeno(a) (comprimento cerca de 10 cm).
    • Posicionado na parte de baixo do robô e é ligado ao compartimento do aspirador de pó.
  • Protoboard pequena.
    • Seria melhor usar uma plaquinha ilhada e soldar todos os componentes nela. Mas, como disse no início do post, construí esse projeto mais para testes.
  • Fios para as ligações.

E em relação às ferramentas, você vai precisar de:

  • Ferro de solda.
    • Usado para soldar os fios dos motores.
  • Alicate ou estilete para cortar os fios.
  • Pistola de cola quente.

Sugestão de compra

Se você estiver precisando de componentes, dê uma olhada na AutoCore Robótica! Adiante alguns dos componentes disponíveis lá no site deles para você poder montar o projeto mostrado aqui. O chassi 2WD que utilizei foi enviado por deles.

Chassi Robótico Redondo Duplo 2WD
Placa Microcontrolador ATMEGA328P-PU (Compatível com Arduino Uno)
Tubo de Teflon PTFE 4mmx2mm para Impressora 3D (talvez dê para usar na hora de montar o aspirador)
Motor DC RF-300C
L293D - Ponte H Dupla
Motor Shield L293D Driver Ponte H

Circuito

Vejamos os detalhes de cada parte do circuito:

  • Alimentação:
    • Alimentarei o circuito todo com os 6V que vêm das 4 pilhas AAA ligadas em série.
  • Motor do aspirador de pó:
    • O motor que tenho funciona de 3 a 6V, então basta ligá-lo em paralelo à tensão de 6V das pilhas.
  • Motores das rodas:
    • O ideal é que os motores das rodas possam ser controlados de forma a variar o sentido de rotação e a velocidade. Para resolver isso, podemos empregar uma ponte H. Aqui no site tem um post detalhando a ponte H e a ligação do CI L293d que usaremos, então remendo ler para entender os detalhes.

A partir de tudo que foi dito acima, o circuito final está mostrado na imagem abaixo. Achei que a imagem ficou com muito fio e um pouco difícil de entender. Então, também coloquei uma imagem do esquemático, que está mais limpo e mais fácil de entender.

Circuito do robô aspirador de pó
Esquemático do robô aspirador de pó

Se você reparar, também adicionei um capacitor de 10 μF entre o pino de reset do Arduino e o GND. Fiz isso, porque o Arduino estava reiniciando toda vez que ele tentava acionar os motores. Não averiguei o problema de perto, mas acredito que tenha relação com a alta corrente de partida dos motores que provoca uma queda de tensão momentânea, a qual é percebida pelo Arduino, que reage resetando. Assim, o capacitor de 10 μF ajuda a estabilizar a tensão e previne o Arduino de ficar resetando.

Possivelmente esse problema tem relação com as pilhas, pois toda fonte de tensão tem uma resistência interna que apresenta uma queda de tensão considerável quando a corrente que sai da fonte é grande. Talvez se eu tivesse utilizado uma bateria mais apropriada (menor resistência interna), esse problema do reset não teria aparecido.

Montagem do chassi 2WD

O processo de montar o chassi 2WD é a primeira etapa para a criação do robozinho, e ele é até bem simples. Não pretendo detalhá-lo aqui. Então, sugiro que você assista esse vídeo para aprender a montar. Esse foi o mesmo vídeo que segui para montar o meu.

Lógica de funcionamento do aspirador de pó

Essencialmente, o tipo de aspirador que construiremos consiste de um compartimento com apenas uma entrada e uma saída de ar. Nesse cenário, um motor com uma hélice é colocado para empurrar o ar para fora do compartimento em direção à saída de ar. Uma vez que o ar sai, cria-se um vácuo temporário no compartimento.

Devido ao vácuo e à entrada de ar que existe, a pressão vai empurrar ar para dentro do compartimento. Sob outra óptica, é como se o compartimento sugasse o ar de fora. E é justamente esse ar entrando que vai carregar as partículas de sujeira de fora para dentro do compartimento.

Esse processo é contínuo: o motor empurra ar para fora a todo momento e o ar fica circulando.

Montagem do aspirador

Após montar o chassi, podemos passar para o aspirador. Vamos aos passos:

  • 1 – Corte a parte de baixo da garrafa PET fora.
    • Como se tivesse removendo a tampa de baixo dela.
  • 2 – Com a garrafa sem a parte de baixo, corte novamente ela no meio de forma a obter duas partes que podem ser encaixadas uma na outra. Para deixar mais claro, vou chamar a parte da garrafa que ficou com a tampinha de parte A, e a parte de baixo que ficou toda aberta, vou chamar de parte B.
  • 3 – Corte um pedaço de papelão em formato de disco com diâmetro igual ao diâmetro interno da parte B.
  • 4 – No meio desse pedaço de papelão, crie um furo de mesmo diâmetro do motor.
  • 5 – Ainda no papelão, crie furos para permitir a passagem de ar.

Veja como ficou o papelão no meu caso (nada simétrico hehe).

Rodela de papelão que sustenta o motor do aspirador de pó
  • 6 – Encaixe a hélice no motor e fixe com cola quente se necessário.
  • 7 – Encaixe o motor no papelão e prenda com cola quente. A imagem abaixo mostra o motor encaixado, mas a cola quente só poderá ser vista na outra imagem seguinte:
Papelão com motor encaixado
  • 8 – Prenda e fixe o papelão no meio da parte B da garrafa PET com cola quente. É importante que a hélice fique virada para a parte de baixo da garrafa (onde era a base da garrafa).
  • 9 – Aproveite e solde fios nos terminais do motor.
  • 10 – Para passar os fios para fora da garrafa, faça um pequeno furo na lateral dela. Lembrete importante: não passe os fios pela hélice, faça o furo na lateral da garrafa logo ao lado dos terminais.
Parte B do aspirador de pó

Deixe a parte B de lado e pegue apenas a tampinha da garrafa PET.

  • 11 – Faça um furo na tampinha da garrafa que seja do diâmetro do cano de plástico.
  • 12 – Fixe, com cola quente, a tampinha no meio do chassi 2WD com o furo dela posicionado justamente no furo que existe no meio do chassi.
  • 13 – Passe a mangueira de plástico pelo furo da tampinha e direcione ela até a parte de baixo do robô.
    • Você também pode passar a mangueira antes de fixar a tampinha. Se fizer isso, a cola quente vai tampar as frestas do furo que você fez na tampinha (foi o que fiz).

Veja meus resultados abaixo:

Parte de baixo do aspirador de pó

Repare que a mangueira praticamente encosta no chão. Isso é importante, pois o aspirador não tem muita força e isso diminui a distância que o aspirador tem que puxar.

  • 14 – Agora a parte A da garrafa pode ser rosqueada na tampinha e a parte B pode ser encaixada na parte A.

Veja o resultado final abaixo:

Aspirador de pó montado

A ordem de ligação dos fios do motor do aspirador faz diferença. E só é possível descobrir a ordem certa testando. Ou seja, alimente o motor e veja se a entrada da mangueira está soprando ou puxando pequenas partículas. Obviamente, o jeito certo é quando ela estiver puxando.

Falta de filtro no aspirador

Os aspiradores de pó profissionais têm um filtro para impedir que a sujeira entre no compartimento onde o motor está localizado. Isso, porque ela pode acabar acumulando dentro do motor ou na hélice e provocar um defeito no aspirador.

Diante disso, seria interessante ter colocado um filtro entre a parte A e B da garrafa PET. Não fiz isso, porque reparei que o aspirador não tem força suficiente para puxar as sujeiras até o topo. O que reparei é que a sujeira descia logo após o tubo de plástico e ficava na tampa.

Restante da montagem

O restante da montagem envolve apenas a disposição dos componentes do circuito, isto é: Arduino UNO e protoboard. Como estou apenas testando o projeto, não fixei nenhum deles. Mas, você pode fazer isso utilizando cola quente.

Codigo completo

O código adiante é beeem bobinho, pois apenas comanda os motores para andarem para frente de forma indefinida. Caso você queira fazer alterações, eu adicionei funções que facilitam a programação dos motores. No caso, são as funções motor_direcao e motor_velocidade. Leia o código para entender os detalhes.

Obs: se um dos seus motores estiver invertido em relação ao outro, inverta os pinos IN (IN1 com IN2 p/ motor 1 ou IN3 com IN4 p/ motor 2). A inversão pode ser tanto via programação quanto por mudança dos fios.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// ----- Definições -----
#define PIN_IN3 2
#define PIN_IN4 3
#define PIN_IN2 4
#define PIN_IN1 5
#define PIN_EN  6

#define MOTOR_DIRECAO_FRENTE  0
#define MOTOR_DIRECAO_TRAS    1
#define MOTOR_ESQUERDO        0
#define MOTOR_DIREITO         1

#define VELOCIDADE_BASE       220

// ----- Protótipo das funções -----
void motor_direcao(uint8_t lado, uint8_t dir);
void motor_velocidade(uint8_t vel);


void setup ()
{
  uint8_t i;

  // Inicializa os pinos do motor
  pinMode(PIN_IN1, OUTPUT);
  pinMode(PIN_IN2, OUTPUT);
  pinMode(PIN_IN3, OUTPUT);
  pinMode(PIN_IN4, OUTPUT);
  pinMode(PIN_EN, OUTPUT);

  // Inicializa o motor
  motor_velocidade(0);
  motor_direcao(MOTOR_ESQUERDO, MOTOR_DIRECAO_FRENTE);
  motor_direcao(MOTOR_DIREITO, MOTOR_DIRECAO_FRENTE);
 
  // Espera 1 segundo e aumenta a velocidade dos motores gradualmente
  delay(1000);
  for(i = 0; i < VELOCIDADE_BASE; i++)
  {
    motor_velocidade(VELOCIDADE_BASE);
    delay(10);
  }
 
}

void loop()
{
}


/*
 * Muda a direção de rotação de um motor
 *  lado: MOTOR_DIREITO ou MOTOR_ESQUERDO
 *  dir: MOTOR_DIRECAO_FRENTE ou MOTOR_DIRECAO_TRAS
 */

void motor_direcao(uint8_t lado, uint8_t dir)
{
  if(lado)
  {
    digitalWrite(PIN_IN3, dir);
    digitalWrite(PIN_IN4, !dir);
  }
  else
  {
    digitalWrite(PIN_IN1, dir);
    digitalWrite(PIN_IN2, !dir);
  }
}


/*
 * Define a velocidade dos motores
 *  vel - Velocidade (0 a 255)
 */

void motor_velocidade(uint8_t vel)
{
  analogWrite(PIN_EN, vel);
}

Resultados

Após fazer a montagem do robô, obtive o seguinte resultado:

Robô aspirador de pó finalizado

E abaixo está um vídeo do robô funcionando e sofrendo para limpar farinha de trigo do chão.

Teoricamente, era pro robô andar reto, porque o código que usei é o mesmo do tópico anterior. Mas ele fica andando em círculo, porque, involuntariamente, um motor gira mais que a outro (o direito no caso). Para resolver isso, teríamos que ligar o pino Enable dos motores separadamente para poder controlar a velocidade de forma individual e corrigir essa diferença.

Enfim, pelo vídeo ficou claro que o robô é bem ruinzinho. Ao menos ele deu conta de pegar alguma sujeira igual mostrei no fim do vídeo.

Observações finais

Com certeza o projeto tem muita possibilidade de melhoria e a ideia é desenvolver uma versão 2 futuramente. Adiante estão alguns pontos que acho válido fazer para melhorar:

  • Criar uma PCB própria para o robozinho (sem usar o Arduino).
  • Melhorar a hélice.
  • Diminuir o tamanho do compartimento do aspirador.
    • Isso deve melhorar bastante a capacidade dele de sugar as sujeiras.
  • Melhorar a estabilidade da tensão do circuito (talvez usar uma bateria mais adequada).
  • Adicionar sensores de distância para permitir o robô enxergar o ambiente.
  • Aplicar técnicas de robótica e controle para deixar o robô inteligente.