Tanque Autônomo com Walabot, Arduino, Raspberry Pi e Integração Alexa
Componentes e Materiais
| Componente | Quantidade | Observações |
|---|---|---|
| Walabot Creator | 1 | |
| Arduino MKR1000 | 1 | |
| Raspberry Pi 3 Model B | 1 | |
| Amazon Alexa Echo | 1 | Ou echosim.io |
| Driver de Motor Dual TB6612FNG (SparkFun) | 1 | |
| Chassi de tanque (com 2 motores DC escovados) | 1 | |
| Servos Tower Pro MG996R | 3 | |
| Kit construtor metálico | 1 | |
| Motor de passo + driver (28BYJ-48 + X113647) | 1 | |
| Bateria LiPo 7.4V | 1 | |
| Carregador LiPo 7.4V | 1 | |
| Potenciômetro rotativo 10k | 1 | Feedback do guindaste |
| LED (segmento de fita LED) | 2 | |
| Linha de pesca | 1 | Para guindaste |
| Plástico fino ou papelão duro (cobertura) | 1 | |
| Circuito BEC 5V | 1 | |
| Resistores 10k, 22.1k, 2.21k | 1 cada | |
| Transistor Darlington alta potência | 1 | |
| Réguas de madeira 30cm | 2 | Reforço estrutural |
| Voltímetro | 1 | Opcional |
| Transmissor/receptor RC | 1 | Opcional para controle manual |
| Cerveja | 1 | Combustível do criador! |
Ferramentas Necessárias
- Ferro de solda
- Pistola de cola quente
- Serra
- Furadeira
- Lima
Aplicativos e Serviços
- Arduino IDE
- AWS IoT
- AWS Lambda
- Alexa Skills Kit
- Walabot SDK
- Python
Sobre o Projeto
Resumo
Coisas que todo homem deseja no fundo: combinar cerveja e tanques! Um tanque controlado por voz que entrega cerveja com função autônoma "siga-me" ou controle RC. Vamos construir o tanque de cerveja dos sonhos!
Chassi
Chassi barato e legal do Banggood. Chegou danificado pelo transporte; levou horas e muita cola para reparar.
Guindaste
A melhor forma de servir a cerveja: escondê-la e elevá-la com guindaste. Usei kit construtor metálico antigo. Guindaste conectado a motor de passo 28BYJ-48 com linha de pesca. Forte o suficiente para quebrar a linha se não parado a tempo.
O esqueleto entortava. Reforcei com duas réguas de madeira 30cm e peças extras. Resolveu a flexão.
Carcaça
Walabot (versão Developer) é o "olho" do tanque. Parte metálica com tamanho perfeito para o suporte magnético do Walabot. Adicionei logo de cola quente para evitar rotação.
Cobertura de papelão preto e plástico. Tampa superior com dois servos, cola quente e fita isolante — só design, não protege a cerveja, mas fica legal ao abrir e elevar.
Guindaste – Versão 2 (Feedback)
Precisava de feedback confiável. Ideia original: interruptor binário com mola/parafusos. Não confiável.
Solução melhor: potenciômetro 10k colado ao eixo do guindaste. Feedback preciso do ângulo atual. Fácil determinar topo e base. Adiciona "coolness" extra ao visual.
Circuito
Circuito na proto PCI, compacto. LED azul (debug, nunca usado), conector verde para bateria LiPo. Fios no topo do tanque — placa colada lá para evitar "inferno de fios".
Comecei com Raspberry Pi Zero W, mas por falta de potência migrei para Pi 3 B.
Farol oculto: servo move tampa plástica, segmento de fita LED 12V. Alimentar 12V com 7.4V deixava luz fraca. Removi LED central e ponteie com fio — LEDs restantes ficaram brilhantes.
Arduino – Hardware
Arduino MKR1000: menor com 3 interrupções externas e pinos suficientes. Tem WiFi (não usado). Precisa de 5 pinos PWM (3 servos + 2 motores). Pinos 2-5 têm marca ~ (PWM hardware). Outros são PWM software. Combinação PWM software + leitura PWM por interrupção causou problemas. Solução: usar PWM hardware para servos. Um servo da porta do LED usa PWM software (mais lento, só faz ruído). No futuro, solenoides podem substituir.
Arduino mede tensão da bateria e envia via serial. Voltímetro integrado na traseira como feedback visual (circuito separado).
Arduino – Controle por Rádio
MKR1000 processa 3 sinais PWM com interrupções externas (1000-2000 µs):
- Canal 1 (vertical):
motorSpeedBase = (pulse - 1500) / 2→ velocidade base (-255 a 255) - Canal 2 (horizontal):
motorSpeedChange = (pulse - 1500) / 3→ direção - Canal 3 (switch):
elevated = pulse < 1500→ guindaste/tampa (bool)
Velocidade final: right = base + change; left = base - change (limitado a ±255).
Função handleCrane() lê potenciômetro e move guindaste/tampa conforme estado elevated. Desliga bobinas do motor de passo ao final para evitar superaquecimento/dreno de bateria.
Comunicação Arduino – Raspberry Pi
Conectados via USB (serial). Comandos da Raspberry:
s→ desliga controle RC, aceita só serial (responde "OK")r→ reativa controle RCe→ eleva guindaste (abre tampa)d→ baixa guindastem X Y→ define velocidade motores (X=base, Y=change)b→ responde tensão bateria × 100l→ liga iluminaçãoo→ desliga iluminação
No modo serial, interrupções dos canais 1 e 2 desabilitadas; canal 3 (switch) permanece como segurança para desligar o tanque se fizer algo errado no modo autônomo.
Walabot
Sensor 3D por micro-ondas: vê através de paredes, detecta respiração, visão noturna. Usei como único sensor de navegação.
Instale Walabot SDK na Raspberry Pi. Consumo 0.4-0.9A — Pi não alimenta sozinho. Adicione max_usb_current=1 em /boot/config.txt (aumenta USB de 600mA para 1200mA).
Problema: Arduino + servos também alimentados pelo Pi → brownout ao iniciar Walabot (WALABOT_ERR_PROTOCOL). Solução: BEC fornece até 3A. Walabot tem 2 portas micro USB; removi tampa e mudei jumper para alimentar pela porta central enquanto comunica pela outra. Funcionou perfeitamente.
Ímãs traseiros do Walabot fixam no chassi metálico sem hardware extra.
Modo "Siga-me"
Ponto alto: peça para o tanque segui-lo, ele o faz. Ao chegar, peça a cerveja. Truque de festa!
Usa getTargets com modo MTI (Moving Target Identification). Detecta até 4 alvos a 1.5m. Retorna coordenadas XYZ e amplitude. Uso só Y e Z (altura X irrelevante). Problema: não sabe qual alvo é o humano.
Abordagem inicial: fique a 80cm na frente; alvo mais próximo com amplitude alta = humano. Não perfeito.
Abordagem melhor (sugestão recebida): fique a 80cm; alvo mais próximo = humano. Em cada iteração, posição do humano = alvo mais próximo da posição anterior. Se distância nova/velha for alta, não atualiza e para. Tenta encontrar humano perto da posição antiga.
Casos no Arena View (retângulo vermelho = área alvo, azul = humano mais próximo):
- Caso 1: Humano na área alvo → sem movimento
- Caso 2: Humano à direita e perto → vira direita, recua
- Caso 3: Humano longe, sem virar → avança
- Caso 4: Um alvo à esquerda → vira esquerda, avança
- Caso 5: Humano muito perto → recua até entrar no retângulo
Movimento não fluido: ~6 FPS do Walabot (atualização a cada 0.16s). Tanque lento (velocidade mínima) para não perder alvo em curvas. Não combina virar + avançar (não confiável em esteiras). Ideias para aumentar velocidade no futuro.
Controle por Voz
Amazon Alexa Skills Kit. Nome da skill: "Beer Tank" (Alexa não reconhece "WalaBeer"). Comandos:
- "iniciar beer tank"
- "ligar/desligar as luzes"
- "abrir/fechar o compartimento"
- "iniciar/parar de me seguir"
- "parar/cancelar"
Inicialmente usei ngrok (fácil, mas URL muda a cada reinício). Migrei para AWS Lambda + AWS IoT. Difícil achar tutoriais completos. Canal YouTube do Kurt Braun ajudou muito. Usei Paho MQTT Client em Python (mais fácil que Node-RED/JS).
Skill ID: amzn1.ask.skill.a7453502-b1aa-47fa-a552-ed8e2c792b2e
Para publicar, use autenticação para diferenciar dispositivos (tutorial recomendado).
Cancelado: Tacômetros
Dois tacômetros (papel preto/branco na roda + sensor IR reflexivo) calculavam velocidade de rotação. Funcionavam bem, mas não necessários no final e precisava dos pinos GPIO para outras funções. Ficaram no tanque.
Conclusão
Resultado ótimo, útil e divertido! Boa plataforma para futuros projetos. Controle por voz funcionou e Walabot provou ser excelente sensor. Muitas melhorias possíveis — verá mais no futuro!
Meu melhor e mais longo projeto. Obrigado a todos que ajudaram e a você por ler! Prêmio: foto de um cachorro estranho.
Código e Esquemáticos
Códigos no GitHub: abysmalsb/Beer-Tank
Esquemático completo (partes não encontradas substituídas por similares; Walabot conectado via USB à Raspberry Pi).
Processo de manufatura
- Dominando a Sintaxe de Netlist SPICE: Nomenclatura de Componentes, Elementos Passivos e Ativos, e Definição de Fontes
- Fabricação de Cilindros de Oxigênio: Da Matéria-Prima à Garantia de Qualidade
- Circuitos Integrados (CIs): Chips Compactos e Poderosos Impulsionando a Eletrônica Moderna
- Controle seu Chromecast com Amazon Alexa usando Raspberry Pi e Python
- Construindo Tanque LEGO Autônomo de Baixo Custo com NVIDIA Jetson Nano e Isaac SDK
- Kit MOSMusic: MOSFET, Arduino e Mais - Iluminação Sincronizada com Música
- Microeletrônica Explicada: A Ciência da Eletrônica Minúscula
- Tanques de Reserva: Propósito, Tipos e Benefícios
- Componentes Essenciais de uma Máquina de Furar: Visão Geral Completa
- Principais Componentes de um Motor de Combustão Interna