版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗三 串口通訊控制機器人實驗目的在前一實驗基礎上,利用現有的框架代碼,學習基本的機器人控制。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺2、安裝 Visual C+ 6.0 3、安裝與機器人控制方式相對應的無線通訊設備4、機器人處于可運行狀態(tài)實驗步驟1、 按實驗二建立基本的對話框界面。2、 引入控制類將 IPhy.h SerialCom.h SerialCom.cpp FstarCmd.h FstarCmd.cpp IBehavior.h, NetSend.h,NetSend.cpp 拷貝到工程文件夾內(FstarTest)。由于 CFstarCmd 類中包含 有 CNetSend
2、類的對象,所以一并加入。另外,CFstarCmd 類中用到了 PlaySound 函 數,要正常編譯,必須在工程中連接 winmm.lib 庫,并在 stdafx.h 頭文件中包含 mmsystem.h ,如圖所示。圖 3.1 連接庫文件圖 3.2 包含頭文件向工程中引入串口類、協(xié)議類,行為類和網絡發(fā)送類,即剛才拷貝的幾個文件,這些類即可構成一個完整的機器人控制系統(tǒng)。 要使用這些類,我們還需要將其實例化,即在主窗體內創(chuàng)建他們的對象。首先在主窗體頭文件引入控制類的頭文件,然后在主窗體類的聲明里生成三個類的對象。圖 3.3 向工程中添加文件圖 3.4 選取添加的文件圖 3.5 包含頭文件圖 3.6
3、 實例化控制類3、 硬件層與協(xié)議層對接硬件通訊層和協(xié)議層的類已經實例化,要使他們工作起來還得進行對接。對接工作很簡單,通過 CSerialCom 的 SetCmd 函數接口將協(xié)議類地址指針傳遞進去即可。圖 3.7 硬件通訊層與協(xié)議層對接4、 建立控制按鈕下面我們需要界面上的一些按鈕來控制機器人的具體行動。在主窗體上建立 5個按鈕控件,分別對應前進、后退、左轉、右轉和剎車。圖 3.8 繪出按鈕圖 3.9 前進按鈕控件屬性圖 3.10 后退按鈕控件屬性圖 3.11 左轉按鈕控件屬性圖 3.12 右轉按鈕控件屬性圖 3.13 剎車按鈕控件屬性圖 3.14 修改后的界面圖 3.15添加映射函數相應的可
4、以添加其他四個按鈕的響應函數,如下圖:小結圖 3.16函數體我們已經能夠控制機器人進行基本的移動了,要實現自主功能還需要借助傳感器。實驗四 基于避碰開關的漫游行為設計實驗目的能從機器人底層獲取傳感器信息并顯示在軟件界面上,為機器人決策提供依據。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺2、安裝 Visual C+ 6.0 3、安裝與機器人控制方式相對應的無線通訊設備4、機器人處于可運行狀態(tài)5、配置了避碰開關且工作正常實驗步驟1、 按實驗三建立已包含串口類、協(xié)議類和行為類的對話框界面。2、 繪制窗體顯示控件,添加相關變量。為了直觀的顯示返回數據,我們需要在界面上設置四個圖標。這里我們使
5、用 Picture 控件。為了形象的顯示避碰開關的狀態(tài)。我們首先給程序新建兩個圖標,紅 色的表示避碰開關按下,綠色表示避碰開關未比按下。圖 4.1 避碰開關未按下的圖標圖 4.2 避碰開關按下時的圖標圖 4.3 避碰開關未啟用時的圖標添加完圖標后,為了便于使用。我們在主對話框類 CFstarTestDlg 中添加三個變量保存圖標。如圖 4.4。其中類 CFstarCmd 中應經添加,僅需要初始化,如圖 4.5。圖 4.4 添加圖標變量圖 4.5 圖標變量的賦值添加完圖標變量后,在界面上按下面步驟添加控件。首先刪除“確定”和“取消”按鈕。圖 4.6 添加控件其中“避碰開關”“障礙方位”為靜態(tài)文本
6、控件,只需修改屬性-標題即可。圖中的 4 個灰色方框即為 Picture 控件。屬性設置如下:圖 4.7 左前方避碰開關對應的 Picture 控件屬性圖 4.8 右前方避碰開關對應的 Picture 控件屬性圖 4.9 左后方避碰開關對應的 Picture 控件屬性圖 4.10 右后方避碰開關對應的 Picture 控件屬性圖 4.11 漫游行為開始按鈕屬性圖 4.12 障礙方位靜態(tài)文本控件屬性設置添加完控件后,為四個 Picture 控件和靜態(tài)文本控件添加相關變量。圖 4.13 給控件添加相關變量3、 自動顯示功能的實現給“漫游開始”按鈕添加消息響應函數。這里只用一個按鈕同時實現行為開始和
7、終止功能,具體實現見下圖。圖 4.14 添加按鈕消息響應函數圖 4.15 按鈕消息響應函數的實現4、 編譯運行程序。打開對應的端口后。點擊“漫游開始”后,機器人即可開始漫游行為,同時按鈕文 本變?yōu)椤敖K止漫游”。機器人行進中,如果避碰開關觸到障礙,機器人就會后退并改變 前進方向。再次點擊按鈕,即可終止漫游行為。如果想要了解漫游執(zhí)行的具體策略,可以在 CFstarCmd 類中,m_AwayObstacle 函數中查看源代碼。因為只有 4 個避碰開關,總共只有 16 種狀態(tài),在函數 m_AwayObstacle中,分別對 16 種情況作了處理。為了防止機器人進入死胡同,針對左前方和右前方避 碰開關按
8、下的狀態(tài)做了特殊處理即如果避碰開關不停的在左前和右前避碰開關被 按下的狀態(tài)之間循環(huán),程序將加入一個擾動,使機器人跳出死循環(huán)。小結現在我們已經利用避碰開關實現了避障行為,下一節(jié)我們將講述利用紅外傳感 器進行邊緣檢測的行為。實驗五 基于紅外傳感器的邊緣檢測行為設計實驗目的學習紅外傳感器的使用,應用紅外傳感器返回信息進行簡單的決策。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺2、安裝 Visual C+ 6.0 3、安裝與機器人控制方式相對應的無線通訊設備4、機器人處于可運行狀態(tài)5、配置了紅外傳感器且工作正常實驗步驟1、 本實驗可以在實驗三的基礎上進行,只需按實驗四添加圖標變量即可,具體內容
9、參 考實驗四。下面以實驗四為基礎來講述本實驗的步驟。所以請先按實驗四建立程序。2、 繪制窗體顯示控件,添加相關變量“紅外傳感器”靜態(tài)文本控件只需設置標題即可。其他三個控件的設置和界面布局如下圖。圖 5.1 左邊紅外傳感器圖標屬性圖 5.2 左邊紅外傳感器圖標屬性圖 5.4 按鈕屬性圖 5.5 給圖標關聯(lián)變量北京博創(chuàng)興盛機器人技術有限公司3、 添加消息響應函數編輯完控件后我們需要添加消息響應函數。與實驗四相似,我們仍然只用一個按鈕同時實現行為開始和終止功能。圖 5.2行為類對象圖 5.3 消息響應函數的實現4、 編譯運行程序。打開對應的端口后,點擊“邊緣檢測開始”后,機器人即可開始邊緣檢測行為,
10、 同時按鈕文本變?yōu)椤敖K止邊緣檢測”。機器人行進中,如果紅外傳感器采集到的值大于 設定的閾值,機器人就會后退并改變前進方向。再次點擊按鈕,即可終止漫游行為。如果想要了解邊緣檢測執(zhí)行的具體策略,可以在 CFstarCmd 類中,m_ForEdge 函數 中查看源代碼。因為只有 2 個避碰開關,總共只有 4 種狀態(tài),在函數 m_ForEdge 中,分 別對 4 種情況作了處理。要說明的是,紅外傳感器返回的數據為 0-255,在該行為中, 用一個閾值分成兩種狀態(tài)有返回和無返回。有返回證明沒有檢測到邊緣,無返回證 明存在邊緣。這里的閾值在不同環(huán)境下需要重新設置。m_ForEdge 中的閾值就是判斷條 件
11、中的 3。北京博創(chuàng)興盛機器人技術有限公司小結我們已經完成了邊緣檢測行為的練習。到這里,我們已經用到了兩種傳感器,避碰開關和紅外傳感器。接下來,我們將用到超聲傳感器。實驗六 基于超聲傳感器的避障行為設計實驗目的學習使用超聲傳感器,使用傳感器返回的數據進行邏輯決策。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺 2、安裝 Visual C+ 6.0 3、硬件上與機器人建立通訊連接4、機器人處于開啟狀態(tài)5、配置了超聲傳感器且工作正常實驗步驟1、 本實驗仍然可以從實驗三出發(fā),但為了保持連續(xù)性,我們從實驗五出發(fā)。2、 繪制界面控件,并關聯(lián)變量。 在界面添加一個靜態(tài)文本控件用于顯示超聲傳感器檢測到的
12、距離,然后添加一個按鈕用于行為的開始和結束?!俺晜鞲衅鳌焙汀癱m”靜態(tài)文本控件只需設置相應的標題即可。如圖所示:圖 6.1用于顯示超聲檢測到的距離的靜態(tài)文本屬性圖 6.2按鈕控件屬性圖 6.3 為靜態(tài)文本關聯(lián)變量3、 添加消息響應函數為按鈕“超聲避障”添加消息響應函數,實現超聲避障行為。圖 6.4為按鈕添加消息響應函數圖 6.5消息響應函數具體內容4、 編譯運行程序。打開對應的端口后,點擊“超聲避障”后,機器人即可開始超聲避障行為,同 時按鈕文本變?yōu)椤敖K止避障”。機器人行進中,如果超聲傳感器采集到的值大于設定的 閾值,機器人就會左轉。再次點擊按鈕,即可終止避障行為。如果想要了解超聲避障執(zhí)行的
13、具體策略,可以在 CFstarCmd 類中,m_UsAwayObstacle函數中查看源代碼。小結這一章我們學習了使用超聲傳感器實現避障行為。接下里我們使用超聲傳感器 來進行跟蹤。實驗七 基于超聲傳感器的跟蹤行為設計實驗目的學習使用控制類使機器人在陀螺儀導航狀態(tài)下運動。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺 2、安裝 Visual C+ 6.0 3、硬件上與機器人建立通訊連接4、機器人處于開啟狀態(tài)5、配置了超聲傳感器且工作正常實驗步驟1、 按實驗六建立程序。2、 繪制界面控件有了實驗六的基礎,本實驗實現起來非常簡單。只需添加一個按鈕即可。如圖 所示:圖 7.1控制界面添加控件3、
14、 添加消息響應函數圖 7.2 添加消息響應函數圖 7.2消息響應函數內容4、 編譯運行程序。打開對應的端口后,點擊“超聲跟蹤”后,機器人即可開始超聲跟蹤行為,同 時按鈕文本變?yōu)椤敖K止跟蹤”。機器人行進中,如果超聲傳感器采集到的值大于設定的 較大閾值,機器人就會前進;該值位于較大閾值和較小閾值之間,機器人停止;小于較 小閾值,機器人呢后退。再次點擊按鈕,即可終止避障行為。如果想要了解超聲跟蹤執(zhí) 行的具體策略,可以在 CFstarCmd 類中,m_UsFollow 函數中查看源代碼。小結這一張我們實現了超聲跟蹤行為。到這里,我們應用超聲傳感器進行了兩個行 為的練習。接下來,我們將學習光敏傳感器的使
15、用和尋光行為的實現。實驗八 基于光敏的尋找光源行為設計實驗目的學習使用控制類使機器人在陀螺儀導航狀態(tài)下運動。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺 2、安裝 Visual C+ 6.0 3、硬件上與機器人建立通訊連接4、機器人處于開啟狀態(tài)5、配置了光敏傳感器并且工作正常實驗步驟1、 本實驗以前面的實驗七作為基礎,實驗前請先建立實驗七的程序。2、 繪制界面控件本實驗需要添加四個靜態(tài)文本控件顯示兩個光敏返回的數值,他們的差值和均 值,另外再添加一個按鈕用于行為的開始和終止。其他的其標識作用的靜態(tài)文本控 件,如“光敏傳感器”“左”“右”“均值”“差值”只需按照圖示改變其標題屬性即 可。
16、圖 8.1 左光敏返回數值靜態(tài)文本屬性Http:/robot.up- Tel :86-10-82114870/4887/4890 Fax:總機轉 828- 100 -圖 8.2 右光敏返回數值靜態(tài)文本屬性圖 8.3 左右光敏均值靜態(tài)文本屬性圖 8.4 左右光敏差值靜態(tài)文本屬性圖 8.5 按鈕屬性 然后給四個靜態(tài)文本關聯(lián)變量,如下圖:圖 8.6 為四個靜態(tài)文本控件添加的關聯(lián)變量3、 添加消息響應函數。圖 8.7添加消息響應函數圖 8.8 消息響應函數實現4、 編譯運行程序打開對應的端口后,放置一個比環(huán)境光更亮的光源在機器人光敏可感知范圍內, 然后點擊“尋光開始”后,機器人即可開始尋光行為,同時按
17、鈕文本變?yōu)椤敖K止尋光”。 機器人將根據兩個光敏采集到的光線強度進行調整,向著光線強的地方前進。移動光源, 可以看到機器人可以跟著調整前進方向。如果想要了解尋光行為執(zhí)行的具體策略,可以 在 CFstarCmd 類中,m_Forligh 函數中查看源代碼。尋光行為中需要人為設置兩個閾值, 即 CFstarCmd 類中的 minLgt(最小閾值)和 maxLgt(最大閾值)。當光敏采集到的光強小于 最小閾值,機器人將原地轉圈;大于最大閾值時,機器人做小幅度的調整,使自己面向 光源;位于最小閾值和最大閾值之間時,機器人將根據左右光敏的數值差做實時調整, 向著光源前進。小結這一章我們實現了機器人的尋光行
18、為。接下來在實現更高級行為之前,我們先來學習如何安裝相關的 SDK。實驗九 視頻圖像采集實驗目的學習使用視頻類對 USB 視頻設備進行圖像采集。實驗配置1、裝有 windows 系統(tǒng)的 PC 一臺2、安裝 Visual C+ 6.03、正確安裝 DirectX 9.0 SDK 完整包4、USB 攝像裝置實驗步驟1、 建立新工程用 Visual C+新建一個 MFC 對話框工程。將通用類里的所有文件拷貝到工程目 錄下,并將這些文件引入新工程中。設置工程屬性,點擊 Visual C+的“工程”菜單,選擇“設置”。在彈出的選項卡中選擇“連接”,在“對象/庫模塊”中輸入 DirectShow 標準庫路
19、徑。如果 DirectX SDK 包安裝時使用的是默認路徑,則 Debug 編譯的標準連接庫是: C:DXSDKSamplesC+DirectShowBaseClassesDebugstrmbasd.libRelease 編譯的標準連接庫是: C:DXSDKSamplesC+DirectShowBaseClassesReleasestrmbasd.lib 需要注意的是這個路徑和文件名是嚴格區(qū)分大小寫的,務必保證準確無誤。在 StdAfx.h 文件里包含三個 DirectShowSDK 的頭文件:#include <atlbase.h>#include <streams.h&g
20、t;#include <qedit.h>編譯一下工程,排除編譯上的錯誤。圖 9.1包含相應頭文件圖 9.2工程設置圖 9.3新建對話框2、 添加界面控件在界面上劃定一個范圍,限定視頻圖像的顯示位置和大小。這里我們使用一個 Picture 控件做顯示。設置控件 ID 為 IDC_PREVIEW,類型為矩形。為了傳遞這個控 件的位置參數,需要在類向導里為它映射一個 CStatic 類型的控件變量。為視頻預覽的開啟和關閉各自添加一個按鈕,并生成相應的映射函數。北京博創(chuàng)興盛機器人技術有限公司圖 9.4添加界面控件圖 9.5預覽空間屬性圖 9.6映射控件變量3、 視頻流捕捉的實現為了實現視頻流的捕捉,我們的窗體程序中必須要有一個 CCaptureVideo 對象, 所以得在窗體類頭文件里包含 CCaptureVideo 類頭文件。由于 CCaptureVideo 類中 包含了前面用到的 CFstarCmd 類對象,所以如果不想修改代碼的話,請?zhí)砑酉嚓P的 文件。這里不再贅述。圖 9.7包含視頻類頭文件CCaptureVideo 類的視頻捕捉有多個模式,每個模式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑外墻涂料購銷合同
- 權威認證涂料購銷合同范本
- 農村共有房屋買賣合同
- 廢酸處理循環(huán)經濟合同
- 企業(yè)工商登記代理合同
- 離岸能源管道采購協(xié)議
- 建設運營移交合同的風險控制
- 國內雇傭合同模板
- 保密協(xié)議在程序員工作中的作用
- 物業(yè)服務合同范本封面
- 苯-乙苯連續(xù)精餾塔的設計
- GB/T 7027-2002信息分類和編碼的基本原則與方法
- 中考語文非連續(xù)性文本閱讀10篇專項練習及答案
- GB 25431.1-2010橡膠塑料擠出機和擠出生產線第1部分:擠出機的安全要求
- 防雷接地電阻測試記錄表
- 余角補角課件
- 國開作業(yè)《建筑制圖基礎》學習過程表現參考(含答案)533
- 免費施工方案大全
- 幼兒園小班社會:《紅綠燈》 課件
- 滅火戰(zhàn)術教案(2010版)
- 三副職務行為重點標準
評論
0/150
提交評論