发作品签到
专业版

【便携摇杆滚轮】你的文档翻页小助手

工程标签

1.3k
0
0
12

简介

基于 CH552E 芯片的创新滚轮,利用 USB 接口实现便捷连接与数据传输。采用 Xbox 蘑菇头式摇杆控制,为交互操控带来全新体验。开源程序、PCB、外壳3D装配文件。

简介:基于 CH552E 芯片的创新滚轮,利用 USB 接口实现便捷连接与数据传输。采用 Xbox 蘑菇头式摇杆控制,为交互操控带来全新体验。开源程序、PCB、外壳3D装配文件。
智能便携电子设备设计大赛
复刻成本:5

开源协议

CC BY-NC 3.0

创建时间:2025-02-19 08:57:21更新时间:2025-03-03 03:46:22

描述

视频链接:

低成本便携摇杆滚轮 bilibili

项目简介

基于 CH552E 芯片的创新滚轮,利用 USB 接口实现便捷连接与数据传输。采用 Xbox 蘑菇头式摇杆控制,操作精准灵活,适用于多种场景,为交互操控带来全新体验。

项目参考:摸鱼自定义单键小键盘CH552

项目功能

本项目是基于 CH552E 芯片设计的便携摇杆滚轮,主要用于代替鼠标滚轮在不便使用的情况。通过 Xbox 蘑菇头式摇杆控制,可实现精准灵活的滚动操作,适用于浏览长文档、网页浏览等场景。

项目参数

  • 采用 CH552E 芯片作为主控芯片,通过 USB 接口与电脑连接;
  • 使用 Xbox 蘑菇头式摇杆,具有一定的灵敏度和精准度;
  • 体积小巧,便于携带。

原理解析(硬件说明)

本项目由 CH552E 芯片、Xbox 蘑菇头式摇杆(KY-023)、USB 接口、等部分组成。CH552E 芯片负责接收摇杆信号并将其转换为 USB 信号,通过 USB 接口传输给电脑。摇杆的移动被转化为电信号,经芯片处理后实现对应的滚动操作。

image.png

软件代码

c复制

/*
  cli board options: usb_settings=user148

*/

// For windows user, if you ever played with other HID device with the same PID C55D
// You may need to uninstall the previous driver completely

#ifndef USER_USB_RAM
#error "This example needs to be compiled with a USER USB setting"
#endif

#include "src/userUsbHidKeyboardMouse/USBHIDKeyboardMouse.h"

// 宏定义引脚配置及传感器参数
#define BUTTON2_PIN 16        // 按钮2的引脚
#define ADC_PIN 15            // 模拟电位器的引脚
#define ADC_THRESHOLD 3       // 矫形判断临界值

// 按钮类型定义(可拓展功能)
typedef enum {
  MOUSE_MIDDLE = MOUSE_MIDDLE        // 中键点击
} MouseEventType;

// 全局变量
bool button2PressedPrev = false; // 按钮前一次状态
int16_t sensorValue = 0;         // 模拟电位器的读值
int8_t scrollSpeed = 0;          // 鼠标滚轮速度
float mappedValue = 0;           // 映射后的模拟值
float absMappedValue = 0;        // 映射后绝对值
float scrollValue = 0;           // 滚轮速度


// 更新按钮状态
void updateButtonState() {
  bool buttonPressed = !digitalRead(BUTTON2_PIN); // 读取按钮状态为低电平触发

  // 检测按钮状态变化
  if (buttonPressed != button2PressedPrev) {
    button2PressedPrev = buttonPressed; // 更新按钮前一次状态

    // 如果按钮按下,模拟中间鼠标点击
    if (buttonPressed) {
      Mouse_click(MOUSE_MIDDLE);
    }
  }
}

