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 初始化设置:
2.2 播放音乐:
2.3 获取GPS信息:
2.4 初始位置设置:
2.5 通过经纬度计算距离
2.6 主流程:
3. 功能展示及说明(图文并茂)
3.1 整体结构:
3.2. 程序启动后,将会输出对应的日志信息:
3.3. 屏幕上显示当前的实时信息:
4. 对本活动的心得体会(包括意见或建议)
因为之前使用过合宙的GPS,所以GPS模块很容易就驱动了。
以前也使用过OLED,但这次使用了nano gui来进行OLED的驱动,更好用更方便。
另外,建议今后,可以设置基础和挑战性的任务,让大家各显身手。
5. 完整代码
乔老师的作业,我认真学习了。真是不错!
非常 好!
乔老师的作业,我认真学习了。真是不错!收藏一下 |