Man kann nun an alle drei Servoausgänge wahlweise JQ6500 oder MP3-TF-16p Module anschließen. Standardmäßig sind SERVO1 und SERVO3 für JQ6500 konfiguriert, SERVO2 für MP3-TF-16p. Das lässt sich aber jederzeit ändern ohne den ATTiny neu programmieren zu müssen. Dazu muss man einmalig ein paar Befehle an das Servomodul senden. Siehe Anleitung und mitgelieferte Version des Prog-Generators.
Das JQ6500 unterstützt natürlich weniger Funktionen - die ganzen Ordnerfunktionen (Soundfiles in Ordnern "01", "02" oder "mp3") kann das Teil nicht weil man keine Möglichkeit hat Ordner anzulegen. Nur Dateien im Wurzelverzeichnis die mit einem kleinen Programm aufgespielt werden (siehe MobaLED Wiki):
Ich hab einfach bei Amazon bestellt.für 9€. Bei eBay ab knapp 7€ aus D, etwas.weniger aus China. Gut, bei Ali zahlt man gut 1,50€... aber die Warterei.... Einfach nach JQ6500 suchen. Ich achte wenig auf besonders "seriöse" Shops dort. Bisher keine Probleme.
Das war das erste Problem, ich hatte die 2.0.3.G oder so mit drauf. Alles runter, neu installiert. und gaaaanz wichtig, die MP3h auch in der LEDS_Autoprog,ino eintragen, dann klappts - zwar nicht mit der Nachbarin aber mit dem Soundmodul.
So, das JQ 6500 löppt - so wie es soll. Jetzt werd ich beide (JQ6500 und MP3-TF16) mal an ein Servomodul klemmen und dann gehts weiter.
Wichtig wäre mir vor Allem ob das "Handling" mit den neuen Befehlen für die Soundmodule so "erträglich" ist. Sowohl direkt im Programmgenerator als auch bei einer Programmierung über den Patterngenerator. Wenn das so ok ist kann ich Hardi fragen ob ich das schon mal in den Programmgenerator einbauen kann. Falls dann später doch noch Fehler auftauchen kann man die immer noch beheben
Aber schon mal gut das es tatsächlich auch außerhalb meines Bastelzimmers funktioniert
also - beide Soundmodule (JQ6500 und MP3-TF16-P) an einem Soundmodul angeschlossen.
Beide lassen sich unabhängig von einander ansteuern. Da plappern dann wirklich zwei Bahnsteigdurchsagen durcheinander. Das Problem das jetzt nur auftritt - du hast die 2.0.0 genommen, wenn ich auf eine andere Version update ist die "schöne" Soundsteuerung wieder weg.
Man müsste sowas als eien Art Batchfile haben, die das immer in die aktuelle Version des Prog.Gen / Pattern. Gen einbaut, zumindest bis der Verwalter des Cores (Großmeister Hardi) das dann in die aktuellste Version aufnimmt.
Ist ja nur ne Idee.....
Spreche aus - Anerkennung.
Jetzt fehlt noch die neue Platine von Dave, dann haben wir alles zusammen.
ich hbae heute deine Sound-Lösung mit einem JQ6500 in Betrieb genommen. Zuerst musste ich eine kleie Hürde meistern, die beim Downloaden mit dem Pattern Configurator auftauchte, der PC unterstützt beim Download keine Umlaute im Verzeichnisnamen (und schon gar keine Leerzeichen). Das habe ich gefixt, der Fix kommt auch in den nächste 2.1.3 Beta.
Beim Testaufbau möchte ich erwähnen, dass der JQ6500 eine stabile Strombversorgung braucht, bei mir ging es nur mit am JQ6500 eingestecktem USB Kabel, die Versorgung nur über die Servoplatine reicht nicht. Möglicherweise lässt sich das durch einen Puffer Kondensator beheben, habe ich abe nicht versucht.
Der JQ6500 spielt mit dem PG Beispiel "Startsequenz" wie erwartet einige Sounds ab. Über ein paar DCC Tasten habe ich das Abpspielen weiterer Sound konfiguriert. Das geht eine Zeit lang, aber irgendwann reagiert der JQ6500 nicht mehr. Ein Neustart des MLL Arduino sowie des ATTiny hilft nicht, es muss das JQ6500 Modul stromlos gemacht werden.
Mit dem Logic Analyziser habe ich dann die serielle Kommunikation mitgeschnitten, da ist mir dies aufgefallen:
Das Längenbyte ist hier 0xff, was möglicherweise den JQ6500 aus der Bahn wirft.
So, das war mal das erste Feedback, weitere Tests folgen.
beide Probleme kann ich leider nicht nachvollziehen Bei mir läuft das JQ6500 problemlos mit Strom vom Servoanschluss. Wie lang und dünn ist Dein Verbindungskabel zwischen Servoplatine und Soundmodul?
Die protokollierte serielle Kommunikation kann so eigentlich gar nicht vorkommen Die längste Sequenz die an das JQ6500 geschickt wird ist 6 Bytes lang (inkl. 0xfe Startbyte und 0xef Endbyte). Und als zweites Byte können nur die Werte 2, 3 oder 4 auftreten.
Das Einzige was ich mir vorstellen könnte ist das da die Befehle in zu schneller Folge geschickt werden. Möglich das der ATTiny sich dann "verschluckt". Um das zu beurteilen fehlt leider der Timestamp im Protokoll Aber bei mir tritt sowas zumindest bei manuell getriggerten Befehlen bisher nie auf. Abgestürzt ist mir der JQ6500 noch nie.
Oder Deine Stromversorgung ist generell grenzwertig bzw. zu stark belastet? Was auch das erstgenannte Problem erklären würde.
erstmal großes Danke das du dich der Programmierung der direkten Anwahl von Soundmodulen angenommen hast Leider funktioniert es bei mir nicht wirklich wie es sein sollte Ich habe die Softwareversion 2.0.0 entsprechend mit deiner neuen Version Sound2 adaptiert und beide Module an den verschiedenen Eingängen ausprobiert. Bei mir funktioniert es eigentlich überhaupt nicht. Manchmal wird der erste Sound wiedergegeben dann wieder überhaupt keiner. Das ist bei beiden. Beim JQ6500 geht ein Sound mit der Stromversorgung über USB einmal, dann nicht mehr. Kannst du mir sagen wie ich mögliche Fehler eingrenzen kann. Ich habe erst einmal mehr Sounds als den ersten abspielen können aber auch nicht gewollt sondern aus unerfindlichen Gründen wurden 3 Sounds nacheinander abgespielt. Anschließend ging wieder gar nix. Das Servomodul ist in Ordnung und richtig gelötet - wurde mit ServoAttiny ausprobiert. Ich bin ein wenig ratlos :
Den ATTiny hast Du mit der Sound-Software bespielt?
Die Servoausgänge sollten dann eigentlich so belegt sein wie es in der Beschreibung steht. Sicherheitshalber kann man das aber entsprechend der Beschreibung nochmal "programmieren".
Was hast Du für WS2811 auf der Servoplatine? Sind die schon älter und laufen ggf. mit 400 Hz? Oder sind es Neuere mit 2000 Hz PWM für die Ausgänge? Das könnte ggf. einen Unterschied machen ob der ATTiny die PWM-Signale korrekt erkennen kann.
Testen geht am Einfachsten mit der "Taktung" auf der entsprechenden Seite im Programmgenerator. Das kann man so einstellen, dass die Befehle im Sekundenabstand gesendet werden - oder je nach Sounds die man aufgespielt hat auch langsamer. Steht eigentlich auch in der Anleitung wie das prinzipiell funktioniert. Zusätzlich kann man noch ein paar Befehle auf Tasten legen, zum Beispiel die 3 Taster der Hauptplatine falls bestückt.
Wichtig ist halt immer, dass man den ATTiny auf der Servoplatine und vor Allem die Soundmodule nicht überfordert. Und die Sounddateien müssen natürlich - besonders beim MP3-TF-16p - korrekt aufgespielt sein.
Wenn gar nichts funktioniert könnte man zunächst mal versuchen einen Arduino mit Widerstand auf einem Breadboard mit der Soundplatine zu verschalten. Für den MP3-TF-16p steht hier wie es geht:
Damit kann man zumindest einfach prüfen ob die Soundmodule grundsätzlich auf die seriellen Kommandos reagieren - ohne den "Overhead" und die zusätzlichen Fehlerquellen der Servoplatine. Es soll Soundmodule geben bei denen die serielle Schnittstelle grundsätzlich nicht richtig funktioniert - zumindest habe ich schon entprechende Meldungen in englischsprachigen Elektronikforen gelesen.
Wenn die serielle Ansteuerung funktioniert, müssen wir anderswo auf die Suche nach dem Fehler gehen.
so ein ein Problem hatte ich auch. Das Modul hat die verkehrten, bzw gar keine Sounds abgespielt.
Bei mir lag es daran das ich bei der obigen Abfrage mit JA geantwortet habe, obwohl bei mir NEIN korrekt war.
Hast du das schon mal ausprobiert? Statt JA das NEIN anklicken, bzw umgekehrt. Dadurch werden die Kanäle des WS2811 getauscht die den ATTiny ansteuern. Schaden kann es nicht. Einfach mal versuchen.
Ulrich
Nachtrag:
Die Soundmodule stecken nicht noch in den original Platinen? Du probierts das mit den Soundmodulen auf einem Steckbrett aus und verbindest vom Steckbrett zum Servomodul ?
ich habe nun den Logic Analyzer an alle relevanten Pins angehängt und dieses Sample ausgewertet
Das Sample stammt von diesem Makro
Es zeigt wiederum das Längenbyte 0xff im seriellen Output. Mein WS2811 ist die SMD Variante mit ~ 1940 KHz PWM Rate. Anbei auch der Datenexport von PulseView für eine genauere Analyse.
Vielleicht hilft es ja weiter, den Fehler einzugrenzen.
Guten Morgen, ein herzliches Dankeschön für Eure Hilfestellung !!! Ich konzentriere mich vorerst einmal auf den MP3 TF-16 und da gibt es schon einen Lichtblick. Momentan kann ich zumindest einmal einen Sound abspielen. Leider auch nur max. 2x dann knackst es und anschließend muss ich wieder alles neu auf den Nano spielen. Ich habe aber das Beispieldatenblatt dahingehend geändert das ich mit Dcc Befehle die Initialisierung mache und den Sound abspiele. Das Originaldatenblatt habe ich zwar auf den MP3 TF umgestellt es funktioniert bei mir aber nicht. Mit DCC Tasterfunktion funktionierts einmal.
Die serielle Ansteuerung habe ich mit dem UNO getestet - das funktioniert (nachdem ich die richtige Library DFRobotDFPlayerMini installiert hatte -war bereits eine andere installiert)
Den Attiny habe ich mit "JA" programmiert weil die Platine aus den Anfangszeiten ist und ich einen SMD WS2811 verwende (Die ServoAttiny laufen alle mit dieser Einstellung). Dieser ist aber auch schon von letzten Jahr und hat keinen Buchstaben in der Bezeichnung. Ich schätze das er noch mit 400 Hz läuft. Ja, ich habe mir auf einer Lochrasterplatine einen Steckplatz gemacht und das Modul direkt an die Servoplatine mit den drei Kabeln angeschlossen.
Die Ansteuerung mit den PWM Werten passt offenbar nicht richtig. Wenn ich nämlich den 2 Sound abspielen möchte dann kommt auch der 1. Und bei Sound 3 oder 4 leuchtet manchmal die LED auf dem Modul kurz oder länger, man hört aber nix. Könnte man die richtigen Werte mit dem Farbtestprogramm herausfinden? Leider habe ich heute nicht soviel Zeit für weitere Tests - Familie....
ich habe nun den Logic Analyzer an alle relevanten Pins angehängt und dieses Sample ausgewertet
Hallo Jürgen!
Aus
MP3_TRACK(#LED, #InCh, MP3_PLAY_TRACK, 1)
müssten folgende RGB-Werte erzeugt werden:
Rot: MP3_BYTE(0x03) => R=28 Grün: MP3_BYTE(0) => G=4 Blau: MP3_BYTE(1) => B=12 Also #1c040c. Ggf. auch mit vertauschten Kanälen. Das finde ich in Pulseview aber nicht (vielleicht bin ich auch nur zu doof für Pulseview).
Bist Du sicher das die aktuelle MP3.h verwendet wird? Hast Du irgendwo die Farbwerte für die RGB-Kanäle angepasst? COLOR_CORRECTION eingeschaltet?
Die Ansteuerung mit den PWM Werten passt offenbar nicht richtig. Wenn ich nämlich den 2 Sound abspielen möchte dann kommt auch der 1. Und bei Sound 3 oder 4 leuchtet manchmal die LED auf dem Modul kurz oder länger, man hört aber nix. [/quote]
Auch hier: Wirklich die aktuelle MP3.h verwendet? Je nach installierter Version muss die ins richtige LED_AutoProg Verzeichnis. Die Anleitung geht von .../Ver_2.0.0/LEDs_AutoProg aus. Hat man eine aktuellere Version, dann muss man das Verzeichnis natürlich anpassen.
Zitat von ubit im Beitrag Nochmal Soundmodule an Servoplatine Bist Du sicher das die aktuelle MP3.h verwendet wird? Hast Du irgendwo die Farbwerte für die RGB-Kanäle angepasst? COLOR_CORRECTION eingeschaltet? Ciao, Udo
Hallo Udo,
die MP3.H ist aus dem https://ubit-rc.de/downloads/Sound2ZIP.zip Color-Corretion ist aus, ich verwende das Sheet "Startsequenz", nur um die erwähnte Zeile "Play Track 1" per DCC aufrufen zu können.
An den JQ6500 wurden zusätzlich bei einigen Befehlen die seriellen Pakete für den MP3-TF-16p geschickt. Allerdings ohne korrekte "Füllung". Das ist in der neuen Version behoben. Neu ist dabei nur das 03.ATTiny85_Sound.ino - man muss also den ATTiny neu flashen.
Seltsam ist halt, dass mein JQ6500 sich von dem Fehler völlig unbeeindruckt zeigt und munter funktioniert trotz zwischenzeitlich unsinniger Befehle. Jetzt sollte es aber "nach Datenblatt" funktionieren.