<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=%E4%BD%93%E6%84%9F%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84</id>
		<title>体感游戏手柄 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=%E4%BD%93%E6%84%9F%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84"/>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E4%BD%93%E6%84%9F%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84&amp;action=history"/>
		<updated>2026-04-29T23:23:10Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=%E4%BD%93%E6%84%9F%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84&amp;diff=9071&amp;oldid=prev</id>
		<title>Hustshenyang@126.com：Created page with &quot;{{Language| 体感游戏手柄}} {| style=&quot;width: 800px;&quot; |- | ==目的== 通过体感模拟键盘W、A、S、D按键，可以控制游戏。  ==原理== 利用三轴加速度...&quot;</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E4%BD%93%E6%84%9F%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84&amp;diff=9071&amp;oldid=prev"/>
				<updated>2015-07-19T05:50:45Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Language| 体感游戏手柄}} {| style=&amp;quot;width: 800px;&amp;quot; |- | ==目的== 通过体感模拟键盘W、A、S、D按键，可以控制游戏。  ==原理== 利用三轴加速度...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Language| 体感游戏手柄}}&lt;br /&gt;
{| style=&amp;quot;width: 800px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==目的==&lt;br /&gt;
通过体感模拟键盘W、A、S、D按键，可以控制游戏。&lt;br /&gt;
&lt;br /&gt;
==原理==&lt;br /&gt;
利用三轴加速度传感器MPU6050检测手柄的运动状态变化，然后利用Microduino-CoreUSB的模拟键盘功能模拟W、A、S、D按键。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==设备==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|模块||数量||功能&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-CoreUSB/zh]]||1||核心板&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-10DOF/zh]]||1||矢量传感器模块&lt;br /&gt;
|}&lt;br /&gt;
 [[File: Motion_handle.jpg|600px|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
==搭建硬件==&lt;br /&gt;
* Setup 1：将CoreUSB接到电脑。打开示例程序，选择好板卡和串口下载程序。&lt;br /&gt;
[https://github.com/Microduino/Microduino_Tutorials/tree/master/MCookie_Tutorial/Motion_Handle Motion_Handle]&lt;br /&gt;
*Setup 2：将CoreUSB与10DOF叠堆。&lt;br /&gt;
[[File:CoreUSB_10DOF.jpg|600px|center|thumb]]&lt;br /&gt;
*Setup 3：将CoreUSB接到电脑，此时电脑会识别到一个键盘，在设备管理器会枚举出“HID Keyboard Device”设备。&lt;br /&gt;
[[file:Microduino-sensorhub_rule.JPG|thumb|800px|center]]&lt;br /&gt;
[[File:HID_Keyboard_Device.jpg|600px|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
==软件调试==&lt;br /&gt;
代码说明&lt;br /&gt;
*控制变量初始化： &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
MPU6050 accelgyro;   //三轴加速度传感器&lt;br /&gt;
int ax,ay,az;       //三轴加速度变量&lt;br /&gt;
float Ax,Ay,Az;&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  Keyboard.begin();      //模拟键盘初始化 &lt;br /&gt;
  Serial.println(&amp;quot;Initializing I2C devices...&amp;quot;);&lt;br /&gt;
  accelgyro.initialize();     //三轴加速度传感器初始化&lt;br /&gt;
    // verify connection &lt;br /&gt;
  Serial.println(&amp;quot;Testing device connections...&amp;quot;);&lt;br /&gt;
  Serial.println(accelgyro.testConnection() ? &amp;quot;MPU6050 connection successful&amp;quot; : &amp;quot;MPU6050 connection failed&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*判断手柄的运动状态。手柄向左，右，前，后摆，分别对应按键A,D,W,S。&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   void loop() {&lt;br /&gt;
    accelgyro.getAcceleration(&amp;amp;ax, &amp;amp;ay, &amp;amp;az); &lt;br /&gt;
    Ax = ax/16384.00;         //计算X轴加速度&lt;br /&gt;
    Ay = ay/16384.00;         //计算Y轴加速度&lt;br /&gt;
    Az = az/16384.00;         //计算Z轴加速度&lt;br /&gt;
    if(Ay &amp;gt;= 0.6 )            //手柄向左摆&lt;br /&gt;
    {&lt;br /&gt;
      Keyboard.press('A');    //按键‘A’    &lt;br /&gt;
    }&lt;br /&gt;
    else if(Ay &amp;lt;= -0.6)       //手柄向右摆&lt;br /&gt;
    {&lt;br /&gt;
      Keyboard.press('D');   //按键‘D’&lt;br /&gt;
    }&lt;br /&gt;
    else if(Ax &amp;gt;= 0.6)       //手柄向前摆&lt;br /&gt;
    {&lt;br /&gt;
      Keyboard.press('S');   //按键‘S’&lt;br /&gt;
    }&lt;br /&gt;
    else if(Ax &amp;lt;= -0.6)     //手柄向后摆&lt;br /&gt;
    {&lt;br /&gt;
       Keyboard.press('W'); //按键‘W’&lt;br /&gt;
    } &lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        Keyboard.releaseAll();  //释放按键&lt;br /&gt;
    }   &lt;br /&gt;
    delay(200); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==结果==&lt;br /&gt;
在电脑上打开记事本，将CoreUSB连接到电脑上，想手柄向左摆，记事本上会持续打印出字母A，手柄再摆回原位置，记事本停止打印，其他按键同理。&lt;br /&gt;
&lt;br /&gt;
==视频==&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hustshenyang@126.com</name></author>	</entry>

	</feed>