PIC ile ISD2560 ses kayıt entegresi kullanımı picbasic

| Mayıs 25, 2023 Tarihinde güncellendi
PIC ile ISD2560 ses kayıt entegresi kullanımı picbasic

Daha önce pic18f2455 üzerine kurulu benzer bir uygulama paylaşılmıştı benzer bir uygulama pic16f628a ve isd2560 ses kayıt entegresi üzerine kurulu yazılım ise pic basic ile hazırlanmış ve detayı türkçe açıklama bulunmakta uygulama bir yana bilgiler bu tip projeleriniz için çok işinize yarayabilir

Konuşan ROBOT

Son zamanlarda popülerlik kazanmaya baslayan elektronik uygulamalarından birisi de elektronik ses kayıt ve sesli yanıt sistemleridir. Kullanıcıların sesli olarak bilgilendirilmesini amaçlayan birçok uygulamada bu tür elektronik sistemler kullanılmaktadır. Uygulama alanını biraz daha da genişletirsek bu tür bir elektronik uygulamasıyla konuşabilen bir robot bile tasarlayabiliriz.

Robotumuz sensörleri ile çevresinden aldığı tepkiler doğrultusunda daha önceden kaydedilmis çesitli ses örneklerini dinleterek çevresiyle etkilesimde bulunabilir. Örnek olarak sumo robotlarımdan gönüllerin fatihi “Kara Murat” (Şekil-1) konuşabilen bir sumo robot ve rakibinin pozisyonu, yakınlığı gibi bilgileri kullanarak içine yüklü olan ses parçalarından birisini seçiyor ve konuşmaya baslıyor.

Tabi ki kayıtlı sesler de robotumuzun karakteriyle uyumlu olursa ortaya oldukça etkileyici ve hos bir robot çıkabiliyor. Biz bu amaçla “Kara Murat” ismine de uyumlu olarak robotumuza Türk filmlerinden çesitli ünlü replikler yükledik. Bununla da yetinmeyip robotumuza mimik katabilmesi için çıkan sese göre yanıp sönen ağız seklinde ısıklı bir Vu-metre de ekledik.

Ortaya gayet hırslı ve mücadeleci görünen bir sumo robot çıktı. Robotumuz sanki Bizans ordusuna karsı savasıyormusçasına, rakibiyle mücadele ediyor, nidalar atabiliyor bazen espri bile yapabiliyor. Kulağa gayet hos geliyor değil mi? Artık sizi fazla meraklandırmadan nasıl konuşan bir robot üretebiliriz simdi ona bakalım isteseniz.

kanusan-robot-yapimi

Bu konuda sorulması gereken ilk soru ve en önemli nokta ses gibi analog bir bilginin nasıl dijitale çevrileceği ve 1 ve 0 lar halinde temsil edilip elektronik olarak nasıl saklanacağı olmalıdır. Bilindiği gibi ses dalgaları sürekli değişen frekanslardaki titresimlerin bir ortamın içinde yayılması ile oluşur. Sesi kaydedebilmek için bu değişken titresimleri uygun bir ortamda depolamak gerekir.

Kaset, plak gibi klasik ses depolama yöntemlerinde ses herhangi bir dijital çevrime uğramaz ve analog olarak saklanır. Plakta ses dalgaları sert plak yüzeyi üzerine titresim izleri halinde, kasetlerde ise manyetik bir bant üzerine manyetik alan yardımıyla olusturulmus izler seklinde kaydedilir. Bu is için robotumuz üzerine bir kasetçalar ya da taş plak eklememiz oldukça gülünç olurdu herhalde.

Bu yüzden daha pratik ve gelismiş bir yöntem olan sesin dijitallestirilerek depolanması yöntemi geliştirilmiştir. Bu yöntem kullanılarak çok küçük bir alanda ses kayıt islemi gerçeklestirilebilir. Sesin dijitallestirilerek saklanması su Şekilde çalısır. Öncelikle ses dalgaları bir mikrofon yardımıyla elektriksel sinyallere dönüştürülür. Fakat bu sinyaller hala analog formattadır.

Bunu dijitale çevirebilmek için bir ADC (Analogtan Dijitale Çevirici) gereklidir. ADC girişine uygulanan analog sinyalleri sayısala dönüştürme islemini yapar ve çıkışında girişindeki değişken gerilim değerlerine uygun sayısal değerler üretir. Bir saniyede gerçeklesen analogtan sayısala çevrim sayısı ve ADC nin sayısal çözünürlüğü kaydedilen sesin kalitesini belirleyen unsurlardır.

Son olarak üretilen sayısal değerler bir depolama ünitesinde ardısık olarak saklanırsa ses kaydedilmiş olur. Sesin kayıttan çalınması ise yapılan islemlerin tam tersi yönde tekrarlanmasıyla sağlanır. Yani kaydedilen sayısal değerler kaydedildiği sıra ile bir DAC (Dijitalden Analoğa Çevirici) yardımıyla analoğa dönüştürülür ve yeterice kuvvetlendirildikten sonra bir hoparlöre iletilirse kaydedilen ses dinlenmiş olur.

robot-isd2560

