freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

3g智能機器人系統(tǒng)驅動開發(fā)畢業(yè)論文-閱讀頁

2024-09-15 17:23本頁面
  

【正文】 ,機器人平臺機身采用高檔拉絲氧化鋁材料制造,外觀美觀并且堅固耐用。自由度云臺可方便安裝攝像頭。 由于時間和條件的限制, 所以 用于實際工程還需要進行 一些功能的完善。 圖 33 客服端的過程圖 服務端開啟監(jiān)聽和視頻等服務 在客服端,點擊按鈕,顯示基本信息 客服端顯示機器人的視頻和相關信息 客服端通過點擊按鈕完成對機器人和 led 控制 機器人或 led 執(zhí)行命令且返回 點擊退出按鈕結束 ARM9 平臺 嵌入式 Linux+Web 語音模塊 WiFi 模塊 無線通訊模塊 煙霧模塊 紅外線模 塊 SD 卡模塊 觸摸屏模塊 電機控制 模塊 云臺攝像模塊 GPRS 模塊 15 信息科 學與技術學院學士學位論文 控制客服端操作界面主要的文件是 ,這個函數(shù)里面主要用到的結構體就是 cgimand 結構體 [7]。 //傳送過來的數(shù)據(jù)指針主要是指網(wǎng)頁傳過來的數(shù)據(jù) int count。 //這個 cgi 密令是要控制那個 LED int states。 //對機器人控制的命令 }mand。其中對機器人的控制主要有下面幾個操作: w 表示向前走; a 表示向左走; x 表示向后走; d 表示向右走; s 表示停止; q 表示左旋轉; e 表示右旋轉; z 攝像頭抬頭; c 攝像頭低頭。 在 中主要的操作函數(shù)是: 16 信息科 學與技術學院學士學位論文 int get_input(); //這個函數(shù)用來獲得 cgi 數(shù)據(jù)并解析后放到 nv 數(shù)組中 int cmd_init(mand *cmd); //將獲得的數(shù)據(jù)處理后填充 cmd 結構體 int led_control(mand *cmd); //將 cmd 結構體轉化為具體的控制動作 int robot_control(mand *cmd); //根據(jù)獲取的信息來對機器人發(fā)送不同的命令 我們按照先獲取 cgi 數(shù)據(jù),然后填充 cmd 結構體,然后調用 led_control 函數(shù)和 robot_control 函數(shù)這樣就可以實現(xiàn)對 led 燈、機器人的控制了。嵌入式 Linux 下,系統(tǒng)資源是非常有限的 [8],因此我們選擇 Web服務器時,要考慮到其資源有限的特點 : boa 是一種非常小巧的 Web 服務器,其可執(zhí)行代碼只有大約 60KB 左右。但 boa 支持 cgi,能夠為 cgi程序 fork 出一個進程來執(zhí)行, boa 的設計目標是速度和安全。這主要通過對 、 、 等文件進行修改來實現(xiàn)。cgi 程序使網(wǎng)頁具有交互功能 。 boa 服務器的實現(xiàn)主要分為兩步, boa 服務器的移植和 cgi 程序的設計。 ( 1) 將其解壓并進入源碼目錄的 src 子目錄。 18 信息科 學與技術學院學士學位論文 修改 CC = gcc 為 CC = armLinuxgnugcc 修改 CPP = gcc E 為 CPP = armLinuxgnugcc – E ( 3) 修改頭文件 找到 define SERVER_ROOT ― /etc/boa‖ 修改 代碼為 # define SERVER_ROOT ― /var/‖ 這里定義的是 web 服 務器的文件根目錄(用戶可以自行定義,只要跟 中 設置 一致就可以了)。 } */ /*if (passwdbuf == NULL) { DIE(getpwuid)。 ( 7) 然 后運行 make 進 行編譯, 得到的可執(zhí)行程序 boa,將調試信息剝去,得到的最后程序只 有 62872Byte 大 小。 19 信息科 學與技術學院學士學位論文 在 boa 源碼目錄下有一個 。 注: /var//cgibin/ 指示 cgi 腳本的存放位置(別稱) /var// 指示默認首頁存放的位置。 最后在瀏覽 器中輸入 ,表示 cgi 20 信息科 學與技術學院學士學位論文 測試通過 。 基于 MJPEGstreamer 的視頻服務的移植 系統(tǒng)要求在網(wǎng)頁中顯示攝像頭拍攝下來視頻,所以我們之前一定要移植 MJPEG的視頻服務。她可以利用某些 webcams 的硬件壓縮功能來降低服務器 CPU 的開銷。下面首先要完成基本的移植工作 [10]。 221 } + urbtransfer_flags = URB_NO_TRANSFER_DMA_MAP。 重新編譯內核 make zImage 通過上面兩個步驟就可以驅動我們的攝像頭了。以前基于 V4L 的一些上層應用就不能用了,或需要做大量的修改!這里我們要實現(xiàn)網(wǎng)絡視頻的功能,以前都是用 servfox 這個網(wǎng) 絡視頻服務器,但是這個服務器就是基于 V4L 的,我們如果想用的話就得對 servfox 的源碼進行修改 [12]。 mjpgstream 的移植 有關于 mjpgstream 移植 的資料大家可以在下面這個網(wǎng)址查看非常的詳細資料: mjpgstream 的移植需要 jpeg 的庫,所以我們先移植 jpeg 的庫 [13]。 23 信息科 學與技術學院學士學位論文 mjpg_streamer i /mjpg/ o /mjpg/ w / 成功會出現(xiàn) : MJPGstreamer [1016]: starting application MJPG Streamer Version.: MJPGstreamer [1016]: MJPG Streamer Version.: i: Using V4L2 device.: /dev/video0 MJPGstreamer [1016]: Using V4L2 device.: /dev/video0 i: Desired Resolution: 640 x 480 MJPGstreamer [1016]: Desired Resolution: 640 x 480 i: Frames Per Second.: 5 MJPGstreamer [1016]: Frames Per Second.: 5 i: Format............: MJPEG MJPGstreamer [1016]: Format............: MJPEG o: folderpath...: // MJPGstreamer [1016]: folderpath...: // o: HTTP TCP port.....: 8080 MJPGstreamer [1016]: HTTP TCP port.....: 8080 在源碼目錄下有 ,這個腳本里有一些 mjpgstream 的使用方法及說明 。 Inputplugins其實就 是把 JPEG 格式的圖片拷 貝到全局可訪問內存中,接著給等待進程發(fā)送信號。他也為你提供了一個模板,一個你想寫自己的 inputplugin 的模板,因為他被實現(xiàn)的盡可能的簡單易懂。當被激活時就會不停的往復上面的那個動作:獲得 轉變 [14]。像Logitech Quickcam Sphere AF 等等國產的有 ZC0303。與 “ luvcview“ 不同的是,他初始化羅技他們家 的攝像頭時用 pan/tilt/focus 命令即可。現(xiàn)在很流行這種輸入插件,得益于它能夠在不增加 CPU 負載的情況下以大于 15fps( frame per second)速率來將相片編碼成960x720象素大小。 這個模塊只實現(xiàn)了 pan/tilt 的控制接口,就是說他把視頻流的功能交 給了其他程序( Linux 中很推崇 “ 簡潔 “ ,就是一款軟件一個功能,效率至上,功能有軟件數(shù)量保證)。當我們通過 Skype 要開遠程會議的時候,她工作的非常好,看不見的時候還方便他們控制這個攝像頭 。 這絕對是個全版本的符合 標準的 webserver。例子是,你可以訪問從輸入 plugin獲得的 JPEG 文件,或者按照 MJPEG 標準編碼他們。 很明顯這個庫文件時把攝像頭拍攝下來的圖片呈現(xiàn)在 lcd 屏幕上面的??梢杂?來抓取圖片并只是存取,當然你也可以在存儲完之后通過執(zhí)行命令把他們提交到 FTP 服 25 信息科 學與技術學院學士學位論文 務器上 。 根文件系統(tǒng)中的庫要和相應的交叉工具鏈匹配 , 比 如 你 是 用armnoneLinuxgnueabigcc 編譯的 那么我們的根文件系統(tǒng)中的庫要是從armnoneLinuxgnueabigcc 工具鏈中的庫拷出來的 不然就可能不匹配 造成命令不識別會出現(xiàn) sh/ mod not found。 cgi 和 web 程序的設計 cgi 程序和 web 服務器連接就是按照圖 41 所 示。 一是通過表單調用 ; 二是通過超鏈接調用 ; 三是通過 SSI 調用。 form align = ―center‖ action=―cgibin/‖ method=―get― 意思就是我們在網(wǎng)頁中點擊提交按鈕的時候就會觸發(fā)一個事件 ,這個事件就是上面的action=cgibin/ ,然后 就跳到 cgibin/ 這里面執(zhí)行。 ( 1)屬性指定提交數(shù)據(jù)的方法( POST 還是 GET),提交數(shù)據(jù)的方法有 2 種 :GET /POST 。‖分開;變量與值之間用 ―= ‖連接;空格符用 ―+ ‖代替;任何特殊字符用 ―% ‖接相應的十六進制 ASCII 碼代替,最后形成的格式為: name1=value1amp。假如用戶在 get_data1 域中輸入的是 12,在 get_data2 域中輸入的是 23。get_data2=23amp。 GET : 當采用 GET 方式提交數(shù)據(jù)時,用戶提交的數(shù)據(jù)放在環(huán)境變量QUERY_STRING 中。否則只能用 POST 方式了。根據(jù) cgi 編碼規(guī)則取出字符串中的數(shù)據(jù)(變量名和變量值對)首先 : 從 cgi 環(huán)境變量 REQUESR_METHOD 中獲取 cgi 程序的提交方式 。因為我們一般提交的數(shù)據(jù)不會到達1k 所以我們一般使用 GET 方式就可以了當然用 POST 也一樣的 。 method=getenv(REQUEST_METHOD)。 data_len = strlen(tmp_ptr)。 /* 把我們獲取的數(shù)據(jù)放到全局變量 my_data 中 */ strcpy(my_data , getenv(QUERY_STRING))。//結束符號 if(strcmp(method,―POST‖)==0)//窗體以 post 方式傳送數(shù)據(jù) { data_len = atoi(getenv(CONTENT_LENGTH))。 /*窗體編碼數(shù)據(jù)存儲至 my_data 中 */ fread(my_data,1,data_len,stdin)。 tmp=split(my_data,?=‘)。 //還原空格符 tmp=convert(tmp)。 //結果存 入 nv 結構的 name 成員 tmp=split(my_data,?amp。 //分離變量和變量 就是在遇到下一個 amp。 //還原空格符 tmp=convert(tmp)。 //結果存入 nv 結構的 value 成員 當然當我們獲取我們的數(shù)據(jù)后 因為我們是把數(shù)據(jù)放在一個結構體中是個全局變量所以我們就可以根據(jù)獲取得值來處理執(zhí)行向相應的代碼。 led_buf[1] = cmdstates。amp。 } 當然之前要把相應的 led_drv 驅動加載 。} while (fgets(buf,512,fp_html)) {printf(%s,buf)。具體 的參考代碼。 applet code= archive=../ width=500 height=400 param name=url value= /applet 就是我們要在網(wǎng)上下載 插件,然后我們在網(wǎng)頁中使用它,這樣我們才能把攝像頭拍攝的視頻顯示在我們自己設計的網(wǎng)頁上面。 機器人控制端設計 機器人代碼主要由 2 個函數(shù)控制 和 控制, 主要是在后臺運行的,一直讀取我們寫入管道的數(shù)據(jù),然后根據(jù)我們寫入的數(shù)據(jù)進行相應的處理,比如控制機器人向前走向后走旋轉等等 ,我們在系統(tǒng)啟動的時候就自動啟動對機器人管道的讀取,在 /etc/,然后在 /etc/inittab 中指定 my_init 運行的優(yōu)先級:: sysinit:/etc/ 29 信息科 學與技術學院學士學位論文 系統(tǒng)啟動后就自動運行我們指定的指令了。 LCD 顯示設計 在嵌入式系統(tǒng)中經(jīng)常使用 LCD 進行交互,這里我們通過修改平臺代碼使我們的內核支持 LCD,完成相應功能, s3c2410 LCD 的驅動內核中已經(jīng)存在,
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1