AKILLI PİC NEDİR?

Başlatan sozkarabacak, 12 Eylül 2009, 14:32:17

sozkarabacak

SELAMLAR,
Bir arkadaştan şöyle bişey duydum. Akıllı pic diye bir işlemci çıkmış örneğin bir dtmf devrei yaptınız taktınız dtmf girince kendini otomatik programlayıp dtmf decoder oluyormuş. Böyle bir komponent bilen var mı?
Varsa numarası nerdir?
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

mustafa_cmbz

:D vay be ne güzel bişeymiş :D

zakbay

sayın sozkarabacak

şaka yapıyor olmalısınız.  :lol:
Tek dostum çalışmak...

drmp

eğer güzel bir sihirbaz programı yazarsan niye olmasın

peko

Bence Hafıza teknolojisi gelişip büyüdükçe, ve yer olarakta kapladığı alan küçüldükçe yani kısacası 2050'lerda falan yapılabilir böle bi komponent..

Hafızasındaki daha önceden sample edilmiş sinyallerle girilen sinyali karşılaştırıp, bu kesin dtmf'tir, ben çözüp çıkışa verim diyebilir.

Hanson robotics' i bi araştırın. Bir robot'a baktığında bebeğin bebek olduğunu algılatabiliyorlar ve bunun gibi daha bir çok şey..

Yani ne kadar çok öğrenebilirse, o kadar çok cvp verebilir..
şimdi 1 yaşında olduğunu düşündüğümüz bir robot, 40 sene sonra dtmf'i algılar sanırım :) Tabi o zaman dtmf kalırsa..
Bu durumda cvp:"ben bunu bi yerden anımsıyorumm " olur.

8)
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

aslan_korhan

Aslında bir PIC ile DTMF algılanabilir.
Sonuç olarak DTMF sinyali 2 adet sinyalden oluşur. Örneğin "3" tuşu için
697Hz ve 1477Hz.

Bunlar 2 Gruptan oluşur.
1. Grup = 697Hz, 770Hz, 852Hz ve 941Hz
2. Grup = 1209Hz, 1336Hz, 1477Hz ve 1633Hz

Bu toplam 8 Frekansın birleşiminden toplam 16 tane DTMF tonu elde edilir.
2 adet adet Filtre katı kullanıp çıkışlarını PIC'in girişlerine bağlayabiliriz.
1. Filtre 1.1KHz alçak geçiren Filtre ( LPF ).
2. Filtre 1.1KHz yüksek geçiren Filtre ( HPF ).

Buradaki 2 Frekans ölçülerek istenilen DTMF Tonu çözülebilir.

Fakat bu kadar karışık bir devre yerine tek bir tane MT8870 kullanmak daha mantıklı bence...
Dünyada 10 çeşit insan vardır. Binary bilen ve bilmeyenler.

wsxwsx

18f452 ile FFT projesi var. Bu şekilde olur mu acaba.
https://www.picproje.org/main/modules.php?name=Forums&file=viewtopic&p=176583#176583

Birden fazla frekans karışık geliyor. Analiz ediliyor


mihri

Evet FFT ile olur. Üstelik filtreleme işleminden daha sağlıklı olur.
"Eppur si muove!"

wsxwsx

Hadi hocam şu işe bir el atıver. büyük ihtiyaçtır. DTMF üretme komutu var ama çözme komutu yok.

1sn okusun. diğer 1sn içinde hesaplayıp sonucu bildirsin sorun değil. Sürekli çaşılmasa da olur.  gerekirse süre kısaltılır. 0.5 sn okur, diğer 0.5sn hesaplar, gösterir. LCD kısmı da şart değil. LEd yansın yeter. BCD çıkış.

Şimdiden teşekkür ederiz.

hasangurlek

Sanırım formül pek hoşunuza gitmeyecek, çözmek isteyen varsa buyursun;



Hazırdan halledeyim diyen olursa buyrun ;

