制作基于arduino和RSCG12864B液晶模塊的圖形顯示GPS導(dǎo)航系統(tǒng),其工作效果和成本可能無法與TB上的導(dǎo)航產(chǎn)品相媲美,但動手過程將為您帶來樂趣和知識。
背景知識要理解:
Arduino相關(guān)基礎(chǔ);
可以使用12864 LCD模塊;
可以使用arduino獲取GPS模塊通過串行通信定位信息;
能夠用arduino操作SD卡模塊;
需要的主要硬件:
Arduino UNO 1件;
RSCG12864B01 LCD模塊1件;
U-PD2圖像下載工具
1 GPS模塊;
1套SD卡模塊和SD卡;
原理介紹:
地圖數(shù)據(jù)根據(jù)圖塊算法存儲在SD卡中,GPS定位信息通過串口獲得從中解析端口和緯度和經(jīng)度坐標(biāo),并在12864上讀取相應(yīng)的地圖數(shù)據(jù)液晶模塊根據(jù)經(jīng)緯度坐標(biāo),同時顯示定位坐標(biāo)點。
1。地圖存儲算法 - 平鋪系統(tǒng)地圖平鋪系統(tǒng)
此生產(chǎn)中使用的地圖數(shù)據(jù)和地圖存儲算法源自Microsoft的bing貼圖,并已相應(yīng)地進行了修改。有關(guān)詳細信息,請參閱:
Virtual Earth Tile圖像URI參數(shù)分析
Goolge和Microsoft Map Url參數(shù)
在圖塊系統(tǒng)中,地圖采用金字塔分層存儲結(jié)構(gòu)。不同的圖層具有不同級別的地圖分辨率圖精細度。每層地圖被劃分為具有相同像素大小256×256的瓦片。該算法要解決的問題是給出
緯度和經(jīng)度坐標(biāo)以及縮放級別層索引得到相應(yīng)的區(qū)塊編號。
算法在連接結(jié)束時實現(xiàn)的代碼[1 *]可以完全參考。
2。設(shè)計12864 LCD模塊
12864液晶模塊是單色液晶顯示模塊,寬128像素,高64像素。這種設(shè)計有兩種設(shè)計,以適應(yīng)模塊顯示。
1。將256X256像素磁貼切割成8個128x64像素的子圖塊,如下圖所示:
每層的每個圖塊都會相應(yīng)處理。
2。通過閾值方法將8位png索引圖像的道路數(shù)據(jù)轉(zhuǎn)換為二進制映射數(shù)據(jù)文件。為了在原始圖像中顯示文本信息,使用多閾值提取和求和方法來提取原始圖中的背景,特征和注釋。
文本數(shù)據(jù),由于文本和背景之間的干擾,提取效果需要提高。
顯示效果:
地圖生成程序需要連接到互聯(lián)網(wǎng):
通過設(shè)置地圖范圍緯度和經(jīng)度信息獲取要使用的區(qū)域,可以通過軟件或網(wǎng)頁獲取可顯示緯度和經(jīng)度的地圖,如google earth。 ##緯度和經(jīng)度的最大值和最小值都大而小,左右都很小。
建議使用縮放級別設(shè)置范圍從1到15.較大的地圖范圍和更高的縮放級別將增加地圖下載和顯示加載的時間。
Arduino代碼說明:
1。在RSCG12864B文件中添加一個點函數(shù)以減少重繪區(qū)域;
2。使用具有小內(nèi)存和只讀功能的SD模塊庫petit_fatfs;
3。為地圖數(shù)據(jù)緩存分配1K內(nèi)存。由于SD卡庫僅支持8.3文件名,因此地圖數(shù)據(jù)文件名由十六進制可變長度壓縮編碼命名。
在線留言
地址:廣東省深圳市龍華區(qū)龍華街道清湖社區(qū)雪崗北路308號利榮豐大廈C座713 電話:0755-28169430 粵ICP備16116153號