İçindekiler:
- Adım 1: Kullanılan Malzemeler
- Adım 2: Projeye Temel Bir Bakış
- Adım 3: SD Kartı Hazırlayın ve SD Kart Modülünü Bağlayın
- 4. Adım: Ses Çıkışını ve Mikrofonu Bağlayın
- Adım 5: Düğmeleri Bağlayın
- 6. Adım: Kodu Yükleyin
Video: Arduino Konuşan Tom Oldu: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
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
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
- Ö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
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
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ü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:
Körler İçin Konuşan Akıllı Cam: 7 Adım
Görme Engelliler İçin Konuşan Akıllı Cam: Piyasada akıllı gözlük, akıllı saat vb. birçok akıllı aksesuar bulunmaktadır. Ama hepsi bizim için üretildi. Fiziksel olarak zorluk çekenlere yardımcı olacak önemli bir teknoloji eksikliği var. Ben bir şey inşa etmek istedim
LM386 Kullanarak Arduino Metinden Konuşmaya Dönüştürücü - Konuşan Arduino Projesi - Talkie Arduino Kütüphanesi: 5 Adım
LM386 Kullanarak Arduino Metinden Konuşmaya Dönüştürücü | Konuşan Arduino Projesi | Talkie Arduino Kütüphanesi: Merhaba arkadaşlar, birçok projede arduino'nun konuşma saati gibi bir şey konuşmasını veya bazı verileri söylemesini istiyoruz, bu nedenle bu talimatlarda Arduino kullanarak metni konuşmaya dönüştüreceğiz
Konuşan Arduino - Arduino İle Modül Olmadan MP3 Çalmak - PCM Kullanarak Arduino'dan Mp3 Dosyası Çalmak: 6 Adım
Konuşan Arduino | Arduino İle Modül Olmadan MP3 Çalmak | Arduino'dan PCM Kullanarak Mp3 Dosyası Çalma: Bu talimatta, herhangi bir ses modülü kullanmadan arduino ile bir mp3 dosyasının nasıl çalınacağını öğreneceğiz, burada Arduino için 16 bit PCM 8kHZ frekansı çalan PCM kütüphanesini kullanacağız, hadi bunu yapalım
Arduino İle Konuşan Saat: 3 Adım (Resimli)
Arduino İle Konuşan Saat: Herkese Merhabalar, Bir süre Konuşan Saat kurmaya çalıştım (videoya bakın), ancak bunun için kullandığım ses modülünün modeli nedeniyle iyi sonuçlar alamadım. Doğru donanım ve ayrıca ilgili birçok aramadan sonra uygun kitaplığı nasıl kullanacağınızı öğrenin
Arduino ile Çalışan Bir Konuşan Robot Kafası Yapın!: 26 Adım (Resimlerle)
Arduino ile Güçlendirilen Konuşan Robot Kafası İnşa Edin!: Bu robot kafası aslında fiziksel bilgisayar dersim için yıl sonu projesi olarak yapılmıştı, ancak yaz boyunca "öğrendi". nasıl konuşulur. Kafa, iki Freeduino, 3 TLC5940NT çip ve bir Adafruit Industries tarafından desteklenmektedir