Carrinho Que Controla Com A Mao - Carrinho Que Controla Com A Mao | MercadoLivre 📦
Carrinho Que Controla Com A Mao | MercadoLivre 📦

Como construir um carrinho que controla com a mao usando Arduino e sensor de movimento

O projeto básico leva um Arduino Nano ou Uno, um shield driver de motor L298N, um módulo Bluetooth HC-05 e um sensor MPU6050 (acelerômetro e giroscópio). O custo total gira em torno de R$80 a R$120 se você já tiver o Arduino e a fonte, ou R$50 a R$70 comprando tudo junto no Mercado Livre. Eu montei o meu em um carrinho de brincar barato desses de loja, desmontei o controle remoto original e aproveitei os motores e rodas.

Carrinho que controla com a mao

A lógica é simples: você inclina o sensor para frente e para trás para avançar e ré, e para os lados para virar. O sensor MPU6050 envia dados de aceleração por I2C para o Arduino, que interpreta os valores e manda sinais para os motores via L298N. O celular se conecta pelo Bluetooth e exibe um painel na tela com botões ou o valor dos eixos em tempo real. Tem varias opções de app. Eu usei o RC Car Bluetooth e também o Arduino Bluetooth Control, ambos gratuitos na Play Store, mas qualquer um que envie valores pela serial funciona. O código que eu mais uso tem cerca de 120 linhas. Começa configurando o MPU6050, lendo os eixos X e Y, aplicando um filtro básico de média móvel para estabilizar a leitura e comparando com um limiar. Se o valor do eixo X ultrapassar 0,15g, o carro avança. Abaixo disso, os motores param. Para virar, o eixo Y faz a mesma coisa. O Bluetooth transmite comandos como F para frente, B para ré, E para esquerda e D para direita, que o Arduino decodifica e envia aos motores.

Uma coisa que ninguém fala nos tutoriais é que o MPU6050 nasce descalibrado. O sensor mesmo parado já mostra valores pequenos nos eixos, chamado offset. No meu primeiro protótipo, o carrinho andava devagar para a esquerda sozinho quando eu achava que estava parado. A solucao foi ler os valores de repouso no inicio de cada execucao e subtrair esse offset de todas as leituras posteriores. Ficou algo assim: leio 200 amostras quando o Arduino inicia, calculo a media de cada eixo e guardo como offsetBaseX e offsetBaseY. Depois, em cada leitura nova, subtrai esses valores antes de aplicar o limiar. O filtro de media movel tambem ajuda muito. Pego as ultimas 10 leituras de cada eixo, calculo a media e uso esse valor no lugar do raw. Isso elimina aquele tremor que faz o motor ligar e desligar rapido, o que aquece o driver L298N desnecessariamente e gasta bateria.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Para a alimentacao, uma bateria Li-ion 18650 de 3.7V resolve para os motores, mas o Arduino e o Bluetooth precisam de 5V estaveis. Eu usei um modulo step-up MT3608 para subir a tensao da bateria ate 5V e alimentar a placa. Se vocÊ usar pilhas AA, quatro delas em serie chegam perto disso, mas a tensao cai conforme descarregam e o Arduino pode reiniciar sozinho no meio da direcao. Isso ja me aconteceu três vezes. Recomendo a bateria 18650 com proteção inclusa. Montar o sensor dentro do carrinho exige atenção. Se ele ficar fixo de forma que qualquer vibraçao da roda se transmita como movimento, o carro vai reagir a solavancos. Eu encaixei o MPU6050 em uma pequena placa perfboard e fixe com espuma dupla face no centro do chassi, longe dos motores. Usar silicone transparente em vez de cola quente tambem ajuda, porque a cola quente fica rigida e transmite mais vibraçao.

Se o problema for distancia, o HC-05 tem alcance util de uns 10 metros em ambiente aberto. Dentro de casa, com paredes de gesso e mobilia, cai para cerca de 5 a 7 metros. Se isso for pouco, o modulo ESP-01 com WiFi permite controlar via rede local usando um servidor HTTP simples no Arduino. A latencia aumenta um pouco, mas a area de cobertura melhora consideravelmente. Existem tambem kits prontos que voce encontra em lojas de electronics. Geralmente incluem o chassi, motores, driver e sensor, com codigo pronto no GitHub. A vantagem é que voce poupa tempo de solda e montagem. A desvantagem é que o codigo desses kits raramente vem comentado em portugues e as conexões podem nao fazer sentido se voce quiser modificar algo depois. Eu comprei um kit desses no início e fiquei com ele guardado porque o esquema elétrico era um emaranhado de fios sem diagrama.

O custo-beneficio de fazer do zero sai mais barato a longo prazo. VocÊ aprende o funcionamento de cada parte e consegue trocar componentes sem depender do fornecedor original. Um Arduino genérico custa cerca de R$25, o L298N R$12, o MPU6050 R$10 e o HC-05 R$20. O restante gasta com chassi, bateria e conectores. Para o codigo, o repositório mais confiavel que eu encontrei é o "MPU6050_DMP6" do joanopaulino no GitHub. Ele já inclui a biblioteca Inertial Measurement Unit do Dave Hyatt, que tira o peso de calibrar o sensor manualmente. Basta carregar o sketch, fazer upload e ajustar os offsets no monitor serial para seus valores. Levanta de 10 a 15 minutos, dependendo da velocidade do computador.

Se voce quer algo mais moderno e integrado, um ESP32 substitui o Arduino mais o Bluetooth. O modulo ESP32 tem WiFi e Bluetooth nativos, custo de R$30 a R$40, e voce consegue controlar o carrinho pelo navegador do celular sem precisar de app adicional, apenas criando um servidor web simples. A curva de aprendizado é um pouco maior, mas o resultado é mais polido. Conclusao prática: comece com o basico, teste o sensor sozinho antes de montar no carrinho, resolva o problema do offset logo na primeira sessao e só então parta para a integracao com os motores. O resto é questao de tempo e ajuste fino. O primeiro prototipo vai falhar pelo menos uma vez, provavelmente com o carrinho saindo do controle em curva fechada porque o limiar estava muito baixo. É normal. Ajuste o threshold e continue.