制作基于arduino和RSCG12864B液晶模块的图形显示GPS导航系统,其工作效果和成本可能无法与TB上的导航产品相媲美,但动手过程将为您带来乐趣和知识。
背景知识要理解:
Arduino相关基础;
可以使用12864 LCD模块;
可以使用arduino获取GPS模块通过串行通信定位信息;
能够用arduino操作SD卡模块;
需要的主要硬件:
Arduino UNO 1件;
RSCG12864B01 LCD模块1件;
U-PD2图像下载工具
1 GPS模块;
1套SD卡模块和SD卡;
原理介绍:
地图数据根据图块算法存储在SD卡中,GPS定位信息通过串口获得从中解析端口和纬度和经度坐标,并在12864上读取相应的地图数据液晶模块根据经纬度坐标,同时显示定位坐标点。
1。地图存储算法 - 平铺系统地图平铺系统
此生产中使用的地图数据和地图存储算法源自Microsoft的bing贴图,并已相应地进行了修改。有关详细信息,请参阅:
Virtual Earth Tile图像URI参数分析
Goolge和Microsoft Map Url参数
在图块系统中,地图采用金字塔分层存储结构。不同的图层具有不同级别的地图分辨率图精细度。每层地图被划分为具有相同像素大小256×256的瓦片。该算法要解决的问题是给出
纬度和经度坐标以及缩放级别层索引得到相应的区块编号。
算法在连接结束时实现的代码[1 *]可以完全参考。
2。设计12864 LCD模块
12864液晶模块是单色液晶显示模块,宽128像素,高64像素。这种设计有两种设计,以适应模块显示。
1。将256X256像素磁贴切割成8个128x64像素的子图块,如下图所示:
每层的每个图块都会相应处理。
2。通过阈值方法将8位png索引图像的道路数据转换为二进制映射数据文件。为了在原始图像中显示文本信息,使用多阈值提取和求和方法来提取原始图中的背景,特征和注释。
文本数据,由于文本和背景之间的干扰,提取效果需要提高。
显示效果:
地图生成程序需要连接到互联网:
通过设置地图范围纬度和经度信息获取要使用的区域,可以通过软件或网页获取可显示纬度和经度的地图,如google earth。 ##纬度和经度的最大值和最小值都大而小,左右都很小。
建议使用缩放级别设置范围从1到15.较大的地图范围和更高的缩放级别将增加地图下载和显示加载的时间。
Arduino代码说明:
1。在RSCG12864B文件中添加一个点函数以减少重绘区域;
2。使用具有小内存和只读功能的SD模块库petit_fatfs;
3。为地图数据缓存分配1K内存。由于SD卡库仅支持8.3文件名,因此地图数据文件名由十六进制可变长度压缩编码命名。
地址:广东省深圳市龙华区龙华街道清湖社区雪岗北路308号利荣丰大厦C座713 电话:0755-28169430 粤ICP备16116153号