İçindekiler:

Arduino Konuşan Tom Oldu: 6 Adım
Arduino Konuşan Tom Oldu: 6 Adım

Video: Arduino Konuşan Tom Oldu: 6 Adım

Video: Arduino Konuşan Tom Oldu: 6 Adım
Video: *TALKİNG TOM ÖLDÜ* MY TALKİNG TOM MEZARA GÖMDÜM !! HERŞEY BİTTİ SON !! (My Talking Tom Friends) 2024, Kasım
Anonim
Arduino Konuşan Tom Oldu
Arduino Konuşan Tom Oldu
Arduino Konuşan Tom Oldu
Arduino Konuşan Tom Oldu

Akıllı telefon kullanmayla ilgili en eski anılarımdan biri 'Konuşan Tom' oyunu oynamaktı. Oyun oldukça basitti. Konuşabilen Tom adında bir kedi var. Oyunda, Tom telefonun mikrofonu aracılığıyla herhangi bir girişi dinler ve sonra duyduğu her şeyi tekrar ederdi. Yani Tom'a ne derse desin, aynı şeyi kendi tiz sesiyle tekrar ederdi.

Kulağa basit gelse de, tüm bu prosedür, mikrofon analog girişini dijital biçimde örneklemek, Tom'a benzersiz sesini vermek için sesi manipüle etmek ve ardından hoparlörden çalmak için tüm bu dijital değerlerden gelen sinyali yeniden oluşturmak gibi birçok karmaşık adım gerektirir.. Tüm bu karmaşık adımlar, ancak akıllı telefon 9 ila 10 yıl önce bile bir cazibe gibi ele aldı!

İlginç olan, aynı şeyin ucuz bir mikrodenetleyici tabanlı Arduino kartı ile yapılıp yapılmayacağını görmek olacaktır. Bu derste, Arduino ve diğer bazı ucuz elektronik cihazlardan nasıl basit bir Talking Tom benzeri proje yapabileceğinizi göstereceğim.

Bu talimat, Delhi'deki Hatchnhack Makerspace ile işbirliği içinde yazılmıştır.

NOT: Bu talimat, arduino'nun ona söylediğiniz her şeyi tekrarlayabileceği Talking Tom'un 'Konuşan' özelliğini tamamlayan projenin ilk versiyonudur. Ses değiştirme kısmı gelecek sürümde ele alınacaktır, ancak Arduino'nun yerleşik ADC'deki daha az çözünürlüğü nedeniyle kaydedilen ses zaten biraz farklı geliyor:P (Bu, proje videosunda açıkça fark edilebilir).

Haydi başlayalım!

Adım 1: Kullanılan Malzemeler

Kullanılan malzemeler
Kullanılan malzemeler
Kullanılan malzemeler
Kullanılan malzemeler
Kullanılan malzemeler
Kullanılan malzemeler

Donanım:

  • Arduino UNO'su
  • Ayarlanabilir Kazançlı MAX4466 mikrofon modülü
  • SPI tabanlı SD Kart Okuyucu modülü
  • hafıza kartı
  • PC hoparlörü, PAM8403 amplifikatör modülü vb. gibi Ses Yükseltici
  • Amplifikatöre bağlanmak için hoparlörler
  • Kadın Ses Jakı
  • 1 x 1k ohm direnç
  • 2 x 10k ohm direnç
  • 1 x 10uF Kapasitör
  • 2 x Basma Düğmesi
  • Jumper Telleri

Yazılım:

  • Arduino IDE'si
  • cüret (isteğe bağlı)
  • Arduino için TMRpcm ve SD kütüphanesi

Adım 2: Projeye Temel Bir Bakış

Projenin temel olarak 2 özelliği vardır:

  • Ses efektleri vb. için SD karta önceden yüklenmiş bir dizi ses dosyasından rastgele seçilen bir sesi çalabilir.
  • Mikrofondan gelen ses girişini kaydedebilir ve ardından kayıt durur durmaz çalabilir. Bu, arduino'nun mikrofon aracılığıyla duyduğu her şeyi tekrarlamasına izin verir.

Projenin Kullanıcı Arayüzü, esas olarak, her biri yukarıdaki özelliklerden birine karşılık gelen 2 butondan oluşmaktadır.

SD karttan ses dosyalarının kaydedilmesi ve oynatılmasıyla ilgili asıl zor iş, TMRpcm kütüphanesi tarafından gerçekleştirilir

Ses kaydı, sesi örneklemek için MAX4466 mikrofon modülünü, arduino'nun dahili ADC'sini ve TMRpcm kitaplığını kullanır ve ardından oynatma için geçici olarak SD kartta '.wav' dosyası olarak depolar. '.wav' ses dosyaları, tekrar kolayca çalınabilmesi için ses verilerini dijital formatta saklamak için PCM (Darbeli Kod Modülasyonu) kullanır. Genel olarak, ses tabanlı projeler için harici bir ADC kullanmak daha iyidir, çünkü Arduino'nun ADC'sinin çözünürlüğü o kadar yüksek değildir, ancak bu proje için çalışır.

Ses dosyalarının (önceden yüklenmiş ve kaydedilmiş) çalınması da, sesi arduino'nun PWM etkinleştirilmiş bir pininden bir PWM sinyali olarak veren TMRpcm kitaplığı yardımıyla yapılır. Bu sinyal daha sonra analog sinyali almak için bir RC filtresine beslenir ve daha sonra sesi bir hoparlörden çalmak için bir amplifikatöre beslenir. Bu kısım için, arduino'nun dahili olarak bir tane olmadığı için harici bir DAC da kullanabilirsiniz. Ses kalitesini önemli ölçüde artıracağı için bir DAC kullanmak daha iyi bir seçenek olabilir.

SD kart modülü ile arduino arasındaki iletişim SPI (Seri çevresel Arayüzü) üzerinden yapılır. Kod, SD kartın içeriğine kolayca erişmek için SD & SPI kitaplığını kullanır.

Adım 3: SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın

SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
  • Önce bir FAT16 veya FAT32 dosya sistemiyle SD kart olarak biçimlendirmeniz gerekir (SD kartı biçimlendirmek için akıllı telefonunuzu kullanabilirsiniz).
  • Şimdi bazı.wav ses dosyalarını SD karta önceden yükleyin. Audacity ile.wav dosyaları oluşturabilirsiniz (aşağıdaki talimatlara bakın). Dosyaları audio_1.wav, audio_2.wav, audio_3.wav vb. olarak adlandırmayı unutmayın.

SD kart modülü, verileri arduino ile iletişim kurmak için SPI kullanır. Bu nedenle, yalnızca SPI etkinleştirilmiş pinlere bağlanır. Bu bağlantılar aşağıdaki gibidir:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - pin 11
  • MISO (Master In Slave Out) - pin 12
  • CLK (Saat) - pim 13
  • SS/CS (Slave Select/Chip Select) - pin 10

Audacity Software ile '.wav' dosyası oluşturuluyor:

  • .wav'a dönüştürmek istediğiniz ses dosyasını Audacity'de açın.
  • Dosya adına tıklayın ve ardından 'Stereo'yu Mono'ya Böl' seçeneğini seçin. Bu seçenek stereo sesi iki mono kanala böler. Artık kanallardan birini kapatabilirsiniz.
  • Alttaki 'Project Rate' değerini 16000 Hz olarak değiştirin. Bu değer, arduino'nun dahili ADC'sinin maksimum örnekleme frekansına karşılık gelir.
  • Şimdi Dosya->WAV olarak Dışa Aktar/Dışa Aktar'a ulaştık.
  • Dosyanın uygun konumunu ve adını seçin. Sesi dijital biçimde depolamak için PCM biçimini kullandığımızdan, kodlama menüsünden 'İmzasız 8-bit PCM'yi seçin.

4. Adım: Ses Çıkışını ve Mikrofonu Bağlayın

Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın
Ses Çıkışını ve Mikrofonu Bağlayın

Mikrofonun Bağlanması:

  • Vcc - 3.3v
  • GND - GND
  • ÇIKIŞ - A0 pimi

