本發(fā)明涉及一種驅(qū)動(dòng)播放視頻的系統(tǒng)和方法,尤其是涉及了一種單車實(shí)時(shí)驅(qū)動(dòng)調(diào)整播放虛擬現(xiàn)實(shí)視頻的系統(tǒng)。
背景技術(shù):
隨著生活水平的提高,人們?cè)絹?lái)越關(guān)注自己的身體健康,騎車成為一種重要的健身方法。在健身房里,人們騎著普通健身自行車鍛煉身體,總覺(jué)得枯燥乏味、興趣全無(wú),實(shí)在是棄之可惜,食之無(wú)味??茖W(xué)健身的理念日漸深入人心,鍛煉者更加注重騎車的健身質(zhì)量和效果,希望在輕松愉快的環(huán)境中騎車鍛煉身體,能夠?qū)崟r(shí)了解自己的運(yùn)動(dòng)狀況,實(shí)時(shí)調(diào)整運(yùn)動(dòng)強(qiáng)度,達(dá)到最佳的運(yùn)動(dòng)效果。普通的動(dòng)感單車不能與視頻模塊相連,沒(méi)有交互性。
技術(shù)實(shí)現(xiàn)要素:
為了解決背景技術(shù)中存在的問(wèn)題,本發(fā)明的目的在于設(shè)計(jì)一種單車實(shí)時(shí)驅(qū)動(dòng)調(diào)整播放虛擬現(xiàn)實(shí)視頻的系統(tǒng)。
本發(fā)明采用的技術(shù)方案是:
一、一種單車實(shí)時(shí)驅(qū)動(dòng)調(diào)整播放虛擬現(xiàn)實(shí)視頻的系統(tǒng):
系統(tǒng)包括動(dòng)感單車、電源模塊、霍爾測(cè)速模塊、單片機(jī)模塊、藍(lán)牙模塊和視頻模塊;霍爾測(cè)速模塊安裝在動(dòng)感單車的驅(qū)動(dòng)輪處,電源模塊與單片機(jī)模塊連接,霍爾測(cè)速模塊與單片機(jī)模塊連接,單片機(jī)模塊與藍(lán)牙模塊連接,藍(lán)牙模塊和視頻模塊無(wú)線連接;霍爾測(cè)速模塊實(shí)時(shí)監(jiān)測(cè)動(dòng)感單車驅(qū)動(dòng)輪的轉(zhuǎn)動(dòng),獲得速度脈沖信號(hào),并傳給單片機(jī)模塊,單片機(jī)模塊依據(jù)速度脈沖信號(hào)獲得動(dòng)感單車的車速并傳送給藍(lán)牙模塊,藍(lán)牙模塊將速度的數(shù)據(jù)無(wú)線實(shí)時(shí)地傳送到視頻模塊。
所述電源模塊的正負(fù)電源線分別與單片機(jī)模塊的vcc引腳和gnd引腳相連。
所述霍爾測(cè)速模塊的vcc引腳與單片機(jī)模塊的vcc引腳相連,霍爾測(cè)速模塊的gnd引腳與單片機(jī)模塊的gnd引腳相連,霍爾測(cè)速模塊的d0引腳與單片機(jī)模塊的p3.2引腳相連;藍(lán)牙模塊的vcc引腳與單片機(jī)模塊的vcc引腳相連,藍(lán)牙模塊的gnd引腳與單片機(jī)模塊的gnd引腳相連,藍(lán)牙模塊的rxd引腳與單片機(jī)模塊的txd引腳相連,藍(lán)牙模塊的txd引腳與單片機(jī)模塊的rxd引腳相連。
二、一種單車實(shí)時(shí)驅(qū)動(dòng)調(diào)整播放虛擬現(xiàn)實(shí)視頻的方法:
通過(guò)攝像機(jī)的勻速移動(dòng)采集到真實(shí)物理世界的視頻,人在體驗(yàn)虛擬現(xiàn)實(shí)騎行動(dòng)感單車時(shí)觀看真實(shí)物理世界的視頻,騎行動(dòng)感單車過(guò)程中通過(guò)霍爾測(cè)速模塊檢測(cè)動(dòng)感單車的速度脈沖信號(hào),單片機(jī)模塊依據(jù)速度脈沖信號(hào)獲得動(dòng)感單車的實(shí)時(shí)速度,在視頻模塊中根據(jù)實(shí)時(shí)速度計(jì)算播放幀率,用播放幀率控制播放真實(shí)物理世界的視頻,使得視頻播放和虛擬現(xiàn)實(shí)騎行相匹配。
所述的根據(jù)實(shí)時(shí)速度計(jì)算播放幀率具體采用以下方式計(jì)算:
先采用以下公式計(jì)算獲得視頻模塊中的漫游路程為:
其中,k表示攝像機(jī)拍攝視頻時(shí)的幀率(單位為每秒幀數(shù)),v表示攝像機(jī)拍攝視頻時(shí)攝像機(jī)勻速移動(dòng)的速度(單位為千米每小時(shí));
采用以下公式計(jì)算獲得動(dòng)感單車所經(jīng)過(guò)的路程為l:
其中,n1、n2、…、n20表示霍爾測(cè)速模塊在1s內(nèi)采樣獲得的各個(gè)速度脈沖信號(hào)數(shù)據(jù),d表示動(dòng)感單車的驅(qū)動(dòng)輪直徑,m表示磁鋼個(gè)數(shù);
最后根據(jù)l=p×δk計(jì)算獲得播放幀率δk,再采用
所述用播放幀率控制播放真實(shí)物理世界的視頻具體為:在視頻模塊中,通過(guò)opencv庫(kù)創(chuàng)建視頻顯示的窗口,并將視頻存儲(chǔ)到cvcapture結(jié)構(gòu)體中,然后使用函數(shù)cvqueryframe從cvcapture結(jié)構(gòu)體中讀取每一幀的圖像,再使用函數(shù)cvshowimage在窗口中顯示每一幀的圖像;接著使用函數(shù)recvdata打開(kāi)動(dòng)感單車數(shù)據(jù)傳輸串口,接收動(dòng)感單車的速度數(shù)據(jù),并計(jì)算相鄰幀之間的延時(shí),從而控制視頻的播放。
所述通過(guò)攝像機(jī)的勻速移動(dòng)采集真實(shí)物理世界的視頻具體為以下兩種方式的其中一種:
(1)在自行車、汽車、列車等交通工具在勻速移動(dòng)過(guò)程中,通過(guò)固定在交通工具上的攝像機(jī)采集視頻;
(2)在無(wú)人機(jī)、飛機(jī)等飛行物在勻速移動(dòng)過(guò)程中,通過(guò)固定在飛行物上的攝像機(jī)采集視頻。
典型的是在人勻速騎行單車過(guò)程中通過(guò)頭戴或者車載的攝像機(jī)采集視頻。
本發(fā)明方法的優(yōu)點(diǎn)及顯著效果,和以往的方法相比具有以下特點(diǎn):
本發(fā)明能夠?qū)崟r(shí)采集鍛煉者騎車時(shí)的速度,并能輸出速度數(shù)據(jù),讓鍛煉者實(shí)時(shí)了解自己的運(yùn)動(dòng)狀態(tài)。該系統(tǒng)提供了騎車虛擬場(chǎng)景所需的硬件設(shè)備,把車速實(shí)時(shí)輸入視頻模塊中,較好的實(shí)現(xiàn)與視頻模塊的互動(dòng),增加騎車的娛樂(lè)性,提升騎車健身效果。
本發(fā)明裝置能同步實(shí)時(shí)采集鍛煉者騎車時(shí)的速度,保證速度數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
本發(fā)明裝置可用于驅(qū)動(dòng)視頻模塊模型,且速度和視頻驅(qū)動(dòng)匹配效果好,顯示實(shí)時(shí)性好。
附圖說(shuō)明
圖1是本發(fā)明整體流程圖。
圖2是電源模塊與單片機(jī)模塊的連接電路圖
圖3是霍爾測(cè)速模塊與單片機(jī)模塊的連接電路圖。
圖4是藍(lán)牙模塊與單片機(jī)模塊的連接電路圖。
圖中:1.動(dòng)感單車,2.霍爾傳感器,3.單片機(jī)模塊,4.電源模塊,5.藍(lán)牙模塊,6.視頻模塊。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
如圖1所示,本發(fā)明包括動(dòng)感單車1、電源模塊4、霍爾測(cè)速模塊2、單片機(jī)模塊3、藍(lán)牙模塊7和視頻模塊6;霍爾測(cè)速模塊2安裝在動(dòng)感單車1的驅(qū)動(dòng)輪處,電源模塊4與單片機(jī)模塊3連接,霍爾測(cè)速模塊2與單片機(jī)模塊3連接,單片機(jī)模塊3與藍(lán)牙模塊5連接,藍(lán)牙模塊5和視頻模塊6無(wú)線連接;霍爾測(cè)速模塊2實(shí)時(shí)監(jiān)測(cè)動(dòng)感單車1驅(qū)動(dòng)輪的轉(zhuǎn)動(dòng),獲得速度脈沖信號(hào),并傳給單片機(jī)模塊3,單片機(jī)模塊3依據(jù)速度脈沖信號(hào)獲得動(dòng)感單車4的車速并傳送給藍(lán)牙模塊5,藍(lán)牙模塊5將速度的數(shù)據(jù)無(wú)線實(shí)時(shí)地傳送到視頻模塊6。
如圖2所示,電源模塊4的正負(fù)電源線分別與單片機(jī)模塊3的vcc引腳和gnd引腳相連。
如圖3所示,霍爾測(cè)速模塊2的vcc引腳與單片機(jī)模塊3的vcc引腳相連,霍爾測(cè)速模塊2的gnd引腳與單片機(jī)模塊3的gnd引腳相連,霍爾測(cè)速模塊2的d0引腳與單片機(jī)模塊3的p3.2引腳相連。
如圖4所示,藍(lán)牙模塊5的vcc引腳與單片機(jī)模塊3的vcc引腳相連,藍(lán)牙模塊5的gnd引腳與單片機(jī)模塊3的gnd引腳相連,藍(lán)牙模塊5的rxd引腳與單片機(jī)模塊3的txd引腳相連,藍(lán)牙模塊5的txd引腳與單片機(jī)模塊3的rxd引腳相連。
本發(fā)明的具體實(shí)施過(guò)程是:
在人勻速騎行單車過(guò)程中,通過(guò)頭戴或者車載的攝像機(jī)采集視頻,測(cè)速模塊2實(shí)時(shí)監(jiān)測(cè)動(dòng)感單車1驅(qū)動(dòng)輪的轉(zhuǎn)動(dòng),獲得速度脈沖信號(hào),并傳給單片機(jī)模塊3,依據(jù)速度脈沖信號(hào),單片機(jī)模塊3計(jì)算出動(dòng)感單車1的車速,計(jì)算方法如下:
動(dòng)感單車的車速為:
式中,v為動(dòng)感單車的車速,單位為轉(zhuǎn)/秒,t為速度脈沖信號(hào)的采樣時(shí)間,單位為毫秒,m為t時(shí)間內(nèi)單片機(jī)脈沖計(jì)數(shù)器的計(jì)數(shù)值,單位為個(gè),n為磁鋼個(gè)數(shù),單位為個(gè)。
通過(guò)單車上的攝像機(jī)勻速移動(dòng)采集到真實(shí)物理世界的視頻,人在體驗(yàn)虛擬現(xiàn)實(shí)騎行動(dòng)感單車1時(shí)觀看真實(shí)物理世界的視頻,騎行動(dòng)感單車1過(guò)程中通過(guò)霍爾測(cè)速模塊2檢測(cè)動(dòng)感單車1的速度脈沖信號(hào),單片機(jī)模塊3依據(jù)速度脈沖信號(hào)獲得動(dòng)感單車4的實(shí)時(shí)速度,發(fā)送到藍(lán)牙模塊5。
當(dāng)藍(lán)牙模塊5將動(dòng)感單車的速度數(shù)據(jù),無(wú)線實(shí)時(shí)地傳入視頻模塊6后,視頻模塊就可以依據(jù)動(dòng)感單車的速度數(shù)據(jù),播放視頻。動(dòng)感單車的速度快,視頻播放就快,動(dòng)感單車的速度慢,視頻播放就慢,動(dòng)感單車的速度為零,視頻就停止播放。
在視頻模塊6中根據(jù)實(shí)時(shí)速度計(jì)算播放幀率,先采用以下公式計(jì)算獲得視頻模塊6中的漫游路程為:
其中,k表示攝像機(jī)拍攝視頻時(shí)的幀率(單位為每秒幀數(shù)),v表示攝像機(jī)拍攝視頻時(shí)攝像機(jī)勻速移動(dòng)的速度(單位為千米每小時(shí));
再采用以下公式計(jì)算獲得動(dòng)感單車1所經(jīng)過(guò)的路程為l:
其中,n1、n2、…、n20表示霍爾測(cè)速模塊2在1s內(nèi)采樣獲得的各個(gè)速度脈沖信號(hào)數(shù)據(jù),d表示動(dòng)感單車1的驅(qū)動(dòng)輪直徑,m表示磁鋼個(gè)數(shù);
最后根據(jù)l=p×δk計(jì)算獲得播放幀率δk,再采用
基于vc++的視頻播放結(jié)構(gòu)用播放幀率控制播放真實(shí)物理世界的視頻,使得視頻播放和虛擬現(xiàn)實(shí)騎行相匹配,具體過(guò)程如下:
所述用播放幀率控制播放真實(shí)物理世界的視頻具體為:
在視頻模塊(6)中,首先通過(guò)opencv庫(kù)創(chuàng)建視頻顯示的窗口,并將視頻存儲(chǔ)到cvcapture結(jié)構(gòu)體中,用于一幀一幀讀取視頻。cvcapture是一個(gè)結(jié)構(gòu)體,用來(lái)保存圖像捕獲的信息,就像一種數(shù)據(jù)類型(如int,char等)只是存放的內(nèi)容不一樣,在opencv中處理視頻時(shí)按一幀一幀讀取。cvcapture結(jié)構(gòu)中,每獲取一幀后,這些信息都將被更新,獲取下一幀回復(fù)。
然后使用函數(shù)cvqueryframe(cvcapture*capture),從cvcapture結(jié)構(gòu)體中讀取每一幀的圖像,再使用函數(shù)cvshowimage(constchar*name,constcvarr*image),在窗口中顯示每一幀的圖像;
使用函數(shù)recvdata(lptstrlpszdata,constintnsize),打開(kāi)動(dòng)感單車數(shù)據(jù)傳輸串口,接收動(dòng)感單車的速度數(shù)據(jù),并計(jì)算相鄰幀之間的延時(shí),實(shí)現(xiàn)實(shí)時(shí)接收到的速度數(shù)據(jù)控制驅(qū)動(dòng)視頻的播放。