徐 勇
(中國計(jì)量學(xué)院,杭州 310018)
基于單片機(jī)設(shè)計(jì)的可見光室內(nèi)定位通信裝置
徐 勇
(中國計(jì)量學(xué)院,杭州 310018)
本裝置由定位和通信雙系統(tǒng)構(gòu)成,分別以MK60和STM32F407ZGT6單片機(jī)為核心。定位系統(tǒng)中以O(shè)V7725攝像頭為主要傳感器,通過圖像二值化算法等方法實(shí)現(xiàn)了精確的定位。通信系統(tǒng)中信息通過PWM波編碼,由LED光珠的光源作為信息載體。光敏三極管作為接收傳感器使光信號轉(zhuǎn)化為電信號,信號篩選、放大、比較、識別等處理最終較好的實(shí)現(xiàn)了單工數(shù)據(jù)通信。
MK60;STM32F407ZGT6;OV7725攝像頭;圖像二值化;PWM波編碼
在80*80*80五面封閉的箱體中完成以下要求:
(1) 當(dāng)傳感器位于區(qū)域A ,測量電路能完成坐標(biāo)值的測量并在LCD屏上顯示出數(shù)值(絕對誤差<=10cm)且顯示所在區(qū)域字母 。
(2)將傳感器分別置于區(qū)域 B、C, D,E,測量電路能完成坐標(biāo)值的測量并在在LCD屏上顯示出數(shù)值(絕對誤差<=10cm) 且顯示所在區(qū)域字母 。
(3)測量電路 LCD 顯示坐標(biāo)值,顯示分辨率為 0.1cm。
(4)將傳感器置于底部平面任意一個區(qū)域,能精確測量并顯示其位置坐標(biāo)值,絕對誤差<= 3cm。
(5)LED 控制電路可由鍵盤輸入阿拉伯?dāng)?shù)字,在正常照明和定位 (誤差滿足基本要求(2)或(4)的情況下,測量電路能接收并顯示3 個 LED 發(fā)送的數(shù)字信息。
(6)LED 控制電路采用+12V 單電源供電,供電功率不大于 5w。
如圖3所示,該裝置由定位和通信系統(tǒng)構(gòu)成,由單一的電源進(jìn)行供電,通過穩(wěn)壓模塊實(shí)現(xiàn)了裝置所需電源和功率的供給。
系統(tǒng)之間相互獨(dú)立互不干擾。其中定位系統(tǒng)中主要部件:LCD液晶顯示屏、OV7725攝像頭及主控MK60。通信系統(tǒng)主要部件:點(diǎn)光源控制電路,光敏三極管接收模塊,OLED顯示屏。
2.2.1 定位系統(tǒng)
(1)定位原理。本系統(tǒng)中的OV7725攝像頭因FIFO存儲器的存儲量有限,故采取的圖像分辨率為240320。
同時在裝置的設(shè)計(jì)上,是將多個LED點(diǎn)光源集中到一處區(qū)域內(nèi),經(jīng)過成像處理后可在串口助手上顯示出一個略微帶毛刺的白色亮圓。因?yàn)镺V7725攝像頭輸出時為一幀一幀的輸出,且圖像里的像素一般遵循從左到右從上到下的掃描順序,故可通過圖像二值化處理將數(shù)據(jù)轉(zhuǎn)存入一個二維數(shù)組,便于我們?nèi)ヌ幚怼?/p>
經(jīng)過多次將攝像頭擺放到箱底四個角落與中心點(diǎn)進(jìn)行圖像及數(shù)據(jù)采集測試后推得攝像頭正放在燈光下時的空間位置(二維數(shù)組序列號),記此序列號為(,)。并經(jīng)過大量實(shí)驗(yàn)估算得到:每實(shí)際距離移動5cm與數(shù)組中序列號數(shù)值變化的比例,記該比例為“λ”。
假定白點(diǎn)為“1”,黑點(diǎn)為“0”,由MK60單片機(jī)對所得到的二維數(shù)組進(jìn)行(自左向右,從上到下)處理。當(dāng)單片機(jī)對二維數(shù)組內(nèi)的數(shù)據(jù)進(jìn)行逐行掃描時,將第一個碰到 “1”的坐標(biāo)號記為(X1,Y1),記這行最后一個“1”的坐標(biāo)號為(X2,Y2),跳轉(zhuǎn)到下一行掃描時第一個碰到的 “1”的坐標(biāo)號記為(X3,Y3),且記這行最后一個“1”坐標(biāo)號為(X4,Y4),分別比較Y1和Y3的大小,Y2與Y4的大小。若Y1>Y3,則將(X3,Y3)數(shù)組坐標(biāo)號緩存下來,并繼續(xù)與下一個Yi值作比較,反之則保留(X1,Y1)。Y2和Y4則與之相反,若Y2>Y4,則將(X2,Y2)數(shù)組坐標(biāo)號緩存下來,反之保留(X4,Y4)。當(dāng)掃描完所需處理的數(shù)組后,即可得到兩個不同的數(shù)組坐標(biāo)號記為(,)和(,)。則偏移后圓的圓心即為:。設(shè)實(shí)際X,Y偏移距離分別為和,則兩者之間存在如下等式:
并且由于圖像中圓點(diǎn)的移動方向與實(shí)際移動的方向剛好相反,因此最終還需要通過程序進(jìn)行判斷處理才能顯示在LCD屏幕上。
(2)測試結(jié)果及其誤差分析。根據(jù)圖4顯示:實(shí)際距離與理論距離的相對誤差Δ在2cm處徘徊,除極個別點(diǎn)超出要求外,其他點(diǎn)均滿足要求的相對誤差<=3cm,從而實(shí)現(xiàn)了較高精度的空間定位。
誤差產(chǎn)生原因:
1)在由于太陽光的漫反射導(dǎo)致圖像出現(xiàn)光斑,因而導(dǎo)致光點(diǎn)坐標(biāo)判斷失誤。造成相對坐標(biāo)偏差嚴(yán)重。
2)擺放攝像頭時未擺正,導(dǎo)致鏡頭傾斜圖像生成錯位。
3)人手動扶持,易容易產(chǎn)生抖動,使得圓心生成偏差。
2.2.2 通信系統(tǒng)
(1)通信流程。本系統(tǒng)分別由發(fā)送和接收兩個模塊組建成。核心為STM32F407ZGT6單片機(jī)板,根據(jù)要求將所需要發(fā)送的10個阿拉伯?dāng)?shù)字分別對應(yīng)10個按鍵,由STM32F407通過檢測相應(yīng)端口高低電平的跳變產(chǎn)生的跳變沿判斷按鍵是否按下,如若按下則產(chǎn)生相對應(yīng)的PWM波,并由控制電路將LED光珠光源發(fā)出的可見光轉(zhuǎn)變?yōu)樾畔⑤d體。在接收部分通過光電傳感器來實(shí)現(xiàn)光信號到電信號的轉(zhuǎn)變,經(jīng)過濾波放大后輸入到解調(diào)模塊中,通過解調(diào)即可還原初始信息,從而顯示到OLED屏幕上。
(2)發(fā)射端和接收端原理。發(fā)射端由3個LED燈珠組成,以3個L298N作為電路驅(qū)動。當(dāng)按鍵模塊中的某個按鍵按下,STM32F407單片機(jī)端口產(chǎn)生相應(yīng)的PWM波,并將其作為輸出與L298N的一個輸入端想接,另一端則與地相連。當(dāng)輸入為高電平時L298N內(nèi)正常工作電路被導(dǎo)通有電流產(chǎn)生,LED燈珠燈亮。當(dāng)輸入為低電平時電路為斷路,LED燈珠熄滅。燈珠的亮滅就是電信號轉(zhuǎn)化為光信號的途徑。由此可以通過改變PWM波的占空比來控制燈珠的亮滅時間的長短從而實(shí)現(xiàn)光信號的調(diào)制。
關(guān)于PWM波的占空比改變主要是使用STM32F4系列的官方庫函數(shù)。其中最主要的是stm32f4xx_tim.h頭文件和stm32f4xx_tim.c文件。通過更改自動重載寄存器和預(yù)分頻器寄存器內(nèi)的數(shù)值來控制周期。
并通過設(shè)置捕獲/比較寄存器來調(diào)控高電平在一個周期所占比例。在實(shí)驗(yàn)中我們設(shè)定了周期都為1kHz,但占空比不同的10個PWM波。
光敏三極管是作為接收端的光電傳感器來使用。它的靈敏度相較于光敏二極管來說更高,對于入射光信號的響應(yīng)時間為,因此適合做信號的采集。
光敏三極管又稱光電三極管,它不僅具有電流放大作用,同時可以由光輻射來加以控制。基本原理是當(dāng)有光照射到PN結(jié)上時,光敏三極管吸收光能并轉(zhuǎn)變?yōu)殡娔?。?dāng)光照射到發(fā)射結(jié)時基極處會產(chǎn)生光生電流并且由基極進(jìn)入發(fā)射極,因此集電極回路中就產(chǎn)生了倍的電流信號。由于這個電流信號存在著許多無用的雜波故設(shè)計(jì)了帶通濾波器(中心頻率為1kHz,Q=5,增益為1的巴特沃斯2級接續(xù)的BPF)進(jìn)行篩選。經(jīng)過該窄帶濾波器濾波后就可以得到所需頻段(1KHz左右)的信號,但由于信號的電壓非常微小,在進(jìn)行比較前還需將它通過電壓放大模塊放大一百倍。放大后連續(xù)不規(guī)則的電壓信號通過電壓比較器整流成占空比不同的方波信號,并進(jìn)一步輸入到管腳口上,在管腳口上STM32F407單片機(jī)捕獲信號的上下跳變沿來判斷方波的高電平時間,最后經(jīng)過校對在OLED屏幕上顯示出相應(yīng)的數(shù)值。實(shí)現(xiàn)了單工數(shù)據(jù)通信。
(3)測試結(jié)果及分析。誤差分析:
1)由于光敏三極管受到光的影響較大,室內(nèi)陽光直射的干擾導(dǎo)致電壓信號出現(xiàn)偏差使得信號丟失。
2)硬件基礎(chǔ)比較單薄,線路中存在問題。
3)光信號在空氣中傳輸?shù)倪^程中受到干擾導(dǎo)致頻率發(fā)生了變化,在經(jīng)過窄帶濾波時由于不滿足要求被濾除了導(dǎo)致信息空缺。
表1 通信系統(tǒng)驗(yàn)證結(jié)果
為了提高精準(zhǔn)度,實(shí)驗(yàn)中我們在鏡頭上加裝了濾光片有效的濾除了干擾光,軟件算法改換成為了二次掃描法。第一次掃描結(jié)束后,MK60將對掃描出來的數(shù)組坐標(biāo)號進(jìn)行第二次的掃描判斷。雖然犧牲了時間,但是定位的精準(zhǔn)度有了顯著的提高。通過跟換更精準(zhǔn)的光敏傳感器并將電路制作成pcb板子減少了外部導(dǎo)線的連接,使得光通信方面得到了較大的提升。
本文可見光室內(nèi)定位通信裝置基于MK60和STM32F407ZGT6單片機(jī),在系統(tǒng)設(shè)計(jì)過程中,力求硬件線路簡單,充分發(fā)揮軟件編程方便靈活的特點(diǎn),巧妙的利用攝像頭像素的精確定位、并以LED光源為信息載體進(jìn)行單工數(shù)據(jù)通信,較好的完成了基本部分的要求并對擴(kuò)展部分進(jìn)行深入研究,實(shí)現(xiàn)了定位與通信相結(jié)合。
[1]王旭東,胡晴晴,吳楠.高精度室內(nèi)可見光定位算法[A].1005-0086,2015(07):05-0862.
[2]沈芮,張劍.基于可見光通信的室內(nèi)定位方法[A].1671-0673,2014(05):01-0041.
[3]王濤.基于51單片機(jī)的LED可見光通信系統(tǒng)[J].電視技術(shù),2013,37(09).
[4]丁德強(qiáng),柯熙政.可見光通信及其關(guān)鍵技術(shù)研究[J].半導(dǎo)體光電,2006(02):15-18.
[5]都文和,陳晨.基于 PWM 的可見光通信系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2016,40(11):50-53.
10.16640/j.cnki.37-1222/t.2018.01.112
徐勇(1997-),男,浙江麗水人,本科。