“开源电驱机器小车CUBE/zh”的版本间的差异
(→实验原理) |
(→材料清单) |
||
第15行: | 第15行: | ||
|模块||数量||功能 | |模块||数量||功能 | ||
|- | |- | ||
− | |[[Microduino-Core/zh]]||2|| | + | |[[Microduino-Core/zh]]||2||核心模块 |
|- | |- | ||
− | |[[Microduino-USBTTL/zh]]||1|| | + | |[[Microduino-USBTTL/zh]]||1||下载程序模块 |
|- | |- | ||
− | |[[Microduino-Module nRF/zh]]||2|| | + | |[[Microduino-Module nRF/zh]]||2||无线通讯模块 |
|- | |- | ||
− | |[[Microduino-Shield Joypad/zh]]||1|| | + | |[[Microduino-Shield Joypad/zh]]||1||遥控模块 |
|- | |- | ||
− | |[[Microduino-Module TFT/zh]]||1|| | + | |[[Microduino-Module TFT/zh]]||1||显示模块 |
|- | |- | ||
− | |[[Microduino-Shield Robot/zh]]||1|| | + | |[[Microduino-Shield Robot/zh]]||1||驱动底板模块 |
|} | |} | ||
*其他设备 | *其他设备 | ||
第46行: | 第46行: | ||
|电池||1||供电 | |电池||1||供电 | ||
|} | |} | ||
+ | |||
+ | 【此处配图要更新,robot底板】 | ||
[[File:Boxz物料.jpg||1000px|center]] | [[File:Boxz物料.jpg||1000px|center]] | ||
2016年3月1日 (二) 09:38的版本
概述
材料清单
【此处配图要更新,robot底板】 实验原理机器人小车种类比较多,如循迹,壁障,蓝牙遥控小车,电脑鼠等,不同功能需要采用不同传感器。 但是其行走控制方式基本是一样的,无非就是前后左右四个方向运动。 本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。 该小车结构简单,主要包括三个方面:车轮、车身、控制系统。 1)车轮采用两个减速电机,扭力大,可PWM调速,控制简单。 2)车身采用木板,大小:8cm*8cm*8cm。 3)整个控制系统包括四个部分:
采用Microduino-Core/zh作为核心,就像电脑的CPU,人的大脑,有一定思维能力,能够处理复杂事件。
采用Microduino-Module nRF/zh无线通讯方案,通讯速度响应快,控制范围:空阔地域大约50米。
采用Microduino-Shield Robot/zh上自带的一组直流电机驱动单元,一个单元能够驱动两个电机。
采用Microduino-Shield Robot/zh上自带的单节锂电池管理单元,管理充放电功能。 文档
调试过程
将Microduino Core、Microduino USBTTL堆叠在一起.用数据线将写好的程序通过Microduino USBTTL上传到Microduino Core上。 注意:最好不要将所有模块堆叠在一起之后再上传程序 打开Aroduino IDE,若电脑中没有安装,则参照附录中的安装方法,先安装Aicroduino IDE。点击左上【文件】选项→点击【打开】。 浏览到项目程序地址,点击“Robot_Microduino.ino”程序打开 之后点击左上角的"√"进行编译,点击上边栏的工具,确认板卡(Microduino-Core)处理器(Atmega328P@16M,5V)和端口号(COMX)。三项都如图确认无误之后点击"→"按钮下载程序到开发板上
过程与上一步基本相同。在【文件】→【打开】这一步中找到Joypad_RC.ino并选择板卡型号之后下载即可。 Cube机器人拼装
Joypad搭建
注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。
Joypad搭建调试
在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式
按照图中的颜色,从左至右对应为Key1~Key4 注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入
按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认 选择第一项Joystick Config进入摇杆设置模式 继续选择Joystick Correct进入摇杆校准模式。 进入之后会显示如图中第三张图所示的界面,初始状态为两个十字 此时摇动左右摇杆至最上,最下,最左,最右四个极限状态 (推荐操作方式:将摇杆摇动一圈) 摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置 校准之后按Key2确认并返回上一页面
按Key1回到主界面,选择第二项Protocol Config进入模式选择 选择第一项Mode,之后选择nRF24即robot控制模式,按下Key2确认并返回
返回二级菜单,选择nRF24 Channel按下Key2确认 选择70,它是与Robot_Microduino.ino中nRF24的配置函数设置相对应的 至此,Cube小车和遥控器已经组装完成 注意问题
程序说明
def.h中 定义了 uint8_t nrf_channal = 70; //0~125
nrf_channal为nrf通信的通道,joypad和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位要发送的数据
这四个定义为控制减速电机左轮前进后退与右轮前进后退 #define motor_pin0A 5 //PWM left
#define motor_pin0B 7
#define motor_pin1A 6 //PWM
#define motor_pin1B 8
此处的receive_a对应Joypad程序中的send_a 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;
};
选择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);
视频 |