Inhaltsverzeichnis:
- Schritt 1: Liste der benötigten Materialien
- Schritt 2: Vorbereiten des Arduino + RC-522
- Schritt 3: Die in C# geschriebene Windows-Oberfläche
- Schritt 4: Mögliche Verbesserungen
- Schritt 5: Daumen hoch !
Video: Sponsor Run mit C# und Arduino + RC-522 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Sponsorenläufe sind durchaus üblich. Sie zu verwalten ist jedoch nicht immer einfach. Es geht darum, zu registrieren, wie viele Runden jedes Team effizient fährt. Ich beschloss, RFIDs zu verwenden, um jedes Team als Token zu identifizieren. In Kombination mit der Tatsache, dass Sie eine RC-522-RFID-Lesekarte und ein Arduino recht günstig erwerben können, ist es möglich, dieses System ganz einfach zu konstruieren.
Schritt 1: Liste der benötigten Materialien
- Arduino-Board: Jedes Board wird es tun. Ich benutze Arduino Nano für seine Größe
- Arduino-Entwicklungsumgebung
- RC-522: kann im In- oder Ausland gekauft/bestellt werden
- MiFare 13,56 MHz-Tags. Normalerweise werden einige Samples mit Ihrem RC-522-Board geliefert. Die Art des Tags spielt keine Rolle. Überprüfen Sie einfach, ob sie die richtige Frequenz haben.
- Ein PC, auf dem Windows ausgeführt wird und auf dem Visual Studio installiert ist, wenn Sie den Code ändern möchten.
Schritt 2: Vorbereiten des Arduino + RC-522
Das Bild oben zeigt die Verdrahtung des RC-522-Moduls zum Arduino. Jeder Arduino wird es tun. Wenn Sie also einen Arduino Nano zur Verfügung haben, können Sie diesen verwenden. Auf thingiverse finden Sie einige Fälle, in denen Sie alles zusammenboxen können. Ich habe einen ausprobiert, aber die Ränder zum Drucken waren zu klein, was zu einem unbrauchbaren 3D-Druck führte.
Ich arbeite noch an einem guten Fall dafür.
Um Ihr RC-522-Board nutzen zu können, müssen Sie dem Arduino-Editor eine Bibliothek hinzufügen. Leider ist es keine Bibliothek, die vom Arduino-Editor verwaltet wird, daher müssen Sie sie mit der "Old School" -Methode zum Herunterladen und Kopieren in den Bibliotheksordner hinzufügen. Vergessen Sie nicht, den Arduino-Editor neu zu starten, um ihn zugänglich zu machen.
Die Bibliothek finden Sie unter
Inzwischen haben Sie den Editor bereit. Es ist Zeit, das Skript auf Ihr Arduino hochzuladen. Wenn Sie den Code analysieren, werden Sie feststellen, dass es ein Intervall von 5000 Millisekunden gibt, in dem vermieden wird, denselben Schlüssel mehrmals auszudrucken. Sie können dieses Intervall variieren, aber wenn Sie es zu klein einstellen, wird dieselbe Taste mehrmals hintereinander angezeigt.
Also, jetzt ist es an der Zeit zu überprüfen, ob dieser Teil funktioniert. Die von mir verwendeten RFIDs sind Standard-MiFare 1Kb-Anhänger mit 13,56 MHz, die auch sehr günstig erhältlich sind.
Öffnen Sie den seriellen Monitor des Arduino-Editors und beobachten Sie, wie die Tasten erscheinen, wenn Sie sie zum RC-522-Modul bringen.
Schritt 3: Die in C# geschriebene Windows-Oberfläche
Im Lieferumfang ist ein komprimierter Ordner enthalten, der das C#-Projekt enthält. Laden Sie es herunter und entpacken Sie es. Der Code wurde in Visual Studio 2017 geschrieben und zielt auf. Net Framework 4.6.1 ab. Jeder aktualisierte Computer sollte dies haben und in der Lage sein, es auszuführen. Sie müssen Visual Studio nicht unbedingt installieren. Der Code wird für diejenigen bereitgestellt, die ihn ändern oder untersuchen möchten. Ohne Programmänderungen wird die Laufdauer auf 1 Stunde und 30 Minuten eingestellt. Die normale Rundenzeit ist auf 50 Sekunden eingestellt, was für eine 400-Meter-Strecke gilt.
Die ausführbare Datei befindet sich im Debug-Ordner, der sich im Ordner SponsorRun\SponsorRun\bin befindet.
In diesem Ordner befinden sich auch die Textdateien, die in diesem Projekt zum Speichern der Daten verwendet werden.
Die Textdateien sind:
- rfidKeys.txt: enthält die Schlüssel für die verschiedenen Teams. Der erste Schlüssel ist für das erste Team und so weiter. Sie können diese Datei entfernen und Ihre eigenen Schlüssel hinzufügen (siehe unten, wie das Programm funktioniert)
- teams.txt: enthält die Namen der verschiedenen Teams. Der Vorname steht für die erste Mannschaft und so weiter. Bearbeiten Sie diese Datei mit einem üblichen Nur-Text-Editor (möglicherweise mit Notepad).
- results.txt: eine CSV-formatierte Datei mit den Ergebnissen der verschiedenen Runden der Teams (kann fehlen, wenn noch keine Runden registriert wurden)
- betruge.txt: eine CSV-formatierte Datei, die Teams enthält, die versuchen zu betrügen (kann fehlen, wenn noch kein Betrug erkannt wurde)
Die Funktionsweise des Programms ist wie folgt:
- Bei der Initialisierung erkennt das Programm die verschiedenen COM-Ports Ihres Computers. Sie sollten den Ihrem Arduino zugewiesenen COM-Port auswählen, um die Kommunikation zu ermöglichen. Standardmäßig sollte die COM-Geschwindigkeitsrate 9600 bps betragen, was der im Arduino-Code eingestellten Geschwindigkeit entspricht.
- Klicken Sie auf die Schaltfläche "Anhören starten", um die Kommunikation zu aktivieren
-
Ab diesem Zeitpunkt können Sie zwischen zwei Funktionen wählen:
- RFID-Schlüssel lesen: Dies fügt der Datei rfidKeys.txt neue Schlüssel hinzu
- Runde registrieren (Standardoption): registriert eine neue Runde in der Datei results.txt. Jedes Mal, wenn ein gültiger Schlüssel gelesen wird, erscheint eine Meldung und ein Signalton ertönt, um die Registrierung zu bestätigen. Der results.txt wird eine Zeile hinzugefügt. Bei einem Betrugsversuch wird die Meldung in einem separaten Textfeld angezeigt, ein weiterer Piepton ertönt und das Ergebnis wird in die betrügerische.txt-Datei geschrieben. In diesem Fall wird die Zeit für die Runde auf den Moment gesetzt, in dem der Betrug erkannt wurde.
Schritt 4: Mögliche Verbesserungen
Ich habe dieses Projekt für eine spezielle Situation in meiner Schule entwickelt. Es ist offensichtlich, dass einige der verwendeten Parameter für Ihr Projekt möglicherweise nicht geeignet sind. Vorerst müssen Sie die Parameter im C#-Code anpassen und das Programm neu kompilieren, was die Installation von Visual Studio (eine stattliche 3,5-GB-Installation) erfordert. Wenn es eine angemessene Menge an Antworten gibt, kann ich erwägen, diese Parameter aus einer externen Datei zu lesen.
Die 3D-Gehäuse, die ich für die Unterbringung des Arduino-Projekts gefunden habe, sind nicht verwendbar. Ich habe mit einem angefangen, hatte aber einige Rückschläge, weshalb ich sie noch nicht hinzugefügt habe. Jeder, der einen teilen möchte, kann mich kontaktieren, damit ich auf Ihre Arbeit in diesem Instructable verweisen kann.
Schritt 5: Daumen hoch !
Ich hoffe, Sie können dieses Projekt nutzen und freue mich, von Ihnen zu hören.