Hallo
Ich experimentiere hier gerade mit einer Schaltung, die mir das Geräusch
eines Läutewerks von Bahnschranken nachahmen soll. (Modellbahn)
Mit einem Sinusgenerator lasse ich ca. 400Hz erzeugen und ein astabiler
MV mit 0,5 Hz ändert dessen Amplitude. So weit, so schlecht. :-( Es ist
kein realistisches Geräusch zu erreichen.
Es gab mal von Siemens diese SAB...xxx Schaltkreise, aber die hatten
m.E.
einen solche Ton nicht drauf.
Frage: Hat schon mal jemand versucht, mittels AVR ein solches Geräusch
zu erzeugen? Ich denke dabei an eine .wav oder .mp3 -Datei, die ein
einzelnes "Bing" enthält und immer wieder neu aufgerufen wird.
MfG Paul
Geh zu einer realen Bahnschranke, nehme das Geräusch auf, bearbeite es
etwas am PC, speichere es als MP3 oder sonst was und lasse es durch
einen entsprechenden Decoder (VS100?) abspielen.
denke auch das es nicht so einfach hinzubekommen ist. Das beste dieses
Geräusch vor Ort aufnehmen. Den Ton macht ja nicht nur seine Frequenz
aus sondern die Obertöne, sonst wurde jedes Instrument gleich klingen.
Mit einem AVR könntest du das schon aufnehmen. ADC höher takten das
sollte schon 20kHz und 8Bit drin sein. Der chinesische Fädelprofi hat
ein paar Soundbeispiele auf seiner Homepage. Allerdings weis ich nicht
ob er den "Originalsound" auch mit dem AVR aufgenommen hat oder ihn nur
bearbeitet hat.
http://elm-chan.org/works/vp/report.html
Vielleicht kann dir auch einer im Bahn-Forum www.drehscheibe.de den
aufgenommenen Klang liefern.
Hallo,
22kHz/8Bit reichen dicke dafür, Aufnahme allerdings möglichst in
44,1/16Bit machen und dann mit einem guten Audioprogramm resamplen, dann
kommt es auch ohne Alaising-Störungen.
Dann eben auf einen Eproms oder Flash packen, R2R-Netzwerk an die Daten
und Adresszähler an die Adressen.
Aua, jetzt weiß ich nicht, wie Du den AVR dann ins Spiel bringst... ;)
Gruß aus Berlin
Michael
Ich habe jetzt das passende Geräusch als .wav-Datei da. Die ist ungefähr
30kByte groß. Jetzt suche ich eine Möglichkeit, die Datei mit möglichst
geringem Hardwareaufwand (nur der Avr, ohne externe Decoder, DA-Wandler
etc.) "abzuspielen". Die Suche hat mich nur zu MP3-Playern mit AVR´s
geführt, aber so gut muß die Qualität bei so einem Geräusch wohl nicht
sein.
Wer hat schon eine derartige Sache realisiert?
MfG Paul
Nik Bamert hat hier mal eine Tonausgabe per PWM angesprochen.
Wie er das gemacht hat, weiß ich allerdings (nicht mehr).
Es wurde aber per Tiny15 oder so realisiert.
@Rahul
Das ist ein guter Tip. Leider gibt es die Funktion "Autorensuche" nicht
und
mit der normalen Suche nach z.b. "PWM" wird nichts gefunden.
....da habe ich mir ja was in den Kopf gesetzt. ;-)
Paul
Hallo,
ich weiß nicht, ob ich jetzt daneben liege: PWM mit Samplefrequenz
aktualisieren und als PWM-Wert den 8Bit-Wert aus dem Sample?
Wenn Du das Sample in 8Bit unsigned speichern kannst, müßte es direkt
passen, Tiefpaß an den PWM-Ausgang mit F = Samplerate/2, Transistor und
Minilautsprecher. Tiefpaß ist vermutlich Luxus, ein passendes C parallel
zum Lautsprecher tut es sicher auch.
Bei 8Bit signed als Sample-Format müßtest Du wohl den Kram noch
umrechnen.
Der Gleichspannungsanteil, der dabei entsteht (-128 -> 0, 1 -> 128 ->
127 -> 255 stört in der Praxis nicht.
Gruß aus Berlin
Michael
Ich habe mich noch nicht mit dem Aufbau von .wav - Dateien befasst, da
ich
glaubte, daß sich dieses Problem mit meiner o.g. Idee lösen ließe.
Das wollte ich mir eigentlich auch ersparen, weil man sich den Kopf
nicht
noch mit Sachen füllen sollte, die man sonst nie wieder braucht. ;-)
Na, da will ich mal suchen, ob ich den Aufbau von .wav irgendwo finde
und sehe dann weiter.
Danke erst mal für Eure Hinweise und Ratschläge
MfG Paul
Hallo,
den Aufbau findest Du sicher im Netz.
Ist für Deinen Zweck relativ simpel. Da Du ja selbst festlegst, in
welchen Format Du den Kram in den AVR packen willst, bracuhst Du nur ein
Audiotool, das halbwehs brauchbar konvertiert.
Mein Vorschla wäre, 22kHz Samplrate zu probieren und 8Bit unsigned zu
speichern. Dann mit einem Hex-Editor den wav-Header abschneiden und
wegwerfen.
Was bleibt ist das reine RAW-File, wo in jedem Byte der
Spannungs(Lautstärkewert) steht. Den muß Du nur noch Byte für Byte mit
der richtigen Geschwindigkeit an einen DA-Wandler (oder eben eine PWM)
schicken.
Ich kann Dir das wav auch in irgendwelche passenden Formate
konvertieren, ich habe Software dafür auf dem Rechner, da müßtest Du
Dich dann nur hier melden.
Gruß aus Berlin
Michael
1. wav-file mit zb 8bit/11025samples erstellen
2. mit http://ulrichradig.de/ -> projekte -> winbin konvertieren
3. timer mit 11025Hz interruptfrequenz laufen lassen und bei jedem
interrupt einen pointer erhoehen und den wert ausgeben.
Ich habe mal das schweizerische BUe-Geräusch mit minimalem SW- und
HW-Aufwand nachgebaut: Es handelt sich dabei um ein 1-kHz-Rechtecksignal
mit abfallender Amplitude. Ein kleiner PIC toggelt einen Ausgang mit
dieser Frequenz, das Signal gelangt auf ein digitales Poti, welches
ebenfalls vom PIC angesteuert wird. Das Ganze wird anschliessend
verstärkt und einem Lautsprecher zugeführt. Das Resultat klingt
verblüffend echt!
Ich habe mir eben mal den Link von Winfried angesehen. Das Programm dort
funktioniert prima und ich konnte mir miene Datei damit
"zurechtstutzen".
Jetzt bin ich dran, mir den Algorithmus auf´s Papier zu bringen, wie ich
die Sounddatei "angreifen" muß, um sie Bit für Bit herunter zu rasseln.
Ich muß wohl einen Mega16 oder einen Mega8515 dafür nehmen, damit ich
alles
"unterkriege".
@Bähnler
So ungefähr war auch meine erste Idee, die ich oben beshrieben habe. Das
Ergebnis hat mir aber nicht so gut gefallen.
MfG Paul
am leichtesten wäre es wenn du einen externen DAC nimmst und den
Spannungswert einfach an den DAC gibts. Also mit einem Timerinterrupt
die Zeit einstellen wann ein neuer Wert an den DAC ausgegeben wird.
Hallo,
ich habe mir das auch gerade mal angesehen, mal schauen, wie sein
Beispielsound auv dem AVR wirklich klingt...
Ist doch nur ein 22050Hz-Timerinterruot, der immer 1 Bit an den Ausgang
legt, also wenige zeilen Code, egal in welcher Sprache.
Das PIC-asm habe ich im Editor mit Ersetzen zum AVR-asm mit .db usw.
gemacht.
Gruß aus Berlin
Michael
>also man sollte dem DAC schon 8 Bit liefern.
Das ist doch gerade der Trick von Roman Black, daß er nur zwei
Bitströme ausgibt und die mit 2 Widerständen und einem Kondensator
nach Analog wandelt.
Ich habe eben noch eine Applikation gefunden:
http://www.atmel.com/dyn/resources/prod_documents/doc2572.pdf
Das ist aber alles in C geschrieben und davon habe ich keine Áhnung. :-(
@Michael
Kannst Du bitte mal den Programmcode posten? Mit welchem AVR -Typ hast
Du es getestet?
@Franz-Rainer
Das Geräusch stammt von einer CD mit weiteren Geräuschen, die ich mal
auf einem Eisenbahnerflohmarkt gekauft habe und ich kann es nicht
herschicken, weil es sonst vielleicht Ärger wegen dem Urheberrecht gibt.
:-(
Als Beispiel, welches ähnlich klingt, habe ich diesen Link:
http://www.champex-linden.de/produkte/anlagen/elektrik/geraeusche.htm
Dort die oberste Datei und das letzte Geräusch.
MfG Paul
Hallo,
ich habe es noch nicht auf dem AVR gepielt, nur die Beispiel-Wav aus dem
picsound-Archiv mal in der Vorschau angehört. Naja...
Ich werde es aber mal auf dem AVR nachher probieren.
Da ich meine Zeit im Moment mit Kisten packen verbringe (der Umzug ins
Nachbarhaus wegen Reko hat sich ja "nur" um ein gutes halbers Jahr
verzögert......), erhole ich mich eben am PC. ;)
Die Qualität der mp3-Vorlage aus dem letzten Postung ist durchwachsen,
mit picsound schon in der Vorschau unbrauchbar...
Ich werde das aber mal nachher in 8Bit-PWM versuchen abzuspielen, nur 1
Gong so beschneiden, daß es als Loop laufen kann.
Ich habe hier zwar noch eine Sammlung Lok-Geräusche eingelagert (wohl
Schallplatte gewesen), aber keine Läutewerk dabei...
Gruß aus Berlin
Michael
Hallo,
hab hier nochwas gefunden:
http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=402
Hab es mal unveräbdert auf einen alten 8515 gebrannt, 8MHz-Quarz dran
und an Pin B1 eine 50 Ohm-Quäke mit 380 Ohm Vorwiderstand gehangen.
Spielt zumindest, den Source zumindest, muß ich mir mal genauer ansehen.
Gruß aus Berlin
Michael
@Michael
Na, da hast Du ja durch Deinen Umzug genug um die Ohren und jetzt auch
noch
Bahngeräusche dazu. ;-)
Ich habe das auch nur mit dem PICSOUND - Programm ausprobiert. Klingt
nicht mehr sehr "original", das Läutewerk. Textansagen dagegen sind
ziemlich gut verständlich.
Der Link ist gut! Anhand des Quelltextes sehe ich jetzt erstmal, WIE
es überhaupt gemacht wird. Leider habe ich keinen 8515 mehr da. Ich will
mal in´s Datenblatt gucken, wie der Atmega16 mit Speicher ausgerüstet
ist.
Vielleicht geht es auch damit.
Danke Dir erstmal
Paul
Hallo,
hab den Kram mal schnell an den Mega16 angepasst bzw. die
Timer-Vereinbarungen statt seiner Bitmuster eingetragen.
Da ist im Moment das Bim aus Deinem Link drin, wird nach Start an PB1
endlos gespielt, Tastenabfrage ist tot zur Zeit, naja, das findest Du
selber.
An der PWM-Geschichte war ich noch nicht dran, ich denke so
zwischendurch über 4Bit-Sample nach, ADCPM würde sicher auch gehen, das
habe ich mir aber noch nicht sonderlich angeschaut.
11,025kHz Samplerate würden schon reichen, mit 4 Bit Auflösung wäre
dieses "Bim" dann ca. 5kB groß und der Kram würde in irgendeinen 8kB AVR
passen.
Muß mal schauen, ob ich irgendwas habe, was auf 4Bit runterrechnet oder
per Script eben das 8Bit-Wave konvertieren und ein asm basteln.
Etwas zeit habe ich schon noch, Umzug ist ja nur ins Nebenhaus,
Schlüssel dort erst ab nächsten Dienstag, Urlaug habe ich sowieso schon.
Der Rechner ist also noch gangbar und das STK500 liegt hier.
Nur an alle Bauteile komme ich nicht mehr ran...
Gruß aus Berlin
Michael
@Michael
Oh, oh, während ich hier noch kopfüber im Datenblatt steckte, hast Du
schon
die Sache in die Tat umgesetzt.
Das funktioniert. Ich habe bloß noch geändert, daß er in der
Tastenabfrage
"kreiselt", bis einer drückt.
Jetzt werde ich noch ein wenig mit damit experimentieren, die Sounddatei
"zusammen zu pressen". Gerade habe ich nämlich gemerkt, daß der Mega 16
nicht in mein Bahnwärterhaus passt ;-) Mal sehen, hier sind noch ein
paar Mega 8 da, vielleicht kann ich es dann da hinein "würgen".
Gruß aus Thüringen
Paul