Sesi dijital olarak depolayabilen ve ses kayıt ve geri oynatımı için geliştirilmiş özel elektronik devre elemanları bulunmaktadır. Bu elemanlar sayesinde ses kaydetme ve kayıttan oynatma islemleri oldukça basitlesmistir. Bu elemanlar içlerinde statik EPROM hafıza, DAC ve ADC çevirici, mikrofon ön yükselteci, çesitli ses filtreleri gibi birimleri hâlihazırda bulundurduğu için bizim bu tür detaylarla uğrasmamıza gerek kalmaz ve uygulama geliştirmek oldukça kolaylasır.

Biz bu yazımızda popüler ses kayıt çözümlerinden olan ISD serisi entegreleri kullanacağız. Bu entegreleri seçmemizin en önemli nedenleri yüksek kalite sunması, kullanımının kolay olması, üzerinde birden fazla ses kaydı saklanabilmesi, kayıtların adreslenebilmesi ve en önemlisi ülkemizde bulunabilmesidir. ISD serisi ses kayıt entegreleri “ISD10XXA” “ISD25XX” seklinde kodlanırlar.

Buradaki “XX” değeri o entegrenin saniye cinsinden ses kaydı yapabileceği süre miktarıdır. Piyasada ISD1016A(16 sn), ISD2560(60 sn) ve ISD2590(90 sn) modelleri bulunabilir. Bu entegrelerin tamamının kullanımı ve bacak bağlantıları aynı Şekildedir. Biz bu yazımızda 60 saniyelik ses kayıt alanına sahip ISD2560 modelini kullanmayı tercih ettik. Eğer isterseniz diğer modelleri de kullanabilirsiniz.

BASiT KAYIT VE DİNLETİM UYGULAMASI

Şekil1 deki devre şemasında ISD2560 ile yapılmıs basit bir kayıt uygulaması gösterilmektedir. Bu uygulamada adresleme kullanılmamıs ve 60 saniyelik tek bir kayıt ortamı sağlanmıstır. ISD serisi devreler 5V’luk bir besleme gerilimi ile beslenmelidir. Devreye enerji verildikten sonra S3 anahtarı kayıt için RECORD konumuna getirilir, S2 anahtarı toprağa çekilir.

S1 butonuna basıldığı anda devre ses kaydına baslar ve buton basılı tutulduğu süre boyunca devam eder. Kaydedilen sesi dinlemek için ise S3 PLAYBACK konumuna getirilir, S2 kapatılıp açılarak devrenin resetlenmesi sağlanır. S1 butonuna basıldığı anda da kaydedilen ses hoparlörden dinletilmeye baslar. Şekil-5 te devrenin yapılmıs hali görülmektedir.

isd2560-devresi-isd2560-schematic

isd2560-devresi-isd2560-schematic

ADRESLEMELİ KAYIT

ISD serisi entegreler birçok farklı çalısma moduna sahiptirler. Bu modlardan en önemlilerinden birisi adreslemeli erisim modudur. Bu modda ISD entegremiz minyatür
bir kasetçalara benzetilebilir. Kayıt ve dinleme için kasetçalarda bulunan kafa gibi entegremiz yazma/okuma kafasını istenilen konuma getirilebilir ve istenirse yeni bir kayda baslayabilir istenirse de var olan bir kaydı çalabilir.

Konumlandırma islemi ise entegrenin adresleme pinlerine gidilecek olan adres bilgisinin yazılması ile olur. ISD 25XX serisi entegrelerde A0-A9 arası 10 adet adres pini bulunmaktadır. Biraz açıklamak gerekirse örnek olarak ISD2560 maksimum 600’e kadar adresleme yapabilmektedir. Bu değer 60 saniyelik kayıt süresi için 60sn/600=0,1sn lik bir çözünürlüğe esdeğerdir.

Baska bir değişle, bu entegre üzerinde minimum 0,1 saniyelik çözünürlükle ses kayıtları depolanabilir. Mesela 10. saniyeden baslaması gereken bir kayıt için 10/0,1=100 değerini dijital olarak A0-A9 arasına yazmamız gerekir. Yani, 100 değeri binary olarak 01100100 seklindedir. Ve bu değer A0 dan baslayarak adres pinlerine, 1 olan pinlere +5V, 0 olanlarada 0V bağlanarak yazılmalıdır.

P/R pinine playback için +5V kayıt içinse 0V uygulandıktan sonra CE (chip enable) pini üzerindeki gerilim pozitiften 0 volta değiştirilirse kayıt ya da kayıttan çalma islemi baslatılmıs olur.

MİKROİSLEMCİ KONTROLLÜ KAYIT UYGULAMASI

ISD serisi ses kayıt entegreleri ile çoklu kayıt ve adreslemeli erisim uygulaması yapmanın en kolay yolu girişte bir mikroislemci kullanmak ve çalınması istenilen parçaları mikroislemciye seçtirmek olacaktır. Robot üzerinde bulunan islemci bu isi yapabilir Bu Şekilde bu devreyi bir robota eklemek ve robotu konuşturmak oldukça kolaylasmıs olur.

Şekil-4 te bulunan devre seması bir mikroislemci ile ISD2560 entegresinin nasıl kontrol edilebileceğini göstermektedir. Bu devrede mikroislemci olarak kullanması en kolay olanlardan PIC16F628 kullanmayı tercih ettik. Ve hatırlarsanız 16F628 de yerlesik bir osilatör bulunduğu için ayrıca bir kristal osilatör kullanmamıza da gerek kalmadı. Mikroislemci içerisine yüklenmiş olan yazılım kodu ile istediği sesi seçip dinletilmesini Şu Şekilde sağlayabilir.

Önce mikroislemci A0-A9 arasındaki adres pinlerine kaydedilmek ya da kayıttan çalınmak istenen pozisyon bilgisini yazdıktan sonra P/R pinine playback için +5V kayıt içinse 0V uygular. Son olarak CE pini tetiklendiğinde kayıt ya da kayıttan çalma islemine baslanır.

microcontroller-isd2560

Örnek olması amacıyla biz bir geri sayım uygulaması yaptık. Bu uygulamada mikroislemcimiz üçten geriye doğru sayım yapmakta ve bir saniye aralıklarla ISD2560 içine önceden yüklenmiş olan ses kayıtlarını çaldırmaktadır. PICBASIC dilinde yazılmış kod asağıda görülüyor. Burada dikkat edilmesi gereken nokta bir ses dosyası çalındığı süre boyunca farklı bir ses dosyasının seçilmemesi gerektiğidir. Bu sebeple farklı kayıttan çalınan sesler arasında yeterli bekleme süreleri bulundurmak gerekir.

MİKROİSLEMCİYE YÜKLENECEK PICBASIC KODU:

;**********GERĐ SAYIM UYGULAMASI************
CMCON = 07 ;PORTA DĐJĐTAL
TRISB = %00000000
TRISA = %00000000
PORTB = %00010001
PORTA = %00000000
CE VAR PORTA.2
PR VAR PORTA.5
RESET VAR PORTA.3
LOW RESET
HIGH PR ;PLAYBACK MODU SEÇĐMĐ
PAUSE 10
PORTB = %00010000 ;ÜÇ (1,6. saniyede kayıtlı)
LOW CE
PAUSE 1
HIGH CE
PAUSE 990
PORTB = %00001000 ;ĐKĐ (0,8. saniyede kayıtlı)
LOW CE
PAUSE 1
HIGH CE
PAUSE 1000
PORTB = %00000000 ;BĐR (0. saniyede kayıtlı)
LOW CE
PAUSE 1
HIGH CE
PAUSE 1000
PORTB = %00011000 ;SIFIR (2,4. saniyede kayıtlı)
LOW CE
PAUSE 1
HIGH CE
END:
;**********************************************

SES ÇIKIşININ GÜÇLENDİRİLMESİ

Eğer uygulamalarda daha yüksek güçte bir ses çıkışına ihtiyaç duyulursa Şekil-5 te bulunan devre kullanılabilir. Bu devrede LM386 basit kuvvetlendirici entegresi kullanılmıstır. Devre 4-12 V besleme aralığında çalısabilir. Eğer 12 voltta 8 OHM`luk bir hoparlör ile sürülürse 1 Watt kadar bir çıkış gücü üretebilir. Bu devreyi kullanabilmek için SP+ ve SP- girişlerini ISD25XX in ilgili pinlerine bağlamamız yeterli olacaktır. Tabiî ki bu durumda ISD gerilim besleme katı ile LM386 besleme katı birbirinden ayrı tutulmalıdır. R3 potansiyometresi ile ses çıkış seviyesi ayarlanabilir.

lm386-devresi

Kaynaklar:
Odtü Robot Topluluğu sitesi :http://www.robot.metu.edu.tr
Microchip, 16F628A Data Sheet :http://www.microchip.com
ISD 2560 Datasheet :http://www.winbondsa.
com/products/isd_products/chipcorder/datasheets/2560/ISD2560.pdf
Hazırlayan: Ömer ÇAYIRPUNAR – ODTÜ Robot Topluluğu
e-posta : [email protected]

Emeği geçen hazırlayan kişilere teşekkürler.

Konuşan Robot Proteus Devresi

konusan-robot-isd2560-pic18f2455-lm386-talking-robot

Konuşan Robot Projesi Proteus .dsn .hex .pbp dosyaları;

pic-ile-isd2560-ses-kayit-entegresi-kullanimi-picbasic

Şifre-Pass: 320volt.com

Yayım tarihi: 2009/02/14 Etiketler: , , , , , , ,



2 Yorum “PIC ile ISD2560 ses kayıt entegresi kullanımı picbasic

  1. TahaTaha

    bu devrede tam olarak amaç bir sesi kaydedip tekrar istendiğinde onu tekrar dinlemek midir.?

    CEVAPLA
  2. emre palazemre palaz

    Öncelikle paylaşmış olduğunuz bilgilerden dolayı teşekkür ederim.Ben ISD25XX entegresiyle bir gömülü sistemi sesli kontrol sağlamak istemekteyim.Bunun için pıc yerine arduino kullanılabilir mi

    CEVAPLA

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir