所有关于电路
项目

用picaxe制作一个gps时钟

2015年12月19日通过Jens Christoffersen.

在本文中,我将向您展示使用Picaxe 20m2从GPS模块获取时间和日期的方法。

在本文中,我将向您展示使用Picaxe 20m2从GPS模块获取时间和日期的方法。

要求

介绍

有二十多颗用于太空导航的卫星。他们不断地提供时间、日期和地点,只要你有GPS接收器,这些都是免费的。在本文中,我将制作一个时钟,显示从那些卫星接收到的时间和日期。我不想深入了解卫星的工作原理,但我知道它们就像无名之神一样,在那里发送信息。

我要做的钟会在液晶显示屏上显示时间和日期。

硬件

我要用的模块是EM-411。这是一个6引脚模块,其中第6引脚用于引脚头方向。

连接是GND,VIN,TX,RX,GND和NC。在我的时钟里,我不会使用RX引脚。我没有向我的GPS模块发送任何命令。TX连接到Picaxe 20m2引脚4.即C.6,仅输入它。

这是示意图:

零件清单

这个截图包括EagleCAD设备、包和库。

软件

这个设备的软件很容易理解。然而,我觉得有必要解释一些事情。

首先,gps模块在Tx引脚上发送大量信息。所有这些都是由单片机接收的。使用命令:

serin gps_rx,t4800_8,(“$ gpgga”),@bptrcc,@bptrinc,@bptrcc,@bptrc,@bptrinc,@bptrinc,@bptr

给我们我们需要的东西。

把这条线分开:

serin - 该命令用于将串行数据接收到Picaxe 20m2的输入引脚。

GPS_RX - 在软件中,这是微控制器C.6 / PIN 4

T4800_8—波特模式。T表示这是真正的输出(idle high)。8告诉我们微控制器需要运行在8MHz

("$GPGGA") -这是一个限定符,这意味着它读取后面的所有内容,并把它放在变量中。

@bptrinc -这是一个位指针变量,在放置值后以1递增。

对bptr、bptrinc、@bptr和@bptrinc的解释。想象一套抽屉。Bptr保存抽屉的地址,@bptr保存抽屉的内容。@bptrinc使用内容并转到下一个地址。

这是$ gpgga句子的样子:

如果您仔细查看示例NMEA句子,您将看到$ GPGGA,161229.487 ......时间是16:12:29.487。因此,要获得那些数字,我们需要使用数据填充7 @bptrs。第一个是a($ gpgga)和1629之间的逗号......我们正在使用@bptrinc,因为它在设置值后移动到下一个地址。

一个重要的注意是BPTR内存从地址53开始。在此之前的52个地址是B1,B2,B3,B4等。

要获得日期,我正在使用命令:

金丝雀GPS_RX、T4800_8 (" $ GPRMC "), @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, _ @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, _ @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, _ @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, _ @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, _ @bptrinc, @bptrinc, @bptrinc, @bptrinc,@bptrinc, @bptrinc, @bptrinc, @bptrinc,_ @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc, @bptrinc

行尾的下划线表示命令继续到下一行。

这是一个GPRMC句子的样子:

如果您计算字符,从53开始,您将看到日期中的第一个号码,“1”是字符BPTR地址104.这就是为什么我需要所有@bptrincs。我们只能逃脱此命令,因为它持有时间和日期。不幸的是,我的GPS模块每4秒发送这句话,所以秒看起来像是跳过和跳跃。$ gpgga句子每秒发送。这就是我使用的原因。

下载

在这里您可以找到EagleCAD库、源代码和GPS模块数据表。

结论

本文向您展示了一种使用一些卫星信息的方法。我做了一个时钟,基于PICAXE 20m2微控制器,一个LCD和一个GPS模块。注意,没有错误校正,所以如果GPS模块没有来自卫星的有效信号,显示器可能显示垃圾。

图片和视频

为自己提供这个项目!BOM。

3评论
  • O
    opus3491 2017年3月29日

    我们已经建立了这个项目,它运行得很好。我对PICaxe知之甚少对PIC和Arduino也一无所知。我注意到,在Arduino代码中有一个用于调整本地时间的偏移量。用镐头能做到这一点吗?
    问候
    Gerold

    喜欢的。 回复
  • G
    g4fre 2017年8月11日,

    上面软件部分中的链接在GPS数据表和源代码上似乎已切换
    问候

    喜欢的。 回复