登錄|立即注冊(cè)|使用QQ帳號(hào)登錄
論壇 > 智能小車/機(jī)器人
發(fā)帖|
看4517|回1|收藏
樓主 ID:250717 只看他
2019-6-23 21:56
基于安卓的視頻控制小車
bg3.jpg
圖片1.png
目錄
一、 創(chuàng)意來(lái)源
二、 項(xiàng)目概述
三、 優(yōu)勢(shì)
四、 功能
五、 制作材料
六、 詳細(xì)介紹
圖片2.png
n 一、創(chuàng)意來(lái)源
當(dāng)今在安防監(jiān)控領(lǐng)域,大多數(shù)民用監(jiān)控設(shè)備有幾大弊端:
位置固定:大多數(shù)設(shè)備位置固定,不便移動(dòng),即使有一些可以攝像頭可以轉(zhuǎn)動(dòng),但是仍然無(wú)法實(shí)現(xiàn)對(duì)大部分區(qū)域的監(jiān)控,比如一些存在死角的位置就不會(huì)被監(jiān)控(床底,墻角等等),因此小車的可移動(dòng)性監(jiān)控有較為突出的優(yōu)點(diǎn)。應(yīng)用在家庭監(jiān)控領(lǐng)域較為合適,尤其是家中無(wú)人的時(shí)候。
有線傳輸,電源線:大多數(shù)是有線傳輸,即使有一些是無(wú)線傳輸,但是仍要被束縛在電源線上。而本小車就不同了,可以直接裝個(gè)充電寶做備用電源
價(jià)格昂貴:當(dāng)今一套完整的監(jiān)控設(shè)備成本較高。而本小車?yán)昧诉^(guò)時(shí)淘汰的手機(jī),大大節(jié)約了成本,一定程度上控制了廢舊手機(jī)的污染?;诋?dāng)今監(jiān)控設(shè)備這些缺點(diǎn),構(gòu)造出了基于安卓的視頻控制小車。

n 二、項(xiàng)目概述
本設(shè)計(jì)是將安卓技術(shù)、單片機(jī)技術(shù)、無(wú)線通信技術(shù)等相關(guān)技術(shù)應(yīng)用到視頻監(jiān)控系統(tǒng)中,可實(shí)現(xiàn)視頻監(jiān)控系統(tǒng)的設(shè)備移動(dòng)化,由可移動(dòng)監(jiān)控平臺(tái)、控制軟件兩部分組成。使用安卓手機(jī)作為控制端,通過(guò)無(wú)線網(wǎng)絡(luò)對(duì)監(jiān)控平臺(tái)進(jìn)行移動(dòng)方向、速度的控制,平臺(tái)上的攝像頭實(shí)時(shí)采集視頻圖像信號(hào)并通過(guò)無(wú)線WiFi網(wǎng)絡(luò)將視頻信號(hào)實(shí)時(shí)傳輸?shù)绞謾C(jī)端觀看,然后可實(shí)時(shí)拍照錄像并可實(shí)時(shí)存儲(chǔ)。由于監(jiān)控端可移動(dòng),可以在無(wú)人進(jìn)入的情況下獲取危險(xiǎn)環(huán)境的視頻圖像。具有控制方便,監(jiān)控靈活,模塊化,可拓展性強(qiáng)等優(yōu)點(diǎn),可應(yīng)用于險(xiǎn)情探測(cè)、防爆、現(xiàn)場(chǎng)巡視、家庭安防、圖像采集等領(lǐng)域。
n 三、優(yōu)勢(shì):
    設(shè)計(jì)之初不完全是為了DIY,我是希望能夠做出一款實(shí)用便宜易用的產(chǎn)品,所以沒(méi)有采用常用的DIY開源硬件方案例如arduino,而是選擇了價(jià)格便宜,應(yīng)用廣泛的STC89C52RC單片機(jī)芯片來(lái)做控制方案。當(dāng)然也相信大家能理解我為什么會(huì)選擇android手機(jī)來(lái)做智能小車大腦。