DTMF Remote control – A software DTMF decoder for PIC 16F87X

Hazır chipler varken bununla uğraşmak beni aşar :)
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

wsxwsx

Gerekirse dmf için daha pahalı pic kullanırım, yine de hazır çip kullanmam diyenler olabilir. Onur meselesidir  :)

picusta

Alıntı yapılan: "hasangurlek"Sanırım formül pek hoşunuza gitmeyecek, çözmek isteyen varsa buyursun;

(Resim gizlendi görmek için tıklayın.)

DTMF Remote control – A software DTMF decoder for PIC 16F87X

Sanirim o linkteki formülün hemen altindaki tabloyu farketmedin.
|FFT| yaptiktan sonra o tabloya bakip DTMF'i çözmek çocuk oyuncagi.

hasangurlek

Alıntı yapılan: "wsxwsx"Hadi hocam şu işe bir el atıver. büyük ihtiyaçtır. DTMF üretme komutu var ama çözme komutu yok.

1sn okusun. diğer 1sn içinde hesaplayıp sonucu bildirsin sorun değil. Sürekli çaşılmasa da olur.  gerekirse süre kısaltılır. 0.5 sn okur, diğer 0.5sn hesaplar, gösterir. LCD kısmı da şart değil. LEd yansın yeter. BCD çıkış.

Şimdiden teşekkür ederiz.

İ S T İ N A D E N,

Alıntı yapılan: "picusta"
Alıntı yapılan: "hasangurlek"Sanırım formül pek hoşunuza gitmeyecek, çözmek isteyen varsa buyursun;

(Resim gizlendi görmek için tıklayın.)

DTMF Remote control – A software DTMF decoder for PIC 16F87X

Sanirim o linkteki formülün hemen altindaki tabloyu farketmedin.
|FFT| yaptiktan sonra o tabloya bakip DTMF'i çözmek çocuk oyuncagi.

Hocam kodları sizden bekliyoruz o zaman.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

picusta

Alıntı Yap
Hocam kodları sizden bekliyoruz o zaman.
Hay hay emriniz olur. zaten baska bi isim yok foruma kod yaziyorum.

DTMF ile hiç isim olmadi o yüzden bu kod parçasini ben kullanmayacagim.

FFT yaptiktan sonra bu fonkysonu çagrinca normalde kodu vermesi gerekir.

LstDTMFFreq ve DTMFTablo  degiskenlerini const rom tanimlamasi ile flash'a atarsaniz daha az RAM harcarsiniz. Daha optimizasyon yapilmaya müsait.

@hasangurlek
Bu kodu hesabina yaziyorum, ihtiyacim olunca bana kod yazarsin, ödesiriz.
#define MX_FFT_SAMPLE			256			// FFT tablosunun uzunlugu
#define MX_FFT_FRENQUENCY		40000		// FFT tablosundaki maksimum frekans


/*
  * ENU_DTMF_FREQ
  *  DTMF frekanslarinin sayilmasi
  */
typedef enum ENU_DTMF_FREQ
{
ENU_DTMF_FREQ_SATIR1,	// 697
ENU_DTMF_FREQ_SATIR2,   // 770
ENU_DTMF_FREQ_SATIR3,   // 852 
ENU_DTMF_FREQ_SATIR4,   // 941
MX_DTMF_FREQ_SATIR,
ENU_DTMF_FREQ_SUTUN1  = MX_DTMF_FREQ_SATIR,   // 1209 
ENU_DTMF_FREQ_SUTUN2,	// 1336
ENU_DTMF_FREQ_SUTUN3,	// 1477
ENU_DTMF_FREQ_SUTUN4,	// 1633
MX_DTMF_FREQ_SUTUN = (ENU_DTMF_FREQ_SUTUN4 - ENU_DTMF_FREQ_SUTUN1 +1),
};

