Arquitetura do Sistema - theedwilk/JoystickRaspberry-HandsOn-DevTitans GitHub Wiki

Arquitetura do Sistema Fluxo de Dados [Joystick Físico]

↓ (Botões pressionados) [ESP32 - Firmware]

↓ (Leitura dos botões via GPIO) [Alteração de Estado dos Pinos]

↓ (Sinais elétricos) [Raspberry Pi 4B - GPIO Pins]

↓ (Leitura pelo driver) [Driver de Kernel Linux]

↓ (Conversão para eventos de input) [Linux Input Subsystem]

↓ (Eventos padronizados) [Android InputFlinger]

↓ (Reconhecimento automático) [Aplicativos/Jogos Android]

Camadas do Sistema

  1. Camada de Hardware (Físico) Joystick Shield com 10 botões físicos ESP32 como controlador do joystick Raspberry Pi 4B como plataforma principal

  2. Camada de Firmware (ESP32) Leitura contínua do estado dos botões Controle dos pinos GPIO de saída Comunicação direta com o Raspberry Pi

  3. Camada de Kernel (Driver Linux) Módulo de kernel customizado Leitura dos pinos GPIO do Raspberry Pi Conversão de sinais para eventos de input Registro no subsistema de input do Linux

  4. Camada de Sistema (AOSP) InputFlinger reconhece automaticamente o dispositivo Nenhuma modificação necessária no Android