因此,我在Reddit上找到了一个项目,该项目使用树莓派和hat + mqtt服务器显示led矩阵上的位置。链接到项目here。可以在同一页面上找到源代码的链接。长话短说,代码有点过时了,所以我花了一周的大部分时间来更新/修订代码以使其正常工作,我很高兴地报告它(主要)在工作。
从本质上讲,我正在尝试从原点(纬度,经度)出发并使用距离和方位来使单个led灯点亮。我使用PyGeodesy来计算我的距离以及与输入经纬度的距离。所以我有我需要的一切。但是,我似乎无法使其正常工作。我相信是因为我的距离太大了;当我的输入更接近我的原点时,它可以完美地工作。坦率地说,这是我第一次使用python,json数据和pygeodesy。我不需要一个完整的答案,因此,如果有人可以向我指出正确的方向,那就太好了!
似乎我的挂断全部在find_points函数中。
def find_points(dist, bear):
dist_adj = 63 / 10.71
bear = (bear - 90 - 29 + 360) % 360
print (bear)
bear_rad = radians(bear)
print (bear_rad)
adj_mat = [[cos(bear_rad) * dist_adj, -sin(bear_rad) * dist_adj],[sin(bear_rad) * dist_adj, cos(bear_rad) * dist_adj]]
start_mat = [dist, 0]
xy = np.matmul(adj_mat , start_mat)
return xy[0], xy[1]
进入该功能的 dist 和 bear 的各自值为12050.054(米)和341.386(十进制度度)。我想我真正的问题是我不了解 dist_adj 是基于/基于什么的(源中提供的信息很少)。
编辑:我可以联系原始编码器来澄清此变量,他很乐意为我提供帮助。
dist_adj变量是led矩阵长度(64)除以地图长度(以km为单位)。我仍然在两个轴上都偏离了5公里,但能够对其进行故障排除并提出了解决方案。
所有这些公式(更不用说python,mqtt服务器和json数据)对我来说都是新的。我没有意识到该变量的用途是很愚蠢的,但是我认为立即有太多新内容暂时使我的大脑发疯。
无论如何,算一算解决了。 :)