İçindekiler:

MIDI Sonar "Theremin": 10 Adım (Resimlerle)
MIDI Sonar "Theremin": 10 Adım (Resimlerle)

Video: MIDI Sonar "Theremin": 10 Adım (Resimlerle)

Video: MIDI Sonar
Video: Grove Ultrasonic Ranging Sensor 2024, Kasım
Anonim
MIDI Sonarı
MIDI Sonarı

Bu, notaların perdesini ve kalitesini kontrol etmek için iki sonar mesafe sensörü kullanan bir müzik aletidir. Aslında Theremin değil elbette ama "Theremin" el sallayarak çalınan enstrümanların genel adı oldu.

Dahili bir MIDI sentezleyiciye, amplifikatöre ve hoparlörlere sahiptir. Müzik notaları, 127 sese sahip (yani farklı enstrümanlar olduğu iddia edilen) bir MIDI çipi - VS1053 - tarafından üretilir. Yüksek derecede polifoniye sahiptir (64'e kadar), böylece tek notaları veya akorları çalabilir.

Sağ eliniz çalınan notayı kontrol eder. "Ayrık" modda, sağdaki boşluk "kutulara" bölünür. Eliniz bir kutuya girdiğinde, o kutunun notu başlar. Bölmeyi terk ettiğinizde nota durabilir (örneğin bir org) veya doğal olarak yok olabilir (örneğin bir piyano).

"Sürekli" modda, sağdaki boşluk, orijinal Theremin gibi sürekli değişken bir perdeyi belirler. Not, eliniz boşluğa girdiğinde başlar ve boşluktan çıktığınızda durur.

Sol eliniz çalınan notanın kalitesini kontrol eder. Ses seviyesini, tremoloyu, vibratoyu, perde bükmeyi, yankıyı vb. kontrol edebilir.

Küçük bir LCD ekran, mevcut enstrümanı, sol elin işlevini, sağ elin ölçeğini (veya "tuşunu"), vibrato, tremolo, vb. seçmenizi sağlayan bir menüye sahiptir. Farklı "Kurulumları kaydedebilir ve yükleyebilirsiniz. " ve bir performans sırasında aralarında hızla geçiş yapın.

Tüm MIDI "Theremin" enstrümanı, kendi hoparlörü ve şarj edilebilir pili ile bağımsız olarak çalışır.

Yapımı kopyalayacaksanız, bir Arduino Nano (1,50 £), bir VS1053 modülü (4,50 £), 1,44 ST7735 LCD ekrana (3,50 £), iki HC-SR04 modülüne (her biri 1 £) ihtiyacınız olacak. ve birkaç direnç. Ayrıca bazı güçlü hoparlörlere ve belki bir lityum hücreye ve bir PSU'ya ihtiyacınız olacak ama ayrıntılar onu nasıl oluşturacağınıza bağlı olacaktır. Bütün bu ekstraları araba satışlarından ve yardım mağazalarından aldım. Ayrıca siz her zamanki elektronik atölye gereçlerine ihtiyaç duyacak.

Adım 1: VS1053'ü Kontrol Etme

VS1053'ü kontrol etme
VS1053'ü kontrol etme
VS1053'ü kontrol etme
VS1053'ü kontrol etme

Resimde gösterilen VS1053 modülünü seçtim. (İki SOT223 regülatörüne, iki jak soketine ve konektörün konumuna dikkat edin.) Buna benzeyen bir VS1053 modülü için eBay, Alibaba veya favori tedarikçinizi arayın. Burada ve burada Aliexpress'den temin edilebilirler.

Birkaç yıl önce satın aldım ve artık eBay'de değil, yalnızca Alibaba'da mevcut görünüyor. Artık eBay'de kırmızı bir PCB versiyonu mevcut. İşlevsel olarak aynı görünüyor, ancak pin çıkışı farklı, bu yüzden şemalarımı ve düzenlerimi ayarlamanız gerekecek. Ben test etmedim. Tartışmada (aşağıda), "canlı" MIDI'yi etkinleştirmek için kırmızı PCB'ye nasıl direnç ekleneceğine ilişkin talimatları bulabilirsiniz. Veya etkinleştirmek için kurulum sırasında ek komutlar gönderebilirsiniz.

VS1053 iyi bir çiptir ancak oldukça karmaşıktır. Sadece MIDI kısmını kullanıyorum. VS1053'ü seri arayüz üzerinden kontrol etmek mümkün ama Arduino Nano ile daha uygun olduğu için SPI veri yolunu kullanıyorum. SPI veri yolu üzerinden gönderdiğiniz herhangi bir bayt, bir MIDI komutu olarak değerlendirilir.

Web'de MIDI komutlarının listelerini bulacaksınız. VS1053, hepsine değil, bazılarına yanıt verir. Miditheremin0.exe programı çalıştığını bildiklerimi gösteriyor.

VS1053 veri sayfasını web'den indirebilirsiniz. Bu büyük bir belge ve zor gidiyor. "8.9 Desteklenen MIDI Formatları" bölümü, MIDI hakkında neredeyse tek söylediğidir. "10.10 Gerçek Zamanlı MIDI" bölümü, MIDI'yi etkinleştirmek için GPIO0 ve GPIO1'i kullanmaktan bahsediyor, ancak sahip olduğum pano herhangi bir özel etkinleştirme gerektirmedi. Ayrıca MIDI mesajlarının bir listesini de indirebilirsiniz (tümü VS1053 tarafından desteklenmez).

VS1053 modülünü gösterildiği gibi bir Arduino Nano'ya bağlayın ve INO dosyasını Arduino'ya yükleyin. Lehimsiz ekmek tahtası kullandım. Bu aşamada elimde fotoğrafı yok ama diğer bileşenlerle birlikte breadboard'u aşağıdaki adımda görebilirsiniz.

INO çizimi, PC'den seri hat üzerinden bir bayt alır ve baytı VS1053'e gönderir. VS1053'ü test etmenizi sağlayan çok basit bir programdır. Çıkış jakı soketini kulaklıklara veya bir bilgisayar hoparlörüne bağlayın.

Windows Miditheremin0.exe programı (github'dan Step1.zip'i indirin) komutları VS1053'e gönderir. Bir nota çalmak için "90 nota vel" düğmesini tıklayın. Veya kendi Windows programınızı yazabilirsiniz. Veya web'de bulunan birçok terminal programından birini kullanın.

VS1053 modülünde aşağıdaki pinler bulunur:

  • SPI veriyolunda her zamanki MISO, MOSI ve SCLK bulunur
  • XRST düşükse çip sıfırlanır
  • XDCS, SPI modunda hiçbir şey yapmaz, bu yüzden onu XCS'ye bağlayın
  • XCS, Chip Select'tir
  • DREQ, çipin yeni bir komut için ne zaman hazır olduğunu size söyler.

Bir bayt gönderirken XCS düşük ayarlanmalıdır; sonra yüksek. Bu şekilde, her baytın ilk bitini senkronize ettiğinizden emin olursunuz. DREQ okumak, çipin yeni bir komut almaya hazır olduğunu söyler.

Arduino bir bayt gönderdikten sonra, saati değiştirmek ve VS1053'ün yanıt olarak bir bayt geri göndermesine izin vermek için sahte bir bayt göndermelidir. SPItransfer() işlevi size nasıl yapılacağını gösterir.

eBay'de bulunan kırmızı modül, bir SD kart yuvası içerir, bu nedenle birkaç ekstra pimi vardır. Boşver onları.

Artık VS1053'ü çalıştırabileceğinizden eminsiniz, onu daha çok bir müzik aletine dönüştüreceğiz.

Adım 2: Sonarları Kullanma

Sonarları Kullanmak
Sonarları Kullanmak
Sonarları Kullanmak
Sonarları Kullanmak

HC-SR04 modüllerini gösterildiği gibi Arduino Nano'ya bağlayın ve INO dosyasını Arduino'ya yükleyin.

Şemada, DC3'ün - HC-SR04 modülleri için ayırma kapasitörü - HC-SR04 modüllerine yakın bağlanması gerektiğine dikkat edin. Hangi DC3'ün sağlanmasına yardımcı olduğunu iletirken oldukça akım alırlar.

Projenin bu aşamasında, Windows PC hala VS1053'e komutlar gönderir ancak VS1053 ayrıca HC-SR04 sonar sensörleri tarafından kontrol edilir (github'dan Step2.zip'i indirin).

Yeni komutların tümü 0xFF ile başlar ve Arduino taslağı tarafından yorumlanır (doğrudan VS1053'e gönderilmek yerine). "FF komutu" olmayan baytlar VS1053'e gönderilir.

Enstrümanı değiştirmek, gamı değiştirmek, vibrato ve tremolo eklemek vb. için komutlar vardır. Program, ayrı notaların olduğu (piyano gibi) "ayrık" modda veya tek bir notanın olduğu "sürekli" modda çalıştırılabilir. yukarı ve aşağı eğildi (bir theremin gibi).

Nihai enstrümanın yapacağı her şeyi oldukça iyi yapıyor ama bir PC tarafından kontrol ediliyor.

Sağ HC-SR04 sonar sensörü, çalınan notanın perdesini seçer. "Ayrık" modda, sağdaki boşluk "kutulara" bölünür. Eliniz bir kutuya girdiğinde, o kutunun notu başlar. Bölmeyi terk ettiğinizde nota durabilir (örneğin bir org) veya doğal olarak yok olabilir (örneğin bir piyano). Eliniz bir çöp kutusuna girerken, kutu hafifçe genişler, böylece kenarında titreme olmaz.

GetSonar() işlevi, ilk yankıya kadar geçen süreyi döndürür. HC-SR04'ün bazen bildirdiği çok hızlı ekoları (süre < 10) yok sayar. maxDuration tarafından herhangi bir eko alınmadıysa, maxDuration değerini döndürür. Süre herhangi bir belirli birimle ölçülmez - sadece bir sayıdır.

Ayrık modda, ara sıra meydana gelen düşüşleri (yankı alınmadığında) ortadan kaldırmak için süre ilk önce filtrelenir. Elin yalnızca 10 maxDuration numunesi alındıktan sonra mevcut olduğu varsayılır. Daha sonra süre, bir Medyan filtresi kullanılarak filtrelenir. Medyan filtreler, "dürtüsel" gürültüyü (yani ara sıra ani yükselmeler) gidermede iyidir. Filtrelenen süre, bir kutu seçmek için kullanılır.

Sürekli modda, ara sıra meydana gelen kesintileri ortadan kaldırmak için süre tekrar filtrelenir. Daha sonra üstel bir filtre kullanılarak düzleştirilir. Filtrelenen süre, "pitch bend" kullanılarak notanın frekansını ayarlamak için kullanılır.

3. Adım: Ekran Ekleme

Ekran Ekleme
Ekran Ekleme
Ekran Ekleme
Ekran Ekleme
Ekran Ekleme
Ekran Ekleme

Ekran, ST7735 kontrolörlü, 128x128 pikselli 1.44 renkli TFT LCD ekrandır. eBay'de çok sayıda ekran mevcuttur, örneğin enstrümanınızı daha büyük bir dokunmatik ekranla geliştirmeyi tercih edebilirsiniz. ST7735'i kullanmadım kontrolör ve denemek istedim.

Benimkini bu tedarikçiden aldım. Aynı modül eBay'de yaygın olarak satılmaktadır - sadece fotoğrafla aynı görüneni alın.

LCD'de aşağıdaki pinler bulunur:

  • GND zemin
  • VCC 3.3V
  • SCL SPI veri yolu SCLK
  • Arduino'nun SDA SPI veri yolu MOSI
  • RES sıfırlama
  • DC verisi/komutu
  • CS çip seçimi
  • BL arka ışık

Modül 3.3V ile çalışır, bu yüzden onu doğrudan 5V Arduino'nuza bağlamamalısınız. Voltajı düşürmek için 1k direnç kullandım. Bu iyi bir uygulama değildir (genel olarak, bir potansiyel bölücü veya voltaj düşürücü çip kullanılmalıdır) ancak bu devrede mükemmel şekilde çalışır. tembellik ediyordum.

Ekran, Arduino tarafından sağlanan 3.3V tarafından desteklenmektedir. Arduino regülatörü yeterince mutlu görünüyor.

Adafruit çok nazik bir şekilde bir ST7735 kütüphanesi yayınlar ve Github'da ve başka yerlerde başka kütüphaneler de mevcuttur. Birkaç tane denedim ve hiçbirini beğenmedim. Bazıları işe yaramadı ve hepsi çok büyüktü. Bir çizgi ve bir miktar metin çizen bir Arduino taslağı yazarsınız ve %75 doluysa hafızanızı bulursunuz. Bu yüzden kendi kitaplığımı yazdım.

SimpleST7735 kitaplığı indirilebilir (github'dan Step3.zip'i indirin).

Bu tür kitaplıkların tümüne çok benzeyen standart bir çizim komutları kümesine sahiptir.

İndirebileceğiniz "hızlı" kitaplıkların bazıları özel zamanlama döngüleri kullanır ve aynı veri yolunda başka, belki daha yavaş aygıtlar kullanıldığında bozulur. SimpleST7735, assembler yerine C ile yazılmıştır, bu yüzden olabileceği kadar hızlı değildir ama çok daha taşınabilirdir ve SPI bus'ını kibarca diğer cihazlarla paylaşır. Kendi yazı tiplerinizi ve simgelerinizi oluşturmanıza izin veren bir Windows programı indirilebilir.

ST7735 veri sayfasını web'den indirebilirsiniz. sen onunla konuş

  • CS'yi düşük ayarla
  • DC'yi düşük ayarla
  • bir komut baytı gönder
  • DC'yi yüksek ayarla
  • sıfır veya daha fazla veri baytı gönder
  • CS'yi yüksek ayarla

Bunu nasıl yaptığımı kütüphanedeki spiSend_TFT_CW() işlevinde görebilirsiniz. Veri baytları, tam bir piksel satırı veya bir kontrol kaydı için bir ayar olabilir.

Kitaplıktaki ST7735Begin() işlevi, size seçtiğim başlatma komut setini gösterir. Farklı bir ST7735 ekranı seçerseniz (örneğin daha fazla piksel ile) veya farklı bir yön istiyorsanız komutları değiştirmek isteyebilirsiniz. Umarım kodum, gerekirse nasıl değiştireceğinizi görmeniz için kolaydır.

Şematik bir kontrol düğmesi "SW1" ve bir ayak pedalı SW2" gösterir. Kontrol düğmesi farklı "Kurulumlar" seçer (sonraki adıma bakın) veya Menü modunu seçer. Ayak pedalı isteğe bağlıdır ve yalnızca farklı Kurulumları seçer - Ben yapmadım Kendime bir ayak pedalı taktım. Ayarlar, bir performans sırasında anahtarı hızlı bir şekilde değiştirmek veya enstrümanı değiştirmek istediğinizde kullanışlıdır.

Adım 4: Menü Sistemi

Menü Sistemi
Menü Sistemi
Menü Sistemi
Menü Sistemi

Bu Miditheremin3.ino Arduino taslağı, MIDI Theremin'e bir menüleme sistemi ekler ve son komple enstrümanı kontrol eder.

MIDI Theremin genellikle "Çal" modunda çalışır. Sağ eliniz notu seçer ve sol eliniz notun kalitesini kontrol eder. LCD, geçerli nota vurgulanmış olarak bir piyano klavyesi görüntüler.

Kontrol düğmesini bir saniye basılı tutarsanız program "Menü" moduna geçer. Menü modunda, kontrol düğmesini bir saniye basılı tutarsanız program "Oynat" moduna döner.

Menü, ana öğeler ve alt öğeler içeren bir ağaç yapısına sahiptir. Geçerli menü öğesi vurgulanır. Seçimi soldaki sonar aracılığıyla yukarı/aşağı hareket ettirirsiniz. Bir ana öğenin alt menüleri, yalnızca ana öğe seçildiğinde genişletilir.

Bir alt menü seçtikten sonra butona tıkladığınızda o öğenin değeri vurgulanır. Sol el şimdi değeri artırır veya azaltır. Alt menüleri seçmeye geri dönmek için düğmeye tekrar tıklayın.

Ayrık modda, menü ağacı

  • Müzik aleti

    • 0: Kuyruklu Piyano
    • El Değiştir: normal
  • Sağ el

    Mod: ayrık

  • sol el

    • Mod: Titreşim
    • Maksimum Derinlik: 10
  • Ölçek

    • Ölçek: majör Heptatonik
    • Oktavlar: 2
    • En düşük nota: 60 C
  • akor

    • Akor: Majör üçlü
    • İnversiyon: 0
    • polifoni: 1
  • titreme

    • Boyut: 20
    • Dönem: 10
  • titreşim

    • Boyut: 20
    • Dönem: 10

Enstrüman "Kuyruklu Piyano", "Kilise Orgu", "Keman" vb. olabilir. VS1053'te birçoğunun sesi aynı olan ve çoğu "silah sesi" gibi aptalca olan 127 enstrüman vardır. Elleri Değiştir alt menüsü, sol ve sağ elin işlevlerini değiştirmenize olanak tanır - belki bu şekilde tercih edersiniz veya belki de konuşmacıların dinleyicilere dönük olmasını istersiniz.

Sağ El "Ayrık" veya "Sürekli" olabilir. "Sürekli" menü için aşağıya bakın.

Sol El "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" veya "ChordSize" öğelerini kontrol edebilir.

"Hacim" açıktır. "Tremolo", hacimde hızlı bir değişikliktir; sol el, varyasyonun boyutunu kontrol eder; süre farklı bir menü öğesi tarafından belirlenir. "Vibrato" perdede hızlı bir değişikliktir; sol el, varyasyonun boyutunu kontrol eder; süre farklı bir menü öğesi tarafından belirlenir. "PitchBendUp" ve "PitchBendDown" çalınan notanın perdesini değiştirir; sol el bükümün boyutunu kontrol eder. "Yankı" VS1053'te pek etkileyici değil; sol el yankının boyutunu kontrol eder. "Polifoni", Polifoni menüsü tarafından ayarlanan maksimum değere kadar aynı anda kaç nota çalınacağını kontrol eder (aşağıya bakın). "ChordSize", sol elin bir akorun (aşağıya bakın) kaç notasının çalınacağını kontrol ettiği anlamına gelir.

Müzikte, bir "ölçek" veya "anahtar", kullandığınız notaların alt kümesidir. Örneğin, kendinizi C Major'ın Heptatonik gamıyla sınırlandırmış olsaydınız, piyanonun sadece beyaz notalarını çalıyor olurdunuz. Eğer C# Major Pentatonic'i seçtiyseniz, o zaman sadece siyah notaları kullanıyor olacaksınız (örneğin İskoç halk ezgileri için).

Ölçek menüsü, sağdaki boşluğun hangi notalara karşılık geldiğini ve sağdaki boşluğun kaç oktav kapsadığını seçer. Dolayısıyla, 1 oktav E Majör seçerseniz, sağ taraftaki boşluk, en düşük perdede E ve en yüksek perdede bir oktav yukarıda olmak üzere 8 bölmeye bölünür.

Scale menüsü, pek çok sıra dışı "Batı dışı müzik" gamı seçmenize izin verir, ancak tüm notaların dengeli klavyeden geldiğini varsayar - MIDI böyle çalışır, bir notanın frekansını kolayca belirleyemezsiniz. Yani, diyelim ki Arapça çeyrek ton ölçeğini isteseydiniz, başınız belaya girerdi.

Oktavlar alt menüsü, istediğiniz ölçekten kaç oktav seçmenizi sağlar. Ve En Düşük not, ölçeğin nerede başladığını söyler.

Normalde bir nota çalındığında yalnızca o nota çalınır. Akor menüsü, aynı anda birkaç notayı çalmanıza izin verir. Bir Majör Triad akoru, 'seçilen notayı artı dört yarım ton daha yüksek notayı ve notayı yedi yarım ton daha yüksek çal' anlamına gelir.

Inversion alt menüsü size akor inversiyonlarını verir. Bu, akorun bazı notalarını aşağıdaki bir oktava taşıdığı anlamına gelir. İlk Tersine Çevirme, tüm "ekstra" notaları bir oktav aşağı taşır, ikinci Ters Çevirme, fazladan bir nota daha azını aşağı kaydırır ve bu böyle devam eder.

Polifoni alt menüsü, aynı anda kaç notanın çalındığını söyler; polifoni 1 ise, bir nota başladığında, önceki nota durdurulur; polifoni daha büyükse, birkaç nota üst üste gelebilir - kilise orgu ile deneyin.

Tremolo menüsü, herhangi bir tremolonun derinliğini ve tremolo döngüsünün periyodunu belirtir. "100" periyodu, saniyede bir döngü anlamına gelir. Sol el tremoloyu kontrol ediyorsa, Boyut alt menüsü gizlenir.

Vibrato menüsü, herhangi bir vibratonun boyutunu ve vibrato döngüsünün periyodunu belirtir. Sol el vibratoyu kontrol ediyorsa, Boyut alt menüsü gizlenir.

Program, 5 farklı "Kurulum" kaydetmenize ve yüklemenize izin verir. Bir Kurulum, menüde ayarlayabileceğiniz tüm değerleri saklar. Menü modundan çıktığınızda mevcut kurulum kaydedilir. Kurulumlar EEPROM'a kaydedilir.

Oynatma modunda, düğmeye tıklandığında sonraki kuruluma geçilir. Düğmeyi bir saniye basılı tutarsanız menü görüntülenir. Ayak pedalına basmak da bir sonraki kuruluma geçer; ayak pedalı asla menüyü seçmez.

Sürekli modda, menü ağacı

  • Müzik aleti

    • 0: Kuyruklu Piyano
    • El Değiştir: normal
  • Sağ el

    Mod: sürekli

  • Menzil

    • Sayı yarım ton: 12
    • Orta nota: 60 C
  • sol el

    • Mod: Tremolo
    • Maksimum Derinlik: 10
  • titreme

    • Boyut: 20
    • Dönem: 10
  • titreşim

    • Boyut: 20
    • 10. Periyot

Aralık menüsü, sağ elin belirttiği frekans aralığını seçer: kapsanan yarım ton sayısı ve orta not.

Sol El sadece "Ses Seviyesi", "Tremolo" ve "Vibrato"yu kontrol edebilir.

Adım 5: Birlikte Lehimleme

Birlikte Lehimleme
Birlikte Lehimleme
Birlikte Lehimleme
Birlikte Lehimleme
Birlikte Lehimleme
Birlikte Lehimleme

Devreyi stripboard üzerine kurdum. Sadece 4 dirençle tek seferlik bir PCB almanın amacını göremiyorum ama bazı insanların stripboard sevmediğini anlıyorum.

Stripboard düzenim yukarıda gösterilmiştir. Dört pano - Arduino, VS1053, ekran ve şerit pano - bir sandviç oluşturur. Düzende, Arduino'nun ana hatları sarı, VS1053 mavi, ekran yeşil ve stripboard turuncu.

Camgöbeği çizgiler, şerit tahtasının bakır şeritleridir - gerektiğinde ara verdiğinizden emin olun. Kırmızı çizgiler, şerit tahtasının bileşen tarafındaki bağlantılar veya başka bir yere giden kablolardır.

Arduino'nun üzerinde durduğu için VS1053 kartı için ekstra uzun pinler kullandım. Ekranın uzak köşelerindeki pimler ve VS1053 kartları, bunların dengelenmesine yardımcı olur. Modüllerin montaj delikleri, lehimleyebilmeniz için kaplanmıştır. Sizinkinin toprağa bağlı olmadığından emin olun - modüllerimin montaj delikleri değil.

Farklı bir VS1053 modülünüz veya farklı bir ekranınız varsa Arduino pinlerini değiştirebilirsiniz:

  • D2'den D10'a ve A0'dan A5'e istediğiniz sırayla kullanılabilir; INO taslağının başlangıcına yakın pin numaralarını güncelleyin
  • D11, D12, D13 SPI'ye adanmıştır ve yeniden atanamaz
  • D0, D1, seri G/Ç'ye ayrılmıştır
  • A6, A7 dijital pin olarak kullanılamaz

HC-SR04 modülleri, bir parça stripboard ile birbirine 90° açıyla bağlıdır. Basma düğmesi bunların arasındadır. Hiç şüphe yok ki kendi tercih ettiğiniz tasarıma sahip olacaksınız.

Bir ayak pedalına sahip olmaya karar verirseniz, onu bir jak-soket ile bağlayın.

6. Adım: Bir PSU Ekleme

PSU ekleme
PSU ekleme
PSU ekleme
PSU ekleme
PSU ekleme
PSU ekleme

Arduino, VS1053'ün toplam akımını ölçtüm ve 79mA olarak görüntüledim. Veri sayfalarına göre, Arduino 20mA, ekran 25mA, VS1053 11mA ve HC-SR04 "çalışırken" her biri 15mA - yani 80mA doğru görünüyor.

Ekran 25mA alır ve Arduino'nun 50mA verecek şekilde derecelendirilen 3V3 çıkışından güç alır. Bu nedenle devre Arduino'nun 3V3 regülatörünü strese sokmamalıdır.

Devreyi Arduino'nun Vin pininden çalıştırabilir miyiz? Bunun cevabını internette hiçbir yerde bulamıyorum. Arduino belgelerinde yok. Yerleşik 5V regülatör, (Vin-5)*80 mW'ı dağıtacaktır. Maksimum yayılımı nedir? Görünüşe göre kimse gerçekten bilmiyor. Veri sayfasına göre, minimum bakır pedli bir SOT-223 paketindeki NCP1117 regülatörü 650mW dağıtabilir. Yani 80mA akım için,

  • Şarap Gücü
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Güvende olmak için, sanırım Vin'de 9V'u geçmemeliyiz.

Harici bir 5V PSU çok daha güvenli olurdu ama Arduino'nun regülatörünü kullandım ve sorun değil.

Devreye güç sağlamak için bir LI-ion şarj cihazı ve bir takviye PSU'yu birleştiren bir modül seçtim. EBay'de yaygın olarak bulunurlar veya "Li Charger Boost" için arama yaparlar.

Şarj cihazı, karmaşık bir sabit akım ve sabit voltaj algoritmasına sahip bir TC4056 yongası kullanır. USB güç girişini çıkardığınızda, pil tüketimi 2uA'dan az olarak bekleme moduna girer. TC4056, sıcaklık algılama için bir girişe sahiptir ancak modül kartında mevcut değildir (pim topraklanmıştır).

Güçlendirme devresinin 50-300mA çıkış akımıyla normal akü voltaj aralığı üzerinde %87-91 verimli olduğu iddia ediliyor. (Kendim ölçmedim.) Bu oldukça iyi.

Ancak, yükü kaldırdığınızda "bekleme" akımı 0,3mA'dır ve bu zayıftır. 300 mAH hücre 6 hafta içinde boşaltılacaktır. Belki o kadar boşalırdı ki voltajı zarar verecek bir seviyeye düşerdi.

Pili boost PSU'ya bağlayan tek bir kanal vardır. Parçayı kolayca kesebilirsiniz (fotoğrafa bakın). Kesimi bir anahtarla köprüleyebilmek için üstteki büyük rezistöre bir tel lehimleyin.

Test ettiğim kartla çekilen akım şimdi 0.7uA. Yani hücre 50 yıl dayanacak - tabii ki hayır, bir Li-ion hücrenin kendi kendine deşarjı ayda yaklaşık %3'tür. 300mAH hücre için ayda %3, 13uA'lık bir akımdır. Bunu, yükseltme devresinin aldığı 300uA ile karşılaştırın. Bence boost devresini kapatmaya değer.

Hücre şarj olurken yükü açmamalısınız. Yükün çektiği akım, şarj algoritmasını karıştıracaktır.

Bu nedenle, "Açık" veya "Şarj" konumunda olan 2 kutuplu bir değiştirme anahtarına (örn. sürgülü anahtar) ihtiyacınız vardır.

Yerleşik USB soketini görmezden gelebilir ve ayrı kabloları anahtara ve kendi USB soketinize lehimleyebilirsiniz.

Veya yerleşik soketi tutabilir ve soket ile çip arasındaki bağlantıyı kesebilirsiniz. Yukarıdaki şema nerede kesileceğini göstermektedir.

Boost PSU'nun 5V çıkışını Arduino'nun 5V pinine bağlayın. İnsanlar "bunu yapma - Arduino'nun koruma diyotunu atlıyorsun" diyor. Ancak Nano'nun diyotun USB tarafına bağlı bir pimi yok. Sadece 5V pinine bağlayın. Bunun olabileceği en kötü şey nedir? Maliyeti 3 sterlinin altında olan bir Nano kaybedersiniz.

PSU devresi ayrıca hoparlörler için amplifikatöre güç vermelidir.

7. Adım: Hoparlör Ekleme

Hoparlör Ekleme
Hoparlör Ekleme

MIDI Theremin'in taşınabilir olmasını istedim. Kendi hoparlörlerini ve amplifikatörünü içermelidir.

Kendi amplifikatörünüzü oluşturabilir veya bir amplifikatör modülü satın alabilir, ardından hoparlörler satın alıp bir kutuya koyabilirsiniz. Ama ne anlamı var? Tekno-karşılığımda, her biri 1 sterlinin altında olan hayır kurumlarından ve araba satışlarından satın aldığım yarım düzine elektrikli hoparlör var.

Soluk mavi hoparlörler 5V'de yalnızca 30mA kullandı ancak bas yanıtı zayıf. Siyah radyo güzel bir şekil - HC-SR04 modüllerini köşelere ve ekranın üst yüzeye taktığını hayal edebiliyorum. Gri "düz panel" olanlar, ideal olan bir USB soketinden güç alır.

Küçük bir arama ile, zaten güzel bir kasaya sahip güçlü hoparlörler bulmalısınız. Güç kaynağınızın voltajında çalışacaklarından emin olun. Dört adet AA hücresi tarafından destekleniyorsa, muhtemelen 5V'de sorunsuz çalışacaktır.

Ama tekno-karıştırmaya daha da daldım ve çok güzel bir yerleştirme istasyonu buldum, "her şey 0,50 sterline" bir duraktan aldım. Şarj cihazını ve IR uzaktan kumandasını kaybetmişti ancak iyi çalışıyor.

Kendi güçlü hoparlörlerinizi oluşturmaya kararlıysanız, işte iyi bir Eğitilebilirlik. Veya Instructables'ı PAM8403 veya Amplifier için arayın.

Adım 8: Yerleştirme İstasyonu

Yerleştirme İstasyonu
Yerleştirme İstasyonu
Yerleştirme İstasyonu
Yerleştirme İstasyonu
Yerleştirme İstasyonu
Yerleştirme İstasyonu
Yerleştirme İstasyonu
Yerleştirme İstasyonu

Bu çok güzel bir Logitech taşınabilir yerleştirme istasyonu. Aynısını almanız pek olası değildir, ancak yapım ilkeleri benzer olacaktır.

Yerleştirme istasyonu, kendi şarj edilebilir Li-ion hücresini ve güçlendirici PSU'yu içerir. (Sizinki yukarıda açıklanan PSU'yu oluşturmuyorsa ve sonraki birkaç paragrafı atlayın.)

Amfinizde bir Li-ion hücre varsa, muhtemelen bir takviye PSU'su vardır. (Tek Li-iyon hücrenin voltajı uygunsuz bir şekilde düşüktür, bu nedenle artırılması gerekir.)

İlk önce, amplifikatöre giden güç için bağlantıları bulun. PSU'nun büyük yumuşatma kapasitörleri olacak - önemsiz PCB'nin fotoğrafına bakın. Alt taraftaki lehim pedlerindeki voltajı ölçün. Negatif ped, devrenin "toprak" pedi olmalıdır. Eğer pcb su doluysa, topraklanacaktır. Veya zemin, tahtada birçok yere giden kalın bir iz olabilir.

Amplifikatörün çıkış katında büyük kapasitörler olabilir - bunu yapmanın eski moda yolu budur. Çalışırken aralarındaki voltajı ölçün. Muhtemelen müziğe göre değişecek ve güç kaynağı kapasitörlerinin voltajının yarısı kadar olabilir. Bunlar yanlış kapasitörler - PSU'dakileri istiyorsunuz.

Anakartın hem pozitif hem de negatif güce sahip olması pek olası değil (büyük stereo güç amplifikatörleri var ama hiç böyle hafif bir güç görmedim). Gerçekten zemin ve pozitif gücü seçtiğinizden emin olun.

Kullandığım Logitech bağlantı istasyonu, analog amplifikatörün yanı sıra karmaşık dijital devrelere sahip. Sizinki böyleyse, amfi için 5V veya 3.3V artı belki 9V için yumuşatma kapasitörleri olacaktır. Tüm büyük kapasitörlerdeki voltajları ölçün ve en büyük voltajı seçin.

Seçtiğiniz güç bağlantısının voltajının açma/kapama anahtarına bağlı olduğundan emin olun. (Anahtarı kapattığınızda, kondansatör boşaldıkça voltajın düşmesi biraz zaman alabilir.)

Güç kaynağınız olarak seçtiğiniz her şeye lehim telleri. Logitech yerleştirme istasyonu, Arduino'nun Vin pinine güzel bir şekilde bağlanacak olan yaklaşık 9V üretir.

Elektrikli hoparlörleriniz veya yerleştirme istasyonunuzda ses girişi için 3,5 mm jak olmalıdır. Lehim bağlantılarından biri topraklanacaktır - muhtemelen tahtanın kenarına en yakın olanı. Toprak olduğunu düşündüğünüz şeye bağlandığını kontrol etmek için bir ohm metre kullanın. Bazı ses girişlerinde jakın "kalkanı" doğrudan toprağa bağlı değildir. Yüzüyor. Bu nedenle, jak pimlerinin hiçbiri topraklanmamışsa, şimdilik endişelenmeyin. (VS1053 modülündeki jakın "kalkanı" da yüzer.)

Jak "toprak" piminin güç kaynağı topraklaması ile aynı voltajda olduğunu kontrol etmek için bir metre kullanın.

Logitech yerleştirme istasyonu tuhaftı. Logitech jak soketinin "toprakını" VS1053 kartının "toprakına" bağladığımda (bir ses kablosu kullanarak iyi çalıştı ancak Theremin sistemime gelen akım 80mA'dan 200mA'nın üzerine çıktı. Bu yüzden emin oldum) Bu iki "zemin"i bağlamadım. iyi çalışıyor ama neler olduğu hakkında hiçbir fikrim yok.

Adım 9: Bir Vaka Oluşturma

Vaka Yapmak
Vaka Yapmak
Vaka Yapmak
Vaka Yapmak
Vaka Yapmak
Vaka Yapmak
Vaka Yapmak
Vaka Yapmak

Hangi kasayı yapacağınız, elinizdeki malzemelere, neyle çalışmaktan zevk aldığınıza ve seçtiğiniz güçlü hoparlörlere bağlı olacaktır. Ne yaparsanız yapın, sonarların birbirinden uzağa ve 45 ° 'ye bakmasını sağlamalıdır. Ardından görüntü ekranı ve buton olacak.

Diğer Eğitilebilirliklerime baktıysanız, büyük bir teneke hayranı olduğumu bileceksiniz. Şekil vermek için bükülebilir, yumuşak lehimlenebilir ve boyanabilir. Fotoğraflar, işleri nasıl düzenlediğimi gösteriyor.

Üst üçgen teneke bükülmüş, lehimlenmiş, doldurulmuş, düzeltilmiş ve boyanmıştır. Pcb'ler üçgen içinde sıcak yapıştırılmıştır ve ara parça olarak işlev görecek küçük ahşap şeritlere sahiptir.

"Ön panel" 1 mm polistiren levhadır. Ayrılıklar daha fazla polistiren levhadan yapılmıştır ve kendinden kılavuzlu vidalar şerit tahtayı yerinde tutar. Ahşap destekler, yerleştirme istasyonunun önündeki boşluğa sıcak yapıştırılır ve pcb'ler uzun kendinden kılavuzlu vidalarla üzerlerine vidalanır.

Sanırım bir şeyi 3D yazdırabilirdim ama ilerledikçe bazı şeyleri ayarlayabildiğim eski okul yöntemlerini tercih ederim. Bir şeyler yapmak "mühendislikten" ziyade bir keşif yolculuğudur.

Adım 10: Gelecekteki Geliştirme

Geleceğin Gelişimi
Geleceğin Gelişimi

Enstrümanı nasıl daha da geliştirebilirsin? Kullanıcı arayüzünü değiştirebilirsiniz. Düğmeyi bir IR mesafe sensörü ile değiştirebilirsiniz, böylece cihaza hiç dokunmanıza gerek kalmaz. Veya menüyü kontrol etmek için bir düğme ve sol el yerine dokunmatik ekran kullanabilirsiniz.

Scale menüsü, "Batılı olmayan müzik" gamlarını seçmenize izin verir, ancak tüm notaların dengeli klavyeden geldiğini varsayar - MIDI böyle çalışır Arapça çeyrek ton gamı, dengeli skalada olmayan notalara sahiptir. Diğer ölçekler hiçbir şekilde dengeli bir klavye ile ilgili değildir. Bu tür notaları üretmek için perde bükme kullanmak mümkün olabilir. Menünün her notanın sıklığını belirlemesi için bir yola ihtiyacınız olacaktır. Perde bendinin kanaldaki tüm notalar için geçerli olabileceğini düşünüyorum. Şu anda sadece bir kanal kullanıyorum - kanal 0. Yani, çok sesliyse veya akorları varsa, her notayı farklı bir kanalda çalmanız gerekecek.

Enstrüman bir davul sentezleyici haline gelebilir. Sağ sonar, davulu çalmak için vurduğunuz bir piezo sensörüyle değiştirilirken, sol el Melodik Tom'un perdesini belirleyebilir.

İki el iki farklı enstrümanı kontrol edebiliyordu.

Sol el bir enstrüman seçebilir.

Bu projenin yaklaşık yarısında Zeppelin Design Labs'ın Altura MkII Theremin MIDI Kontrol Cihazını keşfettim. Güzel bir enstrümana benziyor.

İzlemeye değer birkaç videosu var:

("Bins" kelimesini Altura'dan ve bir çöp kutusunun içine girdiğinizde içinde kalmanıza yardımcı olmak için genişlediği fikrini çaldım.)

MIDI Theremin'im Altura'dan birkaç yönden farklıdır. Mine, yerleşik MIDI synth, amp, vb. ile kendi sesini üretir; Altura, harici bir sentezleyiciye mesajlar gönderir. Bunu yapma yöntemlerini tercih edebilirsiniz. Benimki 7 segmentli bir ekran yerine TFT ekrana sahip - bu kesinlikle daha iyi ama daha büyük bir ekranın bir gelişme olacağını düşünebilirsiniz. Benimki, parametreleri ayarlamak için menüleri kullanırken, onlarınki düğmeleri kullanır. Menüler gereklidir çünkü benimki giriş aygıtı (sonarlar) ve sentezleyici için çok fazla kontrole ihtiyaç duyar; Altura'nın daha az kontrole ihtiyacı var. Belki bir canlı performans sırasında düğmeler daha iyidir. Belki benimkinin kolları olmalı. Kurulumları seçmek için bir düğme iyi olabilir.

Altura, notaların ne kadar hızlı çalınabileceğini ayarlayan bir "Artikülasyon" kontrolüne sahiptir. Bunu yazılımıma dahil etmedim - belki de orada olmalı. Altura bir Arpejatöre (adım sıralayıcı) sahiptir. Bu iyi bir fikir; benimki tamamen aynı şey olmayan akorlara sahip.

İşte bu kadar. Umarım bir MIDI-Theremin oluşturmaktan ve kullanmaktan zevk alırsınız. Açıklamamda herhangi bir hata bulursanız veya herhangi bir iyileştirme düşünürseniz bana bildirin.

Önerilen: