<?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=Joypad-Standard-%E4%B8%8A%E4%B8%80%E7%99%BE%E5%B1%82</id>
		<title>Joypad-Standard-上一百层 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=Joypad-Standard-%E4%B8%8A%E4%B8%80%E7%99%BE%E5%B1%82"/>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Joypad-Standard-%E4%B8%8A%E4%B8%80%E7%99%BE%E5%B1%82&amp;action=history"/>
		<updated>2026-04-21T13:25:06Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=Joypad-Standard-%E4%B8%8A%E4%B8%80%E7%99%BE%E5%B1%82&amp;diff=6075&amp;oldid=prev</id>
		<title>853387039@qq.com：Created page with &quot;{| style=&quot;width: 800px;&quot; |- | ==概述== 我们采用Microduino-Joypad-Game来实现上一百层，并且可以通过重力感来实现控制。 ==材料清单== *Microduino...&quot;</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=Joypad-Standard-%E4%B8%8A%E4%B8%80%E7%99%BE%E5%B1%82&amp;diff=6075&amp;oldid=prev"/>
				<updated>2014-11-14T15:46:45Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| style=&amp;quot;width: 800px;&amp;quot; |- | ==概述== 我们采用Microduino-Joypad-Game来实现上一百层，并且可以通过重力感来实现控制。 ==材料清单== *Microduino...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| style=&amp;quot;width: 800px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
==概述==&lt;br /&gt;
我们采用Microduino-Joypad-Game来实现上一百层，并且可以通过重力感来实现控制。&lt;br /&gt;
==材料清单==&lt;br /&gt;
*Microduino设备&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|模块||数量||功能&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-Core/zh]]||1||核心板&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-USBTTL/zh]] ||1||下载程序&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-Joypad/zh]] ||1||下载程序&lt;br /&gt;
|-&lt;br /&gt;
|[[Microduino-10DOF/zh]] ||1||下载程序&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File: Microduino-Joypad-snake.jpg|600px|center|thumb]]&lt;br /&gt;
==下载==&lt;br /&gt;
TFT库：https://github.com/wasdpkj/libraries/tree/master/_01_Microduino_TFT&lt;br /&gt;
Joypad库：https://github.com/wasdpkj/libraries/tree/master/_08_Microduino_Shield_Joypad&lt;br /&gt;
10DOF库：https://github.com/wasdpkj/libraries/tree/master/_05_Microduino_10DOF&lt;br /&gt;
代码：&lt;br /&gt;
&lt;br /&gt;
==调试==&lt;br /&gt;
*步骤一：准备Microduino-Joypad-Game，你可以参考：[[Microduino-Joypad_Getting_start]]&lt;br /&gt;
&lt;br /&gt;
*步骤二：将[[Microduino-Core/zh]]、[[Microduino-10DOF/zh]]和[[Microduino-USBTTL/zh]]叠加在Microduino-Joypad-Game底板的Upin27上；&lt;br /&gt;
&lt;br /&gt;
*步骤三：下载使用到的库和代码，把库更新到编译器中【[[安装Arduino IDE Microduino程序库支持包]]】&lt;br /&gt;
&lt;br /&gt;
*步骤四：打开示例程序&lt;br /&gt;
**获取重力感应，暂时只用到Y轴的数据：&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 void mpu6050()&lt;br /&gt;
{&lt;br /&gt;
  accelgyro.getMotion6(&amp;amp;ax,&amp;amp;ay,&amp;amp;az,&amp;amp;gx,&amp;amp;gy,&amp;amp;gz);//获取三个轴的加速度和角速度&lt;br /&gt;
  //======一下三行是对加速度进行量化，得出单位为g的加速度值&lt;br /&gt;
  Ax=ax/16384.00;&lt;br /&gt;
  Ay=ay/16384.00;&lt;br /&gt;
  Az=az/16384.00;&lt;br /&gt;
  //==========以下三行是用加速度计算三个轴和水平面坐标系之间的夹角&lt;br /&gt;
  // Angel_accX=atan(Ax/sqrt(Az*Az+Ay*Ay))*180/3.14;&lt;br /&gt;
  Angel_accY=atan(Ay/sqrt(Ax*Ax+Az*Az))*180/3.14;&lt;br /&gt;
  //Angel_accZ=atan(Az/sqrt(Ax*Ax+Ay*Ay))*180/3.14;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
**摇杆与按键控制切换代码：&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
    int acc_readX() {&lt;br /&gt;
  if(Joypad.readButton(CH_SWITCH_L)&amp;amp;&amp;amp;Joypad.readButton(CH_SWITCH_R))&lt;br /&gt;
  {&lt;br /&gt;
    mpu6050();&lt;br /&gt;
    val= constrain(Angel_accY, -64, 64); // use Y for orientation&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
    val= -1 * constrain(Joypad.readJoystickX()/8, -64, 64); // use Y for orientation&lt;br /&gt;
  return(val);&lt;br /&gt;
  // Serial.println(val);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
默认是左右边两边的拨动开关拨到上面是重力感应控制，否则摇杆控制，玩家可以更改切换选择方式。&lt;br /&gt;
*最高分数EEPROM保存：&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
    if(score &amp;gt; highscore){&lt;br /&gt;
      if(score &amp;lt; 64000) {&lt;br /&gt;
        EEPROM.write(0, score);&lt;br /&gt;
        EEPROM.write(1, score&amp;gt;&amp;gt;8);&lt;br /&gt;
      }&lt;br /&gt;
      else { // bad value, zero out&lt;br /&gt;
        EEPROM.write(0,0);&lt;br /&gt;
        EEPROM.write(1,0);&lt;br /&gt;
      }        &lt;br /&gt;
      //drawString(1, s_height+3, &amp;quot;HIGHSCORE!&amp;quot;, p_color_default, 1);&lt;br /&gt;
      // tft.drawString(1, s_height+3, &amp;quot;HIGHSCORE!&amp;quot;, p_color_default, 1);&lt;br /&gt;
      drawInt(score, 120, s_height+3, p_color_default, background);&lt;br /&gt;
      highscore = score;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*四种跳跃方式：&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
switch (b_onUseID){&lt;br /&gt;
  case 0:&lt;br /&gt;
    drawString(1, s_height+3, &amp;quot;Jet pack&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    //   tft.drawString(1, s_height+3, &amp;quot;Jet pack&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    b_max = 100;&lt;br /&gt;
    b_remaining = b_max;&lt;br /&gt;
    break;&lt;br /&gt;
  case 1:&lt;br /&gt;
    drawString(1, s_height+3, &amp;quot;Frog legs&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    //    tft.drawString(1, s_height+3, &amp;quot;Frog legs&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    b_max = 100;&lt;br /&gt;
    b_remaining = b_max;&lt;br /&gt;
    break;&lt;br /&gt;
  case 2:&lt;br /&gt;
    drawString(1, s_height+3, &amp;quot;Testosterone&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    //    tft.drawString(1, s_height+3, &amp;quot;Testosterone&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    b_max = 1;&lt;br /&gt;
    b_remaining = b_max;&lt;br /&gt;
    break;&lt;br /&gt;
  case 3:&lt;br /&gt;
    drawString(1, s_height+3, &amp;quot;Low gravity&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    //    tft.drawString(1, s_height+3, &amp;quot;Low gravity&amp;quot;, b_colors[b_onUseID], 1);&lt;br /&gt;
    b_max = 255;&lt;br /&gt;
    b_remaining = b_max;&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
步骤五：编译代码，成功后选择对应的板卡和COM端口下载。下载完毕后就可以进行体验了。&lt;br /&gt;
*体验：&lt;br /&gt;
**先确认两个波动开关两个状态，如果全打开（拨到上）则用重力感应控制，否则用左边摇杆控制。&lt;br /&gt;
**途中落在不同层上面可以更改跳跃方式&lt;br /&gt;
**当小球落地后就“GAME OVER”，如果分数大于以前的，则将写入EEPROM。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>853387039@qq.com</name></author>	</entry>

	</feed>