Trabalho 02
Universidade de Brasília - FCTE
Embarcados
Equipe:
| Nome Completo | Matrícula |
|---|---|
| CARLOS EDUARDO MOTA ALVES | 221022248 |
| IAGO ROCHA SANTOS MARQUES | 211039484 |
| LUCAS GOBBI BERGHOLZ | 211029441 |
| RENAN VIEIRA GUEDES | 221031363 |
Introdução
Este trabalho tem como objetivo realizar um estudo teórico-exploratório sobre um teclado embarcado existente, analisando suas funcionalidades, arquitetura eletrônica e tecnologias de comunicação. A partir desse estudo, buscamos compreender como suas principais funções podem ser total ou parcialmente reproduzidas utilizando o ecossistema da ESP32, incluindo botões, varredura de matriz, comunicação Bluetooth e personalização de firmware. O estudo envolve levantamento bibliográfico, análise técnica e a elaboração de um modelo conceitual que poderá servir de base para uma futura implementação prática em laboratório.
1 - Descrição do produto
1.1 - Definição de Teclado
O teclado é um dispositivo de entrada utilizado para enviar dados e comandos a um sistema computacional através da ativação de teclas. Cada tecla pressionada é convertida em um código (como códigos de varredura, ASCII ou Unicode), que é então interpretado pela CPU ou pelo sistema operacional.
Segundo Stallings (2017):
"O teclado é um dispositivo de entrada baseado em um conjunto de teclas que, quando pressionadas, enviam ao sistema códigos que representam caracteres ou instruções."
— Stallings, William. Computer Organization and Architecture: Designing for Performance. 10ª ed. Pearson, 2017.
De forma complementar, Tanenbaum e Austin (2013) explicam que dispositivos de entrada como o teclado funcionam como interfaces essenciais entre o usuário e a máquina, convertendo ações físicas em sinais processáveis:
"Dispositivos como teclados convertem ações físicas em sinais elétricos que podem ser processados pelo computador, funcionando como interface essencial entre o usuário e a máquina."
— Tanenbaum, Andrew S.; Austin, Todd. Structured Computer Organization. 6ª ed. Pearson, 2013.
Perspectiva Histórica
O artigo “The History of the Computer Keyboard” refere que o teclado moderno evoluiu das máquinas de escrever patenteadas por Christopher Latham Sholes em 1868 e de suas versões comerciais subsequentes. Além disso, dispositivos como teletipos (teletypes/TTY) atuaram como importantes predecessores dos teclados digitais.
Essa evolução histórica evidencia que, mesmo nos sistemas computacionais contemporâneos, o teclado mantém a função de interface humano-máquina para entrada de texto e execução de comandos.
Funcionalidades
Podemos descrever o teclado como um dispositivo de entrada cuja função principal é permitir que o usuário interaja com um sistema computacional por meio do acionamento de teclas. Herdando sua origem das máquinas de escrever e evoluindo por dispositivos como os teletipos, o teclado moderno tornou-se a principal interface humano-máquina para inserção de texto e execução de comandos.
Atualmente, para facilitar e ampliar sua funcionalidade principal, os teclados podem incluir recursos adicionais, como teclas programáveis para atalhos, iluminação por LEDs, softwares de configuração, e diferentes layouts físicos e lógicos (como ABNT2 em português ou QWERTY em inglês). Esses fatores permitem que o teclado seja adaptado a diferentes contextos de uso, idiomas, ergonomias e necessidades de produtividade, mantendo sua função essencial de comunicação entre o usuário e o sistema digital.
Descrição detalhada das funcionalidades:
- Entrada de Dados: Inserção de texto, símbolos e comandos no sistema.
- Atalhos e Teclas Programáveis: Permitem automatizar funções e aumentar produtividade.
- Iluminação e Feedback Visual: LEDs RGB ou monocromáticos para indicação, estética ou uso em ambientes escuros.
- Conectividade: Pode se comunicar via USB, Bluetooth ou Wi-Fi, permitindo uso com computadores, tablets e até smartphones.
Público-Alvo e Contexto de Uso
Ao analisar teclados como dispositivos de entrada, é importante considerar que diferentes públicos possuem necessidades distintas, o que influencia diretamente aspectos como ergonomia, layout, durabilidade, sensibilidade das teclas e recursos adicionais. A seguir, relacionamos os principais perfis de uso com seus respectivos contextos:
| Público-Alvo | Contexto de Uso | Características Importantes no Teclado |
|---|---|---|
| Usuários Gerais | Escritório, estudo, navegação diária | Conforto, layout padrão (ABNT2 ou ANSI), teclas silenciosas, durabilidade média. |
| Programadores e Profissionais Técnicos | Longas sessões de digitação, trabalho contínuo com texto e comandos | Durabilidade, switch adequado (mecânico ou silent), teclas programáveis, ergonomia para uso intensivo. |
| Gamers | Jogos de resposta rápida e ações contínuas | Teclados mecânicos com switches rápidos, N-Key Rollover, anti-ghosting, firmware dedicado e possivelmente iluminação RGB configurável. |
| Profissionais Criativos (Designers, Vídeo, Áudio) | Uso intenso de atalhos para produtividade | Teclados programáveis ou macro pads, disposição personalizável de teclas e camadas (layers). |
| Usuários Móveis ou de Trabalho Remoto | Portabilidade e praticidade | Teclados compactos (60%, 65% ou TKL), conexão sem fio estável, bateria duradoura. |
| Pessoas com Necessidades Especiais de Acessibilidade | Inclusão e adaptação física ou cognitiva | Teclados ampliados, teclas com perfil elevado, suporte a softwares assistivos, layouts simplificados. |
1.2 - Componentes e Sensores utilizados:
Principais Componentes de um Teclado
-
Matriz de Teclas:
Conjunto de linhas e colunas onde cada tecla funciona como um interruptor. -
Microcontrolador:
Responsável por detectar o acionamento das teclas, processar o sinal e enviar o código correspondente ao sistema. -
Switches:
Podem ser mecânicos, ópticos, ou membrana — determinam o tipo de sensação ao pressionar. -
Keycaps:
Parte física pressionada pelo usuário, podendo variar em material e formato. -
Circuito de Debounce (Hardware/Software):
Evita múltiplos sinais de uma mesma tecla em um único toque. -
Placa Controladora:
Base onde os componentes são montados e conectados. -
Iluminação (Opcional):
LEDs individuais ou matriz de LEDs para retroiluminação e efeitos visuais.
Tecnologias de Comunicação e Controle Embarcadas
-
USB:
Forma mais comum de comunicação com computadores, envia códigos padronizados sem necessidade de driver adicional. -
Bluetooth:
Permite uso sem fio em desktops, notebooks, tablets e smartphones. -
Wi-Fi:
Usado para configurações remotas e integração com automação. -
Firmware Embarcado:
Software interno responsável pelo:- Mapeamento das teclas (keymap)
- Scan da matriz de teclas
- Debounce
- Macros e camadas de teclas
- Gerenciamento de energia e comunicação
-
Protocolos HID:
Padrão que define como o dispositivo envia dados ao sistema operacional, garantindo compatibilidade.
2 - Análise técnica do funcionamento:
Por o termo teclado ser muito genérico, para este trabalho usaremos como caso de estudo a marca Biba Keyboards, por disponibilizar projeto e firmware em formato open-source e por oferecer produtos com funcionalidades modernas. Mais especificamente, escolhemos o modelo Biba40 (Split, ortolinear 40%), por ser um teclado completo, com comunicação sem fio (Bluetooth LE), configuração via firmware ZMK, e documentação pública com arquivos de projeto (KiCad) e guia de montagem.Link para comprar produto

