PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Soundmodul Schaltung und Bascom Programm - benötige Hilfe



MiniMax
21.10.2009, 16:37
Hallo Zusammen,
nach meinen Letzten projekt mit der I²C ansteuerung, bin ich auf ein neues Projekt gestoßen: Ich möchte ein Soundmodul bauen!

Nun meine Fragen:
- wie kann ich über ein ATMega 32 einen Motor Sound abspielen?
- wie kann ich den Sound später über PWM Empfänger Signale schneller oder
Langsamer machen (Also den Motor schnell laufen lassen oder halt
Langsamer)
- Ist es möglich die Sounds auf einer (Micro)SD Karte zu Speichern?
- Kann ich mehrere Sounds zugleich abspielen (Motor + Dampfeife + Möven
geschrei?)

Hat jemand eventuell einen Codeschnipsel und nen Schaltungsbeispiel?

Ich bitte euch nochmnal um Hilfe

Richard
21.10.2009, 17:49
Moin moin.

Du gehst aber ran. ;-) Alleine das Thema Kartenspeicherung
alleine dürfte Dich einige Wochen in Atem halten.... Das geht nur
über Bootloader und eine Art Minni DOS mit Fat System. In der
Bascom Hilfe/Beschreifung ist darüber etwas zu finden.

Mit einem "Codeschnipsel" wird das kaum etwas, ich fürchte
mit ner Bascom Demo Version auch nicht?

Solange der interne Speicher reicht oder ein z.B. i²c EEPROM
benutzt wird, sollte eine Tonausgabe aber klappen. Es gibt auch
Sound Chips, möglich das dort schon einige Beispiel Sounds
vorprgrammiert sind

Modelleinenbahn Bastler vertonen so ihre Dampflocks u.s.w.
Such mal schön und lese viel. :-)))

Gruß Richard

MiniMax
22.10.2009, 16:34
Hi,
Also: Ich habe die Vollversion von Bascom. Die Kartenspeicherung ist kein muss mit nem Eprom würde es auch (vorerst) gehen. Aber mein Problem ist halt die Soundwiedergabe mit / und Geschwindigkeits erhöhung! Außerdem wie Lade ich aus/in einem EProm Musik rein???
Könntet ihr mir nicht mit ein paar codeschnipseln weiterhelfen???

Jaecko
22.10.2009, 16:54
Die Ausgabe von Sounds ist "eigentlich" garnicht soo schwierig.
Sowas hab ich schon mal gemacht.
Mit CoolEdit eine Wave-Datei umgewandelt nach 8Bit, 8 kHz Sampling-Rate.
Weiterhin gibt mir Cooledit noch die Möglichkeit, die einzelnen Samples als Textdatei zu speichern, d.h. ich hab dann in der Datei ne Folge von Zahlenwerten. Die in nem Byte-Array speichern.
Dann im AVR nen Timer so konfigurieren, dass er eine Frequenz von 8 kHz hat und in dessen ISR vom Byte-Array jeweils den nächsten Wert holen und einem OCRx-Register eines anderen Timers zuweisen.
(z.B. Timer 0 auf 8 kHz, Timer 1 für die PWM-Ausgabe)

Problem ist halt: Es frisst gewaltigst Speicher. Und durch die 8 Bit und nur 8 kHz Sampling-Rate war der Tonausschnitt nur mit Phantasie verständlich.
Das kurze "Nano-Nano" des Comedy-Klassikers "Mork & Mindy" hat nen ATMega128 schon gut gefüllt.

Wenn die Daten von der SD-Karte schnell genug gelesen werden können, sollte das auch ohne Puffer gehen; als standard Wave-Format stehen die Bytes auch nur direkt nacheinander drin.
Ob ein EEPROM dafür schnell genug ist... weiss ich nicht. Müsste man ausprobieren.

MiniMax
22.10.2009, 17:24
und wie lautet ein code dafür?? Und wo vür benötige ich den Timer 1 ?
Kann man irgendwie die Geschwindigkeit erhöhen?

stefan_Z
22.10.2009, 23:53
Vonwegen Datenmassen kannst du versuchen einen großen AVR mit externem XRAM zu benutzen und dazu nen FTDI Vinculum um USB-Massenspeicher auszulesen. Der schafft bis zu 200kb/sek un kommuniziert über UART. Ansonsten halt SD oder MMC - wenns schnell genug ist.

MiniMax
23.10.2009, 15:16
Und wie kann ich jetzt z.B. die Sounddatein aus dem Ram Lesen? Oder in den Ram Laden? Außerdem wie sieht es aus mit dem Speed des Abspielen? Kann mann das erhöhen (Propertional)???

Jaecko
23.10.2009, 16:03
Timer 1 wäre für die PWM-Ausgabe; entspricht hier einem D/A-Wandler.
Die Abspielfrequenz lässt sich mit Timer0 regeln.
Eben 8 kHz oder mehr oder weniger.

MiniMax
23.10.2009, 18:22
also kann ich mit Timer.0 meine Geschwindigkeit regeln bzw mit dem PWM eingang, vom Empfänger, verknüpfen ?

MiniMax
24.10.2009, 14:09
Hat keiner ne Idde? Oder möchte keiner Antworten?

Richard
24.10.2009, 14:43
Moin moin.

Indem Du die Daten schneller oder langsamer ausliest/ausgibst?

Gruß Richard

MiniMax
24.10.2009, 14:44
Und wie Funktioniert das? Timer.0 Schneller laufen lassen?

Richard
24.10.2009, 15:02
RN Wicki/Timer oder Bascom/Timer.....

Gruß Richard