927|3

62

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第1期】迷你GPS信号接收仪 [复制链接]

 

一、项目概述

本项目目标为制作一个迷你GPS信号接收仪

首先是项目需求介绍,也就是最终有哪些功能,以及界面长啥样,接下来先介绍这两方面内容。

 

1.1 功能需求

目标功能有:

  • 显示温度

  • 显示时间

  • 显示日期

  • GPS信息

    • 经度

    • 纬度

    • 速度

    • 卫星信号数量

  • 网络信息

 

1.2 界面需求

由于屏幕分辨率太低了,128x64;初步测试可以显示16x8的字符。

简单起见,纯文本界面吧。

显示8行文本:

  1. 温度

  2. 时间

  3. 日期

  4. 卫星信号

  5. 速度

  6. 纬度

  7. 经度

  8. IP地址

 

二、硬件部分

紧接着是硬件部分介绍,包括有哪些硬件组件,以及主控芯片分配哪些接口和引脚资源用于控制这些硬件组件。

2.1 硬件组件简介

项目使用到的硬件有:

  • Raspberry Pi Pico w开发板

  • 树莓派Pico扩展板——GROVE SHIELD FOR PI PICO V1.0

  • GPS扩展板——GROVE - GPS (AIR530)

  • OLED扩展板——GROVE - OLED DISPLAY 0.96"

  • 蜂鸣器扩展板——GROVE BUZZER

 

2.2 芯片资源分配

主控芯片资源使用情况:

分别使用了这些资源用于控制外设:

  • ADC4,用于读取片内温度传感器的温度

  • P20,用于控制蜂鸣器发声

  • I2C0,用于控制OLED屏幕,使用P8、P9引脚

  • UART0,用于和GPS模组通信,使用P0和P1引脚

 

 

三、软件部分

随后是软件部分介绍,包括整个项目功能划分为哪些模块,以及各个模块的功能,包括三方模块和新开发的模块。

3.1 软件组件简介

软件部分,一共包含四个模块,两个三方模块,两个新开发模块,整体结构如下图:

 

3.2 软件组件功能

如上图所示,四个模块主要功能分别为:

  • gps_viewer.py,主体功能实现代码

  • main.py,开机自动运行实现代码

  • MicroGPS,GPS消息解析

  • ssd1306,OLED屏幕驱动

其中,新增模块需要实现的具体功能有:

 

3.3 三方模块安装

本项目使用了两个三方模块,需要将两个两个模块安装到Pico W开发板的文件系统上后续才可以正常使用。模块安装到Pico W开发板的步骤为:

  • 连接可以访问公网的WIFI热点;

  • 使用mip模块,安装三方模块;

以下是一段交互式REPL命令执行记录,记录了安装ssd1306模块和micropyGPS模块的过程。

首先连接可以访问公网的Wi-Fi热点(后续需要联网下载模块到板子上):

然后,导入mip模块,再使用mip.install('ssd1306'),安装ssd1306模块:

接下来安装MicroGPS模块:

可以看到,前面几行代码连接到了一个WiFi热点,接下来导入了mip模块(MicroPython自带的),然后:

  • 使用 mip.install('ssd1306') 命令安装了 ssd1306 模块;

  • 使用 mip.install('

    链接已隐藏,如需查看请登录或者注册
    ') 命令安装了 micropyGPS 模块;

PS:由于 micropyGPS 原始仓是GitHub的,国内网络环境访问不太稳定,我在Gitee上克隆了一份,这里安装的是我的克隆版。

 

3.4 新增模块实现

新增模块的实现,主要功能都在gps_viewer.py里面,另外一部分在main.py里面。其中,gps_viewer.py的代码较多,详见本帖子附件文件。

读取和解析GPS消息代码实现如下:

ADC获取温度代码:

获取IP地址:

显示GPS信息:

绘制整个界面:

main.py文件的内容比较简单,用于实现如下:

 

四、功能展示

最终功能界面如下图所示:

OLED屏幕大小有限,只能显示8行8像素高度的字体,8行已经全部用上了。

 

五、心得体会

参加本次活动,最大的体会是——使用MicroPython进行简单功能模块的开发非常简单、便捷。如果使用C语言实现同样的功能,必然需要编写更多的代码,更多的代码行,通常也就意味着需要花费更多时间在编译和调试、运行上。

 

 

六、参考链接

  1. 树莓派官方的Pico Python SDK文档: https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf

  2. 树莓派官方的Pico 的MicroPython示例代码仓:

    链接已隐藏,如需查看请登录或者注册

  3. 树莓派Pico W MicroPython固件:https://micropython.org/download/rp2-pico-w/rp2-pico-w-latest.uf2

  4. MicroPython time模块参考文档: https://docs.micropython.org/en/latest/library/time.html

  5. MicroPython ADC模块参考文档: https://docs.micropython.org/en/v1.20.0/library/machine.ADC.html

  6. MicroPython Pin模块参考文档: https://docs.micropython.org/en/v1.20.0/library/machine.Pin.html

  7. MicroPython I2C模块参考文档: https://docs.micropython.org/en/v1.20.0/library/machine.I2C.html

  8. MicroPython UART模块参考文档: https://docs.micropython.org/en/v1.20.0/library/machine.UART.html

  9. MicroPython ssd1306模块相关文档: https://docs.micropython.org/en/latest/esp8266/tutorial/ssd1306.html

  10. MicroGPS模块开源代码仓:

    链接已隐藏,如需查看请登录或者注册

七、项目视频

https://training.eeworld.com.cn/video/36919

 

本贴附件:

mini_gps_viewer.zip (2.91 KB, 下载次数: 3)

最新回复

脑图画得非常好,后面可能要快点补齐,希望早点拿到大奖。  详情 回复 发表于 2023-7-2 00:54
点赞(1) 关注(1)
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 

脑图画得非常好,后面可能要快点补齐,希望早点拿到大奖。

 
 
 

回复

62

帖子

3

TA的资源

一粒金砂(中级)

板凳
 
 
 

回复

1463

帖子

0

TA的资源

五彩晶圆(初级)

4
 
脑图画得非常好,后面可能要快点补齐,希望早点拿到大奖。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表