İçindekiler:

Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor: 3 Adım
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor: 3 Adım

Video: Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor: 3 Adım

Video: Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor: 3 Adım
Video: Факты о нашем теле: удивительные и интересные вещи происходят! 2024, Kasım
Anonim
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor
Doğrudan Dijital Sentez (DDS) Çipli MIDI Kontrollü Step Motor

SADECE mini bir projeye dönüşmeniz gerektiği konusunda kötü bir fikriniz oldu mu? AD9833 Doğrudan Dijital Sentez (DDS) modülüyle müzik yapmayı amaçlayan Arduino Due için yaptığım bir eskizle uğraşıyordum… Bugün nasılsın . Ve bu fikir, tam olarak bu küçük breadboard tabanlı projeyi ateşleyen şeydir.

Bu projeye, bir Arduino Due'ı kontrol etmek ve bir AD9833 modülü ile step sürücü arasında kare dalgalar göndermek için MIDI-over-USB kullanmak için bazı kodlar dahil edilecektir. Bunu bir Arduino Due'a bağlamak için bir diyagram ve temel talimatlar da olacaktır.

Gereçler:

Bu proje için ihtiyacınız olacak:

Arduino Ödenmesi

NOT: Kod Vade için yazılmıştır, ancak Sıfır için de çalışması ve/veya uyarlanması gerekir. Arduino'nun yerel bir USB bağlantı noktası gerektiren MIDIUSB kitaplığını kullanır.

Lehimsiz Breadboard + Süveter

AD9833 Koparma Modülü

A4988 Step Sürücü (veya benzeri)

NEMA 17 Step Motor (veya benzeri)

- 24V Güç Kaynağı (not, 24 Volt'luk bu değeri nominal step motor voltajından büyük olduğu için seçtim. Daha büyük bir motor kullanırsanız uygulamanız farklı olabilir)

Adım 1: Breadboarding

Breadboarding
Breadboarding

Bunun arkasındaki temel fikir, Doğrudan Dijital Sentez IC'nin, step motor sürücüsünün "adım" pimini sürmek için bir kare dalga oluşturacağıdır. Bu step sürücü daha sonra motoru belirtilen sesli frekansta hareket ettirecektir. Doğru frekansta hareket ettiği sürece motorun yönü biraz keyfidir.

Breadboarding ile kullanmayı tercih ettiğim yaklaşım, önce güç pimlerini ve toprakları çalıştırmak ve ardından diğer tüm güç dışı bağlantıları çalıştırmaya başlamaktır.

Zemin:

- AD9833 Modülünün AGND ve DGND Pinlerini breadboard üzerindeki GND Rayına bağlayın.

- Step Sürücüsü üzerindeki iki GND Pinini GND Rayına bağlayın

- Bunu Arduino Due'ın GND Pinlerinden birine getirin

3.3V Güç:

- Step Sürücüsünün VDD Pinini breadboard'un V+ Rayına bağlayın

- AD9833 Modülünün VCC Pinini breadboard'un V+ Rayına bağlayın

- Bunu Arduino Due'ın 3.3V Pinine getirin

24V Güç:

- VMOT pinini 24V DC Güç kaynağına bağlayın (motor seçiminize bağlı olarak daha yüksek veya daha düşük besleme rayını çalıştırmak isteyebilirsiniz)

Modülden Modüle Bağlantı:

- AD9833 modülünden OUT pinini motor sürücüsünün STEP pinine bağlayın

Step Sürücü Bağlantıları:

- Step Motor bağlantılarını 2B/2A/1A/1B Pinlerine bağlayın. Sürücü fazları Step Motorunkilerle eşleştiği sürece polarite o kadar önemli değildir.

- RESET ve SLEEP Pinlerini birbirine bağlayın ve bunları Arduino Due Pin 8'e getirin.

- DIR Pinini 3.3V Rayına bağlayın

AD9833 Modül Bağlantıları:

- SCLK'yı Arduino Due'nin SCK pinine bağlayın. Bu pinin normal harici dişi başlıklarda değil, mikrodenetleyicinin yanındaki 6 pinli erkek ICSP başlığında olduğuna dikkat edin.

- SDATA Pinini Due'nin MOSI pinine bağlayın. Bu pinin normal harici dişi başlıklarda değil, mikrodenetleyicinin yanındaki 6 pinli erkek ICSP başlığında olduğuna dikkat edin.

- FSYNC'i Arduino Due Pin 6'ya bağlayın (bu, bu proje için Chip Select pinidir)

Artık devre tahtası tamamen monte edildiğine göre, koda bakmanın zamanı geldi!

Adım 2: Programlama ve MIDI Kurulumu

Programlama ve MIDI Kurulumu
Programlama ve MIDI Kurulumu

Ekli.ino çizimi, Arduino Due'ın Yerel USB bağlantı noktası aracılığıyla USB-MIDI girişlerini alacak ve bunları AD9833'ü sürmek için kullanacaktır. Bu çip, 25 MHz w/ 28 bit frekans çözünürlüğünde çalışan bir DAC'ye sahiptir (burada ihtiyaç duyulanlar için toplam fazlalık) ve buradaki kodun çoğu, bunu bir kare dalga çalıştıracak ve çıkaracak şekilde yapılandırıyor.

Not: İki USB Bağlantı Noktası vardır. Biri kartı programlamak için, diğeri ise USB üzerinden MIDI iletişimi için kullanılacak

Bu çizimin Arduino Uno'da olduğu gibi çalışmayacağını unutmayın - bu proje, Arduino Due veya benzeri cihazlarda Yerel USB ihtiyacına özeldir

Özelleştirme Seçenekleri:

- Önişlemci makro tanımı ile ayarlanabilen 2 mod vardır. "#define STOPNOTES" olduğu gibi bırakılırsa, stepper notalar arasında duracaktır. Bu her zaman istenmez (örneğin, hızlı arpejler çalmak), bu nedenle bu davranışı değiştirmek için, o #define ifadesini silmeniz veya yorumlamanız yeterlidir; stepper bir kez çalındıktan sonra sürekli olarak çalışacaktır.

- Bununla, oktav yukarı/aşağı düğmesi olan ucuz bir 2 oktav MIDI klavye kullanıyorum, ancak bu seçeneğiniz yoksa, aşağıdaki frekans çevirisini 2'nin kuvvetleriyle çarparak veya bölerek oktav-kaydırma yapabilirsiniz.

MIDI-frekans çevirisi playNote işlevinde şu satırla yapılır:int f_out = (int)(27.5*pow(2, ((float)midiNote-33)/12));

- USB MIDI üzerinden arabirim oluşturmak için bilgisayarımı kullanma eğilimindeyim - bunu en sevdiğiniz Dijital Ses İş İstasyonu (DAW) yazılımından yapabilirsiniz. Eğer yoksa, bu sistemi ücretsiz, açık kaynaklı bir platform olan LMMS kullanarak kurmak oldukça kolaydır. Kurulduktan ve çalıştırıldıktan sonra, Arduino Due'ı MIDI Çıkış Aygıtı olarak ayarlayın ve bir USB MIDI klavye kullanıyorsanız, bunu bir giriş olarak ayarlayın.

3. Adım: Test Etme ve Deneme Yapma

Step motorunuzu oynama zamanı!

Belirtildiği gibi, bunun arkasındaki tüm fikir, bir tür manşet dışı deneydi, bu yüzden elbette, kendi deneylerinizi yapın!

Önerilen: