本方案目标是:
使用真实汽车的灯光拨杆(5pin),通过 Arduino UNO R3 串口传输拨动状态至电脑,再由 SimHub 模拟游戏中的灯光、转向等操作。
不使用 USB HID 模拟键盘或手柄,而是采用串口通信 + SimHub 的按键模拟功能。
不使用 USB HID 模拟的原因是在前期搜集资料前,就图便宜买了UNO R3(ESP-8266EX)开发板,结果发现根本不支持USB HID协议,也就不能模拟成USB设备从而进行自定义按键,只能通过串口发送数据,PC端通过Simhub读取后模拟成键盘操作
拨杆引脚 | 功能 | Arduino 接口 |
---|---|---|
A | 信号1 | D2 |
B | 信号2 | D3 |
C | 信号3 | D4 |
D | 信号4 | D5 |
GND | 公共地线 | GND |
digitalRead()
检测 4 根输入引脚电平 → 组成 4 位状态码(如 "1011")Serial.println()
发送状态名const int pinA = 2;
const int pinB = 3;
const int pinC = 4;
const int pinD = 5;
String lastState = "1111";
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 100;
void setup() {
Serial.begin(115200);
pinMode(pinA, INPUT_PULLUP);
pinMode(pinB, INPUT_PULLUP);
pinMode(pinC, INPUT_PULLUP);
pinMode(pinD, INPUT_PULLUP);
}
void loop() {
String currentState = "";
currentState += digitalRead(pinA) == HIGH ? "1" : "0";
currentState += digitalRead(pinB) == HIGH ? "1" : "0";
currentState += digitalRead(pinC) == HIGH ? "1" : "0";
currentState += digitalRead(pinD) == HIGH ? "1" : "0";
if (currentState != lastState && millis() - lastDebounceTime > debounceDelay) {
lastDebounceTime = millis();
lastState = currentState;
if (currentState == "0111") Serial.println("PARKING_LIGHT");
else if (currentState == "1011") Serial.println("NEAR_LIGHT");
else if (currentState == "1101") Serial.println("FAR_LIGHT");
else if (currentState == "1110") Serial.println("FLASH_LIGHT");
else if (currentState == "0011") Serial.println("FOG_LIGHT");
else if (currentState == "0110") Serial.println("LEFT_SIGNAL");
else if (currentState == "1010") Serial.println("RIGHT_SIGNAL");
else if (currentState == "1111") Serial.println("OFF");
}
delay(10);
}
控制和事件 → 键盘模拟
状态名 | 映射按键 |
---|---|
NEAR_LIGHT | F6 |
FAR_LIGHT | F7 |
LEFT_SIGNAL | ← |
RIGHT_SIGNAL | → |
FOG_LIGHT | F8 |
PARKING_LIGHT | F5 |
OFF | F10 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有