
Es ist immer wunderbar, aufs Land zu gehen, aber mit einer Karte in der Hand und einem bewussten Ziel ist es immer interessanter. Es gibt Arten von Outdoor-Aktivitäten wie Orientierungslauf, Rogains, Multi-Rennen, an denen Sie eine gute Zeit haben können. Die Aufgabe des Orientierers ist es, die auf der Karte angegebenen Kontrollpunkte in kürzester Zeit zu besuchen. Um die Tatsache ihres Besuchs zu beweisen, werden sie als sogenannte verwendet „Traditionelle“ Markierungssysteme: Buntstifte, Codesymbole, Komposter usw. sowie elektronische Systeme. Trotz der Bequemlichkeit des letzteren sind traditionelle Methoden in Amateurwettbewerben immer noch weit verbreitet. Dies ist auf die Kosten für die Ausrüstung (ab 3.500 Rubel pro Stationsmarke und ab 450 Rubel pro Chip) zurückzuführen, mit der Möglichkeit des Diebstahls von an öffentlichen Orten installierten Stationen und der Notwendigkeit, eine Kaution für den Chip zu hinterlegen. Deshalb habe ich mir zum Ziel gesetzt, eine günstigere Alternative zu schaffen. Die Implementierung in der Arduino-Umgebung wird unten beschrieben.
Ein elektronisches Markierungssystem besteht normalerweise aus RFID-Chips und -Stationen - speziellen Geräten zum Aufzeichnen und Lesen. Das System funktioniert wie folgt. Zu Beginn erhält der Orientierungslaufsportler einen Chip, nimmt eine Karte und startet. Er rennt zum CP, legt seinen Chip auf die Markierungsstation, sie zeichnet die aktuelle Zeit auf dem Chip auf und gibt ein Signal, nach dem der Athlet weitermachen kann. An der Ziellinie übergibt der Athlet den Chip dem Richter, der die Informationen über die Gateway-Station liest und dem Athleten das Ergebnis mitteilt - seine Zeit in der Ferne, die Anzahl der besuchten CPs, die Einhaltung einer bestimmten Anweisung. Er kann auch Teilungen drucken - Zeiträume, die auf dem Weg zwischen dem CP verbracht wurden, wodurch der Athlet seinen Weg analysieren und sich mit anderen auf einem bestimmten Streckenabschnitt vergleichen kann.
Für die Arbeit mit RFID-Chips gibt es ein weit verbreitetes Modul RFID-RC522, für das es eine hervorragende Bibliothek für Arduino gibt. In vielerlei Hinsicht hat diese Tatsache seine Verwendung bestimmt. Das Modul arbeitet mit einer Frequenz von 13,56 MHz und unterstützt die Norm ISO 14443, arbeitet mit verschiedenen Chips, das Lesen und Schreiben erfolgt aus einer Entfernung von mehreren Zentimetern, was für unsere Zwecke gut geeignet ist.
ChipsUm ein Markierungssystem zu erstellen, habe ich den Mifare Classic 1K (S50) -Chip verwendet, da er in verschiedenen Designs verfügbar und günstig ist (11 Rubel pro Chip in Form eines Schlüsselbunds). Mit dem Chip können Sie Informationen schnell und zuverlässig lesen und schreiben. Der Chipspeicher ist strukturell in 16 Sektoren unterteilt, von denen jeder 4 Blöcke mit 16 Bytes enthält. Der 4. Block jedes Sektors enthält Schlüssel, mit denen Blöcke im Sektor geschrieben / gelesen werden können. Darüber hinaus enthält der Nullblock im Nullbereich die UID und Informationen zum Hersteller. Somit bleiben 3 Blöcke mit 16 Bytes zum Schreiben in Sektoren vom 1. bis zum 15. und zwei Blöcke im 0. Sektor übrig. Die Aufzeichnungsstruktur ist in der folgenden Tabelle dargestellt. Alle Daten werden aus Gründen der Zuverlässigkeit dreifach aufgezeichnet.

Mit diesem Aufzeichnungssystem können Sie 45 Markierungen im Speicher aufzeichnen, einschließlich Start und Ziel. Für die meisten Wettbewerbe ist dies völlig ausreichend. Wenn Sie jedoch die Speichernutzung optimieren und etwas mehr Zeit investieren, kann die Kapazität erheblich erhöht werden.
Stationen StationenSchema und InstallationDie Hauptkomponenten der Stationen der Marke: Mikrocontroller - Atmega328p-au, RF522-Modul, Uhr DS3231. Angetrieben von 3 AA-Batterien über den Linearstabilisator MCP1700T-33.

Ich habe die Komponenten auf einer Leiterplatte installiert, alle SMD-Komponenten. Mit der RFID-Platine habe ich die Verbindung durch Löten über den Pin-Anschluss hergestellt. Die Platten wurden unter Verwendung von Fotolack-Spuren von 0,5 mm hergestellt. Während die Methode perfektioniert wurde, habe ich viel geheiratet, es ist wahrscheinlich zweckmäßiger, Gerber-Dateien zu erstellen und ihre Produktion nebenbei zu bestellen, da es nicht sehr teuer ist.

Ich benutze den erschwinglichen g1020BF als Fall. Ich bohrte ein Loch in die Box für die LED und schnitt überschüssiges Plastik ab, um in das Batteriefach zu gelangen. Das Loch für die LED wurde mit Epoxid behandelt, dann wurde eine gelötete Leiterplatte eingesetzt. Nachdem das Epoxidharz ausgehärtet war, injizierte es 30 Milliliter der PK-68-Verbindung, was gerade ausreichte, um die Platte zu bedecken. Ich legte Batterien in das Batteriefach und schmierte alles mit Fett zum Abdichten. Nach dem Festziehen des Deckels ist die Station betriebsbereit.

