“Microduino-Joypad Getting start/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
第7行: 第7行:
 
[[File:Microduino-Joypad-sch.zip|thumb]]
 
[[File:Microduino-Joypad-sch.zip|thumb]]
  
==搭建==
+
====Joypad搭建====
 
+
*'''Step 1''':将Microduino-TFT从Microduino-Joypad面板后面卡进Microduino-Joypad面板上,用尼龙螺丝固定,注意Microduino-TFT安装方向
'''首先您需要快速开始Microduino,参考:[[Microduino_Getting_start/zh]],如果搭建过Microduino开发环境可以往下进行。'''
+
[[File:Joypadstep1.jpg|center|600px]]
 
+
*'''Step 2''':将传感器接线插在Microduino-TFT的接口上
*所需Microduino模块
+
[[File:Joypadstep2.jpg|center|600px]]
{|class="wikitable"
+
'''注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。'''
|-
+
[[File:Joypadstep1_1.jpg|center|800px]]
|模块||数量||功能
+
*'''Step 3''':首先分别将两个摇杆按键、电池、四个白色按键放入对应位置,之后将连接好天线的nRF模块和Core装到Joypad底板上
|-
+
[[File:Joypadstep3.jpg|center|600px]]
|[[Microduino-Joypad/zh]] ||1||遥控器
+
*'''Step 4''':将Microduino-TFT传感器接线的另一头接到底板上的相应位置,之后将长版螺丝帽放到四个角的相应位置
|-
+
[[File:Joypadstep4.jpg|center|600px]]
|[[Microduino-Core/zh ]]||1||核心板
+
*'''Step 5''':将Joypad的表壳和底板使用螺丝和螺丝帽固定好
|-
+
[[File:Joypadstep5.jpg|center|600px]]
|[[Microduino-USBTTL/zh]]||1||下载程序
+
*'''Step 6''':组装完成后将天线上的贴纸撕下,将天线贴在底板背面的任意位置,至此Joypad组装完毕
|}
+
[[File:Joypadstep6.jpg|center|600px]]
*其他设备
 
{|class="wikitable"
 
|-
 
|模块||数量||功能
 
|-
 
| USB数据线|| 1||数据传输
 
|-
 
| 电池盒 || 1||装载电池
 
|-
 
| 7号干电池||3 ||提供电源
 
|}
 
 
 
 
 
[[File:Microduino_Joypad_TFT-all.jpg||600px|center|thumb]]
 
 
 
*步骤一:将Microduino-TFT安装在Microduino-Joypad面板上;
 
[[File:Microduino_Joypad_TFT-1.jpg||600px|center|thumb]]
 
[[File:Microduino_Joypad_TFT-2.jpg||600px|center|thumb]]
 
 
 
*步骤二:将尼龙螺丝安装在Microduino-Joypad上;
 
[[File:Microduino_Joypad_nilong-1.jpg||600px|center|thumb]]
 
 
 
*步骤三:将Microduino-USBTTL、Microduino-Core叠加在Microduino-Joypad底座上。
 
[[File:Microduino_Joypad_Module-1.jpg||600px|center|thumb]]
 
 
 
*步骤四:将Microduino-TFT与Microduino-Joypad通过转接线连接起来;
 
[[File:Microduino_Joypad_1.jpg||600px|center|thumb]]
 
 
 
*步骤五:将底板和面板用尼龙螺丝固定好;
 
[[File:Microduino_Joypad_face_bord-1.jpg||600px|center|thumb]]
 
 
 
*步骤六:如果要有震动,请安装震动马达;
 
[[File:Microduino_Joypad_shock-1.jpg||600px|center|thumb]]
 
 
 
*步骤七:将电池盒连接到底板上,注意正负极别接反了,板子背面标注了正负极,并且将底面板粘贴在Microduino-Joypad底部;
 
[[File:Microduino_Joypad_power_1.jpg||600px|center|thumb]]
 
 
 
 
 
*步骤八:你可以打开电源开关,观察供电是否正常。
 
[[File:Microduino_Joypad_switch-2.jpg||600px|center|thumb]]
 
 
 
*如果要安装Microduino-Joypad-Game板,你需要把右边的摇杆取下来
 
 
 
[[File:Microduino_Joypad_keyboard_1.jpg||600px|center|thumb]]
 
 
 
*将面板上的按键接口和底板接口通过线连接起来
 
[[File:Microduino_Joypad_keyboard_2.jpg||600px|center|thumb]]
 
*再用螺丝将面板固定住。
 
[[File:Microduino_Joypad_keyboard_3.jpg||600px|center|thumb]]
 
 
 
==测试==
 
*两个并列的Upin27底座;
 
*两个波动开关;
 
*四个按钮;
 
*MIC声音检测输入;
 
*光敏检测输入;
 
*蜂鸣器输出,接到Microduino的D6引脚上;
 
*震动马达输出,接到Microduino的D8引脚上;
 
*板载Microusb供电、充电管理、3.3V稳压
 
