0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安信可GP-02-Kit测试过程+GPS 时钟制作

AIoT行业洞察 来源:AIoT行业洞察 作者:AIoT行业洞察 2025-04-23 09:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

以下作品由安信可社区用户

无垠的广袤测试及制作

产品介绍

GP-02-Kit是一款高集成带有陶瓷天线、高性能 BDS/GNSS 多模卫星导航接收机SoC 开发板,主芯片为AT6558R卫星定位芯片。集成了射频前端,数字基带处理器,32 位的 RISC CPU电源管理和有源天线检测与保护功能。支持多种卫星导航系统,包括北斗卫星导航系统 BDS、 GPS、GLONASS,可实现多系统联合定位。

该开发板遵循NMEA协议,通过串口通讯发送指令来控制开发板的工作内容。

wKgZPGgIQUuAIxhAAACVpFy2r60606.jpg

详见:GPS 模组系列 | 安信可科技 https://docs.ai-thinker.com/gps

芯片架构

GP-02 模组架构

wKgZO2gIQUuAYXZyAADWt8N3tiI098.jpg

模组外观

wKgZPGgIQUuAbNJXAABJ7_7W3Y8101.jpg

参数特性

wKgZO2gIQUyAG5oUAAB01d2bdnE291.jpg

特点

●支持

BDS/GPS/GLONASS/GALILEO/QZSS/SBAS 多系统联合定位和单系统独立定位

●支持D-GNSS 差分定位,A-GNSS 辅助定位,星历预测,DR 组合导航应用,最快数据更新率 10Hz

●32位应用处理器,最高频率 133MHz,支持频率动态调整

●支持 PPS 输出

●外设接口UART

原理图

模组原理图

wKgZPGgIQUyALE4dAADTq-_eORQ869.jpg

开发板原理图

wKgZO2gIQUyAaAlhAAEzhI3-sAA619.jpg

硬件连接

使用 USB 转 TTL 串口工具连接开发板和电脑

wKgZPGgIQU2AbjQMAAC4gJf_YvQ979.jpg

上电测试

通过 USB 转 TTL 工具连接 GP-02-Kit 和电脑,使用安信可串口调试助手获取串口输出信息。

串口打印(波特率默认 9600 bps)

wKgZO2gIQU2AMYHPAABtCIYPnDQ725.jpg

输出信息

$GNGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5,4*04 $GPGSV,1,1,00,0*65
$BDGSV,1,1,00,0*74 $GNRMC,,V,,,,,,,,,,N,V*37 $GNVTG,,,,,,,,,N*2E
$GNZDA,,,,,,*56 $GPTXT,01,01,01,ANTENNA OPEN*25

输出信息为 NMEA 格式,具体定义如下

wKgZPGgIQU2AXmnMAACgxbDHT8M610.jpg

软件测试

下载并运行GnssToolKit3软件。

点击主菜单上的 串口 菜单项, 打开 串口菜单 (该菜单用于配置串口)

wKgZO2gIQU6AVFfpAABTq_4Z_vw220.jpg

选择 波特率 菜单项,列出对接收机有效的波特率。

NMEA 视图

波特率默认为 9600, 用户需要根据接收机的实际情况选择相应的值。

wKgZPGgIQU6AWBVCAACkybQsCuE333.jpg

载躁比柱状图

用柱状图显示卫星的载噪比, 每个柱状条代表一颗卫星。

wKgZO2gIQU6AEH_EAABYF3Y-0VE441.jpg

星位视图

在 视图 菜单中, 选择 星位图, 打开 星位图视图。

wKgZO2gIQU-AYSMZAACBIKnwW7o457.jpg

这里没有将产品拿到室外进行测试,因此获取的卫星信号较弱。

好了,来用安信可 GP-02-Kit 开发板结合 Arduino IDE 实现 GPS 时钟吧。

wKgZPGgIQU-AQeYJAAAUjTQmWLA152.jpg

GPS时钟

GP-02-Kit 结合Arduino IDE 实现 GPS 时钟

硬件连接

OLED_SCL -> 14

OLED_SDA -> 02

GP-02-Kit_RX -> 04

GP-02-Kit_TX -> 05

示意图

wKgZO2gIQVCAGu9sAAG0AqJ1vQ0873.jpg

代码

#include
#include
#include
#include
#include
#include
// I2C款接线说明
// NodeMCU开发板 0.96寸OLED 引脚连接对应关系
// GND GND
// 3V3 VCC
// SCL D1 (GPIO 5)
// SDA D2 (GPIO 4)
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_SDA 02 // SDA引脚,gpio2(D4)
#define OLED_SCL 14 // SCL引脚,gpio14(D5)
#define OLED_RESET 13 // 重置引脚
#define SCREEN_ADDRESS 0x3C // OLED 显示屏的地址,固化在芯片上
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // 创建实例
// gps模块引脚定义
#define RXPin 4 // GPIO 12 对应nodemcu D6
#define TXPin 5 // GPIO 14 对应nodemcu D5
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
// The TinyGPSPlus object
TinyGPSPlus gps;
// 一些需要使用的变量
int Year, Month, Date, Hour, Minute, Second, Yea, Mon, Dat, Hou;
double Lat, Lng;
String sMonth, sDate, sHour, sMinute, sSecond;
void setup() {
Wire.begin(OLED_SDA, OLED_SCL);
Serial.begin(9600);
WiFi.mode(WIFI_OFF); //关闭WIFI模块省电
WiFi.forceSleepBegin();
ss.begin(9600); //GPS模块虚拟串口
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;)
; // Don't proceed, loop forever
}
display.clearDisplay(); // 清屏
display.setTextColor(WHITE); // 设置字体颜色为白色
display.display(); // 显示
//OLED屏初始化代码
}
void loop() {
boolean newData = false;
for (unsigned long start = millis(); millis() - start < 300;) {
while (ss.available()) {
if (gps.encode(ss.read())) {
newData = true;
}
}
} //上面是GPS数据接收的固定代码
Yea = gps.date.year(); //年
Mon = gps.date.month(); //月
Dat = gps.date.day(); //日
Hou = gps.time.hour(); //时
Minute = gps.time.minute(); //分
Second = gps.time.second(); //秒
Lng = gps.location.lng(); //经度
Lat = gps.location.lat(); //纬度
//年月日时转换部分,将UTC时间转换为北京时间,并消除错误
Hour = Hou + 8; //修正时区
if (Hour >= 24) {
Hour = Hour - 24; //修正小时超程
}
if (Hou + 8 >= 24) {
Date = Dat + 1;
if ((Mon == 1 || Mon == 3 || Mon == 5 || Mon == 7 || Mon == 8 || Mon == 10 || Mon == 12) && (Date > 31)) {
Date = Date - 30;
Month = Mon + 1; //大月进位
} else {
Month = Mon;
Year = Yea;
}
if ((Mon == 4 || Mon == 6 || Mon == 9 || Mon == 11) && (Date > 30)) {
Date = Date - 29;
Month = Mon + 1; //小月进位
} else {
Month = Mon;
Year = Yea;
}
if ((Yea % 4 == 0) && (Date > 29)) {
Date = Date - 28;
Month = Mon + 1; //闰月判定并进位
} else {
Month = Mon;
Year = Yea;
}
if ((Yea % 4 != 0) && (Date > 28)) {
Date = Date - 27;
Month = Mon + 1; //非闰月判定并进位
} else {
Month = Mon;
Year = Yea;
}
if (Month > 12) {
Month = Month - 12;
Year = Yea + 1; //年超程进位
}
} else {
Date = Dat;
Month = Mon;
Year = Yea;
}
//结果显示部分
display.setTextColor(SSD1306_WHITE);
display.setCursor(38, 0);
display.setTextSize(1);
display.print(Year);
display.setCursor(63, 0);
display.setTextSize(1);
display.print("-");
display.setTextSize(1);
display.setCursor(71, 0);
sMonth = formatNumber(Month, 2);
display.print(sMonth);
display.setCursor(83, 0);
display.setTextSize(1);
display.print("-");
display.setTextSize(1);
display.setCursor(91, 0);
sDate = formatNumber(Date, 2);
display.print(sDate);
display.setTextSize(2);
display.setCursor(26, 13);
sHour = formatNumber(Hour, 2);
display.print(sHour);
display.setCursor(46, 13);
display.setTextSize(2);
display.print(":");
display.setTextSize(2);
display.setCursor(56, 13);
sMinute = formatNumber(Minute, 2);
display.print(sMinute);
display.setCursor(76, 13);
display.setTextSize(2);
display.print(":");
display.setTextSize(2);
display.setCursor(86, 13);
sSecond = formatNumber(Second, 2);
display.print(sSecond);
display.setTextSize(1);
display.setCursor(35, 33);
display.print(gps.location.lng(), 8);
display.setTextSize(1);
display.setCursor(35, 43);
display.print(gps.location.lat(), 8);
display.setCursor(105, 53);
display.setTextSize(1);
display.print("m");
display.setCursor(50, 53);
display.setTextSize(1);
display.print("km/h");
display.setTextSize(1);
display.setCursor(80, 53);
display.print(gps.speed.mps());
display.setTextSize(1);
display.setCursor(25, 53);
display.print(gps.speed.kmph());
display.display();
delay(500);
display.clearDisplay();
}
// 格式化数字的函数
String formatNumber(int number, int digits) {
String formatted = "";
if (number < pow(10, digits - 1)) {
formatted = String(number, DEC);
while (formatted.length() < digits) {
formatted = "0" + formatted;
}
} else {
formatted = String(number, DEC);
}
return formatted;
}

编译代码,选择端口号并上传固件,短按 RST 复位运行程序。

效果

选择室外或窗边放置天线,保持连接状态,上电首次通信需 30 秒左右便能接收并识别出时钟、坐标和速度等信息。

wKgZPGgIQVCAZ0o6AAC2ESiMTpI737.jpg

开发板详见:

立创开源硬件平台https://oshwhub.com/lijinlei0907/intelligent-portable-thermometer

OLED 显示

wKgZO2gIQVCATN2nAADZXmF_laM764.jpg

动态演示

wKgZPGgIQVGAJ4p8AAAt97uVjhw729.jpg



审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    6031

    浏览量

    130722
  • gps
    gps
    +关注

    关注

    22

    文章

    3012

    浏览量

    172543
  • 安信可
    +关注

    关注

    0

    文章

    216

    浏览量

    4952
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    小智AI语音模组实测:实现语音控制关灯

    以下作品由社区用户 zzbinfo 制作   这次评测的是
    的头像 发表于 11-19 16:09 455次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>小智AI语音模组实测:实现语音控制关灯

    【AI语音模组】自制小智管家?Ai-WV01-32S测试体验

    项目。 这次带来一款新作品: 基于 Ai-WV01-32S 模组打造的小智语音硬件。 测试总结 项目 表现 模组集成度 ⭐⭐⭐⭐⭐ 焊接难度 ⭐⭐⭐(Type-C需小心) 语音识
    的头像 发表于 11-19 16:06 225次阅读
    【AI语音模组】自制小智管家?<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>Ai-WV01-32S<b class='flag-5'>测试</b>体验

    雷达模组如何快速配网和调参?

    可配网助手app介绍 可配网助手app是由
    的头像 发表于 10-31 08:59 245次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>雷达模组如何快速配网和调参?

    【离线语音】VC-01/02二次开发篇:自定义音频播放控制

    离线语音VC-01/02: 硬件规格书、开发资料、烧录工具、应用开发
    的头像 发表于 09-25 16:34 631次阅读
    【离线语音】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>VC-01/<b class='flag-5'>02</b>二次开发篇:自定义音频播放控制

    VC-01/02二次开发篇: PWM输出

    离线语音VC-01/02: 硬件规格书、开发资料、烧录工具、应用开发
    的头像 发表于 08-27 16:06 666次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>VC-01/<b class='flag-5'>02</b>二次开发篇: PWM输出

    轻松配置小智AI语音开发板,IOT小程序功能更新

    科技:可发布的 AI 语音开发板,可以通过配套的小程序,完成网络配置、音色选择等多项配置,无需复杂代码,轻松实现AI语音体验。 用
    的头像 发表于 08-19 17:46 919次阅读
    轻松配置小智AI语音开发板,<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>IOT小程序功能更新

    VC-01/02二次开发篇: 事件和GPIO控制

    离线语音VC01/02: 硬件规格书、开发资料、烧录工具、应用开发
    的头像 发表于 08-19 14:02 823次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>VC-01/<b class='flag-5'>02</b>二次开发篇: 事件和GPIO控制

    【离线语音】VC-01/02教程:中级入门篇

    离线语音VC01/02:硬件规格书、开发资料、烧录工具、应用开发
    的头像 发表于 07-31 09:33 644次阅读
    【离线语音】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>VC-01/<b class='flag-5'>02</b>教程:中级入门篇

    AI语音开发板AiPi-PalChatV1 + MCP,通过HomeAssistant自动化控制设备

    以下作品由社区用户 WT_0213制作 自从拥有了
    的头像 发表于 06-25 14:04 754次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>AI语音开发板AiPi-PalChatV1 + MCP,通过HomeAssistant自动化控制设备

    定位开发板BU03-Kit使用指南 ——硬件&amp;软件

    以下内容由社区用户 AndyL 提供 目录 低功耗精准定位开发板BU03-Kit ——【硬件篇】 一、开发板硬件介绍 1、关于BU03-Kit
    的头像 发表于 04-30 15:53 2477次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>定位开发板BU03-<b class='flag-5'>Kit</b>使用指南 ——硬件&amp;软件

    如何用蓝牙模块远程控制家中的设备?

    以下作品由社区用户 小小鸟 制作 1项目简介 本项目通过PB-03F kit完成了远程控制家中的设备,比如风扇、灯光、插座电源等等。配
    的头像 发表于 04-22 17:47 526次阅读
    如何用<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>蓝牙模块远程控制家中的设备?

    语音开放平台的使用——VC系列SDK的获取

    离线语音开放平台提供了开发量接近于零的SDK生成功能,对于功能简单的控制及串口输出,甚至可以直接生成固件进行烧录测试
    的头像 发表于 04-12 11:24 688次阅读
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>语音开放平台的使用——VC系列SDK的获取

    Ai-WB2-01S做一个可用网页控制的简易灯

    以下作品由社区用户 KevinLi制作 01简介 使用2个不同功率的Led通过GPIO的PWM通道+三极管控制亮度 ●供电:5V或3V ●控制:用网页http单向控制,这是一个
    的头像 发表于 03-26 13:59 661次阅读
    用<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>Ai-WB2-01S做一个可用网页控制的简易灯

    AI人脸识别开发板BW21-CBV-Kit驱动墨水屏

    HomeAssistant,实时查看Ai摄像头画面? 【教程】小安派BW21-CBV-Kit——读取 DHT 温湿度传感器 以下作品由社区用户 iiv
    的头像 发表于 03-06 08:47 717次阅读
    用<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>AI人脸识别开发板BW21-CBV-<b class='flag-5'>Kit</b>驱动墨水屏

    LoRa答疑】Ra-01、Ra-02常见问题

    LoRa 系列模块Ra-01、Ra-02,其射频芯片 SX1278 主要采用 LoRa™远程调制解调器,用于超长距离扩频通信,抗干扰性强,能够最大限度降低电流消耗。借助 SEM
    的头像 发表于 12-29 10:49 1933次阅读