Die Kosten für Stationskomponenten und -materialien für die Herstellung betragen etwa 500 Rubel. Ich brauche ungefähr 1,5 Stunden reine Zeit, um eine Station zu erstellen und einzurichten.
StationsfirmwareWährend des Betriebs der Station sind verschiedene Arten von Fehlfunktionen möglich. Es war erforderlich, die Arbeit von Watchdog zu implementieren. Daher müssen Sie einen kompatiblen Bootloader verwenden, damit er ordnungsgemäß funktioniert. Eine gute Version des Bootloaders für Atmega328p und Anweisungen zur Installation finden Sie
hier . Sie sollten auch die Standard-Drahtbibliothek auf nicht blockierend ändern, damit die Station weiter funktioniert, wenn die i2c-Leitung unterbrochen wird und nicht in eine Endlosschleife gerät. Ich habe den Bootloader mit einem anderen Arduino über das Arduino als ISP-Firmware geladen und die SPI-Kontakte über die Pins zum RFID-Modul verbunden, das ich nach einem erfolgreichen Start abgebissen habe. Danach habe ich die Hauptfirmware installiert.
Mit der Hauptfirmware liest die Station beim Einsetzen des Fachs einen Informationsblock, aus dem sie die Nummern des zuletzt aufgezeichneten Blocks und der Station lernt, an der die Markierung aufgetreten ist. Wenn die Stationsnummer unterschiedlich ist, wird der Informationsblock aktualisiert und die Stationsnummer und die aktuelle Zeit werden im nächsten freien Block aufgezeichnet. Die Zeit und die Stationsnummer können mit speziellen Chips und der Gateway-Station eingestellt werden.
ErnährungEines der wichtigsten Probleme, das es wert war, gelöst zu werden, war die Maximierung der Lebensdauer von Stationen mit einem Satz Batterien. Dies ist besonders wichtig für die touristische Orientierung, wenn die Stationen lange vor dem Wettbewerb installiert werden und eine Funktionsfähigkeit von mehr als einem Monat gewährleistet sein muss.
Um den Verbrauch zu reduzieren, werden sowohl für den Controller als auch für den RC522 Schlafmodi verwendet. Im Ruhemodus verbraucht die Station im Betrieb nur 0,02 mA gegenüber 20 mA. Um Energie sparsamer zu nutzen, wurden drei Stationsbetriebsarten mit unterschiedlichen Ruhezeitintervallen implementiert.
Standardmäßig startet die Station im Standby-Modus. Gleichzeitig wird der Chip jede Sekunde durchsucht, die Batteriekapazität reicht für 160 Tage. Wenn der Chip eingelegt ist (dies erfolgt durch den Produktionsrichter oder den ersten Athleten, der zur Station gelaufen ist), wechselt die Station in den Betriebsmodus. Im Betriebsmodus wird alle 250 ms eine Chipsuche durchgeführt. Neue Batterien halten 45 Tage im Dauerbetrieb. Nach 6 Stunden Inaktivität kehrt die Station in den Standby-Modus zurück.
Wenn der Master-Sleep-Chip (spezieller Judge-Chip mit Stationseinstellungen) eingeschaltet wird, wechselt die Station in den Speichermodus (alle 25 Sekunden nach dem Chip suchen), wählt dreimal und startet neu. Neue Batterien in diesem Modus halten 5 Jahre. Wenn ein Fach auf einen Chip gelegt wird, wechselt die Station in den Standby-Modus und die verbleibende Batterieladung wird gemessen. Wenn die Spannung unter 3,1 V fällt, was darauf hinweist, dass etwa 15% der Ladung verbleiben, signalisiert die Station dies.
Schnittstelle und DatenverarbeitungFür die Arbeit mit Chips und Markierungsstationen ist eine Schnittstellenstation vorgesehen. Mit der Gateway-Station können Sie die Zeit- und Stationsnummern mithilfe spezieller Master-Chips einstellen und anpassen. Außerdem führt die Gateway-Station die Reinigung und Überprüfung der Chips vor dem Start durch und gibt sie mit anfänglichen Informationen und einer individuellen Nummer ein. Nun, natürlich liest es die Chips und erhält die Ergebnisse.
Der Schaltung habe ich außerdem ein SD-Modul zum Aufzeichnen von Splits und ein Bluetooth-Modul hinzugefügt, damit die Station mit einem Telefon oder Computer verbunden werden kann, um Daten zu empfangen oder zu senden.

Während die Schaltung und Firmware noch nicht genug optimiert und bisher von den Modulen implementiert sind, auf dem Knie. In Zukunft ist eine Fertigstellung für eine bequemere Verwendung geplant.

Derzeit erfolgt die Datenverarbeitung halbmanuell durch Sortieren der resultierenden CSV-Dateien. Das System ist sehr flexibel und kann einfach für jeden Wettbewerb konfiguriert werden, um die Datenvorverarbeitung im Gateway in verschiedenen Fällen auf bequeme Weise zu implementieren. Für die Zukunft ist geplant, Software zur Automatisierung der Datenverarbeitung zu schreiben.
FazitIch bin neu in der Programmierung und Entwicklung elektronischer Geräte und mache dies seit weniger als einem Jahr. Daher sind die Code- und Schaltungslösungen möglicherweise alles andere als optimal oder völlig falsch. Ich werde mich sehr freuen zu kritisieren, das ganze Projekt ist
auf dem Github frei verfügbar.
Ich möchte mich auch bei denen bedanken, die bereits mit Tipps geholfen haben und an der Entwicklung interessiert sind.