Hallo Community! Habe ein neues Projekt in den Kopf bekommen, und zwar ein RFID-Türschloss! Habe heute ein "RFID-RC522" Modul geschickt bekommen. Auslesen möchte ich nur die UID eines Tags. Habe heute angefangen im Internet zu suchen, doch leider für Bascom nichts gefunden. Wohingegen ich für arduino mehrere Projekte gefunden hab. Da ich eh noch einen MEGA (Atmega2650) rumliegen gehabt habe, hab ich die software drauf gespielt und siehe da: es funktioniert! Was ich dabei raus gefunden habe, ist dass die Kommunikation via SPI geschieht. Nun möchte ich das ganze in Bascom programmieren, habe aber überhaupt keine Ahnung wie ich jetzt anfangen soll, um NUR die UID des Tags auslesen zu können. Datenblatt: http://www.nxp.com/documents/data_sheet/MFRC522.pdf Ich bedanke mich im vorherein schonmal ganz Herzlich! mfg Maximilian K.
Na Du bist ja ein lustiger Vogel. Hängst das ausführliche und gute Datenblatt noch hinten dran. Das sind Applikationsbeispiele in Hardware und Protokollbeschreibung mit dran. Sollen wir das jetzt für Dich durchlesen und vorkauen? Danach fragst du auch noch nach Bascom Code? Na ich hab's mal überflogen: Das Ding kann SPI I2C und "RS232". Also such dir was aus und fang an.
Und Du hast sogar noch funktionierende Arduino Programme. Entweder Du hast überhaupt keine Ahnung von "Programmierung", oder suchst jemanden der Dir die Hausaufgaben macht. Beides ist schlecht. Arduino macht Dir doch alles vor, die Portierung in eine beliebige Sprache sollte ein Kinderspiel sein. Vorher wirst Du aber schon an der Hardware scheitern, das Ding ist nicht ohne. In den APP Notes ( ZIP File) wird alles erklärt, bis zum Platinenlayout alles vorhanden. Aber lesen kannst oder willst Du ja offenbar nicht. TSCHÜSS
Warum bekommt man in diesem Forum als Anfänger, die nicht so unhilfreich ist wie deine? Warum muss man seine Zeit dann "verschwenden" sowas zu schreiben?
> Nun möchte ich das ganze in Bascom programmieren, habe aber überhaupt > keine Ahnung wie ich jetzt anfangen soll, um NUR die UID des Tags > auslesen zu können. Ist relativ simpel: aus dem dir zur Verfügung stehenden Code ermittelst du die Initialisierung. Diese bildest du in BASCOM ab. Danach schaust du nach den Codeteilen, welche nötig sind um bis zur UID zu kommen, also eben "search transponder", "select transponder", etc. Wenn du die vorhandenen Codebeispiele fein genug auseinander nimmst kommst du automatisch auf die Umsetzung in BASCOM. Und C<->BASCOM dürfte soo schwierig nicht sein, denke ich. Wenn du dann eine erste BASCOM-Version hast, die zumindest in Grundzügen läuft, aber noch nicht das macht was du möchtest, dann beschreibe das Problem hier. Wichtig ist, dass du nicht gleich drauf los programmierst, sondern dir eine Liste machst, was im Demoprogramm passiert, und das dann für BASCOM passend umsetzt. Ralf
@maximilian >Was ich dabei raus gefunden habe, ist dass die Kommunikation via SPI >geschieht. Na, da hast Du ja schon mal einen Anhaltspunkt. Guck mal in die Hilfe von Bascom zu SPIINIT, SPIIN,SPIOUT, SPIMOVE Konkret kann ich Dir aber auch nicht helfen, weil ich kein solches Modul besitze. >Warum muss man seine Zeit dann "verschwenden" sowas zu schreiben? Hinweis: Reagiere nicht auf Schwätzer und auf Laien. Wenn sie etwas zm Thema wüßten, wären es eben keine Laien. MfG Paul
Hallo! Hab heute den ganzen Tag versucht mich mit dem Problem außeinander zu setzen. Leider erfolglos! Ich habe den Code (in C vom Arduino Skript) durchgelesen, verstehe aber fast nichts davon. Da ich auch Java kann, weiß ich zumindest schon was es sich mit Klassen/Methoden auf sich hat. Kann man nicht das Modul einfach so ansteuern? Hier mal die Quelle mit dem Arduino Code: https://github.com/miguelbalboa/rfid/tree/master/examples .... das Example: DumpInfo MfG
Ui, was meinst Du damit, was willst Du nun konkret an Hilfestellung? Sieht so aus, als möchtest Du ein fertiges Bascom Programm geliefert bekommen. Laie und Paul haben doch schon den grundsätzlichen Weg beschrieben. Arduino ist ja so simpel, dass selbst unbedarfte Künstler damit klarkommen. Also Kupfer das einfach ab Richtung Bascom oder nutze Arduino. Wäre nicht das erste Mal das Leute nix verstehen, aber es mit Arduino einfach zum Laufen bringen. Und Versuch mal bitte konkret zu beschreiben wo dein Problem ist. Aus deinem letzten Hilferuf wird nämlich keiner schlau.... Freddy
Maximilian K. schrieb: > Kann man nicht das Modul einfach so ansteuern? Ja, das geht. Das Modul versteht RS232. Du schickst dem Modul Befehle, die es ausführt und darauf eine Antwort zurück gibt. Der Befehlssatz steht im Datenblatt. Dazu brauchst Du keine Bibliothek, sondern nur ein Verständnis dafür, wie Du eine RS232-Kommunikation durchführst. Falls Du die ID mit einem PC verarbeiten möchtest, brauchst Du garkeinen µC dazwischen - nur einen Pegelwandler vom +-12V (PC-Seitig) auf TTL (Modulseitig).
:
Bearbeitet durch User
Hallo! Die Idee mit dem RS232 ist denk ich mal auszuprobieren. Ich habe einen PL2303 Wandler, Welches sind am RF522 dann die TX und RX Pins? Es gibt nur: Mosi, Miso, Sck, Ss, 3.3V, GND
Maximilian Klug schrieb: > Welches sind am RF522 dann die TX und RX > Pins? Wenn ich es richtig im Kopf habe hat der Chip zwar ein RS232 kompatibles interface, das ist aber nicht auf dem Modul herausgefuehrt. Essig. Andere Idee: Es gibt USB nach SPI Adapter, ähnlich wie diese USB nach UART Adapter. Verwende evtl. so einen ?!
:
Bearbeitet durch User
Kannst Du nicht einfach ins Datenblatt schauen, wie andere Menschen das auch tun? Ich find es langsam etwas dreist.... Ob Controller oder nicht, auch bei de PC Ansteuerung musst Du das Datenblatt lesen und verstehen wie die Kommunikation abläuft. Ich sehe da etwas schwarz für Dich ;-)
Kai S. schrieb: > Wenn ich es richtig im Kopf habe hat der Chip zwar ein RS232 kompatibles > interface, das ist aber nicht auf dem Modul herausgefuehrt. Essig. Die Pins sind die selben. Der Chip erkennt sogar selbstständig das verwendete Interface. Steht alles im Datenblatt, welches jedoch scheibar nicht lesbar ist (zumindest funktioniert es aber bei mir).
:
Bearbeitet durch User
Moin Maximilian, ich versuche die Library von Miguel Balboa für meine PICs lauffähig zu machen, also sitz ich da auch gerade dran ;o) . Hier wurde aber auch gesagt das man lieber selbst den Code schreiben sollte anstatt auf fertigen Code zurückzugreifen, und das stimmt, ich bin so faul! Um das LESEN des Datenblatts des MFRC522 wirst du nicht rumkommen. Das die Pins mehrfach belegt sind und der Chip erkennt ob gerade I2C, SPI oder UART gefragt ist stimmt, ich helf dir mal insoweit das ich dir folgendes an die Hand gebe: SDA/NSS/RX , SCL/MISO/TX , MOSI/MX , SCK/DTRQ gehören zusammen (NSS ist dein SS oder oft als CS bezeichnet) Wenn du mit MX und DTRQ nicht soviel anfangen kannst, dann nehm dir diesen Satz aus dem Datenblatt zu Herzen: Remark: Signals DTRQ and MX can be disabled by clearing TestPinEnReg register’s RS232LineEn bit Wenn ich das richtig verstehe muß man um MX und DTRQ auszuschalten beim TestPinEnReg Register das RS232LineEn Bit auf 0 setzen. Best regards dat Beast
Wer Java kann, wird das verstehen, wer nur Bascom kann, der auch... import serial import sys import time from operator import xor # UART ID = "" Zeichen = 0 Checksumme = 0 Tag = 0 # Flags Startflag = "\x02" Endflag = "\x03" # UART oeffnen UART = serial.Serial("/dev/ttyAMA0", 9600) UART.open() while True: # Variablen loeschen Checksumme = 0 Checksumme_Tag = 0 ID = "" # Zeichen einlesen Zeichen = UART.read() # Uebertragungsstart signalisiert worden? if Zeichen == Startflag: # ID zusammen setzen for Counter in range(13): Zeichen = UART.read() ID = ID + str(Zeichen) # Endflag aus dem String loeschen ID = ID.replace(Endflag, "" ); # Checksumme berechnen for I in range(0, 9, 2): Checksumme = Checksumme ^ (((int(ID[I], 16)) << 4) + int(ID[I+1], 16)) Checksumme = hex(Checksumme) # Tag herausfiltern Tag = ((int(ID[1], 16)) << 8) + ((int(ID[2], 16)) << 4) + ((int(ID[3], 16)) << 0) Tag = hex(Tag) # Ausgabe der Daten print "------------------------------------------" print "Datensatz: ", ID print "Tag: ", Tag print "ID: ", ID[4:10] print "Checksumme: ", Checksumme print "------------------------------------------"
Mich nervt das dieser Beitrag bei Google ganz oben steht wenn man nach mfrc522 sucht. Für den Jungen der nicht weis wies geht Code für Arduino im Anhang. Bascom hab ich irgendwann kapiert. Aber die jungen Leute haben nie verstanden was ich da mache.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.