nbhkdz.com冰点文库

FRC极限抛射程序使用说明


一、FRC Driver Station 场控使用说明:

1、双击 FRC Driver Station 打开场控软件。 一个为 FRC Driver Station,

场控启动后会同时打开两个界面,

用来自己控制机器人。另一个为 FRC PC Dashboard,

为操作状态的仪表盘,用来显

示一些状态,比如你机器人使用了摄像头,图像回传到电脑就 是在这里显示的。

2、 FRC Driver Station 左侧有五个按钮

, 其中第一个是我们最常使用的。 TeleOperated

为手动模式,是我们最常使用的,Autonomous 为自动模式,如果你不能确定你的自动程序 是什么,请不要轻易使用,以免机器人失控出现事故,Practice 为练习模式,Test 为测试模

1





Enable 为这四种模式的开始启动按钮,isable 为这四种模式的关闭按钮。建议使用场控时, 鼠标要尽量时刻放在关闭按钮上,以防止机器人失控时及时关闭。

还能够查看运行的时间,电池电量以及 CPU 的使用情况。队 伍属于红蓝哪个队伍。

3、左侧第二个按钮,

可以显示当前本机场控的连

接方式,重启 roboRio 和代码。通常不会使用,所以不详细介绍。

4、左侧第三个按钮,

可以设置

此本机场控所控制的机器人队伍编号, 这里一定要根据实际情况进行设置, 否则不能操控你 的机器人。 其他选项可以设置仪表盘的类型通常缺省设置就可以。 场控的版本设置, 在比赛时候要根据组委会要求的版本进行设置, 平时操控机器人时不必设 置。右侧可以设置练习时,自动阶段等比赛时间。

2

5、左侧第四个按钮,用来调整 USB 接口。

通常电脑上

接第一个摇杆时会默认为 0, 第二个会识别为 1, 依次类推。 如果识别过一次, 以后再接时, 通常会根据手柄摇杆类型自动识别到对应的端口上。 需要注意的是, 此处摇杆及手柄的端口号, 必须与程序中一致, 才可以控制。 为避免使用时, 由于插拔或自动识别的先后顺序而导致的接口与程序中书写的不一致从而造成手柄失灵。 可 通过此面板用鼠标拖拽手柄到正确的端口号上,而不用更改程序代码。 6、左侧最后一个按钮,通常不会用到大家自行体会下即可。

7、中间面板显示了

当前操控机器人的队伍编号。

Communications\Robot Code\Joysticks 三个指示灯分别代表着场控与机器人的连接状态,机 器人中是否有代码, 摇杆是否连接。 红色代表非正常状态, 如果上述三项都正常, 则为绿色。 7、最右侧面板,为系统的日志,通常使用中如出现异常会在此处显示相应的信息说明,请 自行体会。

二、编程软件 Eclipse 的使用说明:

1、双击 Eclipse 软件图标 2 、 选 择 菜

,启动软件 单 栏 上 , File->New->Project

3

在弹出的 New Project 对话

框中

选择 WPLib Robot C++

Project 中的 Example Robot C++ Project, 单击 Next 在弹出的对话框中选择 Getting Started with C++中的 Getting Started,单击 Next

。 在 Project Name 中, 修改项目名称 (Getting Started)
4

为自己定义的英文名称,这里最好不要起中文项目名称,例如 MyRobot。单击 Finish 按钮,

完成项目创建 。 3、在左侧项目管理窗口中,选择刚刚新建的项目 MyRobot(上面刚起的名字),双击点击 src

文件夹,找到 Robot.cpp,双击打开

。看到右侧窗

口中为初始化实例代码。 按住 Ctrl+A,全选。 Delete 删除所有代码, 将我提供的代码全选(Ctrl+A) 复制(Ctrl+C)粘贴(Ctrl+V)进去。

4、选择菜单栏上的 Window->Preferences

在弹出的对话框中选择

最后一项 WPILib Preferences,在右侧 Team Number 中输入队伍编号,例如 5601,在 Tools Version 中 选 择 sfx-2014.11.01 通 常 就 这 一 个 版 本 可 供 选 择 。 单 击 OK

