




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一.模型實體圖和工作原理1.模型實體圖:圖(1)圖(2)圖(3)圖(4)圖(5)圖(6)2.工作原理:1. 開始:圖(1)按開始按鈕后機器人由電機1轉(zhuǎn)動而向前運動,機器人一直動到行程開關(guān)5碰撞到樓梯.2. 機構(gòu)上升:圖(2)當(dāng)行程開關(guān)5碰撞到樓梯后,電機1停止運動;電機2和電機3正轉(zhuǎn)而令機構(gòu)上升!當(dāng)機構(gòu)上升到最頂端時機構(gòu)碰撞到行程開關(guān)1和3令電機2和電機3停止轉(zhuǎn)動,機構(gòu)上升結(jié)束.3. 前進(jìn):圖(3)機構(gòu)上升結(jié)束后最頂端碰撞到行程開關(guān)1和3時指令電機4轉(zhuǎn)動.機器人向前運動.4. 機構(gòu)下降: 圖(4)機器人向前運動到一定距離后程開關(guān)6碰撞到樓梯后指令電機4停止轉(zhuǎn)動.并開啟電機2和3反轉(zhuǎn)從而機構(gòu)下降
2、,下降到最底時碰撞到行程開關(guān)2和4令電機2和電機3停止轉(zhuǎn)動,回復(fù)到爬梯前狀態(tài),準(zhǔn)備下一次爬梯動作.5. 前進(jìn): 圖(5)這步和開始的一樣功能.6. 停止: 當(dāng)完成爬梯梯任務(wù)后機器人繼續(xù)向前運動直到行程開關(guān)7碰撞到終點擋板,機器人停止工作.二.遠(yuǎn)程控制系統(tǒng)工作原理1.系統(tǒng)組成:1. 服務(wù)器端:直接控制模型運動的控制中心,這里指直接控制模型的計算機,通過串口(COM)與接口板進(jìn)行信息交流,以及在計算機內(nèi)部進(jìn)行算法運算,以此來控制模型運動2. 客戶端:間接控制模型運動的控制平臺,這里指間接控制模型的計算機,通過TCP協(xié)議與服務(wù)器端進(jìn)行信息交流,以及通過服務(wù)器對模型運動進(jìn)行控制這里的信息交流是指最低層
3、的二進(jìn)制數(shù)據(jù)(byte)傳輸(模擬量和數(shù)字量之間的轉(zhuǎn)換),具體通過程序來控制,因為主要的原理是通過類似于單片機的控制,所以對模型的控制不一定只使用串口(COM),可采用其他連接手段,只要最后合乎慧魚公司的控制要求就行了通過TCP協(xié)議來做遠(yuǎn)程控制,是采用類似于互聯(lián)網(wǎng)的信息交流,通過客戶端和服務(wù)器端的bytes 傳輸和服務(wù)器端的算法運算就可以實現(xiàn)基本的模型控制功能了在不同的信息傳輸之間,存在緩沖區(qū),緩沖區(qū)的作用是將輸入輸出的數(shù)據(jù)暫時儲存,等待傳輸,因為例如在進(jìn)行COM 口兩端的信息交流時,數(shù)據(jù)流的轉(zhuǎn)換和計算機本身傳輸不同步,如果沒有緩沖區(qū)就出現(xiàn)數(shù)據(jù)傳輸?shù)膩G失和覆蓋,所以開發(fā)程序和通過接口板控制模型
4、的時候要注意數(shù)據(jù)流的傳輸3. 模型運動:可以通過遠(yuǎn)程控制實現(xiàn)當(dāng)機器人撞到樓梯后能自動進(jìn)行爬樓梯,達(dá)到目的之后能自動停止工作.2.遠(yuǎn)程控制系統(tǒng)圖:三.計算機與接口板的通訊1.接口板處理器操作模式:接口板的微處理器有兩種操作模式:1.被動模式:程序的處理由計算機完成,接口與計算機的連接電纜不能斷開,在每個程序周期中,接口采集來自數(shù)字量和模擬量輸入端的數(shù)值然后送給計算機,計算機再把數(shù)字量的輸出值傳送給接口板,接口板上的微處理器按要求操作相連的電機、燈和電磁鐵2.主動模式:程序由接口板的微處理器進(jìn)行處理,而接口板與計算機的連線要斷開。接口板的微處理器的計算能力遠(yuǎn)小于計算機的計算能力,對于旨在捕獲快速計
5、算脈沖的大程序,微處理器便無法累計全部脈沖,這樣的程序只能在被動模式下進(jìn)行處理本設(shè)計是實現(xiàn)爬樓梯機器人的自動和手動控制,所以有較大的程序處理,接口板處理器操作模式應(yīng)采用被動模式,并且不設(shè)定程序掉電保護(hù)功能2.計算機與接口板的通訊:1. 計算機通過COM 口與 接口板進(jìn)行信息交流,慧魚公司規(guī)定控制端口的參數(shù)為波特率為9600,位數(shù)為8位,效驗為無,停止位為1,參數(shù)的設(shè)定在程序開發(fā)的時候會編寫確定2. 慧魚公司規(guī)定COM 口與接口板的通信格式為兩個字節(jié),第一字節(jié)是接口命令,控制接口發(fā)送內(nèi)容作為應(yīng)答,第二個字節(jié)規(guī)定哪個電機以什么方向轉(zhuǎn)動,簡單的說就是第一個字節(jié)是當(dāng)行程開關(guān)、感應(yīng)器等有反應(yīng)而發(fā)出信號給
6、接口板,接口板接收并且記錄,等待計算機的查詢;而第二個字節(jié)是計算機發(fā)送命令到接口板,接口板微處理器分析并且向電機、燈等發(fā)送信息,控制它們工作3.接口板有接收第一字節(jié)命令的E1-E8 ,模擬量EX和EY的接口,選擇E1-E8時,應(yīng)答為一字節(jié),而選擇E1-E8 ,和模擬量EX或EY時,應(yīng)答為三字節(jié),其中1字節(jié)為E1-E8輸入,2,3字節(jié)為EX或EY,在本設(shè)計中只需選擇E1-E8,應(yīng)答為一字節(jié)4. 在程序開發(fā)中,主要是使用byte 數(shù)組來實現(xiàn)2中的兩個字節(jié)控制和3中的接收應(yīng)答,簡言之:定義一個一維二項數(shù)組 ACT(2),其中ACT(0)來告訴接口板使用E1-E8接口,ACT(1)來告訴接口板控制什么
7、電機,怎樣控制定義一個一維不定數(shù)組 RTC(),其中從E1-E8接收到的命令儲存在RTC()中具體數(shù)據(jù)定義見下表:十六進(jìn)制規(guī)定(回送內(nèi)容)ACT()C1E1-E8&HC1位(n)規(guī)定ACT()1開始(M1)24機構(gòu)上升(M2)162機構(gòu)上升(M3)47上升后前進(jìn)(M4)1285機構(gòu)上升(M2)163機構(gòu)上升(M3)8如果同時控制多個電機,可將ACT()相應(yīng)值相加,或者制造多個數(shù)組分別發(fā)送位(n)RTC()11223448516632764注:行程開關(guān)的具體控制功能請看下面程序說明同理如果多個接口同時回送內(nèi)容,則RTC()的值為相應(yīng)值相加接口板每300 ms需要一次命令的刷新,否則電機會停止,所
8、以要不斷地向接口板發(fā)信號四.服務(wù)器端程序開發(fā)1.程序開發(fā)軟件:Visual Basic 6.0 ,VB是一種面向過程的解釋性編程語言,是較高級的編程語言,在進(jìn)行程序開發(fā)時,對模型控制使用了MSCOMM 控件,對遠(yuǎn)程控制使用了WINSOCK 控件,下面會有詳細(xì)介紹.2.程序由三個主要普通窗體組成1 迎窗體,主要用來介紹軟件的制作成員和模型名稱。2模型操作面板(主窗體)和設(shè)置面板,主要用來控制模型運動和信息反饋。3.關(guān)閉系統(tǒng)時的感謝面板3.服務(wù)端程序設(shè)計和注釋1.為了提高程序的開發(fā)和維護(hù)效率,所以創(chuàng)建了兩個模塊:運算模塊Module1和函數(shù)模塊Module2a. 運算模塊Module1Global
9、 COMP As IntegerGlobal Rtr() As Byte是接收應(yīng)答的函數(shù)數(shù)組Global Act1(2) As Byte控制電機1運動Global Act2(2) As Byte控制電機2正轉(zhuǎn)Global Act3(2) As Byte控制電機3正轉(zhuǎn)Global Act20(2) As Byte控制電機2反轉(zhuǎn)Global Act30(2) As Byte控制電機3反轉(zhuǎn)Global Act4(2) As Byte控制電機4運動Global Const Controltime = 20時鐘控件值Global strData As Stringb. 運算模塊Module1Public
10、 Declare Function GetTickCount Lib kernel32 () As Long用于延時Sub timedelay(DT As Long)Dim TT As LongTT = GetTickCount()Do DoEvents If GetTickCount - TT = DTEnd Sub2. 控制系統(tǒng)一共有三個窗體:a. 歡迎窗體程序設(shè)計Private Sub Form_Click()Unload Meserver.ShowEnd SubPrivate Sub Form_Unload(Cancel As Integer)server.ShowEnd SubPri
11、vate Sub Timer1_Timer()Unload MeEnd Subb. 感謝窗體程序設(shè)計Private Sub Form_Click()Unload MeEnd SubPrivate Sub Timer1_Timer()Unload MeEnd Subc. 控制窗體程序設(shè)計Private Sub Command1_Click()用于清除接受命令的內(nèi)容txtReceive.Text = End SubPrivate Sub Form_Unload(Cancel As Integer)關(guān)閉遠(yuǎn)程控制并打開感謝窗Winsock2.Closethank.ShowEndEnd SubPriva
12、te Sub listen_Click()遠(yuǎn)程控制的聯(lián)接If Winsock2.State sckClosed Then Winsock2.CloseWinsock2.LocalPort = Val(txtport.Text) 設(shè)置通訊端口號碼Winsock2.listen 開始聆聽ControlComm.Settings = 9600,n,8,1ControlComm.CommPort = Val(txtcom.Text)ControlComm.PortOpen = Truetimedelay 100Me.Caption = oldCaption & 聆聽中。listen.Enabled =
13、 FalseIf txtport.Text = ThenMsgBox 請輸入端口號!, vbOKOnly, 提示listen.Enabled = TrueEnd IfEnd SubPrivate Sub stop_Click()Winsock2.Close 關(guān)閉連接End 結(jié)束系統(tǒng)End SubPrivate Sub Winsock2_Close()當(dāng)客戶端中斷時txtReceive.Text = txtReceive.Text & 對方執(zhí)行中斷! & vbCrLftxtReceive.SelLength = Len(txtReceive.Text)Winsock2.CloseWinsock2
14、.listenMe.Caption = oldCaption & -聆聽中。passion.Enabled = FalseEnd SubPrivate Sub Winsock2_ConnectionRequest(ByVal requestID As Long)If Winsock2.State sckClosed Then Winsock2.CloseWinsock2.Accept requestIDMe.Caption = oldCaption & 連接中。passion.Enabled = TrueEnd SubPrivate Sub Form_Load()passion.AddItem
15、 開始passion.AddItem 機構(gòu)上升passion.AddItem 一次前進(jìn)passion.AddItem 機構(gòu)下降passion.AddItem 二次前進(jìn)passion.AddItem 停止passion.Enabled = FalsetxtReceive.Enabled = TrueEnd SubPrivate Sub Winsock2_DataArrival(ByVal bytesTotal As Long)Winsock2.GetData strDataSelect Case strDataCase Is = 自動控制選擇AutotxtReceive.Text = txtRe
16、ceive.Text & 自動控制選擇 & vbCrLfCase Is = 手動控制選擇txtReceive.Text = txtReceive.Text & 手動控制選擇 & vbCrLfManupassion.Enabled = TrueCase Is = 開始 電機1工作,車向前走passion.Selected(0) = TrueAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueCase 機構(gòu)上升 設(shè)電機2和3正轉(zhuǎn),機構(gòu)上升,實現(xiàn)爬梯Timer01.Interval = Controlt
17、imepassion.Selected(1) = TrueAct2(0) = &HC1Act3(0) = &HC1Act2(1) = 16Act3(1) = 4Timer2.Interval = ControltimeTimer3.Interval = ControltimeTimer1.Enabled = FalseTimer2.Enabled = TrueTimer3.Enabled = TrueCase 一次前進(jìn) 電機4工作,車向前走passion.Selected(2) = TrueAct4(0) = &HC1Act4(1) = 128Timer4.Interval = Control
18、timeTimer4.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseCase 機構(gòu)下降 電機2和3反轉(zhuǎn),機構(gòu)下降,回復(fù)到爬梯前狀態(tài)passion.Selected(3) = TrueAct20(0) = &HC1Act30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueTimer4.Enabled
19、= FalseCase 二次前進(jìn) 電機1工作,車向繼續(xù)向前走,準(zhǔn)備下一次爬梯passion.Selected(4) = TrueAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueTimer20.Enabled = FalseTimer30.Enabled = FalseCase 停止passion.Selected(5) = TrueTimer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled =
20、 FalseTimer20.Enabled = FalseTimer30.Enabled = FalseCase 急停Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseIf Rtr(0) 10 Then Winsock2.SendData attCase 重置Timer5.Enabled = FalseTimer6.Enabled = TrueAct20(0) = &HC1Act
21、30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueEnd SelectEnd SubPrivate Sub Timer1_Timer()控制電機1運動With ControlComm.Output = Act1Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer2_Timer()
22、控制電機2正轉(zhuǎn)With ControlComm.Output = Act2Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer20_Timer()控制電機2反轉(zhuǎn)With ControlComm.Output = Act20Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer30_Timer()控制電機3反轉(zhuǎn)With ControlComm.Output = Act30Do While .InBufferCount 1 D
23、oEventsLoopEnd WithEnd SubPrivate Sub Timer3_Timer()控制電機3正轉(zhuǎn)With ControlComm.Output = Act3Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer4_Timer()控制電機4運動With ControlComm.Output = Act4Do While .InBufferCount 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer6_Timer() 手動控制時行程開關(guān)的控制Do
24、While ControlComm.InBufferCount 1DoEventsLoopRtr() = ControlComm.InputIf Rtr(0) = 1 Then Timer3.Enabled = False第1個行程開關(guān)的值, 上升結(jié)束后機構(gòu)接觸的行程開關(guān)If Rtr(0) = 2 Then Timer30.Enabled = False第2個行程開關(guān)的值If Rtr(0) = 4 Then Timer2.Enabled = False第3個行程開關(guān)的值, 上升結(jié)束后機構(gòu)接觸的行程開關(guān)If Rtr(0) = 8 Then Timer20.Enabled = False第4個行程
25、開關(guān)的值If Rtr(0) = 26 ThenTimer1.Enabled = FalseWinsock2.SendData 前進(jìn)結(jié)束。End IfIf Rtr(0) = 37 ThenTimer4.Enabled = FalseWinsock2.SendData 二次前進(jìn)結(jié)束。End IfIf Rtr(0) = 5 Then 上升結(jié)束后機構(gòu)接觸的行程開關(guān)1和3值和Timer2.Enabled = FalseTimer3.Enabled = FalseWinsock2.SendData 上升結(jié)束.End IfIf Rtr(0) = 10 Then 下降結(jié)束后機構(gòu)接觸的行程開關(guān)2和4值和Time
26、r30.Enabled = FalseTimer20.Enabled = FalseWinsock2.SendData 下降結(jié)束。End IfIf Rtr(0) = 74 ThenTimer1.Enabled = FalseTimer2.Enabled = FalseTimer4.Enabled = FalseTimer3.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalsesenData1 = manustopWinsock2.SendData senData1End Ifa.Caption = Rtr(0)End Sub
27、Private Sub Timer5_Timer() 自動控制時行程開關(guān)的控制Do While ControlComm.InBufferCount 1DoEventsLoopRtr() = ControlComm.InputIf Rtr(0) = 26 Then Timer1.Enabled = FalseAct2(0) = &HC1Act3(0) = &HC1Act2(1) = 16Act3(1) = 4Timer2.Interval = ControltimeTimer3.Interval = ControltimeTimer2.Enabled = TrueTimer3.Enabled =
28、 TrueTimer4.Enabled = FalseEnd IfIf Rtr(0) = 5 ThenAct4(0) = &HC1Act4(1) = 128Timer4.Interval = ControltimeTimer4.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseEnd IfIf Rtr(0) = 37 ThenTimer4.Enabled = FalseAct20(0) = &HC1Act30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = Control
29、timeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueTimer4.Enabled = FalseEnd IfIf Rtr(0) = 10 ThenAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseEnd IfIf Rtr(0) = 74 ThenTimer1.Enabled = FalseTimer2.Enabled = FalseTimer4.Enabled = FalseTimer3.Enabled = FalseTimer20.Enabl
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行中醫(yī)義診活動方案
- 心絞痛急救處理
- T/ZHCA 025-2023化妝品抗氧化人體測試方法
- 健康扶貧工程實施路徑與成效分析
- 2025遼寧工程職業(yè)學(xué)院輔導(dǎo)員考試試題及答案
- 2025貴州工業(yè)職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 2025石家莊理工職業(yè)學(xué)院輔導(dǎo)員考試試題及答案
- 母親節(jié)活動總結(jié)
- T/ZGSCJXH 5-2021太歲收藏鑒定技術(shù)規(guī)程
- 基本公共衛(wèi)生服務(wù)項目宣傳
- 出租車租車合同樣板
- GB/T 320-2025工業(yè)用合成鹽酸
- 安全課:預(yù)防蚊蟲叮咬
- 帶狀皰疹的護(hù)理-課件
- 2025年中考英語熱點話題模擬預(yù)測卷(天津卷)-中考英語各地市熱點話題模擬預(yù)測卷
- 慈善晚會籌備流程
- 機場充電樁施工方案
- 拒絕第一支煙健康教育 課件
- 更年期綜合征患者生活質(zhì)量改善策略-深度研究
- 2025年安徽耀安投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 全國電子工業(yè)版初中信息技術(shù)第一冊第3單元3.3活動4《暢想未來智慧城市》說課稿
評論
0/150
提交評論