Aula — 24 de Setembro (Quarta‐feira) - theedwilk/JoystickRaspberry-HandsOn-DevTitans GitHub Wiki
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.
- firmware.ino — código principal (leitura dos eixos e envio via Serial).
- shieldInitConfig.h — mapeamento de pinos e variáveis globais.
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.
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()
- Lê os eixos analógicos com analogRead() e divide por 10 (mapeamento simples).
- Lê os botões com digitalRead() e aplica !digitalRead() para inverter (1 = pressionado).
- Envia dados somente quando há mudança:
- Eixos: se abs(current - last) > 4 (threshold anti-ruído).
- Botões: se current != last.
- Inclui delay(10) o que seria aproximadamente 100 Hz de iteração.
- 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.
- Conecte a placa ESP32 ou similar ao computador.