
到乡下来总是很有趣,但是拿着地图和有意识的目标总是更有趣。 您可以在户外活动中进行定向越野,越野赛,多种族竞赛等各种类型的户外活动。 定位器的任务是在最短的时间内访问地图上指示的检查点。 为了证明他们访问的事实,他们被用作所谓的 “传统”标记系统:彩色铅笔,代码符号,堆肥器等,以及电子系统。 尽管后者方便,但传统方法仍广泛用于业余比赛中。 这是由于设备的成本(从每个站标记3,500卢布起,从每个芯片450卢布起),以及安装在公共场所的站点被盗的可能性,需要为芯片支付押金。 因此,我为自己设定了创建更实惠的替代方案的目标。 下面介绍了它在Arduino环境中的实现。
电子标签系统通常由RFID芯片和工作站组成-用于记录和读取的特殊设备。 系统工作如下。 首先,定向运动运动员收到筹码,拿到一张牌,然后开始。 跑到CP之前,他将自己的筹码应用于打标站,她将当前时间记录在筹码上并发出信号,然后运动员可以继续前进。 最后,运动员将筹码传递给裁判,裁判将使用网关站读取信息,并将结果公布给运动员-他的时间,在一定距离内走访的CP数量,遵守给定方向。 他还可以打印拆分-在CP之间的路径上花费的时间段,这使运动员可以分析其路径并将自己与距离的特定部分上的其他人进行比较。
为了使用RFID芯片,有一个广泛使用的模块RFID-RC522,该模块具有用于Arduino的出色库,这一事实在很多方面决定了其用途。 该模块的工作频率为13.56 MHz,并支持ISO 14443标准,可与各种芯片配合使用,并且在几厘米的距离内进行读写,这非常适合我们的目的。
薯条为了创建标记系统,我使用了Mifare Classic 1K(S50)芯片,因为它具有各种设计且价格便宜(钥匙扣形式的每个芯片11卢布)。 该芯片使您可以快速可靠地读取和写入信息。 芯片存储器在结构上分为16个扇区,每个扇区包含4个16字节的块。 每个扇区的第四个块包含可用于在该扇区中写入/读取块的键。 此外,在零扇区中,零块包含UID和有关制造商的信息。 因此,剩下3个16字节的块,用于写入从第1到第15的扇区,而在第0个扇区中写两个。 记录结构如下表所示,所有数据一式三份记录,以确保可靠性。

该记录系统使您可以在内存中记录45个标记,包括开始和结束,对于大多数比赛而言,这已经足够了。 但是,如果您优化了内存的使用并花了更多时间,那么容量会大大增加。
车站车站方案和安装标记站的主要组件:微控制器-Atmega328p-au,RF522模块,时钟DS3231。 通过MCP1700T-33线性稳定器,由3节AA电池供电。

我将所有SMD组件都安装在印刷电路板上,并将这些组件与RFID板通过引脚连接器进行焊接来建立连接。 这些板是使用0.5毫米径的光刻胶制造的。 在完善该方法的同时,我做了很多事情,但制作格柏文件并从侧面订购它们可能更方便,因为它并不昂贵。

我以负担得起的g1020BF为例。 我在盒子的LED上钻了一个孔,然后切掉多余的塑料,以进入电池盒。 LED的孔用环氧树脂处理,然后插入焊接的电路板。 环氧树脂硬化后,它注入了30毫升的PK-68化合物,刚好足以覆盖木板。 我将电池插入电池盒,并用油脂涂抹了所有东西以防水。 拧紧盖子后,便可以使用工作站了。

站的部件和材料的制造成本约为500卢布。 我大约需要1.5个小时的纯时间来制作和设置一个工作站。
站固件在工作站运行期间,可能会发生各种故障,有必要执行看门狗的工作,因此您需要使用兼容的Bootloader使其正常工作。 适用于Atmega328p的引导加载程序的良好版本及其安装说明在
此处 。 您还应该将标准线库更改为非阻塞,以使工作站在i2c线路断开时继续工作,并且不会陷入无限循环。 我通过Arduino使用另一种arduino作为isp固件加载了引导程序,并通过通向RFID模块的引脚连接了SPI触点,成功启动后我将其断开了。 之后,我安装了主固件。
使用主固件,当插入托盘时,工作站读取一个信息块,从中学习最后记录的块的编号以及出现标记的工作站。 如果站号不同,则更新信息块,并将站号和当前时间记录在下一个空闲块中。 时间和站号可以使用专用芯片和网关站进行调整。
营养学值得解决的最重要的问题之一是如何通过一组电池来最大化站的使用寿命。 这对于以游客为导向特别重要,因为它发生在比赛开始前很长时间就已经安装了站台,并且必须保证站台可以运行一个月以上。
为了减少消耗,控制器和RC522使用睡眠模式。 在睡眠模式下,该工作站仅消耗0.02 mA的电流,而工作期间仅为20 mA。 为了更经济地使用能源,已实现了三种具有不同睡眠时间间隔的站点运行模式。
默认情况下,工作站以待机模式启动。 同时,每秒搜索一次芯片,电池容量足以持续160天。 放好筹码后(由生产裁判或第一个跑到站台的运动员完成),站台将切换到操作模式。 在工作模式下,每250毫秒执行一次芯片搜索。 新电池可持续使用45天。 闲置6个小时后,工作站将返回待机模式。
插入主睡眠芯片(具有站点设置的特殊判断芯片)后,站点将切换到存储模式(每25秒搜索一次芯片),选择3次并重新启动。 此模式下的新电池将使用5年。 当将托盘放在任何芯片上时,工作站将进入待机模式,并测量剩余的电池电量。 如果电压降到3.1V以下,则表明仍有大约15%的电荷剩余,该站会发出信号。
接口和数据处理提供了一个接口站,用于处理芯片和标记站。 使用网关站,您可以使用特殊的主控芯片设置和调整时间和站号。 此外,网关站将对芯片进行发射前清洁和验证,并输入初始信息和个人编号。 好吧,当然,它读取芯片并获得结果。
在电路中,我还添加了一个用于记录拆分的SD模块和一个Bluetooth模块,以便该工作站可以连接到电话或计算机以接收或传输数据。

尽管电路和固件还没有进行足够的优化,并且与模块之间的距离还很远。 计划在将来完成定稿,以方便使用。

目前,通过对生成的CSV文件进行分类以半手动方式进行数据处理。 该系统非常灵活,可以轻松地针对任何竞争进行配置,以在不同情况下以便捷的方式在网关中实现数据预处理。 对于未来,有计划编写软件以自动化数据处理。
结论我是电子设备编程和开发的新手,从事此工作不到一年。 因此,代码和电路解决方案很可能远非最佳或完全不正确。 我将很高兴提出批评,整个项目可
在github上免费获得。
我也要感谢那些已经对技巧有所帮助并对开发感兴趣的人。