Sportiduino - elektronisches Markierungssystem für Sportveranstaltungen, Teil 3

Teil 1 , Teil 2

Seit der letzten Veröffentlichung ist ein Jahr vergangen, und mir wird oft die Frage gestellt, was sich seitdem geändert hat. Kurz gesagt, der Übergang zu Ntag-Chips wurde vorgenommen, kleine Änderungen an der Schaltung vorgenommen, um eine bessere Empfindlichkeit, Signallautstärke und die richtige Taktbewegung bereitzustellen, und Software wurde entwickelt, um mit dem System zu arbeiten. Im Allgemeinen hat sich das System stabilisiert und ist zur Wiedergabe und Verwendung bereit. Weitere Details unten.

Zunächst erzähle ich Ihnen von RFID-Chips, warum der Übergang zu Ntag erfolgte. Ich möchte Sie daran erinnern, dass der Mifare Classic 1K-Speicher 1024 Byte enthält, von denen 752 Byte zum Speichern von Informationen verfügbar sind. Die Speicherstruktur ist in 16 Blöcke unterteilt, die 4 Seiten mit 16 Bytes enthalten, von denen einer für die Verschlüsselung reserviert ist. Wenn Sie eine Seite als Dienst verwenden, waren noch 46 Seiten zum Aufzeichnen von Marken vorhanden.

Zu Beginn der Entwicklung habe ich den Speicher frei verwendet - eine Seite mit 16 Bytes pro Marke, was die Verwendung mittelgroßer Starts einschränkt. Und für Rogaining, Touristenorientierung oder Abenteuerrennen gibt es nur wenige Stationen. Daher wurde die Idee der Verdichtung verwirklicht: Auf jeder Seite wurden zwei Markierungen geschrieben. Gleichzeitig bestand die Gefahr eines Datenverlusts, da die Aufzeichnungseinheit eine Seite umfasst und Sie bei einer erneuten Aufnahme die bereits aufgezeichnete Hälfte lesen müssen, um sie erneut schreiben zu können. Eigentlich bin ich letzten November während Rogaining auf diesen Rechen getreten, ein kleiner Teil der Daten ging verloren, ich musste viel manuell bearbeiten. Und obwohl ein Fehler im Code festgestellt wurde, entschied ich mich, auf geräumigere Chips umzusteigen, ohne das Risiko eines Datenverlusts beim Umschreiben.

Eine der möglichen Optionen ist die Verwendung von Mifare 4K-Chips, deren Struktur sich von 1K nur in der vierfachen Größe des Speichers unterscheidet. Solche Chips sind jedoch teurer und die Reinigungsdauer, Markierungen bei ihrer Verwendung würden zunehmen. Eine weitere Option ist die Verwendung der Chips der Ntag-Serie (213/215/216). Die Speicherstruktur von Ntag-Chips ist recht einfach: Der Speicher ist in Seiten mit 4 Bytes unterteilt, die ersten 4 und letzten 5 Seiten sind zum Speichern von Dienstinformationen reserviert, der Rest kann verwendet werden. Chips der Ntag-Serie unterscheiden sich in der Speichergröße, Ntag213 hat 36 freie Seiten (144 Bytes), Ntag215 hat 126 Seiten (504 Bytes) und Ntag216 hat 222 Seiten (888 Bytes). Infolgedessen habe ich die Unterstützung für alle Chips dieser Serie implementiert, obwohl Ntag215 als optimal angesehen werden kann, dessen Speicher für 120 Mark ausreicht und der Preis recht niedrig ist (etwa 0,2 USD pro Chip in Form eines Aufklebers oder 0,4 USD in Form eines Schlüsselbunds). Auf Anraten von SFR beschloss er außerdem, die Speicherung kritischer Informationen aufzugeben - die Nummer der letzten freien Seite zugunsten der binären Suche. Dies erhöhte den Zeitstempel, erhöhte jedoch die Zuverlässigkeit.