1. 我們制作的智能小車拋開性能低下、操作復(fù)雜的單片機(jī),使用移動(dòng)終端作為控制端,利用移動(dòng)終端(例如手機(jī),電腦,平板)的高性能處理器和低廉的價(jià)格,降低了研發(fā)成本和研發(fā)難度。
2. 通過(guò)移動(dòng)網(wǎng)絡(luò)或者本地局域網(wǎng)進(jìn)行連接,可以在任何地方,使用任何設(shè)備即可對(duì)小車進(jìn)行遠(yuǎn)程遙控,對(duì)家庭安全進(jìn)行防護(hù)。
3. 小車可以近距離紅外遙控,在可視距離下,對(duì)小車進(jìn)行遙控。
雖然紅外的遙控的控制距離只有10m左右,無(wú)法繞過(guò)障礙物進(jìn)行遙控。但發(fā)射紅外遙控信號(hào)的手機(jī)就架在小車上,可以將手機(jī)的紅外發(fā)射器和紅外接收器放在一塊固定住。雖然并不是所有的安卓手機(jī)都有紅外發(fā)射器,但都有3.5mm的耳機(jī)接口,紅外信號(hào)的38kHz頻率在音頻范圍內(nèi),可以用耳機(jī)接口外接的紅外發(fā)光二極管發(fā)射紅外遙控信號(hào)。如果使用藍(lán)牙來(lái)完成對(duì)小車的控制,小車上需要配備藍(lán)牙模塊與手機(jī)進(jìn)行配對(duì)通信。而且并不是所有的手機(jī)都支持藍(lán)牙,早期的一些安卓智能手機(jī)就不支持藍(lán)牙。而且藍(lán)牙需要配對(duì)連接,紅外遙控?zé)o需配對(duì)連接,省去等待時(shí)間。相比藍(lán)牙模塊,紅外模塊成本更低。所以采用紅外遙控模式。

4. 與WIFI IP camera對(duì)比:
1)可以到處跑,因?yàn)椴恍枰逯娫淳€;2)省電,待機(jī)長(zhǎng),所以不用擔(dān)心充電問(wèn)題。3)監(jiān)控聲音情況。

n 四、功能:
1)實(shí)時(shí)視頻(android手機(jī)攝像頭開發(fā))
2)紅外遙控車(STC89C52RC )
3)人臉檢測(cè)追蹤(android手機(jī)編程)

n 五、制作材料:

1)控制板包括:
51單片機(jī)最小系統(tǒng)
紅外遙控接收一體化模塊VS1838B
L293D電機(jī)驅(qū)動(dòng)模塊
2)小車底盤(淘寶上面有非常多的小車底盤賣,自己任選),
3)馬達(dá)TT馬達(dá) 2個(gè)
4)輪子:2個(gè)
5)鋰電池:2200mAH  兩節(jié)7.4V   + 充電器
6)杜邦線若干

n 六、詳細(xì)介紹
1相關(guān)技術(shù)
Android攝像頭自定義相機(jī)開發(fā)、Android人臉檢測(cè)(FaceDetector)API開發(fā)、Android語(yǔ)音識(shí)別開發(fā)、Android紅外遙控開發(fā)、Android網(wǎng)絡(luò)實(shí)時(shí)視頻傳輸開發(fā)、單片機(jī)紅外解碼及電機(jī)控制 。

2工作方式
基于安卓的視頻控制小車?yán)昧四馨l(fā)射紅外信號(hào)的安卓舊手機(jī)作為核心,通過(guò)WiFi將手機(jī)或電腦監(jiān)控端與車載手機(jī)控制端相連接,繼而間接實(shí)現(xiàn)手機(jī)或電腦監(jiān)控端對(duì)小車的控制。
通過(guò)手機(jī)或電腦端向手機(jī)發(fā)送指令,然后手機(jī)執(zhí)行指令向小車發(fā)射紅外信號(hào)進(jìn)行相應(yīng)控制,并調(diào)用車載手機(jī)攝像頭將小車前方的圖像信息回傳給手機(jī)或電腦監(jiān)控端。
另外,小車還可以對(duì)人臉進(jìn)行檢測(cè)跟隨,根據(jù)人臉在視頻中位置,不斷調(diào)整小車方向直到人臉位于屏幕中心,增強(qiáng)娛樂(lè)性。
3手機(jī)應(yīng)用介紹

1)用手機(jī)替代網(wǎng)絡(luò)攝像頭,更智能,更省電;
2)支持紅外遙控玩具遙控車; (移動(dòng)功能,需要配套本設(shè)計(jì)紅外遙控小車)
3)人臉跟隨;(娛樂(lè)功能,需要配套本設(shè)計(jì)紅外遙控小車)
使用方法:
1、安裝應(yīng)用,分別在兩部手機(jī)上安裝;
2、將兩部手機(jī)連入同一WIFI網(wǎng)絡(luò)下,輸入對(duì)方IP地址;
                                                       Screenshot_20190623_185649_com.csst.videotalk.jpg
