Siren Sesleri

Başlatan Erhan YILMAZ, 17 Mart 2014, 23:55:05

Erhan YILMAZ

Bilindik tanıdık polis, ambulans seslerinin kare dalga olarak paternini nasıl oluşturabiliriz? Amacım mikro işlemci ile bu sesleri oluşturmak. Bilen deneyen var mı yol gösterecek? Birde işlemci çıkışından 1-2 transistör ile bu sesleri çıkartabileceğim(duymak için sadece çok güçlü olmasına gerek yok) sağlam denenmiş bir yükselteç devresi olan var mı paylaşmak isteyen?

Police siren sound effect 1
Police siren sound effect 2
Police Car Siren (Sound Effects)

z

Frekans modulasyonu. Duduk sesinin frekansini cok daha dusuk frekansli bir sinyalle frekans modulasyonuna tabii tutacaksin.

Dusuk frekansli sinyalin zarfi siren sesine renk verecek.

VCO + OSC.

Yazilimla da kolayca yapabilirsin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

timpati

zamanında ankaradaki bir firma için (trafik polislerinin sirenlerini yapma işini bunlara vermişler) devrelerini düzeltme işini yapmıştık. anfiye gerek yok çünkü çıkışta hoparlör kullanılmıyor. sadece bir piezo siren var. piezolar içinse (bunlar piyasada sonsuz empedanslı diye geçiyor) sesi yükselme adına paralel bağlı bir bobin veya trafo kullanılır. örnek olarak gidip bir adet 1.5TL'ye kapı-pencere alarmı alıp içine bakın (şu manyetik kontaklı olanlardan).
why mr. anderson, why ?

Erhan YILMAZ

z hocam frekansı v.s. nasıl olacak bilinen kullanılan değerler nedir?

timpati hocam piezzo mevzularından haberim varda ben şuan deneme yapmak için hoparlör kullanıyorum bütün sesleri duymak için.

z

Frekansı sen keyfine göre belirle. Piezo kullanacaksan piezo frekansı temel düdük sesinin frekansına limit getirir.

Şimdi ses zarfı soruyorsun. Bu bilginin hazır verildiğini sanmıyorum. Muhtemelen ses mühendisleri synthesizer başına geçip kulağa hoş gelen zarfı tespit ediyorlardır.

Sana önerim. İşlemciyi karşına koy. Düdük programı ile başla. Daha sonra düdük frekansını gene kod ile salındırmaya başla. Bir iki denemeden sonra istediğin siren sesini yapabileceğini göreceksin.

Bugüne kadar siren yazılımlarım için zarf nasıldır arayışına girmedim. Yazdığım kodu dinledim yazılıma müdahale ettim. Dinledim müdahale ettim.....

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

DataDiver

http://www.microchip.com/forums/m492404.aspx

Tamamen okumadım ama burada bişiyler anlatmışlar.

Erhan YILMAZ

z hocam bende sonradan siren sesi ile oynayacağım ama aşlangıç noktası için referans bir patern sorayım dedim. Datadiverin bahsettiği konuyu bende okudum orada bir örnek var hatta onu denemeyi düşünüyorum. Peki mikro işlemci çıkışına bağlayabileceğim bildiğiniz tanıdığınız basit bir yükselteç var mı sesleri dinleyebilmek için.

z

#7
Amacin sirf deneme ise PC hoparlor sistemi en pratik olani.

Olmaz dersen Kulaklik.

Seri 1uF ile dogrudan islemci cikisina baglayabilirsin. Yda daha iyisi, tek transistorle buffer da yapabilirsin. (Islemci pini dogrudan bas'e Kollektor dogrudan +5v hattina. Emetor den Gny'ye 100Ohm, kulaklik da 1uf uzerinden 100 Ohm uclarina paralel)

Hic biri olmaz dersen amlifikator cipi ile devre kurman gerekir.



mesaj birleştirme:: 18 Mart 2014, 20:05:57

Denemeden cok basit bir kod yazayim.

Rakamlari islemcinin hizina gore, siren sesi frekansi beklentine gore, modulasyon beklentine gore diledigin gibi oynayabilirsin.

Mevcut degerlerle muhtemelen isine yaramayacaktir. Ama biraz gidiklarsan polis sirenini aynen elde edersin.

void Duduk(int t)
{
       Pin=1;
       delay(T);
       Pin=0;
       delay(T)
}


void Siren()
{
      N=10;
      while(1)
        {
          while(N<100)
            {
               for(j=0;j>100; j++)  Duduk(N);
               N++;
            }
         while(N>10)
            {
               for(j=0;j>100; j++)  Duduk(N);
               N--;
            }
       }
}

