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