FRC極限拋射程序使用說明_第1頁
FRC極限拋射程序使用說明_第2頁
FRC極限拋射程序使用說明_第3頁
FRC極限拋射程序使用說明_第4頁
FRC極限拋射程序使用說明_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、一、FRC Driver Station場控使用說明:1、雙擊FRC Driver Station打開場控軟件。場控啟動后會同時打開兩個界面,一個為FRC Driver Station,用來自己控制機(jī)器人。另一個為FRC PC Dashboard,為操作狀態(tài)的儀表盤,用來顯示一些狀態(tài),比如你機(jī)器人使用了攝像頭,圖像回傳到電腦就是在這里顯示的。2、FRC Driver Station左側(cè)有五個按鈕,其中第一個是我們最常使用的。TeleOperated為手動模式,是我們最常使用的,Autonomous為自動模式,如果你不能確定你的自動程序是什么,請不要輕易使用,以免機(jī)器人失控出現(xiàn)事故,Practi

2、ce為練習(xí)模式,Test為測試模式。Enable為這四種模式的開始啟動按鈕,isable為這四種模式的關(guān)閉按鈕。建議使用場控時,鼠標(biāo)要盡量時刻放在關(guān)閉按鈕上,以防止機(jī)器人失控時及時關(guān)閉。還能夠查看運(yùn)行的時間,電池電量以及CPU的使用情況。隊(duì)伍屬于紅藍(lán)哪個隊(duì)伍。3、左側(cè)第二個按鈕,可以顯示當(dāng)前本機(jī)場控的連接方式,重啟roboRio和代碼。通常不會使用,所以不詳細(xì)介紹。4、左側(cè)第三個按鈕,可以設(shè)置此本機(jī)場控所控制的機(jī)器人隊(duì)伍編號,這里一定要根據(jù)實(shí)際情況進(jìn)行設(shè)置,否則不能操控你的機(jī)器人。其他選項(xiàng)可以設(shè)置儀表盤的類型通常缺省設(shè)置就可以。場控的版本設(shè)置,在比賽時候要根據(jù)組委會要求的版本進(jìn)行設(shè)置,平時操控

3、機(jī)器人時不必設(shè)置。右側(cè)可以設(shè)置練習(xí)時,自動階段等比賽時間。5、左側(cè)第四個按鈕,用來調(diào)整USB接口。通常電腦上接第一個搖桿時會默認(rèn)為0,第二個會識別為1,依次類推。如果識別過一次,以后再接時,通常會根據(jù)手柄搖桿類型自動識別到對應(yīng)的端口上。需要注意的是,此處搖桿及手柄的端口號,必須與程序中一致,才可以控制。為避免使用時,由于插拔或自動識別的先后順序而導(dǎo)致的接口與程序中書寫的不一致從而造成手柄失靈。可通過此面板用鼠標(biāo)拖拽手柄到正確的端口號上,而不用更改程序代碼。6、左側(cè)最后一個按鈕,通常不會用到大家自行體會下即可。7、中間面板顯示了當(dāng)前操控機(jī)器人的隊(duì)伍編號。CommunicationsRobot C

4、odeJoysticks三個指示燈分別代表著場控與機(jī)器人的連接狀態(tài),機(jī)器人中是否有代碼,搖桿是否連接。紅色代表非正常狀態(tài),如果上述三項(xiàng)都正常,則為綠色。7、最右側(cè)面板,為系統(tǒng)的日志,通常使用中如出現(xiàn)異常會在此處顯示相應(yīng)的信息說明,請自行體會。二、編程軟件Eclipse的使用說明:1、雙擊Eclipse軟件圖標(biāo),啟動軟件2、選擇菜單欄上,F(xiàn)ile-New-Project 在彈出的New Project對話框中選擇 WPLib Robot C+ Project中的Example Robot C+ Project,單擊 Next在彈出的對話框中選擇 Getting Started with C+中的

5、Getting Started,單擊Next 。在Project Name中,修改項(xiàng)目名稱(Getting Started)為自己定義的英文名稱,這里最好不要起中文項(xiàng)目名稱,例如MyRobot。單擊Finish按鈕,完成項(xiàng)目創(chuàng)建。3、在左側(cè)項(xiàng)目管理窗口中,選擇剛剛新建的項(xiàng)目MyRobot(上面剛起的名字),雙擊點(diǎn)擊src文件夾,找到Robot.cpp,雙擊打開??吹接覀?cè)窗口中為初始化實(shí)例代碼。按住Ctrl+A,全選。Delete刪除所有代碼,將我提供的代碼全選(Ctrl+A)復(fù)制(Ctrl+C)粘貼(Ctrl+V)進(jìn)去。4、選擇菜單欄上的Window-Preferences 在彈出的對話框中選

6、擇最后一項(xiàng)WPILib Preferences,在右側(cè)Team Number中輸入隊(duì)伍編號,例如5601,在Tools Version中選擇sfx-2014.11.01通常就這一個版本可供選擇。單擊OK 。5、選擇左側(cè)剛新建的項(xiàng)目名稱MyRobot,右鍵單擊鼠標(biāo),選擇Build Project,對代碼進(jìn)行編譯形成計算機(jī)可以識別的可執(zhí)行文件。此過程中如果代碼存在錯誤,下方會有提示,更正你的代碼后,重復(fù)執(zhí)行編譯操作,直到成功。6、編譯成功的程序可上傳到RobRio中,前提是要保證電腦、路由、場控三者之間建立無線連接狀態(tài)正常。上傳程序步驟如下:選擇左側(cè)剛新建的項(xiàng)目名稱MyRobot,右鍵單擊鼠標(biāo),選

7、擇Run As-2 WPILib C+ Deploy 。等待上傳完成,上傳過程中如果場控開啟,會開到場控的代碼指示燈會變紅一下,說明正在復(fù)制新代碼。代碼復(fù)制成功后場控的代碼指示燈會變回綠色,說明代碼已經(jīng)傳到你的機(jī)器人核心里去了。同時,Eclipse也能看到提示是否代碼上傳成功。三、FRC極限拋射程序中端口及按鍵的使用說明:1、萬向輪PWM信號接口:左前輪2、左后輪3、右前輪1、右后輪02、操縱桿USB接口:搖桿使用端口0、手柄使用端口23、按鍵使用:氣動使用5、6、7按鍵 發(fā)射電機(jī)啟動停止使用1、4按鍵(暫時未使用) 裝彈使用8按鍵4、限位開關(guān)DIO接口:05、發(fā)射電機(jī)PWM信號接口:4,6端

8、口,插一個即可,顛倒4、6可變更電機(jī)轉(zhuǎn)向6、裝彈電機(jī)PWM信號接口:7,8端口,插一個即可,顛倒7、8可變更電機(jī)轉(zhuǎn)向7、氣動裝置接口:0,1,2,如果接兩個可以試驗(yàn)0,1或0,2四、拋射示例代碼:代碼中已經(jīng)全部用中文做了注釋說明,讀者可根據(jù)機(jī)器人實(shí)際情況進(jìn)行適當(dāng)編輯修改。直接復(fù)制使用時,需注意復(fù)制粘貼過程可能出現(xiàn)格式變化,從而造成不符合C+語法,如果編譯過程中出現(xiàn)錯誤,請自行調(diào)整。#include WPILib.h/* * 此程序描述了如何使用萬向輪控制機(jī)器人. */class Robot: public SampleRobot / 萬向輪端口 const static int frontLe

9、ftChannel= 2; const static int rearLeftChannel= 3; const static int frontRightChannel= 1; const static int rearRightChannel= 0; /搖桿端口 const static int joystickChannel= 0; const static int joystickChannel1= 1; / 定義一個機(jī)器驅(qū)動對象及搖桿對象,用于控制機(jī)器人行駛方向RobotDrive robotDrive;/ 萬向輪的四個電機(jī)使用的對象Joystick stick;/ 操控萬向輪的搖桿

10、/定義第二個機(jī)器驅(qū)動對象及手柄對象,用于控制發(fā)射電機(jī)及氣動裝彈裝置RobotDrive robotDrive1;/此對象為發(fā)射電機(jī)Joystick stick1;/操控發(fā)射及裝彈、氣動的手柄RobotDrive robotDrive2;/此對象為裝彈電機(jī)/ 更新周期為5毫秒const double kUpdatePeriod = 0.005; / 用于控制氣動裝置的按鈕編號const int kSolenoidButton = 5;/氣動復(fù)位裝彈裝置const int kDoubleSolenoidForward = 7;const int kDoubleSolenoidReverse = 6

