查看: 2069|回复: 0

【翻译】远足追踪器

[复制链接]
  • TA的每日心情
    慵懒
    2024-3-10 16:58
  • 签到天数: 223 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2018-12-2 00:08:04 | 显示全部楼层 |阅读模式
    分享到:
    原文:Hiking Tracker

    在徒步旅行的时候获得罗盘航向,高度,温度,压力,湿度,时间,行程距离和GPS位置。


    img_20180601_000833_JxxZH3Di7p.jpg


    在这个项目中使用的东西
    硬件部分
    Arduino 101和Genuino 101 ×1
    AA电池 ×1
    4xAA电池座 ×1
    配件Shiled ×1
    Adafruit BMP180压力传感器 ×1
    Adafruit Ultimate GPS模块 ×1
    Adafruit - 3轴磁性传感器 ×1
    Adafruit AM2320湿度传感器 ×1
    Adafruit纽扣电池CR2012 ×2
    电阻10k ×1
    电阻3.9k ×1
    软件部分和在线服务
    Arduino IDE
    工具和机器
    热胶枪(通用)
    烙铁(通用)

    什么是远足追踪器?

    徒步追踪器是一种在远足期间感知徒步旅行者周围环境变化的装置。

    我们的想法是得到温度,压力,湿度,海拔高度,位置,方向等的变化。这些提供了一些有趣的远足见解。

    山区与海拔较低的地方相比,山区拥有寒冷,干燥,低密度的空气,许多人在那里很难呼吸。有些人会经历皮肤干燥。该设备让人们对徒步旅行感兴趣,了解他们自己的极限,还有到高海拔地方的乐趣。能够知道去高处是一件有趣的事情!

    不仅是山脉,而且探索沼泽,沙漠,森林 - 每个都有其独特的环境特征,能够在旅途中监控环境,是了解自然的更好方式。


    img_20180531_064447_hdr_PivvTU1neA.jpg
    堆叠的图层

    视频演示


    传感器数据

    第1步:硬件,哪个
    哪里适合?

    这个项目有很多传感器

    附加的带有屏蔽的板板子装有一些I2C设备:

    • LM75B温度感器,用于检测环境温度
    • ADXL345 3轴加速度计,用于检测倾斜和重力
    • DS3231高精度RTC,用于检测时间
    • HMC5883 3轴磁传感器,用于感应罗盘航向
    • AM2320湿度传感器,用于检测空气的%RH
    • BMP180压力传感器,用于检测大气压力和海拔高度
    • MTK3339 GPS传感器,用于感应位置和步行距离

    在Arduino Uno上:

    • 3.9k+22k分压器,用于检测电池电压
    • 1306 OLED用于查看数据
    • 蜂鸣器发出警报声
    • 此项目不使用RGB LED
    • 不使用XBee接口,但Arduino D2,D3,D9,D10可以从这个接口引出来用于其他项目,D2连接到reset,这允许使用程序来复位Arduino!
    • 不使用5向操纵杆
    • 不使用101 pot

    第2步:修改和连接硬件

    对Arduino Uno的修改很少。把它安装在带有螺钉支架和热熔胶的电池座上。


    screw_standoff_U2toh6TjRe.jpg
    1/2 • 电池座顶部的Arduino

    hot_glue_base_WoU0A0urwE.jpg
    2/2•热熔胶

    4AA电池和CR1220(用于RTC)安装在电池座上。


    batt_gO4sUIuldv.jpg
    1/2 • 电池座带支架

    coin_cell_HL11f8B4MB.jpg
    2/2•用于RTC的纽扣电池CR1220

    电池座和Arduino Uno板之间有一个空间,可以放置压力,湿度,磁性和GPS传感器。


    sensor_space_6WmNWFNW9i.jpg
    1/2 • 放传感器的空间

    i2c_installed_8rlROQ9kkk.jpg
    2/2•传感器放置在Uno和电池组之间

    I2C传感器焊接在一块万用板上并放置在这个空间中


    sensor_front_2zR97XIVG1.jpg
    1/2 • 压力,湿度,磁传感器连接在I2C通道上

    sensor_back_isgpAKDkyS.jpg
    2/2•I2C公共总线,用胶带绝缘

    这些传感器连接到Arduino Uno底部:


    i2c_bottom_conn_WWgI8GM3xF.jpg
    I2C连接位置和传感器电源(将被焊接)


    添加分压电路以测量4节AA电池的电池电压。


    vol_div_trSqsGRqxC.jpg
    分压器焊接在电源连接器上


    AA电池组电压检测线连到ADC A1:


    batt_sense_teP9iemsRV.jpg
    ADC A1的分压器


    未使用的操纵杆的引脚A5映射到ACD引脚A1。这就是操纵杆被拆除的原因。


    removed_joy_real_9jU7fLoum3.jpg
    5路操纵杆被移除

    通过连接附件板上的一些焊盘(参考示意图)和焊接桥D2(用于软复位),可以在Xbee接口上使用Arduino的D3,D9,D10引脚。


    d10_d_11_JHHZQ80NNb.jpg
    1/2 • D9,D10引脚分支焊桥

    d2_d3_rXYM4n35s1.jpg
    2/2•D2,D3桥接

    组件堆叠起来如下:


    img_20180531_064447_hdr_qTAtiqC9CG.jpg
    把它们放在一起!

    • 顶层:Arduino上的附件板
    • 中间层:其他传感器和GPS将介于Uno和Battery Case之间
    • 底层:4节AA电池座,带电池

    连接电路:


    ckt_Pt7niDD8cQ.jpg

    第3步:对设备进行编程

    Arduino IDEBuild 1.8.5用于编程。首先,使用库管理器包含或下载所有以下库。


    hiking_logger_Fj9lLD9RIP.jpg
    添加库

    通过在库管理器的搜索框中键入传感器的名称,将找到相应的库。


    lib_TlGfl9m2z9.jpg
    单击“安装”以添加新库

    一些Accessory Shield库(请参阅参考资料)是通过zip.file选项添加的


    2_darLGjo2XR.jpg
    使用库zip手动添加库

    添加必要的库后,将检查每个传感器的示例代码,以找出相关传感器的API。

    接下来,所有库头都包含在一个空的Arduino工程中。


    头文件列表
    1. math.h,inttypes.h,Wire.h,lm75.h,ADXL345.h,ChainableLED.h,U8glib.h,ds3231.h,Adafruit_Sensor.h,Adafruit_AM2320.h,Adafruit_BMP085_U.h,Adafruit_HMC5883_U.h,Adafruit_GPS.h
    复制代码

    经过多次编辑,编译和调试(包括连接,我发现BMP180可以在没有Vcc的情况下工作,可能因为是I2C引脚的漏电)并上传 - 最后代码就绪了。


    警告
    • 高度计算基于气压,仅适用于正常天气条件。

    altitude-to-pressure-conversion-table_rEgmeSbCY3.jpg
    气压与海拔高度

    • 指南针代码没在程序中进行倾斜补偿,设备必须保持在水平面上。有一个固定的罗盘圆,其中有另一个可变半径圆。当设备倾斜时,内圈会增加。当它处于水平位置时(即加速度计的x和y分量几乎为0),内圆将减小到一个点。这是罗盘测量更准确的时候。
    • 指南针指针偏角取决于地球磁场的位置和变化。这可能会受到太阳风暴的影响。如果考虑倾斜角度,罗盘将偏离几度。

    找到您所在地区的赤纬:http//www.magnetic-declination.com

    • 指南针容易被附近的磁性物体干扰,如山上存在强磁性矿物质。
    • 器件最小工作电压约为4.5伏。过低需要更换AA电池。
    • 时间和日期是根据代码编程的,如果需要更换纽扣电池,则必须拔下插头电源插头。在代码中改成新时间,上传新程序改变时间。
    • 在开发过程中,GPS模块不可用。因此,演示坐标放在Lat-Long中。如果有人希望复制此项目,则需要包含GPS库和相关代码。
    • 加速度计和磁力计的XY平面可放置在PCB上。代码需要相应调整。
    • 加速度计读数精度容易产生振动。建议在静止状态下使用该设备。

    改进范围

    可以从固件方面进行改进,以获得更多功能:

    • 在EEPROM上定期记录参数
    • 达到高度/位置里程碑时蜂鸣器警报会发出蜂鸣声
    • 喝水提醒
    • 请稍等提醒
    • 低电量警报
    • 低温,湿度警报
    • 用于倾斜补偿的罗盘软件校准(三角函数)
    • 通过Gateway应用程序使用GPS和物联网连接自动获取偏差

    至于改进的硬件部分:

    • 用户输入开关用于设置时间,偏差等。
    • 为设备定制3D外壳
    • 使用可充电LiPo电池
    • 单板紧凑型PCB设计,更便于携带

    结论

    旅行和徒步旅行很酷,当你可以检查周围环境的变化时,它会让事情变得更有趣。特别是,在徒步旅行时,检查高度,湿度,压力和温度的变化。这个装置让你知道当你感到高原反应时的高度,你的皮肤干燥的湿度水平 - 这样的东西。虽然在电路布局和代码方面都有改进的余地,但是在进入荒野时拥有这样的小工具仍然很酷!


    外部资源

    https://www.waveshare.com/wiki/Accessory_Shield


    推荐硬件,以获得更好的本项目版本

    快速原型套件


    原理图
    游客,如果您要查看本帖隐藏内容请回复

    代码
    游客,如果您要查看本帖隐藏内容请回复

    评分

    参与人数 1 +600 收起 理由
    satoll + 600 500+100自选翻译完成奖励

    查看全部评分

    回复

    使用道具 举报

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

    本版积分规则



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 10:28 , Processed in 0.132530 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.