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