*2.54间距电池供电接口。
 
 
 
[[File:Microduino-Joypad-Expansion.png|600px|thumb|center|Microduino-Joypad-Expansion]]
 
  
 +
====Joypad搭建调试====
 +
*按键对应
 +
在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式
 +
[[File:Step1进入设置.jpg|600px|center|]]
 +
*进入设置模式
 +
按照图中的颜色,从左至右对应为Key1~Key4
 +
[[File:Step1按键对应.jpg|600px|center|]]
 +
注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入'''
 +
*摇杆校准
 +
按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认
 +
选择第一项Joystick Config进入摇杆设置模式
 +
继续选择Joystick Correct进入摇杆校准模式。
 +
进入之后会显示如图中第三张图所示的界面,初始状态为两个十字
 +
此时摇动左右摇杆至最上,最下,最左,最右四个极限状态
 +
(推荐操作方式:将摇杆摇动一圈)
 +
摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置
 +
校准之后按Key2确认并返回上一页面
 +
[[File:Step2摇杆校准.jpg|600px|center|]]
 
*用到的库:
 
*用到的库:
 
**'''请确定在[[Microduino_Getting_start/zh]]里面的附件中安装了Microduino硬件支持包和程序库支持包'''
 
**'''请确定在[[Microduino_Getting_start/zh]]里面的附件中安装了Microduino硬件支持包和程序库支持包'''
第95行: 第51行:
 
**重新打开“Arduino-IDE”,你可以选择库“_08_Microduino_Shield_Joypad\examples”里面的示例,编译通过后,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;
 
**重新打开“Arduino-IDE”,你可以选择库“_08_Microduino_Shield_Joypad\examples”里面的示例,编译通过后,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;
 
===程序说明===
 
===程序说明===
*读取:
+
*Joypad部分
**读取光照、麦克风,扩展接口A、B的值,返回值为:int(0~1023);
+
def.h中
<source lang="cpp">
+
定义了
//光照----------------------
+
<source lang = "cpp">
Joypad.readLightSensor();
+
uint8_t nrf_channal = 70;  //0~125
//麦克风--------------------
+
</source>
Joypad.readMicrophone();
+
nrf_channal为nrf通信的通道,joypad和Cube小车的代码中都会有该定义,目前用于控制Cube小车和平衡车
//INTA----------------------
+
当通道一致时则Joypad可与Cube小车或平衡车成功连接。
Joypad.readIntA();
+
对应的,在小车代码中会有如下程序段
//INTB----------------------
+
<source lang = "cpp">
Joypad.readIntB();
+
//nRF==============================
 +
  SPI.begin(); //初始化SPI总线
 +
  radio.begin();
 +
  network.begin(/*channel*/ 70  , /*node address*/ this_node);
 
</source>
 
</source>
 
+
在data.h中
**读取左、右模拟摇杆的值,返回值为:int(-512~512);
+
<source lang = "cpp">
<source lang="cpp">
+
  outBuf[0] = Joy1_x;
 
+
  outBuf[1] = Joy1_y;
//左模拟摇杆----------------
+
  outBuf[2] = Joy_x;
Joypad.readJoystickX();
+
  outBuf[3] = Joy_y;
Joypad.readJoystickY();
+
  outBuf[4] = map(AUX[0], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
 
+
  outBuf[5] = map(AUX[1], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
//右模拟摇杆----------------
+
  outBuf[6] = map(AUX[2], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
Joypad.readJoystick1X();
+
  outBuf[7] = map(AUX[3], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
Joypad.readJoystick1Y();
 
 
</source>
 
</source>
 +
8位数组outBuf表示Joypad发出的8位数据,0位为右摇杆左右,1为右摇杆上下,2为左摇杆左右,3位左摇杆上下,4~7位对应AUX0~4
  
**读取左、右模拟摇杆值;左、右模拟摇杆按下值、拨档开关、四组按键,返回值为:Boolean(HIGH、LOW);
+
在nrf.h中
 
+
<source lang = "cpp">
<source lang="cpp">
+
struct send_a //发送
 
+
{
Joypad.readButton(byte ch);
+
  uint32_t ms;
//左模拟摇杆----------------
+
  uint16_t rf_CH0;
JOYSTICK_UP;
+
  uint16_t rf_CH1;
JOYSTICK_DOWN;
+
  uint16_t rf_CH2;
JOYSTICK_LEFT;
+
  uint16_t rf_CH3;
JOYSTICK_RIGHT;
+
  uint16_t rf_CH4;
+
  uint16_t rf_CH5;
//左模拟摇杆按下------------
+
  uint16_t rf_CH6;
CH_JOYSTICK_SW
+
  uint16_t rf_CH7;
+
};
//右模拟摇杆----------------
 
JOYSTICK1_UP;
 
JOYSTICK1_DOWN;
 
JOYSTICK1_LEFT;
 
JOYSTICK1_RIGHT;
 
 
//右模拟摇杆按下------------
 
CH_JOYSTICK1_SW
 
 
//拨档开关------------------
 
CH_SWITCH_L;
 
CH_SWITCH_R;
 
 
//四组按键------------------
 
CH_SWITCH_1;
 
CH_SWITCH_2;
 
CH_SWITCH_3;
 
CH_SWITCH_4;
 
 
</source>
 
</source>
 +
此处定义的send_a结构体位对应的9位要发送的数据
  
*写入:
 
**控制蜂鸣器、振动;
 
<source lang="cpp">
 
//==========================
 
//蜂鸣器---------------------
 
  Joypad.tone(unsigned int freq);
 
  Joypad.tone(unsigned int freq, unsigned long duration);
 
  Joypad.noTone();
 
 
//振动------------------------
 
Joypad.motor(unsigned int motor_vol);
 
“unsigned int motor_vol”:振动强弱
 
 
</source>
 
</source>
  

2016年1月6日 (三) 02:12的版本

Language English

原理图

Joypad搭建

  • Step 1:将Microduino-TFT从Microduino-Joypad面板后面卡进Microduino-Joypad面板上,用尼龙螺丝固定,注意Microduino-TFT安装方向
Joypadstep1.jpg
  • Step 2:将传感器接线插在Microduino-TFT的接口上
Joypadstep2.jpg

注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。

Joypadstep1 1.jpg
  • Step 3:首先分别将两个摇杆按键、电池、四个白色按键放入对应位置,之后将连接好天线的nRF模块和Core装到Joypad底板上
Joypadstep3.jpg
  • Step 4:将Microduino-TFT传感器接线的另一头接到底板上的相应位置,之后将长版螺丝帽放到四个角的相应位置
Joypadstep4.jpg
  • Step 5:将Joypad的表壳和底板使用螺丝和螺丝帽固定好
Joypadstep5.jpg
  • Step 6:组装完成后将天线上的贴纸撕下,将天线贴在底板背面的任意位置,至此Joypad组装完毕
Joypadstep6.jpg

Joypad搭建调试

  • 按键对应

在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式

Step1进入设置.jpg
  • 进入设置模式

按照图中的颜色,从左至右对应为Key1~Key4

Step1按键对应.jpg

注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入

  • 摇杆校准

按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认 选择第一项Joystick Config进入摇杆设置模式 继续选择Joystick Correct进入摇杆校准模式。 进入之后会显示如图中第三张图所示的界面,初始状态为两个十字 此时摇动左右摇杆至最上,最下,最左,最右四个极限状态 (推荐操作方式:将摇杆摇动一圈) 摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置 校准之后按Key2确认并返回上一页面

Step2摇杆校准.jpg
  • 用到的库:
    • 请确定在Microduino_Getting_start/zh里面的附件中安装了Microduino硬件支持包和程序库支持包
    • 请确定在Ardino\arduino-1.0.6\libraries目录里面_01_Microduino_TFT库和_08_Microduino_Shield_Joypad库。
  • 调试:
    • 所需要准备的硬件有:Microduino USBTTL、、Microduino Core、组装好的Microduino-Joypad
    • 准备的软件有:支持的库文件、Arduino IDE;
    • 解压下载库文件,将解压后的库文件拷贝到Arduino IDE 的libraries文件夹中;
    • 重新打开“Arduino-IDE”,你可以选择库“_08_Microduino_Shield_Joypad\examples”里面的示例,编译通过后,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;

程序说明

  • Joypad部分

def.h中 定义了

uint8_t nrf_channal = 70;  //0~125

nrf_channal为nrf通信的通道,joypad和Cube小车的代码中都会有该定义,目前用于控制Cube小车和平衡车 当通道一致时则Joypad可与Cube小车或平衡车成功连接。 对应的,在小车代码中会有如下程序段

 //nRF==============================
  SPI.begin();		//初始化SPI总线
  radio.begin();
  network.begin(/*channel*/ 70  , /*node address*/ this_node);

在data.h中

  outBuf[0] = Joy1_x;
  outBuf[1] = Joy1_y;
  outBuf[2] = Joy_x;
  outBuf[3] = Joy_y;
  outBuf[4] = map(AUX[0], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
  outBuf[5] = map(AUX[1], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
  outBuf[6] = map(AUX[2], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);
  outBuf[7] = map(AUX[3], 0, 1, Joy_MID - Joy_maximum, Joy_MID + Joy_maximum);

8位数组outBuf表示Joypad发出的8位数据,0位为右摇杆左右,1为右摇杆上下,2为左摇杆左右,3位左摇杆上下,4~7位对应AUX0~4

在nrf.h中

struct send_a	//发送
{
  uint32_t ms;
  uint16_t rf_CH0;
  uint16_t rf_CH1;
  uint16_t rf_CH2;
  uint16_t rf_CH3;
  uint16_t rf_CH4;
  uint16_t rf_CH5;
  uint16_t rf_CH6;
  uint16_t rf_CH7;
};

此处定义的send_a结构体位对应的9位要发送的数据

</source>

开始应用

Microduino-Joypad 应用教程