Principais módulos do sistema
O Biba40 é um teclado ortolinear split onde cada metade monta uma matriz de switches MX (linhas × colunas) com diodos para evitar ghosting. Um microcontrolador nRF52840 varre a matriz, aplica debounce por software e traduz os pressionamentos em keycodes. O firmware ZMK gerencia layers, combos e macros, monta os relatórios HID e envia-os ao host via Bluetooth LE; também há modo cabeado/TRRS para sincronizar ou operar com fio. A alimentação vem de baterias Li-ion/Li-Po com circuito de carga (via USB-C) e a placa (KiCad) integra footprints para switches, diodos, conector de bateria e o módulo wireless; a carcaça costuma ser impressa em 3D. Em suma: tecla → scan matrix → MCU (debounce + keymap/ZMK) → relatório HID → transporte (BLE/USB) → host.
1. Matriz de Teclas (Switches)
- As teclas são implementadas com switches mecânicos padrão MX.
- As teclas são organizadas em matriz (linhas × colunas), reduzindo a quantidade de pinos necessários no MCU.
2. Controlador / MCU (Comunicação e Controle)
- Utiliza um módulo baseado no nRF52840.
3. Firmware
- Firmware utilizado: ZMK (baseado no Zephyr RTOS).
4. Alimentação / Bateria e Carregamento
- Alimentado por bateria Li-ion / Li-Po de 3.7V.
- Pode incluir circuito de carga via USB-C ou módulo externo.
5. Interconexão Entre Metades
- Pode operar de dois modos:
- Wireless completo (cada metade conecta ao computador por BLE);
- Conexão cabeada TRRS/USB para sincronização ou firmware.
- O firmware define qual metade atua como “controladora principal”.
6. PCB (Placa de Circuito Impresso)
- Arquivos do projeto disponíveis em KiCad.
- Contém:
- Footprints dos switches;
- Posições dos diodos;
- Conectores para bateria, carregador e TRRS/USB;
- Espaço de montagem para o módulo Nice!Nano.
7. Carcaça / Case
- Geralmente impressa em 3D.
- Pode ser modificada para ergonomia ou estética pessoal.
8. Periféricos Opcionais
- Keycaps personalizáveis;
- Estabilizadores (para teclas longas);
- LEDs indicadores;
Identificação de Tecnologias Críticas
No funcionamento do teclado Biba40 (e de teclados sem fio modernos), algumas tecnologias são essenciais para garantir baixo consumo, confiabilidade de comunicação e flexibilidade de configuração:
| Tecnologia | Papel no Sistema | Observações Relevantes |
|---|---|---|
| Bluetooth Low Energy (BLE) | Responsável pela comunicação sem fio com o computador ou dispositivos móveis. | Prioriza baixo consumo. O firmware usado implementa o perfil HID (Human Interface Device) para que o teclado seja reconhecido automaticamente pelo sistema operacional sem drivers extras. |
| ZMK Firmware (baseado no Zephyr RTOS) | Controla o teclado (leitura da matriz, debouncing, layers, macros) e gerencia a pilha de comunicação Bluetooth. | Por ser baseado no Zephyr, herda gerenciamento de energia, drivers padronizados e arquitetura modular. Totalmente configurado em texto, permitindo customização sem recompilar kernel. |
| MCU nRF52840 (ARM Cortex-M4 + Rádio BLE) | Microcontrolador que realiza a varredura da matriz e transmite os dados via BLE. | Possui modos avançados de sleep, rádio integrado de baixo consumo e suporte nativo para HID BLE. É um componente chave para autonomia da bateria. |
| Debouncing por Software | Evita leituras incorretas devido ao ruído mecânico das teclas. | Implementado no firmware (ZMK), permite teclas mecânicas estáveis sem hardware adicional. |
| Técnicas de Gerenciamento de Energia (Low Power) | Reduz o consumo em operação contínua. | MCU entra em modo deep sleep, acordando apenas quando uma tecla é pressionada. A comunicação BLE utiliza intervalos longos de advertising quando o teclado está ocioso. |
| Perfil HID (Human Interface Device) | Permite que o teclado seja plug-and-play, sem driver proprietário. | Compatível com Windows, Linux, macOS, Android e iOS automaticamente. |
3 - Reprodução na ESP32
A seguir, apresentamos uma proposta conceitual de como reproduzir parte das funcionalidades de um teclado como o Biba40 utilizando uma ESP32 e componentes compatíveis com o ecossistema ESP-IDF. O objetivo é obter um protótipo funcional com teclas personalizáveis, comunicação Bluetooth, e interface simples de configuração via Access Point.
Descrição conceitual
Como descrito acima, nossa ideia é montar um teclado com menos teclas devido à complexidade de criar a matriz e ao número de botões. Por isso, vamos permitir a personalização das funções das teclas. A versão inicial terá 4 teclas e, se obtivermos sucesso, poderemos adaptar para uma versão split com duas metades de 4 teclas cada.
Implementação e adpatações de hardawre
| Módulo | Componente (proposto) | Função Principal |
|---|---|---|
| MCU / Controlador | ESP32 | Varredura da matriz, execução do firmware |
| Matriz de teclas | Botões tácteis e protoboard | Detectar teclas pressionadas |
| Comunicação sem fio | Bluetooth (nativo ESP-IDF) | Comunicação direta com o computador sem dongle |
| Configuração do teclado | Modo Access Point + Webserver embutido | Página para remapear teclas e salvar flash |
| Interface adicional (opcional) | Display OLED (SSD1306) via I2C | Visualizar layer ativo, status da bateria, modo BLE |
Implementação e adpatações de software
| Funcionalidade | API / Biblioteca sugerida |
|---|---|
| Bluetooth | esp_hid_device ou nimble_hid (ESP-IDF) |
| Varredura da Matriz | GPIO + Timer + Task (FreeRTOS) |
| Debouncing | Filtro por tempo + estado |
| Config Web | esp_http_server + modo SoftAP (esp_wifi_set_mode) |
| Armazenamento das configurações | nvs_flash |
Diagrama conceitual do sistema.
Versão 01

