TonUINO Karten Programmer

Hab ich gemacht :slight_smile:

Hier der Link zum Repo: GitHub - donschoof/TonuinoProgrammer: Arduino Based NFC Programmer for the Tonuino Project

Da steht eigentlich auch alles wichtige in der README. Habe auch die fehlenden Modi implementiert.

Der Großteil der UI Anpassungen für den TOOLBOX Mode dient übrigens dazu die Kiste als externen Programmer für die Tonuino-Toolbox zu nutzen. Hab einen funktionierenden Proof-of-Concept in folgendem Branch GitHub - donschoof/tonuino-toolbox-nfc at rfid-addon

Ist bei weitem nicht fertig, funktioniert aber technisch zumindest.

@Real_Kuno Ich habe noch mal hier reingeschaut und bei Thingiverse nach den .stl Dateien gesucht. Dort finden sich jede Menge Tonuino Dateien aber das Gehäuse für den Programmer konnte ich nirgendwo entdecken. Lädst du bitte die Dateien noch hoch?

Vielen Dank
Hans

@donschoof Da sind noch ein paar bugs im Sketch, ich habe einen issue geöffnet.
Gruß Hans

Servus Hans,
hab jetzt die STL Dateien in Thingiverse geladen.
hier der Link dazu: Tonuino programmer by real-kuno - Thingiverse
viele Grüße Chris

Vielen Dank, Chris. Drucker läuft!

@Real_Kuno So, Gehäuse ist fertig und passt, allerdings nur für den Nano Every, den du ja benutzt hast. Da weitaus häufiger der „normale“ Nano (Clone) im Einsatz sein dürfte, wäre es natürlich super, wenn es dafür eine angepasste Version gäbe. Die Änderungen würden die Auflagefläche des Nano betreffen (weil der „normale“ Nano auch Bauteile unter der Platine hat) sowie das Loch für den Resetknopf.

Die erweiterte Version von donschoof läuft übrigens nicht, ich habe bei Github einen issue geöffnet.

Edit: Sorry für die Verwirrung, die Version läuft. Irgendwie ist der Code bei mir unvollständig gelandet.

@HaSch Super, stell mal ein paar Fotos von dem Gehäuse rein. Schön das es passt.
viele Grüße Chris

Gerne:




Noch eine Bitte, Chris,

würde es dir etwas ausmachen, die noch fehlenden Modi zu implementieren? Ich habe es versucht aber ich finde es immer etwas schwierig, mich in eine Programmstruktur rein zu arbeiten, die jemand anderes gemacht hat.

 // Hörspiel Modus von bis = 7
  if (buffer[5] != 0x00 && buffer[6] == 0x07) {
    Serial.print(F("Hörspiel Modus 7 -> die Dateien "));
    Serial.print(buffer[7], DEC);
    Serial.print(F(" bis "));
    Serial.print(buffer[8], DEC);
    Serial.print(F(" aus dem Ordner "));
    Serial.print(buffer[5], DEC);
    Serial.println(F(" abspielen"));
    Serial.println();
  }
  // Album Modus von bis = 8
  if (buffer[5] != 0x00 && buffer[6] == 0x08) {
    Serial.print(F("Album Modus 8 -> die Dateien "));
    Serial.print(buffer[7], DEC);
    Serial.print(F(" bis "));
    Serial.print(buffer[8], DEC);
    Serial.print(F(" aus dem Ordner "));
    Serial.print(buffer[5], DEC);
    Serial.println(F(" abspielen"));
    Serial.println();
  }
  // Party Modus von-bis = 9
  if (buffer[5] != 0x00 && buffer[6] == 0x09) {
    Serial.print(F("Party Modus 9 -> die Dateien "));
    Serial.print(buffer[7], DEC);
    Serial.print(F(" bis "));
    Serial.print(buffer[8], DEC);
    Serial.print(F(" aus dem Ordner "));
    Serial.print(buffer[5], DEC);
    Serial.println(F(" abspielen"));
    Serial.println();
  }

Sind im Code von @donschoof drin.

Für den Tonuino ist es zwar nicht erforderlich, aber trotzdem kann es manchmal ganz hilfreich sein, wenn man die eindeutige ID (UID, unique identifier) einer Karte oder eines Tags weiß. Ich habe z.B. eine Wallbox zum Laden meines eAutos, bei der ich die Identifikation über dieselben Karten und Tags wie beim Tonuino machen kann. Hier wird aber kein Wert auf die Karte geschrieben sondern nur die UID ausgelesen. Mit der Wallbox geht das zwar auch, man muss dann aber immer mit einem Smartphone oder Laptop und dem Tag in der Garage an der Wallbox stehen.

Ich habe also den Sketch von Chris ergänzt um einige Zeilen, so dass ich in der seriellen Konsole nun auch die UID lesen kann. Diese Zeilen will ich euch nicht vorenthalten. Sie sind einzufügen am Ende der Leseroutine void read_RFID(), unmittelbar über der abschließenden geschweiften Klammer:

  Serial.print("        UID:");
  for (int i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println();
  Serial.println();

Das Ergebnis sieht dann so aus:

leere Karte!
READ	Block 4 = 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00-> HEX
        UID: 81 77 D2 1E

Übrigens bin ich immer noch sehr interessiert daran, dass die anderen Modi in den Sketch eingepflegt werden (s.o.), das habe ich nämlich (noch) nicht hinbekommen.

Gruß
Hans

Edit: Auch das gibt es im Code von @donschoof