15962| 6
|
[uPyCraft IDE] 一步一步使用uPyCraft学习MicroPython之GPS记录器 |
【一步一步使用uPyCraft学习MicroPython之GPS记录器】 【本期故事】 本期制作一个gps轨迹记录仪,使用的uPyCraft IDE以及micropython。为了叠装在萤火虫esp32上,我们还专门制作了一块扩展板(含gps模块以及oled模块)。下面一起来看看吧。【硬件清单】
【软件准备】
【gps&oled扩展板的制作】 利用一块FireBeetle Board-空白PCB,增加两个模块。接线如下: gps: tx--------D2(FireBeetle Board-ESP32) vcc-----3V3(FireBeetle Board-ESP32) GND---GND(FireBeetle Board-ESP32) OLED vcc-----3V3(FireBeetle Board-ESP32) GND---GND(FireBeetle Board-ESP32) scl-----scl(FireBeetle Board-ESP32) sda----sda(FireBeetle Board-ESP32) 使用飞线,因为接线不过,所以很容易制作,gps使用三根排针,oled只用四根。天线采用双面胶固定,你也可以使用其他方式,自由想象吧。gps模块是直插,天线也可换做SMA接口。 【关于Micropygps库】 https://github.com/inmcm/micropyGPS micropyGPS is a full featured GPS NMEA sentenceparser for use with MicroPython and the PyBoard embedded platform. It's alsofully compatible with Python 3.x 本身为pyb设计,但是是全功能的GPS NMEA解析库。只要用mp以及uart传送gps数据,就可能使用本库进行解析。更多详情可以查看giuhub的介绍。 文档还是比较清楚的,例题方面需要大家自己搜,提供了pyb的例题可以参考。 【软件代码】
【测试】 (一)gps模块首先要进行配置和检测,很多玩家直接插单片机,这是我很不推荐的。玩gps模块,首先用usb-ttl转换模块连接到pc上,使用u-center等上位机软件,配置波特率(默认9600),观察其搜星、定位功能是否正常。如果正常了,再开展下一步测试。 (二)上电后,可以看到oled上面显示出三组信息:一组是经纬度,以及转换成小数点形式的以度为单位的数据,第二组是显示gps模块可用的卫星数量。第三组是rtc时间。因为我们已经用了东八区补偿,所以显示的时间就是本地北京时间了。 2秒钟刷新一次数据。 (三)路径的存储,可以将经纬度和rtc数据保存在log.txt上。由于本地flash有限,你也可以加在tf卡上,这样可以长时间保存路径数据。 (四)提升空间: 一是可以增加一个按钮,驱动数据记录和停止。 二是可以将log.txt的数据格式,记录为google earth的kml格式文件,这样可以直接在谷歌数字地球中导入路径显示。 三是你可以把重复的数据进行过滤,这样可以节省log.txt存储空间。 这三个玩法就有待玩家进一步提升吧,别忘记了和大家分享啊。 (五)存在的问题 一是在运行中,出现过数据解析错误的现象,出现的时间不等,还有待进一步分析。 二是在笔记本电脑(win10)以及台式机(win7)上,在upy使用中,发现过个别库在运行时报错,同样的程序,同样版本0.20,在两个系统上可能出现: 这是在win7的upy 0.2上出现的,但是在win10上没有问题。可以和师兄们继续探讨。 注意: (1)对于8266,可以使用两个uart口。其中uart1只能发送不能接收,uart0能接收,但是,repl操作是在uart0上的,所以您不能同时一边uart0与设备进行交互,同时又使用repl。 也就是说,不能在repl调试窗尝试uart0。 (2)汉字注释是为了便于玩家理解,建议运行时删除或改为英文 micropygps库,便于下载。 step5.rar 【感谢】 感谢秦皇岛岛主师兄的例程和指导。感谢群里玩家的支持,沧海抱拳。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed