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
-
Camada de Hardware (Físico) Joystick Shield com 10 botões físicos ESP32 como controlador do joystick Raspberry Pi 4B como plataforma principal
-
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
-
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
-
Camada de Sistema (AOSP) InputFlinger reconhece automaticamente o dispositivo Nenhuma modificação necessária no Android