5

。 5、选择左侧刚新建的项目名称 MyRobot,右键单击鼠标,选择 Build Project,对代码进行编译

形成计算机可以识别的可执行文件



此过程中如果代码存在错误,下方会有提示,更正你的代码后,重复执行编译操作,直到成 功。 6、编译成功的程序可上传到 RobRio 中,前提是要保证电脑、路由、场控三者之间建立无线 连接状态正常。 上传程序步骤如下:选择左侧刚新建的项目名称 MyRobot,右键单击鼠标,选择 Run As->2

6

WPILib C++ Deploy

。等待上传完

成, 上传过程中如果场控开启, 会开到场控的代码指示灯会变红一下, 说明正在复制新代码。 代码复制成功后场控的代码指示灯会变回绿色,说明代码已经传到你的机器人核心里去了。 同时,Eclipse 也能看到提示是否代码上传成功。

三、FRC 极限抛射程序中端口及按键的使用说明:
1、万向轮 PWM 信号接口:左前轮 2、左后轮 3、右前轮 1、右后轮 0 2、操纵杆 USB 接口:摇杆使用端口 0、手柄使用端口 2 3、按键使用:气动使用 5、6、7 按键 发射电机启动停止使用 1、4 按键(暂时未使用) 装弹使用 8 按键 4、限位开关 DIO 接口:0 5、发射电机 PWM 信号接口:4,6 端口,插一个即可,颠倒 4、6 可变更电机转向 6、装弹电机 PWM 信号接口:7,8 端口,插一个即可,颠倒 7、8 可变更电机转向 7、气动装置接口:0,1,2,如果接两个可以试验 0,1 或 0,2

四、抛射示例代码:
代码中已经全部用中文做了注释说明, 读者可根据机器人实际情况进行适当编辑修改。 直接 复制使用时,需注意复制粘贴过程可能出现格式变化,从而造成不符合 C++语法,如果编译 过程中出现错误,请自行调整。 #include "WPILib.h" /** * 此程序描述了如何使用万向轮控制机器人. */ class Robot: public SampleRobot { // 万向轮端口 const static int frontLeftChannel const static int rearLeftChannel const static int frontRightChannel const static int rearRightChannel //摇杆端口

= 2; = 3; = 1; = 0;

7

const static int joystickChannel const static int joystickChannel1

= 0; = 1;

// 定义一个机器驱动对象及摇杆对象,用于控制机器人行驶方向 RobotDrive robotDrive; // 万向轮的四个电机使用的对象 Joystick stick; // 操控万向轮的摇杆 //定义第二个机器驱动对象及手柄对象,用于控制发射电机及气动装弹装置 RobotDrive robotDrive1;//此对象为发射电机 Joystick stick1;//操控发射及装弹、气动的手柄 RobotDrive robotDrive2;//此对象为装弹电机 // 更新周期为 5 毫秒 const double kUpdatePeriod = 0.005; // 用于控制气动装置的按钮编号 const int kSolenoidButton = 5;//气动复位装弹装置 const int kDoubleSolenoidForward = 7; const int kDoubleSolenoidReverse = 6;//气动推动装弹 //const int start=1;//发射电机装置转动 //const int close=4;//发射电机装置停止 const int shot=8;//装弹装置按键 Solenoid m_solenoid;//定义一个气动装置对象 //创建一个对象,对应双向电磁阀 DoubleSolenoid m_doubleSolenoid; DigitalInput limitSwitch;//定义一个限位开关对象 bool Position;//定义一个布尔型变量用来接收限位开关的信号 int x; int y;

public: Robot() : robotDrive(frontLeftChannel, rearLeftChannel, frontRightChannel, rearRightChannel),// 必须与上面声明的一致 stick(joystickChannel), robotDrive1(4,6), stick1(joystickChannel1), robotDrive2(7,8), m_solenoid(0), // 气动装置用 0 信道 m_doubleSolenoid(1,2),//双向电磁阀用 1 和 2 控制前后 limitSwitch(0),//初始化限位开关端口 DIO 口 x(1), y(1) { robotDrive.SetExpiration(0.1);
8

