跳到主要内容

gps模块运动轨迹记录

image.png
小喵推出了gps定位模块。关于gps我想大家最先想到的。就是导航和运动轨迹。今天就分享一个简单的项目,用未来板驱动gps模块,记录行动轨迹并且绘制地图。

线路连接

程序编写-kittenblock

完整程序

image.png

程序分析
image.png

更新gps模块返回的gps数据,在下一次执行这个积木块之前所有gps数据相关的积木块都不会更新。所以这个积木还可以保证数据的一致性。


image.png
gps模块需要在开阔的场地才能接收到微信信号。关于当前是否能接收到卫星信号,直观的一个方式就是看模块背后是否有持续闪烁的绿灯,当绿灯闪烁就表示正在持续不断地接受微信消息。在没有收到位置信息的时候经纬度就会返回-1。


image.png
用-连接各个坐标组写入到指定的文件,方便后续拆解


image.png
将更新的坐标显示到屏幕

把程序下载之后,你可以带着未来板和gps去外面溜达一圈。在室内通常是无法收到坐标信息的。注意观察gps背后,当收到卫星信号的时候,会有一个绿灯闪烁。

程序编写-python

导出坐标数据
image.png

完整程序

注:这段代码是在电脑用python执行的,所以你需要安装python,还需要安装folium模组


1. 关于如何在电脑安装python可以看看这个教程:
[https://www.runoob.com/python3/python3-install.html](https://www.runoob.com/python3/python3-install.html)
2. 安装成功之后你可以可以用此命令安装folium模组
(如果对这句话有困惑,你可以在网上查询python pip命令相关进行了解)
pip install folium
import folium

# 创建地图对象,设置中心点和缩放级别
m = folium.Map(location=[22.75013, 113.9257], zoom_start=15)

# 添加路线
coordinates_str = "将test.txt文件里面的内容复制到此处替换之"
coordinates_list = coordinates_str.split('-')
coordinates = [(float(coord.split(',')[1][:2]) + float(coord.split(',')[1][2:]) / 60,
float(coord.split(',')[0][:3]) + float(coord.split(',')[0][3:]) / 60) for coord in coordinates_list]
folium.PolyLine(locations=coordinates, color='blue').add_to(m)

# 保存地图为 HTML 文件并在浏览器中打开
m.save('map_with_route.html')

程序效果

在程序执行之后,如果不出意外会生成一个map_with_route.html文件,直接双击打开它,你就可以看到路线轨迹了
image.png
image.png