Die Ntag-Speicherseite enthält 4 Bytes, in die Sie die Stationsnummer - 1 Byte und den Zeitstempel - 4 Bytes eingeben müssen. Das Problem wurde durch die Tatsache gelöst, dass die gesamte Zeit der Initialisierung (Reinigung) des Chips auf einer separaten Seite geschrieben ist und wenn markiert, nur die unteren 3 Bytes von der Zeit. Beim Lesen wird dann die Zeit der Markierungen basierend auf der Initialisierungszeit vollständig wiederhergestellt. Eine andere Seite im Chip ist mit der Chipnummer belegt und zwei bleiben in Reserve. Die resultierende Struktur ist unten dargestellt:



Die Verwendung von Ntag ermöglichte die Lösung des Problems der sicheren Aufzeichnung einer großen Anzahl von Markierungen auf dem Chip, es trat jedoch ein anderes Problem auf. Ntag-Chips benötigen mehr Sendeleistung als Mifare mit demselben Antennenbereich, und Schlüsselbundchips, bei denen die Antenne in der Größenordnung von 2 cm ^ 2 liegt, funktionieren auf dem RC522-Modul möglicherweise standardmäßig nicht gut. Die Lösung des Problems bestand darin, die Induktivitäten des Moduls auf leistungsstärkere zu verlöten. Gleichzeitig erhöhte sich der Ansprechbereich für Ntag-Chips bis zu 2 cm und für Mifare bis zu 3 cm erheblich. Einige Module begannen jedoch aufgrund eines solchen Lötens schlecht zu funktionieren: Die Chips wurden nur mit einem bestimmten und eher unvorhersehbaren Abstand von der Sendeantenne aufgezeichnet. Ich musste in die RC522 Arduino-Bibliothek gehen und dort den Verstärkungsparameter finden, der für die Antennenleistung verantwortlich ist. Die Bearbeitung für einzelne Stationen löste das Problem. Er beherrschte auch die manuelle Herstellung von Chips an einem Armband aus Aufklebern. Alibaba ist bereits fertig und schön im Verkauf, aber ihre Antennenfläche ist fast halb so groß, die Marke geht weniger stabil. Ich stelle auch fest, dass ich die Unterstützung für Mifare 1K-Chips verlassen habe, Sie können mit ihnen arbeiten, aber dafür müssen Sie eine separate Firmware verwenden, und die Chipkapazität ist auf 42 Mark begrenzt, aber sie werden mit RC522-Modulen geliefert.



Ein weiteres Problem, das während der Entwicklung gelöst werden musste, war der falsche Lauf der Uhr. In einigen Stationen begann die Uhr bis zu 5 Minuten pro Tag zu verzögern oder zu rasen. Lange Zeit konnte ich nicht verstehen, was der Grund war, dann stellte ich fest, dass nur Stationen mit einer werkseitig hergestellten Leiterplatte fehlerhaft sind, während bei manuell geätzten Stationen alles einwandfrei funktioniert. Ich dachte darüber nach, womit das verbunden sein könnte. Auf handgeätzten eher dicken Spuren aufgrund ihrer reichlichen Verzinnung weniger Widerstand. Es stellte sich heraus, dass der Kondensator am Ausgang des Stabilisators nicht ausreicht, um die Leistung der Uhr auf dünnen Werksspuren zu entkoppeln. Ich habe einen weiteren Kondensator nahe an die Uhr gestellt, und das Problem wurde größtenteils behoben. Ein kleiner Teil der Uhr fällt immer noch aus, aber ich verbinde dies bereits mit der Verbindung billiger Uhren mit Ali. Sie müssen nach zuverlässigen Lieferanten suchen.

Nun, die letzte Änderung in der Schaltung ist die Verstärkung des Tonsignals. Zuvor wurde die Steuerung und Leistung des Hochtöners in der Schaltung vom Fuß des Mikrocontrollers aus durchgeführt, daher war die Leistung ziemlich begrenzt. Jetzt wird die Energie direkt von den Batterien geliefert, und die Steuerung erfolgt über einen Transistor, der die Signallautstärke erheblich erhöht. All diese Änderungen werden jetzt berücksichtigt und in Gerber-Dateien eingeführt, aber ich habe ungefähr 40 Stationen manuell überarbeitet, ich musste die Verbindung heraussuchen, die Spuren abschneiden, den Transistor an die Drähte hängen, es gab einige kaputte Stationen.



