Innholdsfortegnelse:

Sponsorløp med C# og Arduino + RC-522: 5 trinn
Sponsorløp med C# og Arduino + RC-522: 5 trinn

Video: Sponsorløp med C# og Arduino + RC-522: 5 trinn

Video: Sponsorløp med C# og Arduino + RC-522: 5 trinn
Video: Sponsorløp 2020 2024, Juli
Anonim
Sponsor Run With C# og Arduino + RC-522
Sponsor Run With C# og Arduino + RC-522

Sponsorløp er ganske vanlige. Imidlertid er det ikke alltid lett å administrere dem. Det innebærer å registrere hvor mange runder hvert lag løper på en effektiv måte. Jeg bestemte meg for å bruke RFID til å bruke som et tegn for å identifisere hvert lag. Kombinert med det faktum at du kan hente et RC-522 RFID-leserkort og en arduino ganske billig, gjør det det enkelt å bygge dette systemet.

Trinn 1: Liste over nødvendige materialer

  • Arduino -brett: et hvilket som helst brett vil gjøre. Jeg bruker Arduino Nano for størrelsen
  • Arduino utviklingsmiljø
  • RC-522: kan kjøpes/bestilles lokalt eller i utlandet
  • MiFare 13,56 MHz -tagger. Normalt kan noen prøver komme med RC-522-kortet. Typen av tag spiller ingen rolle. Bare sjekk at de har riktig frekvens.
  • En PC som kjører Windows og har Visual Studio installert, hvis du vil endre koden.

Trinn 2: Forberedelse av Arduino + RC-522

Forbereder Arduino + RC-522
Forbereder Arduino + RC-522

Bildet ovenfor viser ledningene til RC-522-modulen til Arduino. Enhver Arduino vil gjøre. Så hvis du har en Arduino Nano tilgjengelig, kan du vurdere å bruke den. På thingiverse kan du finne noen tilfeller for boksing av alt sammen. Jeg prøvde en, men marginene for å skrive den ut var for små og endte opp med en ubrukelig 3D-utskrift.

Jeg jobber fremdeles med en god sak for det.

For å kunne bruke RC-522-kortet må du legge til et bibliotek i Arduino-redaktøren. Dessverre er det ikke et bibliotek som administreres av Arduino -redaktøren, så du må legge det til "old school" -metoden for å laste det ned og kopiere den til bibliotekmappen. Ikke glem å starte Arduino -editoren på nytt for å gjøre den tilgjengelig.

Biblioteket finner du på

Nå har du redaktøren klar. Det er på tide å laste opp skriptet til Arduino. Hvis du analyserer koden, vil du finne at det er et intervall på 5000 millisekunder der det unngås å skrive ut den samme nøkkelen flere ganger. Du kan variere det intervallet, men hvis du setter det for lite, vises den samme nøkkelen flere ganger etter hverandre.

Så nå er det på tide å sjekke om denne delen fungerer. RFID -ene jeg bruker er standard MiFare 1Kb fobs på 13,56 MHz, som også er veldig billig tilgjengelig.

Åpne den serielle skjermen til Arduino-editoren og se tastene vises når du tar dem med til RC-522-modulen.

Trinn 3: Windows -grensesnittet skrevet i C#

Windows -grensesnittet skrevet i C#
Windows -grensesnittet skrevet i C#

Du finner inkludert en komprimert mappe som inneholder C# -prosjektet. Last den ned og pakk den ut. Koden ble skrevet i Visual Studio 2017 målretting. Net framework 4.6.1. Enhver oppdatert datamaskin bør ha denne og kunne kjøre den. Du trenger ikke nødvendigvis å installere Visual Studio. Koden er gitt for de som ønsker å endre eller undersøke den. Uten endringer i programmet er varigheten av løpeturen satt til 1 time og 30 minutter. Den vanlige rundetiden er satt til 50 sekunder, som er for en 400 meters bane.

Den kjørbare filen finnes i Debug -mappen som ligger under mappen SponsorRun / SponsorRun / bin.

I den mappen er også tekstfilene som brukes i dette prosjektet for å lagre dataene.

Tekstfilene er:

  • rfidKeys.txt: inneholder nøklene for de forskjellige lagene. Den første nøkkelen er for førstelaget, og så videre. Du kan fjerne denne filen og legge til dine egne nøkler (se nedenfor hvordan programmet fungerer)
  • teams.txt: inneholder navnene på de forskjellige lagene. Fornavnet er på førstelaget, og så videre. Rediger denne filen med en vanlig tekstredigerer (notisblokk kan gjøre det).
  • results.txt: en CSV-formatert fil som inneholder resultatene fra de forskjellige rundene til lagene (kan være fraværende når det ikke er registrert noen runder så langt)
  • fraude.txt: en CSV-formatert fil som inneholder lag som prøver å jukse (kan være fraværende når ingen juks er oppdaget ennå)

Slik fungerer programmet som følger:

  • Ved initialisering registrerer programmet de forskjellige COM -portene på datamaskinen. Du bør velge COM -porten som er tilordnet Arduino for å gjøre kommunikasjonen mulig. Som standard bør COM -hastigheten være 9600 bps, som tilsvarer hastigheten som er angitt i Arduino -koden.
  • Klikk på "Start lytter" -knappen for å aktivere kommunikasjonen
  • Fra det tidspunktet kan du velge mellom to funksjoner:

    • Les RFID -nøkler: dette legger til nye nøkler i filen rfidKeys.txt
    • Registrer runde (standardalternativ): registrerer en ny runde i results.txt -filen. Hver gang en gyldig nøkkel blir lest, vil det vises en melding, og det vil høres en pipetone for å bekrefte registreringen. En linje vil bli lagt til results.txt. Hvis du prøver å jukse, vil meldingen vises i en egen tekstboks, et nytt pip vil lyde og resultatet vil bli skrevet til fraude.txt. I så fall vil tiden for runden settes til det tidspunktet jukset ble oppdaget.

Trinn 4: Mulige forbedringer

Jeg laget dette prosjektet for en spesifikk situasjon på skolen min. Det er åpenbart at noen av parameterne som brukes ikke er egnet for prosjektet ditt. For nå må du justere parameterne i C# -koden og kompilere programmet på nytt, noe som krever installasjon av Visual Studio (en heftig 3,5 GB installasjon). Hvis det er en rimelig mengde svar, kan jeg vurdere å lese disse parameterne fra en ekstern fil.

3D-sakene jeg fant for å huse Arduino-prosjektet er ikke brukbare. Jeg begynte på en, men hadde noen tilbakeslag, som er grunnen, jeg har ikke lagt dem til ennå. Alle som ønsker å dele en kan kontakte meg, så jeg kan referere til arbeidet ditt i denne instruksjonsboken.

Trinn 5: Gi tommelen opp !

Jeg håper du kan bruke dette prosjektet, og jeg gleder meg til å høre fra deg.