robotDrive.SetInvertedMotor(RobotDrive::kFrontLeftMotor, true); 动机 robotDrive.SetInvertedMotor(RobotDrive::kRearLeftMotor, true); 改或删除此部分去匹配你的机器人装置 } /** * Runs the motors with Mecanum drive. */ void OperatorControl() { robotDrive.SetSafetyEnabled(false);//电机的安全控制 while (IsOperatorControl() && IsEnabled()) {

// 转换左边的发 // 你 可 能 需 要 更

robotDrive1.Drive(-1,0);//旋转发射装置,速度由地一个参数控制,正负可调节转 向

// 用摇杆的 X 轴控制横向运动,Y 轴控制前后运动,Z 轴控制旋转 // 此实例中不使用面向领域的驱动器,所以该陀螺仪输入为 0 robotDrive.MecanumDrive_Cartesian(stick.GetX(), stick.GetY(), stick.GetZ()); Wait(kUpdatePeriod); // 等候 5 毫秒以避免占用 CPU 周期 /*发射装置控制,注销掉暂时调整为一直处于待发射状态 if(stick1.GetRawButton(start)&&stick1.GetRawButton(close))// 当发射启动按键 和停止按键同时被按下时则发射电机停止,已做保护 { robotDrive1.Drive(0,0);//速度及电机转向,旋转角度 Wait(kUpdatePeriod);//定义发动机延迟时间,否则带着转数会不直线 } else if(stick1.GetRawButton(close)) { robotDrive1.Drive(0,0);//暂停发射 Wait(kUpdatePeriod);// 等候 5 毫秒以避免占用 CPU 周期 } else if(stick1.GetRawButton(start)) { robotDrive1.Drive(-1,0);//反向旋转发射装置 Wait(kUpdatePeriod);// 等候 5 毫秒以避免占用 CPU 周期 } else { robotDrive1.Drive(-1,0); Wait(kUpdatePeriod);// 等候 5 毫秒以避免占用 CPU 周期
9

} */ Position=limitSwitch.Get();//获取限位开关信号 y=1; while(y) { if(Position&&x%2==1) { robotDrive2.Drive(0,0); if(stick1.GetRawButton(shot)) x++; } if(Position&&x%2==0) { robotDrive2.Drive(0.5,0); if(stick1.GetRawButton(shot)) x++; } if(!Position) { robotDrive2.Drive(0.5,0); } y=0; } m_solenoid.Set(stick1.GetRawButton(kSolenoidButton));//气动复位按键 //为了设置使用双向电磁阀,如果没有按下按钮他处于关闭的,如果只按下一 个按钮,舍得的电磁阀对应于该按钮,如果两者都按下设置电磁阀向前 if (stick1.GetRawButton(kDoubleSolenoidForward))//kDoubleSolenoidForward 2 m_doubleSolenoid.Set(DoubleSolenoid::kForward); else if (stick1.GetRawButton(kDoubleSolenoidReverse))//kDoubleSolenoidReverse 3 手臂收缩 m_doubleSolenoid.Set(DoubleSolenoid::kReverse); else m_doubleSolenoid.Set(DoubleSolenoid::kOff); Wait(kUpdatePeriod);// 等候 5 毫秒以避免占用 CPU 周期 } } }; START_ROBOT_CLASS(Robot);
10


FRC极限抛射程序使用说明

FRC极限抛射程序使用说明_学科竞赛_高中教育_教育专区。一、FRC Driver Station 场控使用说明: 1、双击 FRC Driver Station 打开场控软件。 一个为 FRC Driver ...

FRC极限抛射客户端DS及程序使用说明

FRC极限抛射客户端DS及程序使用说明_学科竞赛_高中教育_教育专区。一、FRC Driver Station 客户端场控使用说明: 1、双击 FRC Driver Station 打开场控软件。 一个...

FRC2015极限抛射_问题说明

FRC2015 极限抛射_问题说明 2015.11.19 目前设备中:路由器、计算机控制系统(包括 2 只游戏操控杆)已经可以正常使用, 主要问题是 RoboRIO 系统仍有问题。 一、...