PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Geschwindigkeitsabhängiger Sound im Modellfahrzeug. Wie ?



wkrug
23.07.2007, 22:01
Ich möchte gerne ein Soundmodul für ein Diesel Modellfahrzeug entwickeln.
Der Sound sollte sich möglichst echt anhören und Geschwindigkeitsabhängig mit dem Motorregler Signal (Servoimpulse) mitlaufen.
Wenn möglich möchte ich als Steuer Controller einen aus der AVR Reihe einsetzten, weil ich mich mit diesen Controllern auskenne.
Ich hab schon mal einstweilen mit dem PC und einem Wave editor versucht Geschwindigkeitsabhängige Soundsequenzen aus einem Sample herauszuholen.
Die einzelnen Sequenzen wären zwar prinzipiell brauchbar, allerdings hört sich die Umschaltung zwischen den einzelnen Sequenzen mehr als Unnatürlich an.
Wie könnte man so ein Problem angehen ?
Ein Problem könnte auch der verfügbare Speicher sein, ich hätte vor die Sequenzen in einem I²C EEPROM abzuspeichern. Ist das schnell genug ?

Hubert.G
24.07.2007, 10:43
So viele Abstufungen zu speichern dürfte etwas problematisch werden.
Wäre es nicht eine Möglichkeit die Tonhöhe über die Abspielgeschwindigkeit zu variieren?
Hubert

wkrug
24.07.2007, 13:24
Wäre es nicht eine Möglichkeit die Tonhöhe über die Abspielgeschwindigkeit zu variieren?
Das geht, aber in relativ engen Grenzen, hab ich auch schon ausprobiert.
Ab einer bestimmten Schwelle hört sich das dann nicht mehr realitätsnah an.
Habt ihr noch weitere Ideen ?
Ich möchte in etwa so etwas erreichen wie auf dieser http://www.benedini.de/ Page.

hackgreti
24.07.2007, 14:07
Programmierst du in C oder Basic?

Mit einem Avr ist das glaube ich etwas schwieriger. Du könntest einmal in einem Forum von Spieleentwickler nachfragen, wie sie die Motortöne generieren (könnte sein das sie da ganz normale wave dateien nehmen, keine Ahnung ](*,) ).

Der sound kommt zu stande in dem die zylinder auf und ab fliegen... man könnte díese frequenz mit einem PC analysieren und den Abstand und die Lautstärke der Töne je nach Geschwindigkeit ändern.´

Ich hoffe ich konnte helfen

wkrug
24.07.2007, 14:25
Der sound kommt zu stande in dem die zylinder auf und ab fliegen... man könnte díese frequenz mit einem PC analysieren
Stimmt schon, aber leider hat ein Diesel Motor im Leerlauf das nageln.
Ausserdem gibt es ja noch eine Menge Nebengeräusche wie z.B. Turbolader, Hydraulikpumpen usw.
Diese Sachen einzeln zu Synthetisieren dürfte eine Lebensaufgabe werden.
Ich hab gestern abend noch mal versucht einzelne Sequenzen so anneinander zu reihen, damit ein realistischer sound zustande kommt.

Start, Leerlauf, Gas auf stufe 1, Stufe 1, gas auf stufe 2, stufe 2 usw.
Die beschleunigungs (Gas) Stufen weden einmalig abgespielt, die einzelnen Permanentstufen sind loops.

Zur Zeit arbeite ich mit 4 Stufen.
Der Sound wird zur Zeit noch mit PC Software erzeugt.

Das war schon sehr nahe an der Realität.

jetzt noch für die einzelnen Stufen das Gaswegnehmen sampeln, dann sollte sich das nach was anhören.

Als D/A Wandler möchte ich ein R2R Netzwerk am Ausgang eines AVR Ports verwenden.

Jetzt hab ich aber ein Speicherplatzproblem, weil die bisherigen samples jetzt schon 150k Byte haben.
Also externer Speicherplatz wird sich nicht vermeiden lassen.

Eine Frage wäre noch betreffend der I²C EEPROM's.
Sind die für eine Live Soundausgabe schnell genug, oder muss man in einem RAM zwischenspeichern ?


Programmierst du in C oder Basic?
Ich progge in "C" und Assembler.

wolli_bolli
24.07.2007, 16:39
Eventuell könntest du auch eine Speicherkarte wie man sie in Digi-Cams etc. verwendet, benutzen. Diese sind (zumindest teilweise) sehr schnell, inzwischen recht billig und haben hohe Speicherkapazität und lassen sich wohl auch von einem Normalsterblichen mit uC ansteuern (hab schon verschiedene Projekte mit so was gesehen). Vielleicht findet sich jmd. der so was schonmal gemacht hat, ich hab nämlich keine Ahnung davon.
Gruß Wolli_Bolli

wkrug
24.07.2007, 17:02
Ich hab einen Hersteller gefunden, der genau so etwas vertreibt.

http://www.el-mod.de/

Er benutzt auch ganz normale SD Speicherkarten, anscheinend mit FAT darauf.

Vermutlich werd ich mir so ein Modul zulegen, da man sogar die Sounds noch selber proggen kann.

Superhirn
24.07.2007, 20:28
evt kannst du mit soundgin (google) was anfangen hab in einer SERVO zeitung mal gelesen wie sie damit töne erstellt haben. es hat 3 frequenzgeneratoren, die du überlaern kannst (zb den einen mit den anderen speißen) und dann ne menge töne inkl sprache rauszaubern kannst.

Dieter59
26.07.2007, 14:54
Hi,

ich habe das mal für einen normalen (nostalgischen) Motorsound mit einem AVR ATMega8 gemacht.
Die Vorgehensweise war folgende:
- Sound auswählen (WAV-Datei aus Flugsimulator)
- Konvertieren in 8Bit/Mono/8kHz (mit GOLDWAVE-Programm)
- WAV-Datei umwandeln in *.txt Datei (mit Tool von WINAVR)
- ins C-File einbinden, compilieren und in ATMega 8 einspielen.

Der ATMega8 liest an einem Eingang das PPM-Signal der Fernsteuerung ein und gibt die Sound-Daten dem PPM-Signal folgend, zeitgesteuert an einem 8Bit-Port aus. Über ein R2R-Netzwerk oder einem DA-Wandler geführt steht dann das Analog-Audio-Signal zur Verfügung.

Zur Veranschaulichung habe ich mal das Programm angehängt.
Die verwendeten 8kHz Samplerate waren für den niederfrequenten Motoren-Sound vollkommen ausreichend.
Wenn man komplexere Sound-Sequenzen oder eine bessere Qualität wiedergeben möchte, ist mehr Speicher erforderlich. Die o.g. Anbindung einer SD-Speicherkarte könnte die Lösung dazu sein. Da habe ich aber noch keine Erfahrung mit.
Vielleicht ist das gar nicht so aufwändig und es findet sich jemand, der das schon gemacht hat.

Gruß
Dieter

Superhirn
26.07.2007, 17:09
coole idee. dacht mir nicht das das so einfach sei!