Skip to content

UnikoZera/STM_Keyboard

Repository files navigation

STM_Keyboard - 高性能磁轴键盘项目

Build Status MCU

STM_Keyboard 是一个基于 STM32G431 微控制器的开源高性能磁轴小键盘项目(4 Key Keypad)。本项目利用霍尔传感器实现 Rapid Trigger (RT) 功能,专为音乐游戏(如 osu!)和极速响应需求设计。

项目包含完整的底层驱动、模拟信号处理、OLED UI 交互以及炫酷的 RGB 灯效系统。


✨ 主要功能 (Key Features)

🎯 磁轴 Rapid Trigger (RT) 技术

  • 动态触发/释放:抛弃传统机械轴的固定触发点,通过霍尔传感器实时检测磁通量变化。
  • 自定义参数
    • 触发键程 (Position Threshold):自定义按下的触发深度。
    • RT 灵敏度 (Speed Threshold):自定义快速触发 (Trigger) 和快速释放 (Release) 的速度阈值。
  • 模拟算法:内置 ADC 滤波与状态机算法,确保触发精准无误触。

🖥️ 交互式 OLED 显示屏

  • 可视化配置:板载 OLED 屏幕,无需上位机即可通过触摸按键调整键盘设置。
  • 流畅动画:内置 UI 动画引擎,支持多种缓动函数 (Ease-In, Ease-Out, Elastic 等),提供丝滑的菜单切换体验。
  • 实时状态:显示 CPS (Clicks Per Second)、当前模式图标及参数数值。

🌈 沉浸式 RGB 灯效

  • 独立灯珠控制:每个按键对应独立的 RGB 灯光。
  • 动态效果
    • 按压反馈:按下按键时触发渐变/爆闪效果。
    • 空闲特效:支持彩虹轮询 (Rainbow Cycle) 等待机动画。
    • 参数可调:支持调节亮度、流光速度及样式。

⌨️ 多模式支持

  • 键盘输出模式 (Keyboard Mode):USB HID 免驱,电脑识别为标准键盘/小键盘,超低延迟。
  • 设置模式 (Settings Mode):通过板载触摸按键 (ESC/Mode) 调整 RT 参数、灯光及校准。

🛠️ 硬件方案 (Hardware Spec)

详细的硬件清单如下:

  • 主控芯片: STM32G431CBT6 (170 MHz Cortex-M4, Math Accelerator)
  • 轴体传感器: 霍尔传感器 TLE4968 (配合磁轴)
  • 电压基准: TLV431 (ADC 高精度可调节稳压源,确保模拟量采样稳定)
  • 显示屏: 0.96寸 / 1.3寸 OLED
  • 按键布局: 4 x 磁轴按键 + 2 x 触摸功能键 (Mode, ESC)

📂 文件结构概览

STM_Keyboard/
├── Core/
│   ├── Inc/ & Src/
│   ├── keyboard_controller.c  # 核心键盘逻辑、RT算法实现
│   ├── oled_controller.c      # OLED UI 绘制与动画管理
│   ├── rgb_controller.c       # RGB 灯效控制
│   ├── adc_controller.c       # 霍尔传感器数据采集与滤波
│   └── usb_device.c           # USB HID 设备描述符配置
├── Drivers/                   # STM32 HAL 库
└── USB_Device/                # USB 协议栈实现

🚀 开发与编译 (Development)

本项目使用 STM32CubeIDE 进行开发。

  1. 克隆仓库
    git clone https://github.com/UnikoZera/STM_Keyboard.git
  2. 导入项目
    • 打开 STM32CubeIDE。
    • File -> Open Projects from File System -> 选择项目目录。
  3. 编译烧录
    • 点击 Build 生成 .elf / .bin 文件。
    • 使用 ST-Link 或 DAPLink 连接开发板进行 DebugRun

📝 待办事项 (To-Do)

  • USB HID 键盘通讯
  • ADC 霍尔采样与滤波
  • Rapid Trigger 基础算法
  • OLED 基础菜单与图标
  • RGB 灯效基础框架
  • 上位机驱动软件 (计划中)
  • 更多自定义灯效模式

Project resurrected and currently in WIP (Work In Progress) state.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages