Forum: Mikrocontroller und Digitale Elektronik Pop off mit atmel


von Radu (Gast)


Lesenswert?

Hallo Forum,

Ich möchte gerne für mein Modelauto ein PopOff Sound bauen. Kann ich mit 
dem atmel ein zischen wiedergeben (ca 5sec)?

Der Atmel hätte nur das zu tun, es soll klein bleiben da ich nicht viel 
Platz habe (kein mp3 Modul)

Danke!

von raketenfred (Gast)


Lesenswert?

schnapp dir einen, der genug ram und einen pwm ausgang hat. dann klappt 
das, brauchst nen bisschen hühner futter und gut

von raketenfred (Gast)


Lesenswert?

ich meinte überigens genug flash, als speicher für den sound...
2 timer(1 pwm, einen für den nächsten pwm-wert) sollte reichen

wirste hier aber bestimmt auch irgendwas finden, wird ja ehr türgong 
ähnlich

von radu (Gast)


Lesenswert?

Ich dachte da an einen Atmeg8 aber wie kann ich die pwm-tabelle erzeugen 
?

danke & lg.

von Falk B. (falk)


Lesenswert?

@radu (Gast)

>Ich dachte da an einen Atmeg8 aber wie kann ich die pwm-tabelle erzeugen
>?

So wie man in der Programmiersprache deiner Wahl ein Datenfeld anlegt.

von radu (Gast)


Lesenswert?

@Falk Brunner

Ja das ist mir schon klar aber -- wenn ich ein wav habe wie kann ich die 
werte für die pwm heraus bekommen ? muss keine wav sein aber wie weiss 
ich wann ich welche PWM einstellen soll ?

kann ich über den ADC zuerst aufnehmen und dann über die PWM ausgeben ? 
Die Qualität wird schlecht sein oder?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

wie klingt denn pop off? Was soll das für ein Geräusch sein?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

http://www.youtube.com/watch?v=mtFAf9nah3E

komisches Geräusch für ein Auto

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Das Geräusch entsteht durch das Überdruckventil nach dem Tubolader wenn 
die Drosselklappe bei starker Last schnell geschlossen wird.

Im Prinzip kann man das Rauschen durch eine geeignet modulierte 
Zufallsgröße erzeugen. Relevant für den Klang sollte nur die Hüllkurve 
sein. Eine Rauschsequenz (die man mit random() erzeugt) kann man im Ram 
ablegen und als Loop abspielen. Die Hüllkurve sollte sich mit einer 
geringen Zahl an Variablen beschreiben lassen.

Grüße,

Peter

von Ralli (Gast)


Lesenswert?

Wenn es nur ein erst mal starkes Rauschen sein soll,
das langsam abklingt, dürfte es "voll easy" in Echtzeit
mit einem AT-Tiny machbar sein.

(1) Pseudo-Zufallszahl mit rückgekoppeltem Schieberegister
    erzeugen. Google: LFSR
    Geht in 16 oder weniger Rechnertakten.

(2) Beim Timer-Interrupt neue Zufallszahl berechnen, daraus
    eine Zahl zwischen 64 und 255 gewinnen: Low-Byte OR 64.
    Ergibt die Periodendauer = Variable Rauschfrequenz.

(3) Vom Zahlenwert der Periodendauer anfangs 32, langsam immer
    weniger abziehen.
    Mit Ereigniszähler und Tabelle.
    Ergibt Pulsbreite = Lautstärke.

Bei den ATTINYs im Datenblatt nachschauen, wie man das den
PWM-Timern und PWM-Port-Pins beibringt.

Piezo-Piepser an den PWM-Ausgang schalten.
Eventuell RC-Glied zur Sound-Verschönerung davor.

von minifloat (Gast)


Angehängte Dateien:

Lesenswert?

8 bit pcm unsigned wave file to c header file?
also ich hatte da mal ein töölchen gehabt. source ist angehängt.
Bedienung: ./wav0xconv <infile >outfile
wie z.B.
minifloat:~ minifloat$ wav0xconv <bassdrum.wav >myheader.h

dann die headerdatei bearbeiten:
wenn am anfang und ende lang digitale stille ist(0x00) ist der anfang.
ein samplewert, nämlich die 0x00 stoppt bei mir wie ein string-ende 
zeichen einen parser. also werden dir durch 0x01 ersetzt. Um den 
0-bereich(Vcc=5V U_out = 2.5V hab ich ein bit verloren, was solls, 
übernahmeverzerrungen).
am ende ist vor } ein ; zuviel. das merkt auch der GCC. 
zurechteditieren, rüberkopieren was auch immer.

8bit unsigned wavs kann man z.B. mit Audacity erzeugen.

mfg mf

von minifloat (Gast)


Lesenswert?

Beim Atmel AVR noch pgmspace.h einbinden und PROGMEM hinter den 
Variablennamen "myvar" setzen. So kann man dann mit wiederholtem
1
global PGM_P bytecount;
2
bytecount = myvar;
3
buffer = pgm_read_byte_near(*bytecount++);
samplewerte auslesen.

mfg mf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.