NOT:

  • Giriş sinyalinde gereksiz gürültüye neden olabileceğinden, bir devre tahtası kullanmak yerine mikrofonu doğrudan arduinoya bağlamayı deneyin.
  • Kötü lehim bağlantıları da gürültü ürettiğinden, mikrofon modülündeki başlıkları temiz bir şekilde lehimlediğinizden emin olun.
  • Bu mikrofon modülü, kartın arka tarafında bulunan bir pot yardımı ile kontrol edilebilen, ayarlanabilir gain'e sahiptir. Kazanımı biraz düşük tutmanızı öneririm, çünkü o zaman gürültüyü çok fazla yükseltmezken, ağzınıza yakın tutarak daha temiz bir çıktı elde etmenizi sağlar.

Ses Çıkışını Bağlama:

  • 10 uF Kondansatör ve 1k ohm direnci, rezistöre bağlı kondansatörün artısı ile devre tahtasına seri olarak yerleştirin. Bunlar birlikte, PWM çıkışını amplifikatöre beslenebilecek analog sinyale dönüştüren bir RC filtresi oluşturur.
  • Arduino'nun 9 numaralı pinini direncin diğer ucuna bağlayın.
  • Kondansatörün negatif terminali dişi ses jakının sol ve sağ kanalına bağlanır.
  • Ses jakının GND'si GND'ye bağlanır.
  • Ses jakı, amplifikatöre bir Aux Kablosu ile bağlanır. Benim durumumda bilgisayarımın Hoparlör Sistemini kullandım.

NOT:

Harici bir DAC çok daha iyi çözünürlük ve kalite sağlayacağından, ses çıkışı olarak PWM kullanmak en iyi seçenek olmayabilir. Ek olarak, RC filtredeki kapasitör ve direnç istenmeyen gürültüye neden olabilir. Ama yine de çıktı bu proje için oldukça iyiydi

Adım 5: Düğmeleri Bağlayın

Düğmeleri Bağlayın
Düğmeleri Bağlayın
Düğmeleri Bağlayın
Düğmeleri Bağlayın
Düğmeleri Bağlayın
Düğmeleri Bağlayın

Proje, kullanıcı arayüzü olarak düğmelere basmak için kullanır. Her ikisi de farklı işlevleri yerine getirir ve farklı şekilde kullanılır ancak aynı kablolamaya sahiptir. Bağlantıları aşağıdaki gibidir:

  • Düğmeleri breadboard'a yerleştirin.
  • 10k ohm'luk bir aşağı çekme direnci ile arduino'nun pim 2'sine düğmelerden birinin bir terminalini takın. Düğmenin diğer terminali 5v'ye bağlanır. Yani butona basıldığında pin 2 YÜKSEK oluyor ve bunu kodda tespit edebiliyoruz.
  • Diğer düğme, 2 yerine arduino'nun pin 3'üne aynı şekilde bağlanır.

Pim 2'ye bağlı düğme, bir kez basıldığında SD Kartına önceden yüklenmiş ses dosyaları grubundan rastgele bir ses dosyası çalar.

Pin 3'e bağlanan buton kayıt içindir. Kayıt için bu düğmeyi basılı tutmanız gerekir. Arduino, bu düğmeye basıldığı anda kayda başlar ve bu düğme bırakıldığında kaydı durdurur. Kaydı durdurduktan sonra, o kaydı hemen yeniden oynatır.

6. Adım: Kodu Yükleyin

Kodu Yükle
Kodu Yükle
Kodu Yükle
Kodu Yükle
Kodu Yükle
Kodu Yükle

Kodu yüklemeden önce TMRpcm, SD vb. tüm gerekli kitaplıkları kurduğunuzdan emin olun.

Arduino'nun ne yaptığına dair geri bildirim almak için kodu yükledikten sonra Seri Monitörü de açabilirsiniz.

Şu anda kod, kaydedilen sesi farklı ses çıkarmak için manipüle etmiyor, ancak bu özelliği, ses sinyalinin çıkış frekansını pot yardımıyla ayarlayabileceğiniz ve farklı ses türleri elde edebileceğiniz bir sonraki sürüme dahil etmeyi planlıyorum..

Ve Bittin!!

Önerilen: