采用視頻的無線激光定位設(shè)備的設(shè)計(jì)
由于攝像頭采用隔行掃描方式,兩場(chǎng)構(gòu)成一幀畫面,奇數(shù)場(chǎng)掃奇數(shù)行,偶數(shù)場(chǎng)掃偶數(shù)行,所以此時(shí)得到的場(chǎng)坐標(biāo)與實(shí)際值之間有較大誤差。為了提高精度,需要確定當(dāng)前掃描的是奇數(shù)場(chǎng)還是偶數(shù)場(chǎng)。如果場(chǎng)計(jì)數(shù)器中的值為n,LM1881的奇偶場(chǎng)標(biāo)志腳輸出0,則表明當(dāng)前掃描的是偶數(shù)場(chǎng),光點(diǎn)實(shí)際應(yīng)在第2n行;若輸出1,表明掃描的是奇數(shù)場(chǎng),光點(diǎn)實(shí)際應(yīng)在第2n-1行。
本文引用地址:http://butianyuan.cn/article/82920.htm3.單片機(jī)串口通信流程
在本系統(tǒng)中使用的單片機(jī)是陵陽SPCE061A,它的UART模塊提供了一個(gè)全雙工標(biāo)準(zhǔn)的通信口,用于與外設(shè)之間的串行通信。在使用SPEC061A的異步串行端口UART實(shí)現(xiàn)與PC通信時(shí),由于SPEC061A的I/O電平和PC不一致,要采用一片MAX232進(jìn)行電平轉(zhuǎn)換,MAX232的RXD和TXD分別接SPCE061A的IOB10(TX)和1OB7(RX)。
根據(jù)RS-232的標(biāo)準(zhǔn),SPCE061A單片機(jī)是按字節(jié)傳輸數(shù)據(jù)的。利用IOB口的特殊功能和UART IRQ中斷,可以同時(shí)完成UART接口數(shù)據(jù)的接收和發(fā)送。SPCE061A單片機(jī)串行通信幀結(jié)構(gòu)為:1位啟動(dòng)位,8位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1位停止位。使用UART模塊進(jìn)行通信時(shí),必須事先分別將管腳I0B7設(shè)置為輸入狀態(tài),IOB10設(shè)置為輸出狀態(tài)。將波特率設(shè)置為9600b/s即可滿足本系統(tǒng)實(shí)時(shí)數(shù)據(jù)傳輸要求。
初始化的代碼為:
*P_IOB_Dir=0x0400; //IOB0~IOB7初始化為輸入,IOB10為輸出
*P_IOB_Attrib=0x0480;
*P_UART_BaudScalarHigh=0x05; //波特率設(shè)置為9600bps
*P_UART_BaudScalarLow=0x00;
*P_UART_Command1=0x0000; //允許接收、發(fā)送
*P_UART_Command2=0x00C0;
單片機(jī)數(shù)據(jù)發(fā)送程序代碼片段為:
Ret=*P_UART_Command2; //檢查標(biāo)志位,查看上次數(shù)據(jù)是否發(fā)送完畢
Ret="Ret"&0x0040;
while(Ret==0) //若沒有等待繼續(xù)發(fā)送
{
Ret=*P_UART_Command2;
Ret="Ret"&0x0040;
*P_Watchdog_Clear=C_WDTCLR;
}
m1=m&0x000f; //將16進(jìn)制m1轉(zhuǎn)ASCLL碼傳送上位機(jī)
Hex_ASC(m1);
*P_UART_Data=m1;
4.PC機(jī)軟件設(shè)計(jì)
在計(jì)算機(jī)接收端,由串口1接收單片機(jī)發(fā)來的數(shù)據(jù),采用VB 6.0設(shè)計(jì)軟件程序,串行通訊利用MSCOMM控件實(shí)現(xiàn)[4]。MSCOMM能十分方便地開發(fā)出使用計(jì)算機(jī)串口的計(jì)算機(jī)通信程序。在本系統(tǒng)中MSCOMM控件采用事件驅(qū)動(dòng)方式從端口獲取數(shù)據(jù),軟件處理流程為:打開串口開始接收單片機(jī)發(fā)送來的數(shù)據(jù),首先判斷數(shù)據(jù)幀的開始字節(jié),是則關(guān)閉OnComm接收事件,然后接收數(shù)據(jù)字節(jié),判斷數(shù)據(jù)最大最小值,采用坐標(biāo)轉(zhuǎn)化算法將接收的坐標(biāo)轉(zhuǎn)化為屏幕坐標(biāo),最后打開OnComm接收事件,等待下一次OnComm事件產(chǎn)生。
Windows SDK中函數(shù)SetCursorPos()可以實(shí)現(xiàn)將鼠標(biāo)光標(biāo)顯示在投影大屏幕上的激光點(diǎn)處,該函數(shù)帶有兩個(gè)參數(shù)x和y,表示鼠標(biāo)在屏幕上的坐標(biāo)。函數(shù)mouse_event()可以模擬一次鼠標(biāo)事件,例如可用如下命令模擬左鍵單擊:mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0。這樣就實(shí)現(xiàn)了利用激光筆光點(diǎn)控制目標(biāo)大屏幕的鼠標(biāo)指針定位,移動(dòng)和單雙擊。
5.結(jié)束語
試驗(yàn)表明,裝備設(shè)計(jì)合理,滿足設(shè)計(jì)技術(shù)指標(biāo)要求,工作穩(wěn)定可靠,且具有較強(qiáng)的可擴(kuò)充性,只需做少許改動(dòng)即可適應(yīng)用戶更高的要求,若要求進(jìn)一步提高光標(biāo)定位的精度,可選擇更高的晶振作為行計(jì)數(shù)器脈沖的輸入,必要時(shí)對(duì)計(jì)數(shù)器加以擴(kuò)展。這相當(dāng)于將像素點(diǎn)加以細(xì)化,因而精度提高。
本裝置是配合計(jì)算機(jī),投影儀而用于產(chǎn)品演示、電化教學(xué)及學(xué)術(shù)會(huì)議等場(chǎng)合的理想演示用工具。經(jīng)過改裝后,還可用于警員、軍隊(duì)槍械的模擬訓(xùn)練,有著廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1]. 俞斯樂等編著.電視原理 (第五版).北京: 國(guó)防工業(yè)出版社,2000
[2]. LM1881, LM1881-X Video Sync Separator General Description. National Semiconductor, June 2003
[3]. 胡敦輝等. 采用視頻方式的點(diǎn)坐標(biāo)測(cè)量方法[J]. 電子技術(shù)應(yīng)用,2003,(3):33-35www.51kaifa.com
[4]. 李光明等. 用VB實(shí)現(xiàn)S7-300 PLC與PC機(jī)的普通串口通信[J].微計(jì)算機(jī)信息,2005, (09):38-40
評(píng)論