基于肌肉的游戏控制器

厌倦了传统的输入法,例如键盘,鼠标等? 是否曾经想过通过身体运动来控制计算机?
还是围绕身体运动构建应用程序?

在本教程结束时,您将可以在日常练习中融入一些乐趣🙂或制作自己的任天堂力量手套。
例如,将T-rex游戏添加到二头肌卷发中:

用大提琴胶带盖住弯曲传感器,以稳定由于外部因素引起的读数变化。 在第一步结束之前,您将准备好电路。

第2步:

我们将在本节中使用arduino,您可以使用此代码获取每个柔性传感器在其弯曲位置和松弛位置之间的值范围。然后基于串行监视器的读数以及弯曲传感器的弯曲量,确定一个阈值电压,低于该阈值便要发出命令,等效于在玩游戏时按键。 我在这个项目中使用了micro.Voltage计算代码:

  / *使用此代码计算传感器阈值,交换不同的挠性传感器和电阻对以计算它们各自的值* / 
int SensorPin = A0; //模拟引脚0
无效setup(){
Serial.begin(9600);
}
无效循环(){
int SensorReading = AnalogRead(SensorPin); //读取数据Serial.println(SensorReading); //在串行监视器上打印数据
 浮动电压= SensorReading *(5.0 / 1023.0); //缩小范围 
Serial.println(voltage); //要使用的最终值
  delay(500); //仅在此处减慢输出速度以便于阅读 
}

到第二步结束时,您将能够收集所需的数据。

步骤3:

为此,我们需要下载鼠标和键盘库,然后将其复制粘贴到arduino文件夹(安装了arduino ide的文件夹)内的library文件夹中。现在,您可以在更改阈值后使用此处提供的代码来设置最终产品。要按下的四个(取决于所使用的arduino)键可以在此处找到修饰符。

最终产品代码:

  int flexUp = A0;  //模拟引脚0 
int flexRight = A1;
int flexLeft = A2;
无效setup(){
Serial.begin(9600);
}
无效循环(){
  int muscle1 = AnalogRead(flexUp); //读取数据 
int flexSensorReading1 = AnalogRead(flexRight);
int flexSensorReading2 = AnalogRead(flexLeft);
int muscle2 = AnalogRead(A3);
 电压=肌肉1 *(5.0 / 1023.0); //缩放数据 
浮动电压右= flexSensorReading1 *(5.0 / 1023.0);
浮动电压左= flexSensorReading2 *(5.0 / 1023.0);
浮动电压下降=肌肉2 *(5.0 / 1023.0);
  if(voltageUp> 0.95)//将数据映射到键盘 
Keyboard.write(218); //向上键
 如果(降压> 1) 
Keyboard.write(217); //向下
 如果(voltageLeft <1) 
Keyboard.write(216); //左键
 如果(电压右<1.3) 
Keyboard.write(215); //右键


延迟(100); //仅在此处减慢输出速度以便于阅读}
  Keyboard.write(215);  //右键 
如果(voltageLeft <1)
Keyboard.write(216); //左键

延迟(100); //仅在此处减慢输出速度以便于阅读}

通过执行以下步骤,您应该可以即插即用并自己玩BioFeedback GameController。

最终产品: