劉安平 邵文冕 苑鵬濤 杜林娟 梁志強
摘? 要 采用虛擬現(xiàn)實技術(shù),通過Unity 3D軟件構(gòu)建虛擬世界,開發(fā)電氣控制虛擬實踐,并發(fā)布到Android游戲平臺上。3D教學(xué)課件的應(yīng)用,取得很好的實踐教學(xué)效果。
關(guān)鍵詞 Unity 3D;電氣控制虛擬實踐;Android游戲平臺;3D教學(xué)課件
中圖分類號:TP391.9? ? 文獻標(biāo)識碼:B
文章編號:1671-489X(2020)02-0030-03
Development of Electric Control Virtual Practice on Android Game Platform//LIU Anping, SHAO Wenmian, YUAN Pengtao, DU Linjuan, LIANG Zhiqiang
Abstract This paper develops electrical control virtual practice by?adopting virtual reality technology and building virtual world through?Unity 3D, and releases it to Android game platform. The application of 3D teaching courseware has achieved good practical teaching effect.
Key words Unity 3D; electrical control virtual practice; Android game platform; 3D teaching courseware
1 課題解決的具體問題
Windows平臺的電氣工程虛擬實踐,每個訓(xùn)練室只有一臺電腦,在實踐教學(xué)應(yīng)用過程中,不能全方位為學(xué)生提供服務(wù);如果將虛擬實踐平臺安裝在手機游戲平臺上,每個學(xué)生都會有自己的虛擬實踐平臺。學(xué)生首先在Android手機游戲平臺上進行電氣控制虛擬實踐,對器件布置、線路連接、電路檢測和送電試車,有了整體認(rèn)知和掌握,然后進行真正的電氣控制實踐操作,教學(xué)效果會更好。
筆者研發(fā)的Windows平臺的電氣工程虛擬實踐,在一年的實踐教學(xué)應(yīng)用中進行了不斷完善和更新,本次教研項目就是在此基礎(chǔ)上進行開發(fā)的。在Android游戲平臺實現(xiàn)電氣工程虛擬實踐,模型建立和腳本語言文件編寫等前期準(zhǔn)備工作已經(jīng)基本完成;登錄窗口建立、游戲關(guān)卡設(shè)計、評分系統(tǒng)、糾錯提示以及手機屏幕的自適應(yīng)調(diào)整,是課題解決的具體問題。
2 電氣控制虛擬實踐
電氣控制訓(xùn)練課程內(nèi)容是三相交流異步電動機控制線路安裝實踐,訓(xùn)練項目有自鎖控制線路、正反轉(zhuǎn)控制線路、自動往返控制線路和順序控制線路等。下面以自鎖控制線路為例,說明Android游戲平臺實現(xiàn)電氣控制虛擬實踐的過程。
登錄窗口設(shè)置? 電氣控制虛擬實踐的登錄窗口見圖1,學(xué)生輸入班級、姓名、學(xué)號等個人信息后,點擊“開始”按鈕,若是某一信息沒有填寫,會提示“信息不全”;信息填寫完整后,點擊“開始”,進入電氣控制虛擬實踐第一關(guān)。計時器在Android虛擬實踐平臺打開時,開始計時。
登錄窗口的交互控制C#腳本語言部分語句:
public void begin() {
if (banji.text==""||xingming .text ==""||xuehao.text==""){
text_ts .text="信息不全!";
return;}
pan00.SetActive (false);? ? //登錄窗口面板隱藏
pan11.SetActive (true);? ? //第一關(guān)卡面板顯示
}
游戲關(guān)卡1:器件布置? 將電氣控制虛擬實踐設(shè)計成四個游戲關(guān)卡,游戲關(guān)卡1的開始界面見圖2,點擊“器件布置圖”,顯示器件布置在虛擬實踐臺上的具體位置;點擊器件名稱,再按動方向按鈕,實現(xiàn)器件布置;提示信息會顯示器件移動方向的對錯,或是否達到指定位置;把器件移動到指定位置附近,器件會自動移動到指定位置;按下
“聚焦”按鈕,攝像機會聚焦到指定元器件,便于清晰觀看元器件的外形和位置;學(xué)生得分為滿分,顯示“目標(biāo)完
成”;按動“下一關(guān)”按鈕,進入第二關(guān)卡。
關(guān)卡1的交互控制C#腳本語言部分語句:
void Update ()? {
//用Qijian分別替代5個元器件
Ax = Qijian.transform.position.x;
Az = Qijian.transform.position.z;
if (j1+j2 ==0){? ? //移動按鈕抬起
if (t1) { text_ts.text = "選擇QF";
} else if (t2) { text_ts.text = "選擇KM";
} else if (t3) { text_ts.text = "選擇FR";
} else if (t4) { ext_ts.text = "選擇按鈕";
} else if (t5) { text_ts.text = "選擇 M";
} else { text_ts.text = "";? }
}else if(!t1 & !t2 & !t3 & !t4 & !t5){
text_ts.text = "請選擇器件";
}else {? ? //判斷元器件移動方向是否正確
if ((Ax * j1 > 1) || (Az * j2 > 1)) {
text_ts.text = “No”;
} else if (((Ax * j1 < -1) || (Az * j2 < -1))) {
text_ts.text = “Yes”;
} else { text_ts.text = “OK”;? }
}? ? //左右移動
if (Ax > 0.5f || Ax < -0.5f) {
Qijian.transform.position += new Vector3 (j1 * 20 * Time.
deltaTime, 0, 0);
}? ? //前后移動
if (Az > 0.5f || Az < -0.5f) {
Qijian.transform.position += new Vector3 (0, 0, j2 * 20 *
Time.deltaTime);
}? ? ? //移動到指定位置
if ((Ax > -0.51f & Ax < 0.51f) & (Az > -0.51f & Az < 0.51f)) {
Qijian.transform.position = new Vector3 (0, 0, 0);? }
}
游戲關(guān)卡2:線路連接? 在游戲關(guān)卡2的開始界面,點擊“線路連接圖”,顯示導(dǎo)線名稱在線路連接圖中的具體位置;點擊導(dǎo)線名稱,再移動方向按鈕,完成線路連接;提示信息會顯示導(dǎo)線移動方向的對錯,或是否達到指定位置。再次點擊導(dǎo)線名稱,會使相機聚焦到導(dǎo)線應(yīng)該連接的具體位置。關(guān)卡2的交互控制C#腳本語言和關(guān)卡1基本相同,這里不再闡述。
游戲關(guān)卡3:斷電檢測? 在游戲關(guān)卡3的開始界面,點擊“檢測方法”按鈕,顯示電路檢測步驟的文字說明;主電路檢測時,點擊“按下KM”,再依次按下“RU-V”“RU-W”“RV-W”,萬用表的表筆出現(xiàn)并觸碰負(fù)載開關(guān)下面的對應(yīng)接線柱,顯示主電路連接正確時的測量數(shù)據(jù);控制電路檢測時,點擊“按下SB1”,再依次按下“RU-V”“RU-W”“RV-W”,會顯示控制電路連接正確時的數(shù)據(jù);沒有按下交流接觸器KM或正轉(zhuǎn)啟動按鈕SB1,測量時就會有信息提示“請按下KM或SB1”;學(xué)生得分為滿分,提示“目標(biāo)完成”;按動“下一關(guān)”按鈕,進入第四關(guān)卡。
關(guān)卡3的交互控制C#腳本語言部分語句:
void Update () {
if(t1 &? (t3 || t4)){? ? //測主電路的UV、UW
p163.SetActive (true);
p086.SetActive (false);
p153.SetActive (false);
}else if (t1 & t5){? ? //測主電路的VW
p163.SetActive (false);
p086.SetActive (true);
p153.SetActive (false);
}else{ if (t2 & t5){? ? //測控制電路的VW
p163.SetActive (false);
p086.SetActive (false);
p153.SetActive (true);
}else{? ? //測控制電路的UV、UW
p163.SetActive (false);
p086.SetActive (false);
p153.SetActive (false); } }
}
游戲關(guān)卡4:送電試車? 游戲關(guān)卡4是電氣控制虛擬實踐的最后一關(guān),開始界面見圖3。點擊“電氣原理圖”,學(xué)生可以分析自鎖控制線路的電路工作過程;依次點擊“QF1”“QF2”“SB1”和“SB2”,完成電氣控制虛擬實踐送電試車過程;沒有閉合電源開關(guān)和負(fù)載開關(guān),按動按鈕時會有提示信息“開關(guān)沒有閉合”或“電動機沒有工作”;學(xué)生得分為滿分時,提示“闖關(guān)成功”,按“返回”按鈕,回到退出窗口,同時計時器停止工作。
關(guān)卡4的交互控制C#腳本語言部分語句:
void Update (){
if (t3){? ? //QF1、QF2閉合,按動啟動按鈕
km1dong.transform.localScale = new Vector3(1, 0.92f, 1);
m1z.transform.Rotate(-450* Time.deltaTime, 0,0,
Space.Self);
}else{? ? //按動停止按鈕,或QF1、QF2斷開
km1dong.transform.localScale = new Vector3(1,1, 1);
m1z.transform.Rotate(0, 0, 0, Space.Self);
}
}
退出窗口設(shè)置? 學(xué)生完成電氣控制虛擬實踐第四關(guān)后,返回到退出窗口。在退出窗口,直接顯示學(xué)生的個人信息、電氣控制虛擬實踐成績和計時時間;學(xué)生可以手機截圖把成績發(fā)到班級微信群里,由指導(dǎo)教師查看成績;按“退出”按鈕,退出電氣控制虛擬實踐桌面。
3 Android游戲平臺的轉(zhuǎn)化和相關(guān)設(shè)置
Unity 3D軟件輸出到Android平臺的切換? 依次點擊Unity 3D程序的菜單“File”“Build Settings”,進入游戲平臺切換菜單;依次點擊菜單選項“Android”“Swich Platform”,完成Android游戲平臺切換。能夠完成Android
游戲平臺切換的前提是,在Unity 3D軟件安裝時,必須勾選Android游戲平臺組件。
JDK、SDK開發(fā)工具安裝和相關(guān)設(shè)置? 要在Unity 3D游戲開發(fā)平臺發(fā)布安卓的apk程序,必須先安裝Java-JDK和Android-SDK這兩個工具。JDK是開發(fā)Java的庫及虛擬機包,SDK是開發(fā)Android應(yīng)用程序的系統(tǒng)包[1]。
1)JDK組件下載網(wǎng)址為“www.oracle.com\”,搜索并下載安裝程序“jdk-8u231-windows-x64”,安裝路徑為“C:\Program Files\Java\”。
2)打開電腦的系統(tǒng)屬性面板,新建系統(tǒng)變量,變量名為“JAVA_HOME”,變量值為“C:\Program Files\Java\jdk1.8.0_231”;編輯系統(tǒng)變量,變量名為“Path”,添加變量值為“% JAVA_HOME %\bin;% JAVA_HOME %\jre\bin”;
新建系統(tǒng)變量,變量名為“CLASSPATH”;變量值為“% JAVA_
HOME %\ lib\dt.jar; % JAVA_HOME % \lib\tools.jar”。
3)SDK組件下載網(wǎng)址為“www.androiddevtools.cn\”,
找到并下載安裝程序“install_r24.4.1-windows”,安裝路徑為“D:\Program Files\SDK\”。程序安裝成功后,打開“SDK Manager.exe”,勾選“Android SDK Tools”“An-
droid SDK Platform-tools”“Android 10 (API 29)”“API
28.Q preview”“Android 9 (API 28)”“Android 8.1.0
(API 27)”“Android 8.0.0 (API 26)”“Android 7.1.1 (API 25)”“Android 7.0 (API 24)”“Android 6.0 (API 23)”,
再點擊“Install...Packages”,完成SDK安裝。
4)打開電腦的系統(tǒng)屬性面板,新建系統(tǒng)變量,變量名為“ANDROID_HOME”,變量值為“D:\Program Files\SDK”;
編輯系統(tǒng)變量,變量名為“Path”,添加變量值為“% ANDROID _ HOME %\ platform-tools; % ANDROID_HOME %\
tools”。
5)依次點擊Unity程序的菜單“Edit”“Preferences”
“External Tools”“Browse”,導(dǎo)入JDK和SDK安裝路徑。
6)打開Unity 3D的“Player Settings”面板,進行Android游戲平臺apk安裝包的包裝設(shè)計,包括公司名稱、安裝包名稱、圖標(biāo)以及安卓游戲平臺的版本等。
手機屏幕的自適應(yīng)調(diào)整? 手機屏幕自適應(yīng)調(diào)整,主要是調(diào)整Unity3D軟件中UI組件中的畫布canvas的參數(shù)。
1)將UI Scale Mode選項中的Constant Pixel Size更改為Scale With Screen Size。
2)設(shè)置Reference Resolution(默認(rèn)分辨率),橫屏設(shè)置為1280×720。
3)設(shè)置Match值,這里設(shè)置Match=0,橫屏顯示時根據(jù)確定的高度,適配不確定的顯示寬度。
4 結(jié)語
通過Android平臺的電氣控制虛擬實踐,學(xué)生在不消耗材料也沒有安全隱患的前提下,能夠快速掌握電氣控制線路的電路連接、斷電檢測和送電試車等實踐操作技能;3D教學(xué)課件在實踐教學(xué)中的應(yīng)用,既降低了教學(xué)成本,又提高了學(xué)生學(xué)習(xí)興趣,取得很好的實踐教學(xué)效果。
參考文獻
[1]羅培羽.Unity3D網(wǎng)絡(luò)游戲?qū)崙?zhàn)[M].北京:機械工業(yè)出版社,2016.