豐 海,孫惠軍
(1.廈門大學 電子科學系,福建 廈門 361005;2.廈門城市職業(yè)學院工程技術學部 嵌入式Linux應用中心,福建 廈門 361008)
基于手機遙控的視頻監(jiān)控車的設計與實現
豐 海1,2,孫惠軍1
(1.廈門大學 電子科學系,福建 廈門 361005;2.廈門城市職業(yè)學院工程技術學部 嵌入式Linux應用中心,福建 廈門 361008)
本文基于s3c2440處理器和嵌入式Linux系統(tǒng),設計出了可以通過W iFi智能手機控制的無線視頻監(jiān)控車.該方案不僅可以從手機的瀏覽器上實時看到小車前方的路況視頻,還可以通過網頁上的方向鍵遙控車的運動.該項目完全基于網絡,運行穩(wěn)定,直接用手機控制,無須復雜的遙控終端.
手機遙控;嵌入式Linux系統(tǒng);視頻監(jiān)控
基于智能手機遙控的電子設備成為當前發(fā)展的熱點[1-3],本文基于TQ2440開發(fā)板制作出了可以通過手機遙控的無線視頻監(jiān)控車.通過WiFi將小車攝像頭前方的路況視頻流實時傳送給手機,驅動芯片L298N控制馬達的運動,PWM信號控制馬達的轉速,網頁上的4個方向鍵控制視頻遙控車的運動.
L298N典型馬達驅動電路如圖1所示,Vs電機電源接9V電池,電流反饋端1和15腳可以直接接地,內部工作電源Vss接4節(jié)5號電池組.
圖1 L298N馬達驅動電路原理圖
L298N可以分別控制2個直流電機的正轉、反轉、剎車和停止,兩組電機的控制信號分別是EN A、IN1、IN2和 EN B、IN3、IN4,當使能端 EN A接低電平時,B電機停止;EN A接PWM信號時,如果IN1、IN2分別為高電平、低電平時,B電機正轉;IN1、IN2分別為低電平、高電平時,B電機反轉;均接高電平時B電機剎停;均接低電平時B電機停止;A電機的控制也是一樣.
根據TQ2440的接口圖與L298N芯片文檔[4,5],將 2440處理器的 GPB5、GPB6、GPB7、GPB8四個GPIO接口分別接入L298N芯片的IN1、IN2、IN3、IN4輸入端,以cmd作為遙控車的狀態(tài)參數,0、1、2、3、4分別代表車的停止、前進、后退、向左轉,向右轉的5種狀態(tài).前進與后退是通過兩個馬達的均正轉和均反轉實現的;向左轉是讓左邊的馬達A剎停,而讓右邊的馬達B正轉實現的;向右轉是讓左邊的馬達A正轉,而讓右邊的馬達B剎停.電機驅動模塊tq2440_car_ioctl的主要源代碼如下:
此外,還要在驅動程序的初始化模塊dev_init(void)中加入GPB5、GPB6、GPB7、GPB8這 4個GPIO接口的初始化命令,并設置初始值為0.
我們通過脈寬調制PWM的方式控制馬達的轉速,關閉J4B開關阻止蜂鳴器后,將TOUT0信號輸出給A PWM和B PWM[6].PWM定時器的使用步驟包括設置預分頻值和分頻值、設置比較寄存器和計數寄存器、啟動定時器,清除手動更新位[6,7].電機驅動模塊pwm_ioctl的主要源代碼如下:
//設置S3C2410_TCON寄存器第4位的1表示使能死區(qū);第3位的1為自動裝載,第2位的0表示不翻轉;//第1位的1為手動更新TCNTB0和TCMPB0,第0位的1表示啟動計數器0
writel(readl(S3C2410_TCON)&(~2),S3C2410_TCON);
定時器啟動后,TCON寄存器的第1位必須設置為0,讓計數器按照已經給定的數自動更新.
TQ2440開發(fā)板的內核直接支持TL-WN321G+無線網卡,使用boa網站服務器來建立手機與遙控車之間的連接,用motion傳送視頻流,詳細的安裝及配置可以參考相關文獻[8-10].蘋果iphone手機的橫向分辨率為960×640,控制界面中分別將前進、后退、左轉、右轉、停止五個按鈕定位在 800px、70px;800px、270px;700px、170px;900px、170px;800px、170px;視頻流窗口大小為640px*480px,控制界面的主要源代碼如下:
iphone手機控制界面如圖2所示:
圖2 iphone手機控制界面
由于boa對CGI的支持存在缺陷,我們就通過一個命名管道來將控制參數傳遞給馬達控制程序.網頁上五個方向按鈕分別對應執(zhí)行up.cgi、lef.cgi、right.cgi back.cgi、stop.cgi腳本程序,這些腳本通過echo命令將不同的運動方式參數cmd和馬達轉速參數pwm寫進car-control管道文件供馬達控制程序car-player讀取,然后調用驅動模塊ioctl(led_fd,cmd)控制車的運動狀態(tài),而pwm_ioctl(pwm_fd,pwm)驅動模塊是控制馬達的轉速.馬達控制程序的主要源代碼如下;
}}}
最后將編譯好的驅動和程序下載到開發(fā)板上,裝上電池,打開iphone手機的wifi網絡,在safari瀏覽器,輸入192.168.1.6/car-control.html,即可通過手機控制小車了,小車的整體實物圖如圖3所示:
圖3 無線視頻監(jiān)控車實物圖
本文設計并制作出了可以用智能手機遙控的視頻監(jiān)控車,通過WiFi網絡來控制視頻監(jiān)控車的運動,在手機上能看到小車前方的路況視頻.運行結果表明該方案運行可靠方便,直接用手機控制.該作品還有需要改進的地方,如4節(jié)5號電池只能使用15分鐘左右,倒車時看不到后面的路況,小車的外觀還可以做得更加美觀一些.
〔1〕賈振堂.基于手機的可視化遠程家電控制研究[J].電視技術,2010,(10):107-109.
〔2〕方華超.基于GSM手機的無線遙控系統(tǒng) [J].電腦與電信,2010,(09):45-47.
〔3〕Rifat Shahriyar,Enamul Hoque,S.M.Sohan,et al.Remote Controlling of Home Appliances using Mobile Telephony[J].International Journal of Smart Home,2008,2(3):37-53.
〔4〕天嵌計算機科技有限公司.TQ 2440開發(fā)板使用手冊[M].廣州;20100611:83.
〔5〕STM icroelectronics.L298N datasheet[EB/OL].[2011,11,3].http://www.st.com/internet/analog/product/63147.jsp.
〔6〕天嵌計算機科技有限公司.基于天嵌科技的SKY2440/TQ 2440的Linux系統(tǒng)移植手冊[M].廣州;20100605:156-161.
〔7〕samsung.S3C2410 datasheet [EB/OL].[2011,11,3].http://http://www.samsung.com/.
〔8〕豐海.具有入侵檢測功能的嵌入式遠程視頻監(jiān)控系統(tǒng)的實現[J].電腦編程技巧與維護,2010,(24):104-107.
〔9〕Larry Doolittle,Jon Nelson.Boa O fficial Website[EB/OL].[2010,09,20].http://www.boa.org/.
〔10〕Jeroen Vreeken,M otion O fficial W ebsite[EB/OL].[2011,09,20].http://www.lavrsen.dk/fosw iki/bin/view/Motion/W ebHome.
TP273
A
1673-260X(2011)12-0036-03