A versão 01 é um protótipo compacto com 4 botões físicos controlados por um único ESP32. Objetivos: permitir personalização via Wi-Fi, mostrar estado em um display OLED I2C e enviar eventos de tecla para o computador via Bluetooth.
Descrição do funcionamento
Hardware / conexões físicas
- Botões → ESP32 (GPIO)
- Cada botão conectado a um pino digital do ESP32 (GPIO).
- Display OLED → ESP32 (I²C)
- Usado para feedback (layer, keymap atual, status de conexão).
- ESP32 → Host (Bluetooth)
- O ESP32 monitora os botões e manda via Bluetooth pro computador.
- Configuração → Wi-Fi (Access Point)
- ESP32 sobe um AP temporário e um servidor web simples (páginas estáticas) para o usuário configurar o keymap.
Fluxos de comunicação
- Usuário pressiona botão → sinal elétrico no GPIO.
- ESP32 aplica debounce (filtro) e valida evento (press/release).
- Evento mapeado para um código lógico via keymap (mapa configurado pela web).
- ESP32 monta HID report e envia via BLE para o host (computador).
- OLED I2C opcional mostra feedback,
Limitações e desafios esperados.
- Número de botões: O teclado original possui uma matriz grande; na nossa réplica inicial teremos menos teclas.
- Switches mecânicos: Reproduzir o mecanismo dos switches é complexo; usaremos botões comuns como alternativa simplificada.
- Debouncing eficiente: É necessário garantir filtragem de ruído elétrica e lógica estável para evitar múltiplos acionamentos indesejados.
- Comunicação BLE: A comunicação Bluetooth pode sofrer instabilidades, atraso ou falhas de emparelhamento, exigindo fila de eventos e controle de tempo.
- Comunicação entre metades (Split): Caso a versão com duas metades seja implementada.
- Personalização das teclas: A configuração via interface web/AP exige software adicional para salvar e carregar mapeamentos.
- Bateria e alimentação: Será necessário usar uma bateria externa e implementar carregamento seguro (proteção, regulador, medição de nível).
- Plug and Play real: Para o dispositivo ser reconhecido como teclado imediatamente, é necessário implementar corretamente o perfil HID sem exigir drivers adicionais.
4 - Pesquisa bibliográfica e tecnológica
Artigos de pesquisa
-
“Wireless keyboard and mouse device based on Bluetooth” – Este artigo (SPIE, 2002/2003) apresenta um dispositivo de teclado e mouse sem fio baseado em Bluetooth, demonstrando as primeiras implementações de periféricos sem fio usando o protocolo Bluetooth.
-
“Abstract/document/9061500” – Artigo da IEEE que investiga aspectos técnicos recentes (autenticação, latência ou consumo) de dispositivos de entrada sem fio.
-
“Device Class Definition for Human Interface Devices (HID), v1.11” – Documento oficial da USB-IF (2001) que define a classe de dispositivo HID (Human Interface Device), a qual inclui teclados, mouses e outros periféricos, padronizando a comunicação destes dispositivos com os hosts via USB.
-
"Investigating the Resilience of Unstructured Supernode Networks" - Este artigo revisa sistemas de sensoriamento móvel e descreve como tecnologias de comunicação de baixo consumo especialmente Bluetooth Low Energy (BLE) permitem a coleta contínua de dados sem esgotar rapidamente a bateria, destacando sua importância em dispositivos vestíveis, teclados sem fio e IoT.
Artigos de aplicação
-
"Postural Dynamism During Computer Mouse and Keyboard Use" - Este estudo analisou como o corpo se movimenta durante o uso de teclado e mouse.
A pesquisa mostrou que digitar no teclado gera mais variação postural natural, enquanto o uso prolongado do mouse mantém o corpo mais estático, o que pode aumentar o risco de dor no pescoço e costas. -
"Assisting People with Multiple Disabilities to Improve Computer Typing Efficiency" - O artigo apresenta um método alternativo de digitação para pessoas com deficiências motoras usando teclado virtual + controle via roda do mouse, reduzindo necessidade de precisão manual. Participantes com paralisia cerebral mostraram melhora significativa na velocidade e precisão da digitação.
-
"Mechanical and Membrane Keyboard Typing Assessment Using sEMG" - O estudo comparou digitação em teclados mecânicos e teclados de membrana usando sensores musculares (sEMG). Resultados mostraram que teclados mecânicos exigem menos esforço muscular para digitar, enquanto membrana pode gerar mais fadiga no antebraço.
-
“An Analysis on the Effects of Different Types of Keyboards on Users’ Productivity and Hand Muscle Strain” – Estudo comparativo de diferentes tipos de teclados (mecânico vs membrana, layout tradicional vs alternativo) avaliando produtividade (velocidade de digitação, precisão) e esforço muscular (EMG). Os autores mostram que o tipo de teclado influencia significativamente o conforto e a eficiência do usuário.
5 Comparativo com produtos similares
| Tipo de produto | Nº típico de teclas | Feedback tátil | Eficiência de digitação (vel./precisão) | Como se compara ao Biba40 |
|---|---|---|---|---|
| Teclado full-size com cabo (100%) | 101–104 | Mecânico ou membrana (varia) | Alta velocidade e precisão (layout familiar) | Mais rápido no início; porém menos personalizável; Biba40 ganha em compactação e layout configurável. |
| Teclado wireless padrão (não personalizável) | 87–104 | Geralmente membrana ou low-profile mecânico | Boa velocidade; leve latência possível | Função similar ao Biba40, porém sem layers, macros e personalização profunda. |
| Teclado virtual (touchscreen em smartphone/tablet) | Sem teclas físicas | Sem feedback físico | Velocidade menor e mais erros | Significativamente inferior para digitação prolongada; o Biba40 é superior devido ao feedback físico. |
| Macro-pad / Shortcut pad (8–16 teclas) | 8–16 | Mecânicos (em geral) | Alta eficiência para atalhos, baixa para texto | Macro-pad é complementar; Biba40 pode atuar como teclado principal após aprendizagem de layers. |
| Remote / control pad (controles multimídia) | 4–20 | Membrana ou teclas simples | Baixa para digitação | Usado para controle e navegação, não para texto; não substitui um teclado como o Biba40. |
Referências
-
Stallings, William. Computer Organization and Architecture: Designing for Performance. 10ª ed., Pearson, 2017.
-
Tanenbaum, Andrew S.; Austin, Todd. Structured Computer Organization. 6ª ed., Pearson, 2013.
-
Khan, W. Z.; Xiang, Y.; Aalsalem, M. Y.; Arshad, Q. (2014). Mobile phone sensing systems: A survey. IEEE Communications Surveys & Tutorials, 15(4), 1819–1857. Acesso: https://ieeexplore.ieee.org/document/6515207
-
“Wireless keyboard and mouse device based on Bluetooth” (SPIE conference). Acesso: https://www.spiedigitallibrary.org/conference-proceedings-of-spie/4911/0000/Wireless-keyboard-and-mouse-device-based-on-Bluetooth/10.1117/12.480522.short
-
Device Class Definition for Human Interface Devices (HID), v1.11 — USB-IF (2001). Acesso: https://www.usb.org/sites/default/files/documents/hid1_11.pdf
-
(IEEE) Abstract / document 9061500. Acesso: https://ieeexplore.ieee.org/abstract/document/9061500
-
Postural Dynamism During Computer Mouse and Keyboard Use. (ScienceDirect). Acesso: https://www.sciencedirect.com/science/article/pii/S0003687015000423
-
Assisting People with Multiple Disabilities to Improve Computer Typing Efficiency. (ScienceDirect). Acesso: https://www.sciencedirect.com/science/article/pii/S0891422214001954
-
Mechanical and Membrane Keyboard Typing Assessment Using sEMG — Tri Pham, Nicholas Kelling (HFES 2015 / ResearchGate). Acesso: https://www.researchgate.net/publication/283538787_Mechanical_and_Membrane_Keyboard_Typing_Assessment_Using_Surface_Electromyography_sEMG
-
Yamada, Hisao. A Historical Study of Typewriters and the Keyboard Layout. Human Factors, v. 22, n. 6, p. 643–651, 1980.
Acesso: https://journals.sagepub.com/doi/abs/10.1177/001872088002200602 -
Repositório GitHub do projeto (firmware / configs / arquivos): danbiba / zmk-config-biba40
https://github.com/danbiba/zmk-config-biba40
Contém configs ZMK, exemplos de keymaps, instruções de build e UF2 gerados para as placas Nice!Nano. -
Página de venda / descrição do produto — Tindie (Biba40 Split Mechanical Keyboard — Bluetooth, ZMK):
https://www.tindie.com/products/danbiba/biba40-split-mechanical-keyboard-bluetooth-zmk/#:~:text=Specs and Docs -
Artigo/overview na comunidade (KBD.news) com resumo e especificações:
https://kbd.news/Biba40-2497.html