Aufgrund des Übergangs zu anderen Chips musste die Firmware der Basisstationen grundlegend geändert werden, aber das Prinzip und die Logik der Arbeit blieben größtenteils gleich. Die gleichen Modi zum Energiesparen, Schlafen, Arbeiten und Einstellen mit Master-Chips. Die Firmware des Gateways wurde jedoch komplett neu gestaltet. Das vorherige Kommunikationsprotokoll, als Daten in einem COM-Port in einem kontinuierlichen Stream gestreamt wurden, schien anfällig zu sein: Ein Byte wurde übersehen, und alle Daten wurden zu einem Kürbis. Die Anpassung an bestehende Datenübertragungsprotokolle schien langweilig, deshalb erfand er sein Fahrrad.

Informationen werden nacheinander durch Senden von Paketen mit bis zu 32 Bytes gesendet und empfangen. Wenn die übertragenen Daten nicht in das Paket passen, erfolgt die Übertragung durch sequentielles Weiterleiten der Pakete. Das Paket beginnt mit dem Startbyte 0xFE, gefolgt von der Befehlsnummer, der Länge des Pakets, den Daten und am Ende der Prüfsumme. Befehle werden nur mit dem korrekten Wert der Prüfsumme und der Startbytes übergeben. Ziemlich einfach und zuverlässig genug.



Die Verbindung wurde hergestellt, aber es war notwendig, normale Software für den Computer zu schreiben, meine Handwerksarbeiten zur Verarbeitung waren dafür nicht geeignet. Semyon Yakimov, der ein Python- Modul für die Arbeit mit dem System erstellt hat, hat dies aufgegriffen, wofür er sehr dankbar ist. Mit dem Modul können Sie mit dem Gateway kommunizieren, Daten in einem praktischen Format senden und empfangen. Danach beherrschte ich Python als erste Annäherung und schrieb eine einfache GUI-Anwendung basierend auf diesem Modul und PyQt, mit der das System konfiguriert und Daten von Chips in Form einer JSON-Datei gesammelt werden können. Nun, dann können die Daten mit kleinen Skripten für Wettbewerbe mit einer Vielzahl von Bedingungen und Regeln verarbeitet werden, die in einer bequemen Form ( touristische Orientierung , Rogaining ) herausgegeben werden. Dies impliziert jedoch einige Fähigkeiten, und das Glück wäre unvollständig, wenn nicht die Entwickler des SportOrg- Programms die Unterstützung für Sportiduino (zusätzlich zu Sportident und SFR) hinzugefügt hätten. Das Programm entwickelt sich aktiv weiter und viele Dinge können den Beginn des Orientierungslaufs beurteilen.

Fazit


Somit gibt es im Moment eine stabil funktionierende Hardware und Software. Ich glaube, dass das Ziel des Unternehmens erreicht wurde: Ein billiges elektronisches Markierungssystem ist erschienen. Ich werde im Rahmen dieses Schemas nichts ändern, es sei denn, es liegt ein Fehler vor. Das Markierungssystem wurde bereits bei einer Vielzahl verschiedener Wettbewerbe entwickelt und getestet: Orientierungslauf, Rogaining, Marschwurf, Trail, touristische Etappen. Neben mir wird es von mehreren Personen an verschiedenen Orten verwendet. Jemand hat das System gespielt, jemand hat dort Ergänzungen vorgenommen, zum Beispiel ein Funkmodul oder die Verwendung von Lithiumbatterien und Mifare- Chips als Hauptmodule.

Die Entwicklung ist offen und nicht kommerziell und unter der GNU GPLv3 lizenziert. Jeder kann es frei kopieren, reproduzieren, ändern und verwenden. Im letzten Jahr habe ich viele Fragen gestellt, ob ich einen Stationsverkauf mache. Nein, das möchte ich nicht. Andererseits macht es mir nichts aus, wenn jemand diese Nische füllt. Ich bin nur bereit, Ratschläge zur Montage und Verwendung zu geben, da dort alles recht einfach ist.

Das Projekt ist auf Github verfügbar, es gibt Diagramme, Anweisungen und anderes nützliches Material. Danke für die Aufmerksamkeit.

Source: https://habr.com/ru/post/de427661/


All Articles