-
Werbung
-
Erfahrener Benutzer
Roboter Genie
Törööö
Mein Erfolg der Woche: Sound
Ein wenig Piepsen konnte Marvin bisher, mehr nicht. Was macht man mit dem Rest an Speicher auf einem Atmega32? Da Marvin zum Piepsen einen aus Widerständen bestehenen DA-Wandler hat, lag es nahe, Marvin ein oder zwei digitalisierte Aufnahmen sprechen zu lassen. Aber wie?
Ganz einfach. Da ein ATMEGA32 nur sehr wenig RAM und wenig EEPROM hat, muss ein abzuspielender Sample in den Flash-Speicher. Ich habe mir hierzu mit VB Express 2005 ein kleines Programm gebastelt, das mir aus einer (mono, 8-Bit unsigned) WAV-Datei eine lange Liste von Data-Statements erzeugt, die ich nur an mein Abspiel-Programm anzuhängen brauche
Bei einer Samplingfrequens von 11kHz und freien 24KB Flash ergibt das etwas über zwei Sekunden. Ausreichend für nen kleinen Gag
Der Atmega liest per Interrupt und einem Read einfach die Datazeilen aus und reicht die Werte an den DA-Wandler weiter. Ein kleiner Verstärker auf der Controllerplatine und ein Minilautsprecher machen den Rest
Picards "Energie" und Spocks "Faszinierend" passen ganz prima *g*
Wobei ich die nächsten Tage mal testen werde, ob man nicht ebenso einfach einzelne Laut-Samples abspeichern kann, und mit einer gezielten Abspielreihenfolge alles an Sprache ausgeben lassen kann, was einem in den Sinn kommt. Ein Laut müsste nach meinen Schätzungen etwa 1/8 Sekunde lang sein, also müssten in einem 644-20 nebst Abspielsoftware ca. 40 Laute passen. Das sollte für Sprache eigentlich reichen.
Bleibt nur auszutesten, wie verständlich das Ganze wird.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Werbung
Lesezeichen