Bu kodda VCO (duduk rutini)
dusuk frekansli ucgen dalga ise main rutini icinde gerceklendi.

Ucgen dalga ile yuksek frekansli kare dalgayi frekans modulasyonuna tabii tuttuk.

Duduk sesi inceden kalina kalindan inceye saliniyor.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erhan YILMAZ

Hazır bir pc hoparlörü olması lazım hocam olmadı direk onu kullanayım. Sadece seri 1 uf mı? Bir videonuz vardı yanlış hatırlamıyorsanız discovery kitten ses çıkışı alıyordunuz. Direnç falan eklemeyeyim mi?

YK44

#9
sanırım bu biraz yol gösterir.


#define TONE_PIN  PIN_c6


void do_delay(int ms_delay, int num_ms, int us_delay, int num_us)  {
int i;

for(i=0;i<num_ms;i++)
  delay_ms(250);
delay_ms(ms_delay);
for(i=0;i<num_us;i++)
  delay_us(250);
delay_us(us_delay);
}


void generate_tone(long frequency, long duration)
{
   int32 total_delay_time;                      // in microseconds
   long total_ms_delay_time, total_us_delay_time;
   int num_us_delays, num_ms_delays, ms_delay_time, us_delay_time;
   long num_periods;

   total_delay_time = (1000000/frequency)/2-10; // calculate total delay time (10 for error)

   total_ms_delay_time = total_delay_time/1000; // total delay time of ms
   num_ms_delays = total_ms_delay_time/250;     // number of 250ms delays needed
   ms_delay_time = total_ms_delay_time%250;     // left over ms delay time needed

   total_us_delay_time = total_delay_time%1000; // total delay time of us (ms already acounted for)
   num_us_delays = total_us_delay_time/250;     // number of 250us delays needed
   us_delay_time = total_us_delay_time%250;     // left over us delay time needed

   num_periods = ((int32)duration*1000)/(1000000/frequency);

   while((num_periods--) != 0)
   {
      do_delay(ms_delay_time, num_ms_delays, us_delay_time, num_us_delays);
      output_high(TONE_PIN);
      do_delay(ms_delay_time, num_ms_delays, us_delay_time, num_us_delays);
      output_low(TONE_PIN);
   }

   return;
}

mesaj birleştirme:: 19 Mart 2014, 22:25:41

tda 2030 ilede az malzeme ile 30 watt a kadar basit bir anfi yapabilirsin.

ErsinErce

kodları görünce one-line algorithmic music aklıma geldi.
8khzlik bir pwm in duty değerine bu kodun çıkışını verince aşağıdaki sesler meydana geliyor.
polis sireni var mıdır diye baktım ama göremedim malesef =/
belki deneme yanılma ile bulunabilir.

Experimental one-line algorithmic music - the 2nd iteration

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

teorisi var mı bilmiyorum fakat 255*sin(2*t*pi/8000) bize 1hz sinüs vereceğinden bir yapısı olması lazım

delay vs kullanmadan uygulanması da kolay, işlemcinin boşa dönmesi müsriflik sonuçta =)

erdogan2734

Sevgili Arkadaşlar
Ankara'da bu işleri yapan firmada çalışmaktayım. Vaktiyle arge departmanında çalışıp siren sesi yazdığımda olmuştur.
Forumda siren konusunu aradığınızda benim adımı görebilirsiniz. Siren sesi yazdırmak için firmalar 3000-4000 Dolar civarında para verdikleri için derine inmeden sadece gidiş yolunu söyleyebilirim. Siren sesi için donanımsal pwm'e ihtiyaç yok. Frekans değerleri genelde 695 hz den başlar ve 1640 hz'e kadar gider. Genelde bu aralıklar da yelp- air horn ve  faser seslerini yazabilirsiniz.
   Basic için genel kullanım for döngüsü içinde sinüs gecikme değeri ve çıkış portunun high low yapılması ile bu işlem yapılabiliyor. Ancak birebir aynı ses çıkmıyor çok uğraş gerektiren bir durum. Ayrıca bence sesi dinlemek için bir devre yapmanıza gerek yok. Proteus çizimde yazılan program birebir aynı sesi verebiliyor. Yine bu bilgileri bana sağladığı ve yardımcı olduğu için ETE hocaya teşekkür ederim.
   İyi akşamlar...
Bildiğim tek şey henüz hiç bir şey bilmediğim...