# Controle Arcade

**Trabalho 2 - 2026-1**

## Integrantes do Grupo

| Nome Completo | Matrícula |
| :--- | :--- |
| Carlos Eduardo de Sousa Paz | 222022064 |
| João Pedro Silva Sousa | 222006258 |
| Leonardo de Melo Lima | 222037700 |
| Marcelo Araujo dos Santos | 160035481 |

---

## Sumário

1. [Descrição do Produto Selecionado](#1-descrição-do-produto-selecionado-controle-arcade)
2. [Análise Técnica do Funcionamento](#2-análise-técnica-do-funcionamento)
3. [Proposta de Implementação com ESP32 e ThingsBoard](#3-proposta-de-implementação-com-esp32-e-thingsboard)
4. [Pesquisa Bibliográfica e Tecnológica](#4-pesquisa-bibliográfica-e-tecnológica)
5. [Comparativo com Produtos Similares](#5-comparativo-com-produtos-similares)
6. [Referências](#6-referências)

## 1. Descrição do Produto Selecionado: Controle Arcade

<p align="center">
  <img src="docs/joystick.jpg" alt="Controle arcade fight stick" width="400"/>
</p>

<p align="center"><em>Figura 1: Controle arcade fight stick utilizado como referência do produto</em></p>

O controle arcade é um dispositivo de entrada projetado para reproduzir, em formato de painel físico, as funções essenciais de um **joystick convencional** utilizado em videogames. Diferente de um gamepad doméstico — como o DualShock 3 analisado no [projeto de referência da disciplina](https://gitlab.com/fse_fga/trabalhos-semestres-anteriores/trabalhos-2025_2/trabalho-2-2025-2/-/tree/main/PS3) —, o controle arcade prioriza botões de grande área, uma alavanca mecânica de quatro direções e um layout voltado para jogos de ação, nave espacial e títulos clássicos de fliperama.

Neste projeto, o controle arcade replica de forma conceitual as entradas de um joystick tradicional: **direcionamento**, **botões de ação**, **botões auxiliares** e **detecção de inclinação/orientação**, substituindo a conectividade Bluetooth do controle comercial por comunicação **Wi-Fi** com a plataforma **ThingsBoard**, onde um jogo web consome a telemetria em tempo real.

### Motivo da Escolha do Produto

O controle arcade foi escolhido por ser um sistema embarcado que utiliza componentes simples e de fácil reprodução com a ESP32, como botões digitais, alavanca mecânica e sensores de movimento. Além disso, o produto permite estudar diferentes tecnologias relevantes para sistemas embarcados, incluindo aquisição de sinais, comunicação sem fio via Wi-Fi, protocolo MQTT e integração com plataformas IoT.

A escolha também foi motivada pela possibilidade de propor uma implementação conceitual que reproduza as principais funcionalidades do produto utilizando componentes disponíveis no ecossistema ESP32, atendendo aos objetivos da disciplina.

### 1.1. Funções Principais, Público-Alvo e Contexto de Uso

O controle arcade é voltado a jogadores que buscam uma experiência tátil e imersiva, semelhante à de máquinas de fliperama. Seu público-alvo inclui entusiastas de retrogaming, estudantes de sistemas embarcados e usuários interessados em interfaces físicas conectadas à Internet das Coisas (IoT).

No contexto deste trabalho, o **foco da equipe é replicar um controle arcade convencional** — alavanca mecânica, botões de ação e funções auxiliares — utilizando microcontrolador ESP32 e componentes da disciplina, com o **adendo de um sensor giroscópico (IMU)** para detectar inclinação e rotação do dispositivo, recurso ausente na maioria dos fight sticks comerciais básicos. O protótipo atua como **controlador remoto** de um jogo hospedado em dashboard web no ThingsBoard: o jogador manipula a alavanca para movimentar a nave, pressiona os botões de ação para executar comandos e inclina o controle para alterar a orientação da nave.

Diferentemente de um **arcade stick comercial pronto para uso** — como o da Figura 1, que já vem com placa encoder USB, conexão plug-and-play ao PC/console, carcaça industrial, botões turbo/macro, seletor de modo (D-pad/analógico), compatibilidade nativa com múltiplas plataformas e mapeamento fixo de fábrica —, **este projeto não pretende reproduzir essas funcionalidades integradas**. A proposta limita-se ao essencial embarcado: leitura digital das entradas físicas, processamento via firmware customizado, envio de telemetria por **Wi-Fi/MQTT** ao ThingsBoard e controle de um jogo web. Não haverá conexão USB direta como gamepad, botões turbo/macro, vibração (rumble), gatilhos analógicos, pareamento Bluetooth com console, nem drivers prontos para qualquer jogo — o diferencial do trabalho está na **integração IoT** e no **controle por inclinação via giroscópio**, não na emulação completa de um produto comercial fechado.

### 1.2. Componentes e Sensores Utilizados

O controle arcade proposto combina entradas digitais, um sensor inercial e um microcontrolador embarcado:

* **Alavanca arcade (joystick digital):** Mecanismo com quatro microchaves (Up, Down, Left, Right) acionadas pelo deslocamento da haste. Cada direção é lida como sinal digital pelo microcontrolador, equivalente funcional ao D-pad ou ao stick digital de um joystick convencional. Microchaves arcade operam como contatos normalmente abertos (NO) com curso curto e feedback tátil — características documentadas em catálogos de fabricantes como [Sanwa Denshi](https://www.sanwa-d.co.jp/en/) e [Seimitsu](https://www.seimitsu.co.jp/).

* **Botões de ação digitais:** Oito botões arcade de acionamento mecânico, mapeados para as funções □ (Quadrado), ○ (Círculo), △ (Triângulo), X, R1, L2, Start e Select — reproduzindo o layout de ações principais de um controle de videogame em formato arcade.

* **Unidade de Medição Inertial (IMU):** Sensor [MPU6050](https://product.tdk.com/en/search/sensor/mortion-inertial/imu/info?part_no=MPU-6050) (acelerômetro 3 eixos ±2/4/8/16 g + giroscópio 3 eixos ±250/500/1000/2000 °/s), com interface I2C a 400 kHz e conversor ADC de 16 bits integrado ([datasheet MPU-6050](https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf)). Disponível na [lista de sensores da disciplina](https://gitlab.com/fse_fga/trabalhos-2026_1/trabalho-2-2026-1/-/blob/main/Lista_de_Sensores.md), utilizado para detectar inclinação e rotação do controle, permitindo que a nave no jogo responda ao movimento físico do dispositivo.

* **Microcontrolador ESP32:** SoC dual-core Xtensa LX6 a 240 MHz, com Wi-Fi 802.11 b/g/n e Bluetooth 4.2 integrados, 34 GPIOs, 12-bit ADC, I2C, SPI e UART ([datasheet ESP32](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf)). Responsável pela leitura de todas as entradas, processamento dos sinais e publicação dos dados via Wi-Fi. O firmware é desenvolvido sobre o framework [ESP-IDF](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/).

### 1.3. Tecnologias de Comunicação e Controle Embarcadas

A comunicação do controle é realizada exclusivamente via **Wi-Fi** ([IEEE 802.11](https://standards.ieee.org/ieee/802.11/10788/)), utilizando o protocolo **MQTT** ([OASIS MQTT v3.1.1](https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html)) para envio de telemetria à plataforma **ThingsBoard** ([documentação ThingsBoard MQTT API](https://thingsboard.io/docs/reference/mqtt-api/)). Essa abordagem substitui o Bluetooth empregado no projeto de referência do DualShock 3, adequando-se ao ecossistema IoT exigido pelo trabalho.

O jogo web, executado como widget ou aplicação conectada ao ThingsBoard, recebe os dados de telemetria via **WebSocket** ([RFC 6455](https://datatracker.ietf.org/doc/html/rfc6455)) ou **REST API**, atualizando em tempo real a posição, rotação e ações da nave controlada pelo jogador.

---

## 2. Análise Técnica do Funcionamento

### 2.1. Principais Módulos do Sistema

- **Sensores de entrada:**
  - **Alavanca arcade:** Quatro microchaves independentes geram sinais digitais (LOW/HIGH) conforme a direção pressionada. Com `INPUT_PULLUP` no ESP32, o estado repouso é HIGH e o acionamento resulta em LOW.
  - **Botões arcade:** Cada botão possui dois terminais; um conectado a um GPIO do ESP32 e outro ao GND. O firmware aplica debounce (~30 ms) para evitar leituras espúrias.
  - **IMU (MPU6050):** Comunicação I2C (SDA/SCL). O acelerômetro mede inclinação em relação à gravidade; o giroscópio mede velocidade angular nos eixos de rotação. Um filtro complementar combina ambas as leituras para estimar a orientação (`ship_yaw`) enviada ao jogo.

- **Controle:**
  - **ESP32:** Microcontrolador central que executa o firmware embarcado. Realiza leitura periódica dos GPIOs e do IMU (~20 Hz), monta o payload JSON de telemetria e publica via MQTT.

- **Conectividade:**
  - **Wi-Fi (STA):** O ESP32 conecta-se à rede local e autentica-se no broker MQTT do ThingsBoard mediante Access Token do device cadastrado.
  - **MQTT:** Telemetria publicada no tópico `v1/devices/me/telemetry` com campos como `joy_x`, `joy_y`, `btn_x`, `btn_square`, `ship_yaw`, entre outros.

- **Aplicação (ThingsBoard + Jogo):**
  - **ThingsBoard:** Armazena telemetria em time-series e disponibiliza dados em tempo real via WebSocket.
  - **Jogo web:** Canvas ou framework (Phaser, p5.js) consome a telemetria e executa o game loop (~60 FPS), movendo e rotacionando a nave conforme as entradas físicas.

### 2.2. Identificação de Tecnologias Críticas

- **Leitura digital de entradas:** Botões e alavanca operam como chaves digitais. A principal preocupação é o debounce e a correta alocação de GPIOs (evitando pinos reservados à flash interna, GPIO 6–11).

- **Processamento de IMU:** Deriva do giroscópio e ruído do acelerômetro exigem filtragem em software. A calibração do eixo de rotação é necessária para que a inclinação lateral do controle corresponda à rotação esperada da nave.

- **Comunicação Wi-Fi + MQTT:** Latência de rede e reconexão automática são fatores críticos. O firmware deve tratar quedas de conexão e republicar telemetria apenas quando houver mudança de estado ou timeout periódico (~50 ms).

- **Integração ThingsBoard ↔ Jogo:** O widget ou página web deve assinar a telemetria do device correto e mapear cada campo JSON para ações no game loop (movimento, rotação, disparo, pausa).

<p align="center">
  <img src="docs/casePronta.png" alt="Case 3D impressa do controle arcade montada" width="500"/>
</p>

<p align="center"><em>Figura 2: Protótipo físico do controle arcade — case 3D impressa com alavanca, botões e fiação interna</em></p>

---

## 3. Proposta de Implementação com ESP32 e ThingsBoard

### 3.1. Descrição Conceitual da Implementação

O projeto tem como objetivo implementar um controle arcade funcional utilizando microcontrolador ESP32 e sensores disponibilizados na disciplina, reproduzindo as principais funcionalidades de um joystick convencional em formato de painel físico. O sistema é composto por uma ESP32 que lê os estados da alavanca, dos botões físicos e do sensor de movimento (acelerômetro e giroscópio).

Os sinais captados são convertidos em telemetria digital, tratados pelo firmware da ESP32 e enviados via **Wi-Fi (MQTT)** para o **ThingsBoard**. Um jogo web conectado à plataforma consome esses dados em tempo real, controlando a nave do jogador.

As funcionalidades implementadas seguem abaixo:

#### Controlar comportamentos

A ESP32 gerencia o comportamento de todas as entradas (alavanca, botões e IMU), processa os sinais e mantém a comunicação Wi-Fi/MQTT com o ThingsBoard.

#### Captar sinais de botões e alavanca

Cada botão e direção da alavanca é conectado a um GPIO configurado como `INPUT_PULLUP`. No repouso, o pino permanece em HIGH; ao pressionar, o circuito fecha para GND e o pino vai a LOW. O firmware detecta a transição, aplica debounce e atualiza o estado correspondente no payload de telemetria.

Entradas mapeadas: □, ○, △, X, R1, L2, Start, Select e as quatro direções da alavanca (Up, Down, Left, Right).

#### Detectar movimento e orientação

A detecção de inclinação e rotação é realizada pela IMU (acelerômetro + giroscópio). Inclinar o controle lateralmente altera o valor de `ship_yaw` enviado ao ThingsBoard, fazendo a nave girar no jogo de acordo com o movimento físico do jogador.

#### Comunicação Wi-Fi com ThingsBoard

A ESP32 conecta-se à rede Wi-Fi e publica telemetria JSON no broker MQTT do ThingsBoard. O jogo web assina os dados via WebSocket e atualiza o estado do jogador a cada frame.

Exemplo de payload de telemetria:

```json
{
  "joy_x": 1,
  "joy_y": 0,
  "btn_x": false,
  "btn_square": false,
  "btn_circle": false,
  "btn_triangle": false,
  "btn_r1": false,
  "btn_l2": false,
  "btn_start": false,
  "btn_select": false,
  "ship_yaw": -15.3,
  "tilt_roll": -12.1
}
```

### 3.2. Diagrama Conceitual do Sistema (Proposta com ESP32)

A proposta deste diagrama é demonstrar, de maneira hierárquica, a arquitetura em camadas do sistema e o fluxo de dados desde o hardware físico até o jogo web. O microcontrolador ESP32 ocupa a camada embarcada central, intermediando a leitura dos componentes de entrada e a publicação de telemetria na plataforma ThingsBoard.

<p align="center">
  <img src="docs/diagramaArcade.png" alt="Diagrama de arquitetura em camadas do controle arcade" width="800"/>
</p>

<p align="center"><em>Figura 3: Diagrama conceitual de arquitetura em camadas do controle arcade com ESP32 e ThingsBoard</em></p>

### 3.3. Limitações e Desafios Esperados

#### Limitações

- **GPIOs limitados:** Oito botões, quatro direções da alavanca e dois pinos I2C consomem cerca de 14 GPIOs. Embora a ESP32 disponha de pinos suficientes, GPIO 6–11 (ligados à flash interna) devem ser evitados.
- **Entradas exclusivamente digitais:** Diferente do DualShock 3 de referência, botões e alavanca não possuem sensibilidade à pressão — todas as entradas são binárias (pressionado/solto).
- **Latência de rede:** A cadeia Wi-Fi → MQTT → ThingsBoard → WebSocket → jogo introduz latência adicional (~50–200 ms) em relação a um controle com conexão direta (Bluetooth/USB).
- **Calibração da IMU:** Deriva do giroscópio e interferências exigem calibração periódica e filtragem em software para rotação estável da nave.
- **Dependência de infraestrutura:** O controle requer rede Wi-Fi funcional e instância ThingsBoard acessível; quedas de conexão interrompem temporariamente o controle do jogo.

#### Desafios Esperados

- Integrar hardware arcade (alavanca, botões e IMU) com firmware embarcado e plataforma IoT em um fluxo ponta a ponta funcional.
- Desenvolver ou adaptar um jogo web capaz de consumir telemetria ThingsBoard em tempo real via WebSocket.
- Sincronizar taxa de publicação MQTT com o game loop sem perda perceptível de responsividade.
- Montagem física do painel arcade com fiação organizada e fixação adequada dos componentes.

---

<!--
## 4. Mapeamento de Controles

| Entrada Física | Telemetria | Ação no Jogo |
| :--- | :--- | :--- |
| Alavanca ↑ ↓ ← → | `joy_x`, `joy_y` (−1, 0, 1) | Movimentar a nave |
| Inclinar controle (IMU) | `ship_yaw`, `tilt_roll` | Rotacionar a nave |
| Botão X | `btn_x` | Disparo / ação principal |
| Botão △ | `btn_triangle` | Escudo / ação secundária |
| Botão □ | `btn_square` | Bomba / especial |
| Botão ○ | `btn_circle` | Boost |
| Botão R1 | `btn_r1` | Boost alternativo |
| Botão L2 | `btn_l2` | Freio / recuo |
| Botão Start | `btn_start` | Pausar |
| Botão Select | `btn_select` | Menu / reiniciar |

---

## 5. Pinagem Proposta (ESP32)

| Componente | GPIO |
| :--- | :--- |
| Alavanca UP | 13 |
| Alavanca DOWN | 12 |
| Alavanca LEFT | 14 |
| Alavanca RIGHT | 27 |
| Botão □ (Quadrado) | 25 |
| Botão ○ (Círculo) | 26 |
| Botão △ (Triângulo) | 32 |
| Botão X | 33 |
| Botão R1 | 18 |
| Botão L2 | 19 |
| Botão Start | 21 |
| Botão Select | 22 |
| IMU SDA | 4 |
| IMU SCL | 15 |

---
-->

## 4. Pesquisa Bibliográfica e Tecnológica

### 4.1. Tecnologias que Viabilizam o Produto

---

#### Artigo 1 - Arquitetura do ESP32

> **HERCOG, D.; LERHER, T.; TRUNTIČ, M.; TEŽAK, O.** "Design and Implementation of ESP32-Based IoT Devices." *Sensors*, v. 23, n. 15, art. 6739, 2023.
> **DOI:** [10.3390/s23156739](https://doi.org/10.3390/s23156739) | [PDF](https://www.mdpi.com/1424-8220/23/15/6739)

Apresenta a arquitetura do ESP32 (processador dual-core, Wi-Fi/Bluetooth integrados, baixo consumo) e seus periféricos — GPIO, ADC, PWM, I2C e UART — aplicados ao desenvolvimento de dispositivos IoT. O ESP32 é o microcontrolador do Controle Arcade: lê botões, alavanca e IMU (I2C) e publica telemetria via MQTT.

---

#### Artigo 2 - Protocolo MQTT para IoT

> **MISHRA, B.; KERTÉSZ, A.** "The Use of MQTT in M2M and IoT Systems: A Survey." *IEEE Access*, v. 8, p. 201071–201086, 2020.
> **DOI:** [10.1109/ACCESS.2020.3035849](https://doi.org/10.1109/ACCESS.2020.3035849) | [PDF](https://ieeexplore.ieee.org/document/9247996)

Survey sobre o protocolo MQTT: modelo publish/subscribe, níveis de QoS, segurança (TLS, token) e comparação com CoAP e HTTP. O Controle Arcade usa MQTT (QoS 0) para enviar telemetria JSON ao ThingsBoard com baixa latência.

---

#### Artigo 3 - Filtro Complementar para Fusão Sensorial IMU

> **NARKHEDE, P.; PODDAR, S.; WALAMBE, R.; GHINEA, G.; KOTECHA, K.** "Cascaded Complementary Filter Architecture for Sensor Fusion in Attitude Estimation." *Sensors*, v. 21, n. 6, 2021.
> **DOI:** [10.3390/s21061937](https://doi.org/10.3390/s21061937) | [PDF](https://www.mdpi.com/1424-8220/21/6/1937)

Propõe filtro complementar em cascata para combinar acelerômetro (ruidoso) e giroscópio (com deriva), sem calibração manual de ganho. Custo computacional baixo, viável para microcontroladores. O Controle Arcade usa filtro complementar no ESP32 para estimar `ship_yaw` a partir do MPU6050.

---

#### Artigo 4 - Reconhecimento de Gestos com IMU Vestível

> **DAHIYA, A.; WADHWA, D.; KATTI, R.; OCCHIPINTI, L. G.** "Efficient Hand Gesture Recognition Using Artificial Intelligence and IMU-Based Wearable Device." *IEEE Sensors Letters*, v. 8, n. 12, 2024.
> **DOI:** [10.1109/LSENS.2024.3501586](https://doi.org/10.1109/LSENS.2024.3501586) | [PDF](https://ieeexplore.ieee.org/document/10758304)

Sistema vestível com acelerômetro e giroscópio + rede 1-D CNN (97,88% de acurácia) otimizado para hardware embarcado com restrições de memória. Valida o princípio do Controle Arcade: usar dados inerciais como entrada para controle de jogos em dispositivos com recursos limitados.

---

### 4.2. Aplicação / Uso do Produto

---

#### Artigo 5 - Sistema IoT com ESP32 + ThingsBoard + MQTT

> **AGHENTA, L. O.; IQBAL, M. T.** "Design and implementation of a low-cost, open source IoT-based SCADA system using ESP32 with OLED, ThingsBoard and MQTT protocol." *AIMS Electronics and Electrical Engineering*, v. 4, n. 1, p. 57–86, 2020.
> **DOI:** [10.3934/ElectrEng.2020.1.57](https://doi.org/10.3934/ElectrEng.2020.1.57) | [PDF](https://www.aimspress.com/article/doi/10.3934/ElectrEng.2020.1.57)

Implementa a mesma pilha tecnológica do Controle Arcade: ESP32 coleta dados de sensores, publica via MQTT e visualiza no ThingsBoard em tempo real. Valida que a cadeia ESP32 → Wi-Fi → MQTT → ThingsBoard opera de forma estável e responsiva.

---

#### Artigo 6 - Controlador de Jogo IoT com MPU6050 (Joy Glove)

> **RANA, H.; SONI, A.** "IOT based Game Controlling Device (Joy Glove)." *IJRITCC*, v. 8, n. 4, 2020.
> **DOI:** [10.17762/ijritcc.v8i4.5366](https://doi.org/10.17762/ijritcc.v8i4.5366) | [PDF](https://ijritcc.org/index.php/ijritcc/article/view/5366)

Luva-controlador com Arduino + MPU6050 que captura gestos da mão para controlar jogo de corrida em Unity 3D. Mesmo princípio do Controle Arcade: microcontrolador + IMU traduzem movimento físico em comandos de jogo em tempo real.

---

#### Artigo 7 - Controladores com IMU para Jogos de Reabilitação

> **CELA, A.; OÑA, E.; JARDÓN, A.** "Serious Gaming for Upper Limbs Rehabilitation—Game Controllers Features: A Scoping Review." *Games for Health Journal*, v. 14, n. 4, p. 265–280, 2025.
> **DOI:** [10.1089/g4h.2024.0122](https://doi.org/10.1089/g4h.2024.0122) | [Link](https://doi.org/10.1089/g4h.2024.0122)

Revisão de controladores usados em jogos sérios para reabilitação, incluindo dispositivos baseados em IMU. Confirma que controladores com botões + sensores inerciais (como o Controle Arcade) são um padrão consolidado para interação por movimento em jogos.

---

#### Artigo 8 - Arquitetura IoT em Camadas para Monitoramento em Tempo Real

> **SHI, X.; AN, X.; ZHAO, Q.; LIU, H.; XIA, L.; SUN, X.; GUO, Y.** "State-of-the-Art Internet of Things in Protected Agriculture." *Sensors*, v. 19, n. 8, 2019.
> **DOI:** [10.3390/s19081833](https://doi.org/10.3390/s19081833) | [PDF](https://www.mdpi.com/1424-8220/19/8/1833)

Survey de arquiteturas IoT em camadas (percepção → rede → aplicação) para monitoramento em tempo real. O Controle Arcade segue a mesma estrutura: sensores/botões (percepção) → ESP32 + Wi-Fi/MQTT (rede) → ThingsBoard + jogo web (aplicação).

---

## 5. Comparativo com Produtos Similares

O controle arcade é uma categoria de periférico de entrada consolidada no mercado de jogos, com modelos que vão de opções de entrada até soluções profissionais de torneio. A seguir, são listados cinco produtos comerciais representativos — abrangendo diferentes faixas de preço, gerações e abordagens de design — comparados com o protótipo desenvolvido neste projeto.

### 5.1. Produtos Selecionados

1. **PXN 0082** — Fight stick de entrada com conexão USB, voltado a iniciantes. Compatível com múltiplas plataformas (PS3, PS4, Xbox One, Xbox Series X|S, Switch, PC). Possui 8 botões de ação, alavanca de 8 direções, funções Turbo/Macro e base com ventosas antideslizantes. Amplamente disponível no mercado brasileiro.

2. **Mayflash F101** — Arcade stick compacto e altamente customizável, compatível com Sanwa Denshi (botões e alavanca substituíveis). Suporta Switch, PC (XInput/DInput), PS3, Android e consoles Mini. Possui painel metálico interno para estabilidade e modo de alavanca alternável (LS/DP/RS).

3. **Hori Fighting Stick Mini (SPF-038)** — Controle arcade ultracompacto oficialmente licenciado pela Sony para PS5, PS4 e PC. Foco em portabilidade extrema com apenas ~500 g. Utiliza componentes proprietários Hori com microchaves e housing em V-cut para precisão.

4. **Qanba Drone 2** — Arcade stick intermediário oficialmente licenciado para PS5, PS4 e PC. Equipado com joystick Qanba OV7 (microchaves Omron), 8 botões de 30 mm (layout Vewlix), touchpad funcional, entrada para microfone 3,5 mm e tournament lock switch.

5. **Razer Kitsune** — Controlador arcade premium *leverless* (sem alavanca) com layout all-button para PS5 e PC. Utiliza switches ópticos lineares Razer de baixo perfil, placa superior de alumínio removível, Chroma RGB e design ultraslim (19,2 mm de altura). Referência em torneios profissionais de jogos de luta.

### 5.2. Tabela Comparativa

| Característica | **Controle Arcade (Este Projeto)** | **PXN 0082** | **Mayflash F101** | **Hori Fighting Stick Mini** | **Qanba Drone 2** | **Razer Kitsune** |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: |
| **Tipo** | Fight stick DIY + IoT | Fight stick entrada | Fight stick compacto | Fight stick mini | Fight stick intermediário | Leverless premium |
| **Microcontrolador** | ESP32 (Xtensa LX6 dual-core) | Encoder proprietário | Encoder proprietário | Encoder Hori | Encoder Qanba | Razer (proprietário) |
| **Alavanca** | Mecânica, 4 microchaves | 8 direções, microchaves | Microchaves (Sanwa-compatível) | Hori V-cut, microchaves | Qanba OV7 (Omron) | Sem alavanca (all-button) |
| **Botões de ação** | 8 botões arcade digitais | 8 botões | 8 botões (Sanwa-compatível) | 8 botões Hori | 8 × Qanba B30 (30 mm) | Switches ópticos lineares Razer |
| **Sensor de movimento (IMU)** | Sim — MPU6050 (acelerômetro + giroscópio) | Não | Não | Não | Não | Não |
| **Conectividade** | Wi-Fi (MQTT / ThingsBoard) | USB com fio | USB com fio | USB com fio (2,5 m) | USB com fio (2,3 m) | USB-C com fio (3,1 m) |
| **Protocolo de comunicação** | MQTT sobre Wi-Fi (TCP/IP) | USB HID | USB HID (XInput/DInput) | USB HID | USB HID | USB HID |
| **Plataformas compatíveis** | ThingsBoard (jogo web) | PS3, PS4, Xbox One/Series, Switch, PC | Switch, PC, PS3, Android, consoles Mini | PS5, PS4, PC | PS5, PS4, PC | PS5, PC |
| **Turbo / Macro** | Não | Sim — Turbo + Macro | Sim — Turbo (3 velocidades) | Não | Sim — Turbo | Não |
| **Touchpad** | Não | Não | Não | Não | Sim | Sim (botão) |
| **Tournament Lock** | Não | Não | Não | Não | Sim | Sim |
| **Vibração (Rumble)** | Não | Não | Não | Não | Não | Não |
| **Iluminação** | Não | Não | Não | Não | Não | Sim — Razer Chroma RGB |
| **Dimensões (aprox.)** | ~25 × 18 × 10 cm (case 3D) | 25 × 17,5 × 10,5 cm | 27,8 × 19,8 × 11,5 cm | 20 × 15 × ~5 cm | 35,6 × 22,1 × 11,6 cm | 29,6 × 21 × 1,9 cm |
| **Peso (aprox.)** | ~600 g (case 3D + componentes) | ~720 g | ~1,4 kg | ~500 g | ~1,25 kg | ~800 g |
| **Material da carcaça** | PLA (impressão 3D) | ABS plástico | ABS + painel metálico interno | Plástico com pés emborrachados | Plástico reforçado | Alumínio + plástico |
| **Modificabilidade (mod)** | Total (hardware + firmware aberto) | Limitada | Alta (compatível Sanwa) | Limitada | Moderada | Limitada |
| **Preço estimado (USD)** | ~$15–20 (componentes) | ~$30–40 | ~$40–50 | ~$40–50 | ~$80–100 | ~$300 |

### 5.3. Análise do Comparativo

O protótipo desenvolvido neste projeto se diferencia dos produtos comerciais em três aspectos principais:

1. **Integração IoT:** Enquanto todos os cinco produtos comerciais utilizam conexão USB HID direta com o console/PC, o Controle Arcade deste projeto comunica-se via **Wi-Fi/MQTT** com a plataforma ThingsBoard, representando uma abordagem de **Internet das Coisas** não encontrada em nenhum fight stick comercial convencional.

2. **Sensor de movimento (IMU):** Nenhum dos cinco produtos comparados possui acelerômetro ou giroscópio embutido. O **MPU6050** integrado ao protótipo permite detecção de inclinação e rotação do controle para controlar a orientação da nave no jogo — um diferencial funcional exclusivo deste projeto na categoria de arcade sticks.

3. **Hardware e firmware abertos:** O protótipo é inteiramente baseado em **ESP32 com firmware customizado** e **case impressa em 3D**, oferecendo total modificabilidade de hardware e software. Produtos comerciais, mesmo os mod-friendly como o Mayflash F101, limitam a customização à troca de botões e alavanca, mantendo o encoder e firmware fechados.

Por outro lado, o protótipo apresenta limitações em relação aos produtos comerciais: ausência de compatibilidade nativa com consoles (USB HID), maior latência devido à cadeia Wi-Fi → MQTT → ThingsBoard → WebSocket, e dependência de infraestrutura de rede para funcionamento.

---

## 6. Referências

> Fundamentos de Sistemas Embarcados (FGA-UnB). **Trabalho 2 — 2025-2: Controle DualShock 3 (PS3)**. Disponível em: [https://gitlab.com/fse_fga/trabalhos-semestres-anteriores/trabalhos-2025_2/trabalho-2-2025-2/-/tree/main/PS3](https://gitlab.com/fse_fga/trabalhos-semestres-anteriores/trabalhos-2025_2/trabalho-2-2025-2/-/tree/main/PS3). Acesso em: 10 jun. 2026.

> Fundamentos de Sistemas Embarcados (FGA-UnB). **Lista de Sensores — Trabalho 2, 2026-1**. Disponível em: [https://gitlab.com/fse_fga/trabalhos-2026_1/trabalho-2-2026-1/-/blob/main/Lista_de_Sensores.md](https://gitlab.com/fse_fga/trabalhos-2026_1/trabalho-2-2026-1/-/blob/main/Lista_de_Sensores.md). Acesso em: 10 jun. 2026.

> THINGSBOARD. **Documentation — MQTT API**. Disponível em: [https://thingsboard.io/docs/reference/mqtt-api/](https://thingsboard.io/docs/reference/mqtt-api/). Acesso em: 10 jun. 2026.

> ESPRESSIF SYSTEMS. **ESP32 Datasheet** (v4.6). Disponível em: [https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf). Acesso em: 10 jun. 2026.

> ESPRESSIF SYSTEMS. **ESP-IDF Programming Guide** (v5.x). Disponível em: [https://docs.espressif.com/projects/esp-idf/en/stable/esp32/](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/). Acesso em: 10 jun. 2026.

> INVENSENSE (TDK). **MPU-6050 Six-Axis MEMS MotionTracking Device — Datasheet** (Rev. 3.4). Disponível em: [https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf](https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf). Acesso em: 10 jun. 2026.

> OASIS. **MQTT Version 3.1.1 — OASIS Standard**. Disponível em: [https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html](https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html). Acesso em: 10 jun. 2026.

> IEEE. **IEEE 802.11-2020 — Wireless LAN Medium Access Control and Physical Layer Specifications**. Disponível em: [https://standards.ieee.org/ieee/802.11/10788/](https://standards.ieee.org/ieee/802.11/10788/). Acesso em: 10 jun. 2026.

> IETF. **RFC 6455 — The WebSocket Protocol**. Disponível em: [https://datatracker.ietf.org/doc/html/rfc6455](https://datatracker.ietf.org/doc/html/rfc6455). Acesso em: 10 jun. 2026.