3、把其中一部手機(jī)放到紅外遙控玩具車上;

下面是視頻遙控演示視頻+人臉跟隨演示視頻:
游客,本帖隱藏的內(nèi)容需要積分高于 1 才可瀏覽,您當(dāng)前積分為 0



沙發(fā) ID:250717
2019-7-7 09:09

基于安卓的視頻遙控小車

上一篇簡(jiǎn)單介紹了“基于安卓的視頻遙控小車”,這次詳細(xì)說(shuō)說(shuō)此設(shè)計(jì)的安卓端的紅外遙控部分。
手機(jī)和小車之間的通信我用的不是藍(lán)牙是紅外遙控,雖然紅外的遙控的控制距離只有10m左右,無(wú)法繞過(guò)障礙物進(jìn)行遙控。但發(fā)射紅外遙控信號(hào)的手機(jī)就架在小車上,可以將手機(jī)的紅外發(fā)射器和紅外接收器放在一塊固定住。雖然并不是所有的安卓手機(jī)都有紅外發(fā)射器,但都有3.5mm的耳機(jī)接口,紅外信號(hào)的38kHz頻率在音頻范圍內(nèi),可以用耳機(jī)接口外接的紅外發(fā)光二極管發(fā)射紅外遙控信號(hào)。如果使用藍(lán)牙來(lái)完成對(duì)小車的控制,小車上需要配備藍(lán)牙模塊與手機(jī)進(jìn)行配對(duì)通信。而且并不是所有的手機(jī)都支持藍(lán)牙,早期的一些安卓智能手機(jī)就不支持藍(lán)牙。而且藍(lán)牙需要配對(duì)連接,紅外遙控?zé)o需配對(duì)連接,省去等待時(shí)間。相比藍(lán)牙模塊,紅外模塊成本更低。所以采用紅外遙控模式。
上邊說(shuō)的都是后話了,當(dāng)初之所以用紅外,是因?yàn)槲乙婚_始用的不是OPPO A51 ,用的是酷派8076D。那會(huì)兒A51還用著呢,這個(gè)酷派手機(jī)有WiFi但沒(méi)有藍(lán)牙,所以手機(jī)和單片機(jī)之間的通信就成了問(wèn)題。
當(dāng)時(shí)的小車還是這個(gè)樣子
我從網(wǎng)上搜了好多解決方案,智能手機(jī)是開發(fā)完成的產(chǎn)品,留出的接口不多,也只有USB口和耳機(jī)口:
一,用手機(jī)的USB口,但我發(fā)現(xiàn)酷派8076D不支持OTG,然后又從網(wǎng)上搜說(shuō)是廠家只是刪除了配置文件,我試了試,還是不行,它硬件上應(yīng)該也沒(méi)有升壓電路(手機(jī)電池一般3.7V,USB是5V供電)。這部分參考使用android IOIO和安卓手機(jī)制作視頻遙控小車(控制燈的開關(guān)、實(shí)時(shí)視頻傳輸、方向控制)
二,用耳機(jī)口,這個(gè)網(wǎng)上也有例子一文讀懂Android/iOS手機(jī)如何通過(guò)音頻接口與外設(shè)通信,他這種方案是雙工通信,但這個(gè)吧,涉及到信號(hào)處理,和數(shù)學(xué)打交道,鄙人數(shù)學(xué)渣渣。再者得買個(gè)這種外設(shè),no money啊。然后我之前研究過(guò)遙控精靈(ZaZaRemote),不支持紅外遙控的手機(jī),在耳機(jī)孔插個(gè)紅外發(fā)射頭(smart zaza)就行了。這種方案是單工通信,小車配套上紅外一體化接收頭就可以遙控小車移動(dòng)。不過(guò)不同手機(jī)的耳機(jī)口驅(qū)動(dòng)力不一樣,有的驅(qū)動(dòng)不了紅外發(fā)光二極管(壓降1.4V左右),我的酷派就驅(qū)動(dòng)不了,我直接把二極管接在手機(jī)喇叭上。
最后,選擇了音頻口發(fā)射紅外信號(hào)這種方案。其實(shí)造車之前,就開始在研究紅外了,那會(huì)兒考四六級(jí)和期末英語(yǔ)考試都是用的紅外耳機(jī),就想著期末英語(yǔ)怎么作弊(^_−)☆,因?yàn)槁犃褪钦n本上的。教室有個(gè)紅外發(fā)射器,后來(lái)查了些資料發(fā)現(xiàn)就是音頻范圍,把喇叭拆了接上紅外發(fā)光二極管,就能用紅外耳機(jī)聽到聲音。不過(guò)沒(méi)用在作弊上,因?yàn)楣β侍×耍崤墒謾C(jī)喇叭改的),蓋不過(guò)教室的。
音頻轉(zhuǎn)紅外這塊,我還沒(méi)做好,我只是錄了紅外遙控信號(hào)的音頻文件,然后播放。但我發(fā)現(xiàn)準(zhǔn)確率大概只有八成,感覺(jué)這東西涉及到傅里葉變換,音頻是正弦波,紅外信號(hào)是方波,直接用音頻驅(qū)動(dòng)是有誤差的吧,我也不是很懂,數(shù)學(xué)不好。網(wǎng)上我搜到這篇是用安卓實(shí)現(xiàn)的安卓手把手教你學(xué)習(xí)并實(shí)現(xiàn) 安卓耳機(jī)口音頻轉(zhuǎn)紅外發(fā)射,但我是用底層C語(yǔ)言實(shí)現(xiàn)的,用的C4droid寫的在手機(jī)上運(yùn)行,參考的這篇 OpenSL ES范例,無(wú)java代碼,純C
再后來(lái),OPPO A51不用了,就把它用在小車上。OPPO A51支持紅外遙控,所以不用那么麻煩。參考這篇Android編程紅外編程——紅外碼詳析
單片機(jī)紅外解碼程序參考Android遙控器開發(fā),這個(gè)后邊有單片機(jī)紅外解碼程序。
因?yàn)锳ndroid4.4及以上才有ConsumerIrManager類用來(lái)操控紅外設(shè)備,所以以下程序是基于Android 5.1系統(tǒng)的OPPO A51手機(jī)開發(fā)和測(cè)試的。
首先從系統(tǒng)服務(wù)中獲取到ConsumerIrManager服務(wù)。
IR=(ConsumerIrManager)getSystemService(CONSUMER_IR_SERVICE);
然后將要發(fā)送的紅外碼存入數(shù)組中
//0x73    int[] pattern2 = { 9000, 4500,             560, 560,     560, 560,     560, 560,     560, 560,     560,560,     560, 560,     560, 560,     560, 560,             560, 1690,     560, 1690,     560, 1690,    560, 1690,     560, 1690,     560, 1690,     560, 1690,     560, 1690, /*0001 1000*/560, 560,    560, 560,     560, 560,     560, 1690,     560, 1690,     560, 560,     560, 560,     560, 560,             560, 1690,     560, 1690,     560, 1690,     560, 560,     560, 560,     560, 1690,     560, 1690,     560, 1690,             560, 42020, 9000, 2250, 560, 98190 };
一種交替的載波序列模式,通過(guò)毫秒測(cè)量
引導(dǎo)碼,地址碼,地址碼,數(shù)據(jù)碼,數(shù)據(jù)反碼
第三行數(shù)據(jù)碼反置,比如0x12=0001 0010反置為 0100 1000
可能和接收有關(guān)系,只有反置了之后才能接收正常
最后通過(guò)如下方法最終發(fā)送紅外信號(hào)。
mCIR.transmit(hz, pattern2);//后
transmit(int carrierFrequency, int[] pattern)  :此方法控制手機(jī)產(chǎn)生 carrierFrequency為頻率的,以pattern為紅外開關(guān)的時(shí)間數(shù)組,發(fā)送紅外信號(hào)。(例如:transmit(38000,{100,200,300,400})    將會(huì)產(chǎn)生一個(gè)頻率為38KHz的紅外信號(hào),信號(hào)的電平高低為 100us高電平,200us低電平,300us高電平,400us低電平。注意pattern的數(shù)據(jù)個(gè)數(shù)要為偶數(shù)個(gè),不然報(bào)錯(cuò)。)。
手機(jī)端紅外發(fā)射功能的程序流程圖如下圖所示。


最后再放兩張圖
還可以參考以下鏈接

附件列表
Screenshot_20190625_135022_com.csst.videotalk.jpg (2019-6-25 23:11 上傳)

原圖尺寸 1018.99 KB, 下載次數(shù): 112

Screenshot_20190625_135022_com.csst.videotalk.jpg

51黑電子論壇

Powered by Discuz! X3.1

首頁(yè)|標(biāo)準(zhǔn)版|觸屏版|電腦版