Microduino-Joypad Getting start/zh

来自Microduino Wikipedia
Wasdpkj@hotmail.com讨论 | 贡献2016年3月1日 (二) 10:26的版本 Joypad菜单说明
跳转至: 导航搜索
Language English

下载程序

  • 用数据线连接Microduino-USBTTL/zh,并将其与你的核心堆叠在一起,准备上传程序。
    • 注意:最好不要将所有模块堆叠在一起之后再上传程序
  • 打开Arduino IDE for Microduino,环境,(搭建参考:AVR核心:Getting started/zh
  • 确认“板卡”与“处理器”选择无误,并选中对应端口号(COMX)
  • 打开你所下载的项目中“Joypad_RC.ino”程序
  • 点击"→"按钮下载程序到开发板上


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菜单配置说明

进入配置模式

  • 在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式
    • 注意:必须在进入操作界面前进入(2S左右时间)。若未进入则重启进入
Step1进入设置.jpg
  • 按照图中的颜色,从左至右对应为Key1~Key4
Step1按键对应.jpg
  • 按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认

摇杆配置

摇杆校准设置

  • 选择“Joystick Config-Joystick Correct”进入摇杆校准模式。
    • 进入之后会显示如图中第三张图所示的界面,初始状态为两个十字
    • 此时摇动左右摇杆至最上,最下,最左,最右四个极限状态
      • (推荐操作方式:将摇杆摇动一圈)
    • 摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置
Step2摇杆校准.jpg

摇杆死区设置

  • 选择“Joystick Config-Dead Zone config”可以设置摇杆死区
    • 设置的值越大摇杆越不灵敏。

通讯协议配置

通讯模式

  • 选择“Protocol Config-mode”进入通讯协议配置
    • 其中“Quadro.”表示四轴模式,“nRF24.”表示nRF模式

四轴模式通道配置

  • 选择“Protocol Config-Quadrotor Channel”设置四轴通讯通道

nRF模式通道配置

  • 选择“Protocol Config-nRF24 Channel”设置nRF通讯通道

系统配置

显示屏主题配置

  • 选择“System Config-TFT Theme”切换显示屏主题

显示屏翻转配置

  • 选择“System Config-TFT Rotation”翻转显示屏角度

MCU参考电压配置

  • 选择“System Config-MCU Voltag”配置MCU参考电压

体感配置

结束配置模式

  • 选择“Exit”结束配置模式

程序说明

  • 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位要发送的数据


开始应用

Microduino-Joypad 应用教程


源码下载

https://github.com/wasdpkj/Joypad_RC/