// 更新鼠标滚轮速度
void updateScrollSpeed() {
  // 读取电位器模拟值并映射
  sensorValue = analogRead(ADC_PIN);
  mappedValue = map(sensorValue, 0, 255, -128, 128);

  // 计算映射后的绝对值
  absMappedValue = abs(mappedValue);

  // 根据电位器值设置滚轮速度分段
  if (absMappedValue < ADC_THRESHOLD) {
    scrollValue = 0; // 第一段:值很小,滚轮不滚动
  } else if (absMappedValue < 110) {
    scrollValue = (mappedValue > 0) ? 1 : -1; // 第二段:小幅滚动
  } else {
    scrollValue = (mappedValue > 0) ? 2 : -2; // 第三段:大幅滚动
  }
}

// 控制鼠标动作
void controlMouseActions() {
  // 如果滚轮速度不为0且非零,则控制鼠标滚轮滚动
  if (scrollValue != 0) {
    Mouse_scroll(scrollValue);
    scrollValue = 0; // 重置滚轮速度,防止重复触发
  }
}

void setup() {
  // 初始化USB通信
  USBInit();

  // 硬件初始化
  pinMode(BUTTON2_PIN, INPUT_PULLUP); // 设置按钮为输入并上拉
  pinMode(ADC_PIN, INPUT);            // 设置模拟电位器为输入
}

void loop() {
  // 按钮和电位器状态的更新和处理
  updateButtonState();    // 更新按钮状态
  updateScrollSpeed();    // 更新滚轮速度
  controlMouseActions();  // 控制鼠标动作

  delay(50); // 延迟以防止抖动
}

注意事项

  • 摇杆安装时需注意方向和位置,确保操作灵活;
  • 调试时需注意 USB 接口的兼容性,确保设备正常识别。
  • 摇杆模块的排针需要修剪后再焊接
  • 2812灯珠不需要贴
  • 所用的隔离柱目前采用打印件

组装流程

  1. 焊接PCB板与改装蘑菇头模块(改排针向下,注意在单面板底面焊接)

e52102ef7b1bfbd30d2093a1b5f9dd2.jpg

412fc904ba0c1a79b9f69d2b98bc253.jpg

  1. 安装 Xbox 蘑菇头式摇杆(KY-023)

b9e69be00183214ab4b48476d313226.jpg

16fe0fff840d9cee222a17c76c8ea68.jpg

a4a441dcaf912607a6e588f42a221ad.jpg

  1. 安装隔离柱与底板。
    使用圆隔离柱或方隔离柱都可以,主要是为了固定两块板。
    条件允许的话建议先给隔离柱攻丝
    外壳底板使用4颗M2x5的螺钉或自攻螺钉,穿过PCB固定至隔离柱螺孔。

ba7282bef9b7b6cfdbb2e335a6a4a23.jpg
bf7c72432dc22149e62f1d48036e34f.jpg

  1. 检查电路,确保PCB焊接没问题,无短路等现象。

  2. 使用官方下载软件下载程序后重新上电即可

(程序烧录见下)

  1. 外壳安装,在底部外围采用4颗M2x5的螺钉或自攻螺钉固定

image.png

14cab8a0cb00b167b0168fc8b23aac3.jpg

程序下载

程序采用的arduino开发,源码在附件

下载程序前请自行前往沁恒官网下载安装WCHISPTool

烧录步骤

打开WCHISPTool烧录软件,
选择CH55x系列进入,
按图示选择芯片及配置,
下载文件勾选到通过Arduino生成的HEX文件。

image.png

最后勾选设备链接后自动下载
使用镊子短接板子侧边的3V3和P3.6引脚,
将USB插上电脑,此时迅速移开镊子,即可完成程序自动烧录。

烧录完成后,重新上电即可使用。

实物图

滚轮渲染.19.png

image.png

14cab8a0cb00b167b0168fc8b23aac3.jpg

其他

附件提供的装配体3D文件格式有stl、stp、x_t;

提供程序源码及其引用库文件。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
演示视频.mp4
5
2
CODE.zip
14
3
CAD.zip
11
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航