亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

DIY Arduino USB 触控板 —— 将废旧笔记本触控板改造为现代输入设备

核心物料

元器件数量说明
Arduino Micro / Pro Micro / Leonardo1仅这三款支持原生 USB HID
笔记本触控板 (PS/2 接口)1拆机或购买
细导线若干焊接触控板排线

软件环境

原理说明

早期笔记本触控板多采用 PS/2 接口 (Data/Clock 两线),与鼠标协议兼容。Arduino 读取 PS/2 数据,通过原生 USB HID 功能模拟鼠标上报给电脑。新款触控板可能直出 USB,此时只需查阅引脚定义直连即可,无需 Arduino 转换。

接线指南

触控板 FPC/排线上通常标有丝印:

关键提示: 焊接极细排线极易扯断焊盘!焊好后必须用热熔胶加固卸力,严禁对排线施加任何拉力。

库安装

  1. 下载 PS2.zip 库文件
  2. Arduino IDE → 草图 → 包含库 → 添加 .ZIP 库
  3. 官方 Mouse.h 无需安装

完整固件代码

#include <Mouse.h>
#include <ps2.h>

#define PS2_DATA 10
#define PS2_CLK  9

PS2 moose(PS2_CLK, PS2_DATA);

byte mstat1, mstat2, mxy, mx, my, mz;
int msval[3];
int repeatCnt = 0;

void setup() {
  Mouse.begin();
  // PS/2 鼠标初始化序列 (进入远程模式、设置分辨率/采样率等)
  moose.write(0xff); moose.read(); moose.read(); moose.read(); // 复位
  moose.write(0xf0); moose.read(); delayMicroseconds(100);     // 远程模式
  moose.write(0xe8); moose.read(); moose.write(0x03); moose.read(); // 分辨率
  moose.write(0xe8); moose.read(); moose.write(0x00); moose.read();
  moose.write(0xe8); moose.read(); moose.write(0x01); moose.read();
  moose.write(0xe8); moose.read(); moose.write(0x00); moose.read();
  moose.write(0xf3); moose.read(); moose.write(0x14); moose.read(); // 采样率 20/s
  Serial.begin(9600);
}

void ms_read() {
  moose.write(0xeb); moose.read();           // 请求数据包
  mstat1 = moose.read();
  mxy    = moose.read();
  mz     = moose.read();
  mstat2 = moose.read();
  mx     = moose.read();
  my     = moose.read();

  // 组合有符号位移值 (PS/2 协议特有位操作)
  msval[0] = (((mstat2 & 0x10) << 8) | ((mxy & 0x0F) << 8) | mx);
  msval[1] = (((mstat2 & 0x20) << 7) | ((mxy & 0xF0) << 4) | my);
  msval[2] = int(mz); // 滚轮
}

void loop() {
  ms_read();

  // 简单去抖动:连续 3 次有效移动才上报
  if (msval[0] > 0 && msval[2] > 10) repeatCnt++;
  else repeatCnt = 0;

  if (repeatCnt > 2) {
    // 映射到合理鼠标移动范围
    msval[0] = map(msval[0], 580, 5164, -1023, 1023);
    msval[1] = map(msval[1], 1120, 5967, 1023, -1023);
    Mouse.move(msval[0]/200, msval[1]/200);
  }
}

调试与进阶

应用场景

制造工艺

  1. 蓝牙控制树莓派机器人:语音反馈功能构建指南
  2. 手势控制 RGB 台灯 —— 交互式免手操作照明
  3. Android 手势遥控车:Raspberry Pi + Arduino 101 + 电机扩展板,I2T 协同控制
  4. 通过树莓派用 Alexa 控制 LED - 简单分步指南
  5. 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
  6. Arduino Mega 驱动 Wii Nunchuk 控制 6 自由度机械臂
  7. Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
  8. MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
  9. 语音控制家电:Google Assistant + 蓝牙 + Arduino UNO
  10. PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
  11. Wi-Servo:基于 ESP8266 的 Wi-Fi 网页端舵机远程控制系统
  12. Arduino 电容式触控开关:一枚硬币点亮 LED 的极简 DIY