Tester gesucht (TonUINO 3.1)

Bei meinem Tonuino mit AIO+ Platine habe ich jetzt den Effekt, dass nach dem Einschalten alles normal funktioniert:

  • Ich lege eine Karte auf. Der hinterlegte Ordner wird gespielt.
  • Ich nehme die Karte weg. Es wird pausiert.
  • Ich lege dieselbe Karte wieder auf. Das Stück spielt weiter.

Dann aber kann ich nicht mehr zu einem anderen Ordner wechseln:

  • Ich nehme die Karte wieder weg: Es wird pausiert.
  • Ich lege eine andere Karte auf: Es spielt dasselbe Stück weiter, als hätte ich die erste Karte wieder aufgelegt.

Zum Testen habe ich in chip_card.hpp zusätzliche Klammern um die if-then-else Anweisung eingefügt. Dann funktioniert alles so wie erwartet.

struct folderSettings
{
  uint8_t folder;
  mode_t mode;
  uint8_t special;
  uint8_t special2;

  bool operator==(const folderSettings &rhs) const
  {
    return folder == rhs.folder &&
                   mode == rhs.mode &&
                   ((mode == mode_t::hoerspiel_vb || mode == mode_t::album_vb || mode == mode_t::party_vb)
               ? (special == rhs.special && special2 == rhs.special2)
               : true);
  }
};

Mal eine Frage: Wenn ich das Projekt von github lade muss ich immer erstmal die Ordnerstruktur ändern, damit ich es in der Arduino IDE kompilieren kann. Das heißt beim ersten Öffnen des Projekts verschiebt die Arduino IDE die Datei Tonuino.ino in einen eigenen Unterordner mit dem Namen Tonuino. Ich muss dann manuell den Ordner src auch dahin verschieben.
Mach ich da was falsch, oder ist das einfach so?

Danke @nicos!

Ich habe den Fix so übernommen. Macht auch Sinn jetzt wo man es sieht.

Git und Firmware Uploads sind aktualisiert!

Du machst nichzs falsch. Man könnte das verhindern, wenn die .ino schon in einem Ordner liegt, der wie sie heißt oder sie so benennt wie der Ordner in dem sie liegt. Wäre auf jeden Fall ein Stolperstein, den man vermeiden kann.

1 „Gefällt mir“

Ich werde die Datei mal in TonUINO-TNG umbenennen. Dann sollte es gehen denke ich.

Github zeigt mir keine Änderung nach dem 16.10 an.

Und bei mir heißt der Ordner nach dem Download der zip TonUINO-TNG-main

Wenn man git push vergisst…

Und das Umbenennen / Verschieben muss ich erstmal ausprobieren - ich fürchte, dass wird wieder das komplette Repo verwirren

1 „Gefällt mir“

Hallo in die Runde,
Schön, dass meine Version als Basis für dieses neue Projekt genommen wurde. Ich hatte da viele Stunden reingesteckt.

Vielleicht wäre es gut, wenn man ein bisschen mehr Ordnung in die Diskussion und die daraus resultierenden Änderungen im Code bringt. Ich würde vorschlagen, dass für alle gefunden Fehler und Feature Vorschläge jeweils immer ein Issue im Github erstellt. Dann kann man Änderungen im Code den Issues zuordnen und auch dort einzeln über die Sachen diskutieren.

Wir müssen mit neuen Sachen aber aufpassen, der Speicher ist begrenzt und fasst schon vollständig verbraucht. Vielleicht finden wir auch etwas was kaum jemand benötigt und wo wir sparen können.

Das Anlernen einer neuen Karte hatte ich absichtlich rausgenommen. Man könnte sich damit einfach eine Adminkarte herstellen und würde damit einfach ins Admin Menü kommen. Ausserdem konnte ich damit Speicher sparen.

1 „Gefällt mir“

Das ist ja auch so gedacht gewesen. Wenn der Zugang zum Adminmenü nur mit Karte möglich ist und man gerade keine hat, wird es sonst kompliziert. Dann hilft vielleicht der Reset beim Start, wenn man das aber direkt in den defaultsettings geändert hat, auch das nicht.

Wo ist denn das Problem, wenn man mal eben mit einer bisher leeren Karte eine Adminkarte erstellen kann?

ich habe keine Angst, dass mein 3-jähriger sich leere Karten organisiert

Es müssen keine leeren Karten sein sondern es kann auch eine Karte sein, die eine andere Kennung hat. Also auch die Schlüsselkarte vom Papa…

Wo ist denn das Problem, wenn…

Also, das ist alles kein Problem. Das ist bloß nicht so trivial zu implementieren und die Probleme überwiegen den Nutzen.

Aber ist doch jetzt so oder?

Meinst du Flash oder RAM? Ohne viele debug Ausgaben sollte doch noch reichlich frei sein (Flash), auf ner plus noch mehr. Vielleicht kann man ja am Design noch was optimieren. Du hast ja quasi alles so belassen wie es war. Vielleicht gibts ja hier und ha effizientere Möglichkeiten Sachen zu lösen. Keine Ahnung. Du scheinst ja schon gut Ahnung von der Materie zu haben. :+1:

Naja, im Gegensatz zu deiner Software hat die DEV ja nicht geprüft, ob die Karte wirklich leer ist. Deshalb wurde bei jeder Karte, die nicht den magiccookie hatte, der Anlernvorgang gestartet. Es wäre natürlich schon praktisch, wenn das nicht mehr passiert.