11、;/氣動推動裝彈/const int start=1;/發(fā)射電機(jī)裝置轉(zhuǎn)動/const int close=4;/發(fā)射電機(jī)裝置停止const int shot=8;/裝彈裝置按鍵 Solenoid m_solenoid;/定義一個氣動裝置對象/創(chuàng)建一個對象,對應(yīng)雙向電磁閥DoubleSolenoid m_doubleSolenoid;DigitalInput limitSwitch;/定義一個限位開關(guān)對象bool Position;/定義一個布爾型變量用來接收限位開關(guān)的信號int x;int y;public:Robot() :robotDrive(frontLeftChannel, rearL

12、eftChannel, frontRightChannel, rearRightChannel),/ 必須與上面聲明的一致stick(joystickChannel),robotDrive1(4,6), stick1(joystickChannel1),robotDrive2(7,8),m_solenoid(0), / 氣動裝置用0信道m(xù)_doubleSolenoid(1,2),/雙向電磁閥用1和2控制前后 limitSwitch(0),/初始化限位開關(guān)端口DIO口 x(1),y(1)robotDrive.SetExpiration(0.1);robotDrive.SetInvertedMot

13、or(RobotDrive:kFrontLeftMotor, true);/ 轉(zhuǎn)換左邊的發(fā)動機(jī)robotDrive.SetInvertedMotor(RobotDrive:kRearLeftMotor, true);/你可能需要更改或刪除此部分去匹配你的機(jī)器人裝置/* * Runs the motors with Mecanum drive. */void OperatorControl()robotDrive.SetSafetyEnabled(false);/電機(jī)的安全控制while (IsOperatorControl() & IsEnabled()robotDrive1.Drive(-1

14、,0);/旋轉(zhuǎn)發(fā)射裝置,速度由地一個參數(shù)控制,正負(fù)可調(diào)節(jié)轉(zhuǎn)向/ 用搖桿的X軸控制橫向運(yùn)動,Y軸控制前后運(yùn)動,Z軸控制旋轉(zhuǎn) / 此實(shí)例中不使用面向領(lǐng)域的驅(qū)動器,所以該陀螺儀輸入為0robotDrive.MecanumDrive_Cartesian(stick.GetX(), stick.GetY(), stick.GetZ();Wait(kUpdatePeriod); / 等候5毫秒以避免占用CPU周期/*發(fā)射裝置控制,注銷掉暫時調(diào)整為一直處于待發(fā)射狀態(tài) if(stick1.GetRawButton(start)&stick1.GetRawButton(close)/當(dāng)發(fā)射啟動按鍵和停止按鍵同時

15、被按下時則發(fā)射電機(jī)停止,已做保護(hù)robotDrive1.Drive(0,0);/速度及電機(jī)轉(zhuǎn)向,旋轉(zhuǎn)角度Wait(kUpdatePeriod);/定義發(fā)動機(jī)延遲時間,否則帶著轉(zhuǎn)數(shù)會不直線else if(stick1.GetRawButton(close)robotDrive1.Drive(0,0);/暫停發(fā)射Wait(kUpdatePeriod);/ 等候5毫秒以避免占用CPU周期else if(stick1.GetRawButton(start)robotDrive1.Drive(-1,0);/反向旋轉(zhuǎn)發(fā)射裝置Wait(kUpdatePeriod);/ 等候5毫秒以避免占用CPU周期else

16、robotDrive1.Drive(-1,0);Wait(kUpdatePeriod);/ 等候5毫秒以避免占用CPU周期 */Position=limitSwitch.Get();/獲取限位開關(guān)信號 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);/氣動復(fù)位按鍵/為了設(shè)置使用雙向電磁閥,如果沒有按下按鈕他處于關(guān)閉的,如果只按下一個按鈕,舍得的電磁閥對應(yīng)于該按鈕,如果兩者都按下設(shè)置電磁閥向前 if (stick1.GetRawButton(kDoubleSolenoidForward)/kDoubleSolenoidForward 2 m_doubleSolenoid.Set(Do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論