Aula — 24 de Setembro (Quarta‐feira) - theedwilk/JoystickRaspberry-HandsOn-DevTitans GitHub Wiki

Aula — 24/09 (Quarta-feira)

Nesta aula foi desenvolvida a base funcional do firmware.ino e shieldInitConfig.h. O objetivo principal foi ler os eixos analógicos do joystick e sete botões, detectar mudanças significativas e enviar atualizações pela porta Serial. Isso permite reduzir tráfego e ruído, mantendo respostas reativas.

Estrutura dos arquivos

  • firmware.ino — código principal (leitura dos eixos e envio via Serial).
  • shieldInitConfig.h — mapeamento de pinos e variáveis globais.

Mapeamento físico

Eixos analógico

Eixo Pino Função
X A0 Analógico horizontal
Y A1 Analógico vertical

Botões

Botão Pino Tipo
A 2 Digital
B 3 Digital
C 4 Digital
D 5 Digital
E 6 Digital
F 7 Digital
K 8 Digital

Obs.: Com INPUT_PULLUP, o pino fica HIGH (1) quando o botão está solto, e LOW (0) quando está pressionado. O firmware inverte essa lógica para que 1 = pressionado.

Comportamento do firmware

setup()

  • Configura pinos X e Y como entradas analógicas.
  • Configura pinos 2 a 8 como INPUT_PULLUP.
  • Inicia comunicação Serial a 115200 baud.

loop()

  1. Lê os eixos analógicos com analogRead() e divide por 10 (mapeamento simples).
  2. Lê os botões com digitalRead() e aplica !digitalRead() para inverter (1 = pressionado).
  3. Envia dados somente quando há mudança:
  • Eixos: se abs(current - last) > 4 (threshold anti-ruído).
  • Botões: se current != last.
  1. Inclui delay(10) o que seria aproximadamente 100 Hz de iteração.

Formato das mensagens Serial

  • As mensagens são enviadas como linhas de texto no formato: CHAVE:VALOR\n

Eixos

  • X: — valor inteiro do eixo X (após divisão por 10)
  • Y: — valor inteiro do eixo Y

Botões

A:0 A:1
0 = solto 1 = pressionado

Igual para B, C, D, E, F, K.

Como subir o firmware

  1. Conecte a placa ESP32 ou similar ao computador.
⚠️ **GitHub.com Fallback** ⚠️