Hang generálása
Hang generálása
Sziasztok!
Először is kellemes karácsonyi ünnepeket kívánok mindenkinek!
Egy vívás menetjelző cuccot csinálok, ami azt tudja, hogy egy
menüben be lehet állítani a menetek idejét, a menetek közötti időt, és amikor elindul, akkor a menetidő lejártával egy hangjelzést ad. utána megvárja a menetek közötti időt, és utána megint hangjelzést ad.
már kész van az egész cucc, dobozban, lcd-vel, 80% assembly / 20% basic programmal (hiába, 2k az 2k:)), a hanggenerálást próbálom belőni.
Ehhez egy i2c buszra illesztett pcf8591-es ic-t használok, aminek az aout lába egy erősítőre van kötve, az pedig a hangszóróra. Hangot kiválóan tudok generálni a példaprogi segítségével, azonban valami ilyesmit szeretnék kapni, mint ennek a 300k-s mp3 végén van:
http://canne.tritonis.hu/images/duda.mp3
Van valami ötletetek, hogy lehetne ilyen hangot generálni?
Üdv.
Zsolti
Először is kellemes karácsonyi ünnepeket kívánok mindenkinek!
Egy vívás menetjelző cuccot csinálok, ami azt tudja, hogy egy
menüben be lehet állítani a menetek idejét, a menetek közötti időt, és amikor elindul, akkor a menetidő lejártával egy hangjelzést ad. utána megvárja a menetek közötti időt, és utána megint hangjelzést ad.
már kész van az egész cucc, dobozban, lcd-vel, 80% assembly / 20% basic programmal (hiába, 2k az 2k:)), a hanggenerálást próbálom belőni.
Ehhez egy i2c buszra illesztett pcf8591-es ic-t használok, aminek az aout lába egy erősítőre van kötve, az pedig a hangszóróra. Hangot kiválóan tudok generálni a példaprogi segítségével, azonban valami ilyesmit szeretnék kapni, mint ennek a 300k-s mp3 végén van:
http://canne.tritonis.hu/images/duda.mp3
Van valami ötletetek, hogy lehetne ilyen hangot generálni?
Üdv.
Zsolti
Hát ezt a legegyszerűbb. Ha van 12V akkor a kontroller egyik lábára egy relé, ami 12V 2A-t tud. Erre a relére meg egy autódudát:).
Amúgy az a baj, hogy ezt a hangot le kell szintetizálni:(
A Gond: I2Cn hajtod. ez 100khz buszfreki, így a kiküldött minta (10 bit/jellel számolva) max! 10kHz-s lehet. Ha nem kell címezni az eszközt és a és a tömeges megszólítást elfogadja... ha nem, akkor ez 5kHz-ra csökken:(. Közben persze valahol a hangmintát el is kell tárolni... (úgy sacc ez lehet ~2 mp 8kHz/8bit ez pedig 16 kByte hely:(...
Én pofátlan módon a következőt tenném: ISD hangchip (hamár a kürt nem jó) Bár pénból 24V-os hajókürtöt raknék fel:) Esetleg ha az nincs kamionkürtöt. Végső esetben autódudát - bontóból....
A hanggenerálás után még erősítened is kell a jelet és hangszóró is kell.... Ez meg nem biztos hogy már megéri (vacak TDA2003 (10W) egy vívóteremben édeskevés..... És ekkor még hangszóró sehol...
Vagy berakni égy kézihangszóró elvű szénmikrofon szerűt. Azaz az 5V-l feszerősítőn át a 12V-t kapcsolgatni 4R hangszóróra. Ez ugye 12V esetén 8ideálisan: 12V*3A=36W. Hát ippeghogy....
Amúgy a legegszerűbb: bedigizni a hangmintát 8 biten, a duda lehet 3kHz-s, így 6-8kHz mintavételi frekin. Ezt a bedigizett hangmintát tárolni EEPROMban és innen kilökdösni a DA konverterre.
Tárolásra 24LC64 chip (8k tárhely) I2C-s.
I2C buszfrekit 400kHz-ra felpiszkálni (elvileg bírja a 24LC64 és a PCF DA chiped is). De DA heyett mehetne a uPC Timer1/2/0 PWMje is, 256bitese modban, magas frekin. Így I2C helyett elegendő lenne a I2C oldas, majd PWM1a=data. És kész is. Gyorsabb a rutin, és megúszod a DA konverzíót. A PWM-re meg egy aluláteresztő LC tagot rakni....
I2C-s kód, kb. vázlatként:
PWM-s kód, kb. vázlatként:
Amúgy az a baj, hogy ezt a hangot le kell szintetizálni:(
A Gond: I2Cn hajtod. ez 100khz buszfreki, így a kiküldött minta (10 bit/jellel számolva) max! 10kHz-s lehet. Ha nem kell címezni az eszközt és a és a tömeges megszólítást elfogadja... ha nem, akkor ez 5kHz-ra csökken:(. Közben persze valahol a hangmintát el is kell tárolni... (úgy sacc ez lehet ~2 mp 8kHz/8bit ez pedig 16 kByte hely:(...
Én pofátlan módon a következőt tenném: ISD hangchip (hamár a kürt nem jó) Bár pénból 24V-os hajókürtöt raknék fel:) Esetleg ha az nincs kamionkürtöt. Végső esetben autódudát - bontóból....
A hanggenerálás után még erősítened is kell a jelet és hangszóró is kell.... Ez meg nem biztos hogy már megéri (vacak TDA2003 (10W) egy vívóteremben édeskevés..... És ekkor még hangszóró sehol...
Vagy berakni égy kézihangszóró elvű szénmikrofon szerűt. Azaz az 5V-l feszerősítőn át a 12V-t kapcsolgatni 4R hangszóróra. Ez ugye 12V esetén 8ideálisan: 12V*3A=36W. Hát ippeghogy....
Amúgy a legegszerűbb: bedigizni a hangmintát 8 biten, a duda lehet 3kHz-s, így 6-8kHz mintavételi frekin. Ezt a bedigizett hangmintát tárolni EEPROMban és innen kilökdösni a DA konverterre.
Tárolásra 24LC64 chip (8k tárhely) I2C-s.
I2C buszfrekit 400kHz-ra felpiszkálni (elvileg bírja a 24LC64 és a PCF DA chiped is). De DA heyett mehetne a uPC Timer1/2/0 PWMje is, 256bitese modban, magas frekin. Így I2C helyett elegendő lenne a I2C oldas, majd PWM1a=data. És kész is. Gyorsabb a rutin, és megúszod a DA konverzíót. A PWM-re meg egy aluláteresztő LC tagot rakni....
I2C-s kód, kb. vázlatként:
Kód: Egész kijelölése
for i= 1 to 16384
ReadI2C EEPROM, adat
WriteI2C DAconv, adat
waitus valamennyi
next i
Kód: Egész kijelölése
for i= 1 to 16384
ReadI2C EEPROM, adat
PWM1A=adat
waitus valamennyi
next i
Szia!
Köszi a gyors választ. Most elkezdtem azon dolgozni,
hogy audacity-ben létrehoztam (copypaste) egy olyan
hangminta részletet, amit megsokszorozva kb. olyan
hangot kapok, mint az eredeti. Ezt a mintát tervezem
felhasználni alapnak, és ezt próbálom majd kiküldeni
a d2a ic-n. A duda egyébként működik, tutul, elég
hangos is (12v-ról megy).
Na, próbálkozom egy kicsit, hátha sikerül valamit
ügyeskedni
Köszi a gyors választ. Most elkezdtem azon dolgozni,
hogy audacity-ben létrehoztam (copypaste) egy olyan
hangminta részletet, amit megsokszorozva kb. olyan
hangot kapok, mint az eredeti. Ezt a mintát tervezem
felhasználni alapnak, és ezt próbálom majd kiküldeni
a d2a ic-n. A duda egyébként működik, tutul, elég
hangos is (12v-ról megy).
Na, próbálkozom egy kicsit, hátha sikerül valamit
ügyeskedni
Helló!
Ezt találtam:
ISD1416P
http://pdf1.alldatasheet.co.kr/datashee ... 1416P.html
A chipre fel lehet venni több, mint 10 másodperc hangot, ez pedig nekem teljesen jó, úgyhogy szerintem egy ilyent fogok beintegrálni a termékbe
Szerintetek?
Üdv.
Zsolti
Ezt találtam:
ISD1416P
http://pdf1.alldatasheet.co.kr/datashee ... 1416P.html
A chipre fel lehet venni több, mint 10 másodperc hangot, ez pedig nekem teljesen jó, úgyhogy szerintem egy ilyent fogok beintegrálni a termékbe
Szerintetek?
Üdv.
Zsolti
- nobody_hun
- Bitfaragó
- Hozzászólások: 425
- Csatlakozott: 2005. november 14. hétfő, 7:00
Hang generálása
Sziasztok!
http://atmel.com/dyn/resources/prod_doc ... oc1456.pdf
Itt találtok egy doksit, az ATMEL uC-es hangtárolásról.
Alapból, tudja azt amit egy régebbi ISD IC.
8Mhz es uC-re van tervezve, amit ha kicseréltek 20Mhz
esre, 40Khz es PWM frekvencia mellett, igen jó hangminőséget
kaphattok.
Nagysebességű üzemmódban pedig 80Khz es PWM mellett,
leht hogy jobban fog szólni mint a CD lejátszó.
Egyedült az aluláteresztő részt kell átszámolni a kapcsolásban és
nagyobb frekvenciájú uC kell beépíteni.
Peti
http://atmel.com/dyn/resources/prod_doc ... oc1456.pdf
Itt találtok egy doksit, az ATMEL uC-es hangtárolásról.
Alapból, tudja azt amit egy régebbi ISD IC.
8Mhz es uC-re van tervezve, amit ha kicseréltek 20Mhz
esre, 40Khz es PWM frekvencia mellett, igen jó hangminőséget
kaphattok.
Nagysebességű üzemmódban pedig 80Khz es PWM mellett,
leht hogy jobban fog szólni mint a CD lejátszó.
Egyedült az aluláteresztő részt kell átszámolni a kapcsolásban és
nagyobb frekvenciájú uC kell beépíteni.
Peti
