Inhoudsopgave:
- Stap 1: Lijst met benodigde materialen
- Stap 2: De Arduino + RC-522 voorbereiden
- Stap 3: De Windows-interface geschreven in C#
- Stap 4: Mogelijke verbeteringen
- Stap 5: Geef duimen omhoog!
Video: Sponsor Run met C# en Arduino + RC-522: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Sponsorloopjes zijn heel gewoon. Het beheren ervan is echter niet altijd een gemakkelijke taak. Het gaat om het registreren van hoeveel ronden elk team op een efficiënte manier loopt. Ik besloot RFID's te gebruiken als token om elk team te identificeren. Gecombineerd met het feit dat je een RC-522 RFID-lezerkaart en een arduino vrij goedkoop kunt kopen, maakt het het mogelijk om dit systeem vrij eenvoudig te bouwen.
Stap 1: Lijst met benodigde materialen
- Arduino-bord: elk bord is geschikt. Ik gebruik Arduino Nano vanwege zijn grootte
- Arduino ontwikkelomgeving
- RC-522: kan in binnen- of buitenland worden gekocht/besteld
- MiFare 13,56 MHz-tags. Normaal gesproken kunnen er enkele samples bij uw RC-522-bord worden geleverd. Het type tag maakt niet uit. Controleer gewoon of ze de juiste frequentie hebben.
- Een pc met Windows waarop Visual Studio is geïnstalleerd, als u de code wilt wijzigen.
Stap 2: De Arduino + RC-522 voorbereiden
De afbeelding hierboven toont de bedrading van de RC-522-module naar de Arduino. Elke Arduino zal het doen. Dus als je een Arduino Nano beschikbaar hebt, zou je kunnen overwegen om die te gebruiken. Op thingiverse vind je enkele koffers om alles bij elkaar te boksen. Ik probeerde er een uit, maar de marges om het te printen waren te klein, wat resulteerde in een onbruikbare 3D-print.
Daarvoor ben ik nog bezig met een goede zaak.
Om gebruik te kunnen maken van je RC-522-bord, moet je een bibliotheek toevoegen aan de Arduino-editor. Helaas is het geen bibliotheek die wordt beheerd door de Arduino-editor, dus je zult het de "old school"-methode moeten toevoegen om het te downloaden en naar de bibliothekenmap te kopiëren. Vergeet niet de Arduino-editor opnieuw te starten om deze toegankelijk te maken.
De bibliotheek is te vinden op
Inmiddels heb je de editor klaar. Het is tijd om het script naar je Arduino te uploaden. Als u de code analyseert, zult u zien dat er een interval van 5000 milliseconden is waarin wordt vermeden om dezelfde sleutel meerdere keren af te drukken. Je kunt dat interval variëren, maar als je het te klein instelt, wordt dezelfde sleutel meerdere keren achter elkaar weergegeven.
Dus nu is het tijd om te controleren of dit onderdeel werkt. De RFID's die ik gebruik zijn standaard MiFare 1Kb fobs op 13,56 MHz, die ook erg goedkoop verkrijgbaar zijn.
Open de seriële monitor van de Arduino-editor en kijk hoe de toetsen verschijnen terwijl je ze naar de RC-522-module brengt.
Stap 3: De Windows-interface geschreven in C#
U vindt een gecomprimeerde map met daarin het C#-project. Download het en pak het uit. De code is geschreven in Visual Studio 2017 gericht op. Net-framework 4.6.1. Elke bijgewerkte computer zou dit moeten hebben en in staat moeten zijn om het uit te voeren. U hoeft Visual Studio niet per se te installeren. De code is bedoeld voor degenen die deze willen wijzigen of onderzoeken. Zonder aanpassingen aan het programma wordt de duur van de run ingesteld op 1 uur en 30 minuten. De normale rondetijd is ingesteld op 50 seconden en dat is voor een baan van 400 meter.
Het uitvoerbare bestand is te vinden in de map Debug die zich onder de map SponsorRun\SponsorRun\bin bevindt.
In die map bevinden zich ook de tekstbestanden die in dit project worden gebruikt om de gegevens op te slaan.
De tekstbestanden zijn:
- rfidKeys.txt: met daarin de sleutels voor de verschillende teams. De eerste sleutel is voor het eerste team, enzovoort. U kunt dit bestand verwijderen en uw eigen sleutels toevoegen (kijk hieronder hoe het programma werkt)
- teams.txt: met daarin de namen voor de verschillende teams. De voornaam is voor het eerste team, enzovoort. Bewerk dit bestand met een gewone teksteditor (kladblok kan dat doen).
- results.txt: een CSV-bestand met de resultaten van de verschillende ronden van de teams (kan afwezig zijn, wanneer er tot nu toe geen ronden zijn geregistreerd)
- fraude.txt: een CSV-geformatteerd bestand met teams die proberen vals te spelen (mogelijk afwezig als er nog geen bedrog is gedetecteerd)
De werking van het programma is als volgt:
- Bij initialisatie detecteert het programma de verschillende COM-poorten op uw computer. U moet de COM-poort selecteren die aan uw Arduino is toegewezen om de communicatie mogelijk te maken. Standaard moet de COM-snelheid 9600 bps zijn, wat overeenkomt met de snelheid die is ingesteld in de Arduino-code.
- Klik op de knop "Begin met luisteren" om de communicatie te activeren
-
Vanaf dat moment kun je kiezen tussen twee functies:
- RFID-sleutels lezen: dit voegt nieuwe sleutels toe aan het bestand rfidKeys.txt
- Registreer ronde (standaardoptie): registreert een nieuwe ronde in het results.txt-bestand. Elke keer dat een geldige sleutel wordt gelezen, verschijnt er een bericht en klinkt er een pieptoon om de registratie te bevestigen. Er wordt een regel toegevoegd aan results.txt. Bij een poging tot valsspelen verschijnt de melding in een apart tekstvak, klinkt er nog een pieptoon en wordt het resultaat naar fraude.txt geschreven. In dat geval wordt de tijd voor de ronde ingesteld op het moment dat het bedrog werd gedetecteerd.
Stap 4: Mogelijke verbeteringen
Ik heb dit project gemaakt voor een specifieke situatie op mijn school. Het is duidelijk dat sommige van de gebruikte parameters mogelijk niet geschikt zijn voor uw project. Voorlopig zul je de parameters in de C#-code moeten aanpassen en het programma opnieuw moeten compileren, wat de installatie van Visual Studio vereist (een flinke installatie van 3,5 GB). Als er een redelijke hoeveelheid respons is, kan ik overwegen deze parameters uit een extern bestand te lezen.
De 3D-cases die ik heb gevonden voor het huisvesten van het Arduino-project zijn niet bruikbaar. Ik ben er aan begonnen, maar had wat tegenslagen, daarom heb ik ze nog niet toegevoegd. Iedereen die er een wil delen, kan contact met mij opnemen, zodat ik naar uw werk in deze Instructable kan verwijzen.
Stap 5: Geef duimen omhoog!
Ik hoop dat je dit project kunt gebruiken en ik hoor graag van je.