[作品提交] 【得捷电子Follow me第1期】通过GPS实现电子围栏功能

HonestQiao   2023-6-30 23:54 楼主

1. 项目描述(800字左右,注意格式整洁)

这次活动提供了Air530的GPS模块,通过该模块,Pico W可以方便快速的获取GPS定位信息。

但本次活动中,使用的屏幕为OLED 128*64的小屏,只能显示较为基础的信息。

结合实际情况,通过GPS定位信息,实现了一个电子围栏的项目。

 

其具体功能如下:

1.1 代码启动后,播放简单音乐表示启动

1.2 启动按键监听,当BOOT键长按时,启动初始位置设定;如果当前已经读取到了有效的GPS定位信息,则将当前位置的信息,设置为初始位置信息,后续定位信息,将与该位置进行对比。设置成功后将播放一段音乐提醒。

1.3 在循环中通过串口,读取Air530的GPS信息,并将读取到的信息,更新到屏幕上进行显示

1.4 如果读取到的是有效的GPS信息,且已经做过初始位置的设定,则进行距离的计算,并输出到屏幕

1.5 如果距离超过设定的安全距离,则播放音乐报警

 

在该项目中,涉及到的主要技术如下:

1. 通过串口读取Air530的GP信息,并进行解码

2. 读取BOOT按键的状态,并识别短按和长按,设置长按进行初始位置设置

3. 使用nano-gui进行OLED屏幕的显示处理

4. 通过PWM,控制无源蜂鸣器播放声音

5. 通过GPS定位信息,进行位置距离的计算
 

2. 各功能对应的主要代码片段及说明

2.1 初始化设置:

image.png  

2.2 播放音乐:

image.png

 

2.3 获取GPS信息:

image.png  

2.4 初始位置设置:

image.png  

2.5 通过经纬度计算距离

image.png  

2.6 主流程:

image.png  

 

3. 功能展示及说明(图文并茂)

3.1 整体结构:

image.png  

 

3.2. 程序启动后,将会输出对应的日志信息:

image.png  

3.3. 屏幕上显示当前的实时信息:

image.png  

4. 对本活动的心得体会(包括意见或建议)

因为之前使用过合宙的GPS,所以GPS模块很容易就驱动了。

以前也使用过OLED,但这次使用了nano gui来进行OLED的驱动,更好用更方便。

另外,建议今后,可以设置基础和挑战性的任务,让大家各显身手。
 

5. 完整代码

gps_safe_dis.zip (14.16 KB)
(下载次数: 3, 2023-6-30 23:53 上传)
 
6. 项目视频:
本帖最后由 HonestQiao 于 2023-7-1 15:45 编辑

回复评论 (4)

乔老师的作业,我认真学习了。真是不错!

点赞  2023-7-1 09:08

非常 好!

点赞  2023-7-1 20:11

乔老师的作业,我认真学习了。真是不错!收藏一下

点赞  2023-7-2 00:54
做了ppt,还搞了室外测试,真是用心了
点赞  2023-7-3 11:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复