Man legt eine leere Karte auf und der Anlernvorgang startet ist für mich schon eine der Eigenschaften, die der TonUINO behalten sollte.

Es geht um den Flash Speicher.

Hier mal die aktuelle Speichernutzung (mit halbwegs sinnvollen Logs)

Processing TonUINO_Classic_3 (platform: atmelavr; board: nanoatmega328; framework: arduino)
RAM:   [========  ]  78.8% (used 1613 bytes from 2048 bytes)
Flash: [========= ]  91.0% (used 27958 bytes from 30720 bytes)

Processing TonUINO_Classic_5 (platform: atmelavr; board: nanoatmega328; framework: arduino)
RAM:   [========  ]  80.5% (used 1649 bytes from 2048 bytes)
Flash: [========= ]  91.7% (used 28158 bytes from 30720 bytes)

Processing ALLinONE (platform: lgt8f; board: LGT8F328P; framework: arduino)
RAM:   [========  ]  80.0% (used 1638 bytes from 2048 bytes)
Flash: [==========]  95.4% (used 28342 bytes from 29696 bytes)

Processing ALLinONE_Plus (platform: atmelmegaavr; framework: arduino; board: ATmega4809)
RAM:   [==        ]  19.9% (used 1223 bytes from 6144 bytes)
Flash: [======    ]  58.1% (used 28559 bytes from 49152 bytes)

Da geht also schon noch was. Ohne Loggin (s_warning) sind selbst auf der AiO nur 81,3% belegt.

Vor allem geht es aber darum, für die AiO+ noch ein paar weitere Funktionen hinzufügen zu können. Weitere Spiele (Reise nach Jerusalem, Vokabeltrainer, Wer wird Kinder Millionär, Quizduell, …) sind dank der Statemachine deutlich einfach einzubauen.

1 „Gefällt mir“

Hilfe, nach dem Update (per Download aus dem Browser von TonUINO - Die DIY Musikbox (nicht nur) für Kinder) kommt noch ein Pieps und dann spricht er nicht mehr!
Mit der älteren Version kam erst noch „Oh eine neue Karte.“. Danach reagierte er auf nichts mehr.

Ich sehe hier die Hinweise, sich den Log o.ä. anzusehen. Wie geht das am Besten?
Welche IDE wird von euch empfohlen, die des Arduino oder PlatformIO?

Mein TonUINO besitzt 5 Knöpfe, einen RFid-Leser, die SD-Karte habe ich neu beschrieben. Auf dem RFid-Leser leuchtet ein rotes Licht. Wenn ich einen der Knöpfe drücke, blinkt es bei tx kurz.

Hat jemand eine Idee, was zu tun ist? Vielen Dank!

Also das Anlernen von Karten geht derzeit nur über das Adminmenü. Deshalb kommt beim Auflegen kein „Oh eine neue Karte“.

Die Hinweise dazu findest du hier in der FAQ

Das hat @Boerge1 schon korrigiert aber ich habe noch kein neues Release gemacht.

Wird in den nächsten Tagen kommen!

Hallo zusammen,

wie lässt sich denn die Software (Github main-Branch am 07.11.22) mit der Arduino-IDE 2.0.1 compilieren?
Nach Umbenennen der .ino-Datei (entspricht leider nicht dem Verzeichnisnamen) und Bau kommen jede Menge Warnungen zu ‚if constexpr‘… und Macro-Expansions.
Irgendwann wird mit Fehler abgebrochen: „Compilation error: ‚printStatusCode‘ function uses ‚auto‘ type specifier without trailing return type“

Oder funktioniert das nur noch mit platform.io?

Vielen Dank.

Gruß, Thorsten

Habe es gerade nochmal getestet. Es geht, allerdings musst du halt auf c++17 umstellen, hatte ich oben auch schon mal zitiert

Es gibt durchaus mehr als eine platform.txt, da musst du schauen, dass du die zur verwendeten Hardware auf jeden Fall mit erwischst
Zusätzlich muss der Ordner src in den von der IDE erstellten Tonuino-Ordner verschoben werden. Dann muss noch die constants.hpp geöffnet und dort die passende Hardware gewählt und gespeichert werden.
Also es ist möglich, allerdings deutlich komplizierter als bei vorherigen TonUINO-Versionen

Update:

Zumindest für die Arduino-IDE 1.8.19 habe ich eine Lösung gefunden den Code zu compilieren:

  • Quellcode-Paket im „\Sketchbook“-Ordner „TonUINO-TNG“ ablegen.
  • „Tonuino.ino“ in „TonUINO-TNG.ino“ umbenennen.
  • Eine Datei „platform.local.txt“ mit dem Inhalt „compiler.cpp.extra_flags=-std=gnu++14“ (ohne Anführungszeichen) und einer Leezeile danach erstellen.
  • Die Datei „platform.local.txt“ nach „C:\Users<Benutzer>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6“ kopieren.
  • Arduino-IDE 1.8.19 starten, Projekt über Sketchbook öffnen und compilieren (bei mir mit „Arduino Nano → ATmega328P (Old Bootloader)“).

Geht bestimmt auch irgendwie eleganter, aber das war jetzt mal eine schnelle, funktionierende Lösung…

2 „Gefällt mir“