“开源电驱机器小车CUBE/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
调试过程
第102行: 第102行:
  
 
====Joypad搭建====
 
====Joypad搭建====
*'''Step 1''':将Microduino-TFT从Microduino-Joypad面板后面卡进Microduino-Joypad面板上,用尼龙螺丝固定,注意Microduino-TFT安装方向
+
*搭建过程可参考以下页面:[[[https://www.microduino.cn/wiki/index.php/Microduino-Joypad_Getting_start/zh Joypad使用指南]]]
[[File:Joypadstep1.jpg|center|600px]]
+
*当我们使用[[Microduino-Module nRF/zh]]作为通讯模块时,Joypad对应选择nRF模式即可:[[[https://www.microduino.cn/wiki/index.php/Microduino-Joypad_Getting_start/zh#.E9.80.9A.E8.AE.AF.E6.A8.A1.E5.BC.8F 通讯模式配置]]]
*'''Step 2''':将传感器接线插在Microduino-TFT的接口上
+
*特别要注意的是电池使用说明:[[[https://www.microduino.cn/wiki/index.php/Microduino-Joypad_Getting_start/zh#Step-2_.E7.94.B5.E6.B1.A0.E9.80.9A.E7.94.B5 电池使用说明]]]
[[File:Joypadstep2.jpg|center|600px]]
 
'''注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。'''
 
[[File:Joypadstep1_1.jpg|center|800px]]
 
*'''Step 3''':首先分别将两个摇杆按键、电池、四个白色按键放入对应位置,之后将连接好天线的nRF模块和Core装到Joypad底板上
 
[[File:Joypadstep3.jpg|center|600px]]
 
*'''Step 4''':将Microduino-TFT传感器接线的另一头接到底板上的相应位置,之后将长版螺丝帽放到四个角的相应位置
 
[[File:Joypadstep4.jpg|center|600px]]
 
*'''Step 5''':将Joypad的表壳和底板使用螺丝和螺丝帽固定好
 
[[File:Joypadstep5.jpg|center|600px]]
 
*'''Step 6''':组装完成后将天线上的贴纸撕下,将天线贴在底板背面的任意位置,至此Joypad组装完毕
 
[[File:Joypadstep6.jpg|center|600px]]
 
  
====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|]]
 
*选择控制模式
 
按Key1回到主界面,选择第二项Protocol Config进入模式选择
 
选择第一项Mode,之后选择nRF24即robot控制模式,按下Key2确认并返回
 
[[File:Step3设置Robot模式.jpg|600px|center|]]
 
*设置通信信道
 
返回二级菜单,选择nRF24 Channel按下Key2确认
 
选择70,它是与Robot_Microduino.ino中nRF24的配置函数设置相对应的
 
[[File:Step4通信通道设置robot.jpg|600px|center|]]
 
至此,Cube小车和遥控器已经组装完成
 
 
==注意问题==
 
*下载程序时候最好只叠加core(core+)和USBTTL,虽然本次搭建涉及的nRF24不会引起冲突,但是别的通信模块有时会造成串口冲突,养成好习惯。
 
*锂电池正负极别接错了,否则会烧坏电路。
 
*调试好后,实际运行时不要使用USB供电,电压不足,请使用电池。
 
==程序说明==
 
 
*Joypad部分
 
def.h中
 
定义了
 
<source lang = "cpp">
 
uint8_t nrf_channal = 70;  //0~125
 
</source>
 
nrf_channal为nrf通信的通道,joypad和Cube小车的代码中都会有该定义
 
当通道一致时则Joypad可与Cube小车成功连接。
 
在小车代码中会有如下程序段
 
<source lang = "cpp">
 
//nRF==============================
 
  SPI.begin(); //初始化SPI总线
 
  radio.begin();
 
  network.begin(/*channel*/ 70  , /*node address*/ this_node);
 
</source>
 
在data.h中
 
<source lang = "cpp">
 
  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);
 
</source>
 
8位数组outBuf表示Joypad发出的8位数据,0位为右摇杆左右,1为右摇杆上下,2为左摇杆左右,3位左摇杆上下,4~7位对应AUX0~4
 
 
在nrf.h中
 
<source lang = "cpp">
 
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;
 
};
 
</source>
 
此处定义的send_a结构体为对应的9位要发送的数据
 
 
*小车部分
 
这四个定义为控制减速电机左轮前进后退与右轮前进后退
 
<source lang = "cpp">
 
#define motor_pin0A 5  //PWM left
 
#define motor_pin0B 7
 
#define motor_pin1A 6  //PWM
 
#define motor_pin1B 8
 
</source>
 
此处的receive_a对应Joypad程序中的send_a
 
<source lang = "cpp">
 
struct receive_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;
 
};
 
</source>
 
 
选择CH3为左摇杆控制前后,CH0位右摇杆控制左右
 
选择CH3为左摇杆控制前后,CH0位右摇杆控制左右
 
<source lang = "cpp">
 
<source lang = "cpp">

2016年3月2日 (三) 04:00的版本

概述

  • 项目名称:开源电驱机器小车CUBE
  • 目的:通过Microduino Joypad来控制Cube机器人小车
  • 难度:高级
  • 耗时:3小时
  • 制作者:Microduino Studio-YLB

材料清单

  • Microduino设备
模块 数量 功能
Microduino-Core/zh 2 核心模块
Microduino-USBTTL/zh 1 下载程序模块
Microduino-Module nRF/zh 2 无线通讯模块
Microduino-Shield Joypad/zh 1 遥控模块
Microduino-Module TFT/zh 1 显示模块
Microduino-Shield Robot/zh 1 驱动底板模块
  • 其他设备
模块 数量 功能
机器小车机架 1 车体
螺丝 18 固定
螺母 8 固定
Micro-USB数据线 1 下载程序
车轮 1 车体
电机 1 驱动车轮
电池 1 供电

【此处配图要更新,robot底板】

实验原理

  • 机器人小车种类比较多,如循迹,壁障,蓝牙遥控小车,电脑鼠等,不同功能需要采用不同传感器。
  • 但是其行走控制方式基本是一样的,无非就是前后左右四个方向运动。
  • 本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。
  • 该小车结构简单,主要包括三个方面:车轮、车身、控制系统。
    • 1)车轮采用两个减速电机,扭力大,可PWM调速,控制简单。
    • 2)车身采用木板,大小:8cm*8cm*8cm。
    • 3)整个控制系统包括四个部分:
  • 中央处理器
    • 采用Microduino-Core/zh作为核心,就像电脑的CPU,人的大脑,有一定思维能力,能够处理复杂事件。
  • 无线通讯
  • 电机控制
  • 供电系统

文档

调试过程

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


  • Joypad程序
    • 过程与上一步基本相同。打开你所下载的项目中“Joypad_RC.ino”程序并下载即可。

Cube机器人拼装

  • Step1:首先将车子的轮胎和电击用支架和螺丝组合起来,再将轮胎和电机固定在A1上
  • Step2:将A2插入A1两边的凹口位置,再将B1接在A1顶部,A3接在A1底部然后用A4进行固定
  • Step3:将B2和C1分别接在B1的左右边对应位置
  • Step4:将nRF模块底部接上天线,再与Core进行拼接,之后将其与电池连接,并加在Robot底板上。使用螺丝将底板固定在B1上
  • Step5:将C2拼接在A1对应位置固定
  • Step6:将D1接入B2和C1顶部接口部分,再将D2接到B2和C1前方的凹槽部分,完成安装后将天线的贴纸撕下,将天线贴在任意位置

Joypad搭建

选择CH3为左摇杆控制前后,CH0位右摇杆控制左右

 _i[0] = map(rec.rf_CH3, 1000, 2000, -MAX_THROTTLE, MAX_THROTTLE);   
_i = _turn;
_i[0] = map(rec.rf_CH0, 1000, 2000, -MAX_STEERING, MAX_STEERING);

视频