Exemplo de Joystick Bluetooth para Arduino Nano ESP32 - Tutorial de Controle Direcional 2D via BLE
Visão Geral
Este exemplo implementa um controle de joystick 2D interativo no Arduino Nano ESP32 usando BLE (Bluetooth Low Energy) por meio do aplicativo DIYables Bluetooth STEM. Receba coordenadas X/Y em tempo real (-100 a +100) para controle direcional. Adequado para navegação de robôs, servos pan-tilt, controle de motores e controles de jogos.
Observação: O Arduino Nano ESP32 suporta apenas BLE — o Bluetooth Clássico não é suportado. O DIYables Bluetooth App funciona em Android e iOS com BLE.

Recursos
- Controle 2D: Eixos X e Y com faixa de −100 a +100
- Sensibilidade Configurável: Limite mínimo de movimento antes de disparar as atualizações
- Opção de Retorno Automático: O joystick pode voltar ao centro automaticamente quando solto
- Valores em Tempo Real: Atualizações contínuas da posição enquanto você arrasta
- Suporte a Android e iOS: O BLE é compatível com as duas plataformas
- Sem Necessidade de Pareamento: O BLE conecta sem pareamento manual
- Baixo Consumo: O BLE consome menos energia que o Bluetooth Clássico
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Código Arduino Nano ESP32
Passos Rápidos
- Novo no Arduino Nano ESP32? Comece pelo guia de primeiros passos do Arduino Nano ESP32.
- Conecte o Arduino Nano ESP32 ao seu computador via USB.
- Abra a Arduino IDE.
- Selecione a placa Arduino Nano ESP32 e a porta COM correta.
- Clique no ícone Libraries na barra lateral esquerda.
- Pesquise por "DIYables Bluetooth" e selecione a biblioteca DIYables Bluetooth da DIYables.
- Clique em Install.

- Quando for solicitado a instalar as dependências, clique em Install All.

Código BLE
- Na Arduino IDE, abra File Examples DIYables Bluetooth ArduinoBLE_Joystick, ou cole o código no editor.
- Clique em Upload para gravar o sketch na placa.
- Abra o Serial Monitor.
- A saída do Serial Monitor deve ficar assim:
Aplicativo Móvel
Observação: O DIYables Bluetooth App funciona em Android e iOS com BLE. Não é necessário fazer pareamento manual.
- Abra o DIYables Bluetooth App.
- Na primeira abertura, conceda as seguintes permissões:
- Dispositivos Próximos (Android 12+) / Bluetooth (iOS) — necessário para procurar e conectar a dispositivos Bluetooth
- Localização (somente Android 11 e anteriores) — exigida pelas versões mais antigas do Android para procurar dispositivos BLE
- Verifique se o Bluetooth está ativado no seu dispositivo.
- Toque em Connect na tela inicial. O aplicativo vai procurar dispositivos BLE.

- Toque em "Arduino_Joystick" nos resultados da busca.
- Depois de conectar, volte à tela inicial e abra o aplicativo Joystick.

Toque no ícone de configurações na tela inicial para mostrar ou ocultar aplicativos. Veja o Manual do Usuário do DIYables Bluetooth App para mais detalhes.
- Arraste o joystick em qualquer direção.

Agora volte ao Serial Monitor na Arduino IDE. Você verá:
Personalização Criativa - Adapte o Código ao Seu Projeto
Tratar os Valores do Joystick
Configurar o Joystick
Tratar a Solicitação de Configuração
Exemplos de Programação
Robô com Tração Diferencial
Servo Pan-Tilt
Direção com Zona Morta
Solução de Problemas
Problemas Comuns
1. Dispositivo não aparece no aplicativo
- Confirme que a placa está ligada e que o sketch foi carregado
- Verifique se o Bluetooth está ativado no seu celular
- No Android 11 e anteriores, ative também os serviços de localização
2. O joystick não responde
- Verifique o status da conexão Bluetooth no aplicativo
- Confirme que o callback onJoystickValue está registrado corretamente
- Verifique o Serial Monitor em busca de mensagens de conexão
3. O movimento parece lento
- Diminua o valor da sensibilidade para atualizações mais frequentes
- Garanta que bluetoothServer.loop() rode sem atrasos longos
4. Os valores saltam ou ficam inconsistentes
- Adicione um filtro de zona morta para movimentos pequenos
- Revise a configuração de sensibilidade
5. A conexão cai com frequência
- Reduza a distância até o Arduino
- Garanta uma alimentação USB estável
6. O upload falha ou a placa não é reconhecida
- Instale o pacote de placa Arduino Nano ESP32 mais recente pelo Board Manager
- Tente outro cabo ou outra porta USB
Ideias de Projetos
- Controlador de robô sem fio
- Suporte pan-tilt para câmera
- Controle de 2 eixos para braço robótico
- Controlador de posição para matriz de LEDs
- Controle de jogo para jogos com Arduino
Próximos Passos
Depois de concluir o exemplo do Bluetooth Joystick, explore:
- Bluetooth Slider — Controle de valores lineares
- Bluetooth Rotator — Controle angular
- Bluetooth Monitor — Retorno de status
- Multiple Bluetooth Apps — Combine o joystick com outros controles
Suporte
Para obter mais ajuda:
- Consulte a documentação de referência da API
- Visite os tutoriais da DIYables
- Fóruns da comunidade Arduino