// DTMF frekans listesi
unsigned char LstDTMFFreq[]=
{
697,  //ENU_DTMF_FREQ_SATIR1,
770,  //ENU_DTMF_FREQ_SATIR2,
852,  //ENU_DTMF_FREQ_SATIR3,
941,  //ENU_DTMF_FREQ_SATIR4,
1209, //ENU_DTMF_FREQ_SUTUN1,
1336, //ENU_DTMF_FREQ_SUTUN2,
1477, //ENU_DTMF_FREQ_SUTUN3,
1633  //ENU_DTMF_FREQ_SUTUN4,
};

// DTMF kod çozme tablosu
unsigned char DTMFTablo[MX_DTMF_FREQ_SATIR][MX_DTMF_FREQ_SUTUN] =
	{
		{'1','2','3','A'},
		{'4','5','6','B'},
		{'7','8','9','C'},
		{'*','0','#','D'},
	};

/*
 * DecodeDTMF
 * FFT Tablosundan DTMF kodu bulma fonksyonu
 * Girdi : 
 *  	-> FFTTab : sinyalin FFT mutlak deger tablosu
 *	-> Treshold : Deteksyon genligi
 *	<- Kod : dekode edilen DTMF kodu
 *  çikti :
 *	DTMF sinyali bulduysa true, bulamadiysa false
 *
 */
 
bool DecodeDTMF (unsigned char *FFTTab, unsigned char Treshold, char *Kod )
{
bool Retour;		// çikti degeri
int MaxFreqSatir,		// Birinci maximum frekans
	MaxFreqSutun;		// Ikinci maximum frekans
	
int FreqAdim,		// Frekans adimi
	IdxFreq;		// FFT tablosu endeksi

int ii;			// Döngü sayaci

Retour = false;
MaxFreqSatir = -1;
MaxFreqSutun = -1;
FreqAdim = MX_FFT_FRENQUENCY / MX_FFT_SAMPLE;

// Ilgilenilen frekanslarin sinyal genligini esik degerle karsilastir
for (ii = 0; ii < MX_DTMF_FREQ_SATIR + MX_DTMF_FREQ_SUTUN && !Retour; ii++ )
{
IdxFreq = LstDTMFFreq[ii] / FreqAdim; 
if (FFTTab[IdxFreq] > Treshold)
	{
	if (MaxFreqSatir == -1)
		{
		if (ii < MX_DTMF_FREQ_SATIR)
			MaxFreqSatir = ii;
		}
	else
		{
		if (ii > MX_DTMF_FREQ_SATIR -1)
			{
			MaxFreqSutun = ii;
			Retour = true;
			}
		}
	} 
}

// Dekod ve çikis
if (Retour)
	{
	*Kod = DTMFTablo[MaxFreqSatir][MaxFreqSutun];
	}
else
	{
	*Kod = '\0';
	}

return Retour;
}

sozkarabacak

Arkadaşlar kesin var demedim. Bir arkadaşım olduğunu söyledi ama komponent no vermedi. Bende bu forumda bilen vardır belki diye fikrinize başvurmak istedim. Arkadaşın tarifinde üzerinde bir buton varmış buton on olunca kendini programlamak için sizden verileri bekliyormuş. Veriler girilip işlemler öğretilince butonu off yapınca başlıyormuş tıkır tıkır işlemleri yapmaya. Aman dikkat bu forumda ateşli arkadaşlar var heyecan yok cümle sonları -mış,-miş,-muş,-müş ekleriyle bitiyor bunlara dikkat. Varsa vardır yoksa yoktur. Ne yapalım sağlık olsun. Ben zaten pic basicde bir noktaya kadar geldim çok şükür. Böyle bişeyin olduğunu istemem şahsen bu milleti tembelleştirmektir. Kafa yormak güzel şey bence. Yaptığım bir devre ilk enerji verince çalışınca duyduğum mutlulukla bir devreye 1 hafta uğraşıp hataları düzeltip çalıştırınca duyduğum mutluluk asla eşit değil.
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]