İçindekiler:

HX1-DM - İleri Dönüştürülmüş Arduino DUE Powered DIY Davul Makinesi (Ölü Bir Makine MK2 ile yapılmıştır): 4 Adım
HX1-DM - İleri Dönüştürülmüş Arduino DUE Powered DIY Davul Makinesi (Ölü Bir Makine MK2 ile yapılmıştır): 4 Adım

Video: HX1-DM - İleri Dönüştürülmüş Arduino DUE Powered DIY Davul Makinesi (Ölü Bir Makine MK2 ile yapılmıştır): 4 Adım

Video: HX1-DM - İleri Dönüştürülmüş Arduino DUE Powered DIY Davul Makinesi (Ölü Bir Makine MK2 ile yapılmıştır): 4 Adım
Video: ЧИСТКА ГЕТТО НА GALAXY DM | PROMO - hantarix | /gift hx1 2024, Temmuz
Anonim
Image
Image
Onarım
Onarım

Spec

  • Hibrit Midi denetleyici / davul makinesi: Arduino DUE ile güçlendirilmiş!
  • Çok düşük gecikme 1>ms ile 16 hız algılama pedi
  • Herhangi bir Midi #CC komutuna atanabilen 8 düğme
  • 16ch Dahili sıralayıcı (bilgisayar gerekmez!!)
  • MIDI giriş/çıkış/thru işlevselliği (USB midi arayüzü olarak kullanılabilir!)
  • Kısmi MIDI saat ve MTC desteği (MMC ve DAW kontrolü üzerinde çalışır)

Bu kesinlikle üzerinde çalıştığım en karmaşık projelerden biri, 17 çıkış kaydırmalı yazmaç, 6 giriş kaydırmalı yazmaç, bir devre kartı üzerinde çalışan 2x 16 kanallı çoklayıcıdan bahsediyordu Neyin nerede ve ne olduğu hakkında hiçbir fikrim yok artı hiç bulaşmadım önce vardiya kayıtları / çoklayıcılar ile ……

eBay'de bir dürtü satın alma olarak başladı, gerçekten bir Native Instruments Machine istedim çünkü sahip olduğum MPC stüdyosunda olanlara kıyasla her zaman üzerlerindeki bateri pedlerini sevdim, bu yüzden eBay'de 40 sterline hatalı bir tane gördüğümde düşündüm En kötü durum senaryosu ile düzeltmeye çalışırdım, 'eğer düzeltemezsem bir Arduino DUE'm var ve etrafta birkaç UNO var, her zaman biraz hack yapabilirim'

Zaten o davul pedlerini gerçekten çok seviyorum!!!!

Gereçler

1 x hatalı Native Instruments Makinesi MK2

1 x Arduino Ödeneği.

17 x SN74HC595'ler - 8 bit çıkış kaydırma yazmaçları

6 x SN74HC165'ler - 8 bit giriş kaydırma yazmaçları

2 x 74HC4067 - 16 kanal çoklayıcı.

2 adet 3.2” 256x64 OLED ekran.

bazı düz tel (eski disket kablosu yapacaktır)

Adım 1: Onarım

eBay satıcısı, açıklamada ne bekleyeceğine dair bir fikir verecek kadar kibardı ve USB portunu çıkarmıştı. Kart aşırı gerilime maruz kaldı ve açılmadı. Multimetreyi işaretleyin…. Anakartın kısa olduğu ortaya çıktı.. 'Daha önce sayısız anakartı şortla tamir ettim Peki ne kadar zor olabilir!?!' Bu aşırı voltajın (ve muhtemelen kart tasarımının bir parçası) neredeyse HER ŞEYİ çıkarmış olduğu ortaya çıktı. Ana CPU dahil olmak üzere karttaki bileşen. Bu tahta gerçekten kötü bir şekildeydi!

Multimetremle üretmeye ve dürtmeye devam ettim, bileşenler üzerinde biraz araştırma yaptım ve her birinin ne yaptığını anladım, ayrıca NI, anakartın etrafındaki çeşitli test noktalarıyla işleri oldukça belirgin hale getirmek için harika bir iş çıkardı ??.

Adım 2: Hack

Hack
Hack
Hack
Hack
Hack
Hack

Ana CPU dışındaki her şeyi değiştirmem gerekeceğini bilerek (buna gerek kalmayacak) eBay'e döndüm. Neyse ki gereken her şey ucuzdu, bu yüzden bir sürü sipariş vermek eğlenceliydi. ?

17 x SN74HC595'ler - 8 bit çıkış kaydırma yazmaçları

17 çıkış kaydırma yazmacı, bateri pedinin çok renkli LED'lerini ve tüm Düğme LED'lerini (tam olarak 136'sı!!) kontrol etmek için kullanılır… birbirine zincirlenmişler.

6 x SN74HC165'ler - 8 bit giriş kaydırma yazmacı

Bu giriş kaydırma kayıtları, 1 kanaldaki çoklu girişler için mükemmeldir. Toplamda 48 düğme var.

2 x 74HC4067 - 16 kanal çoklayıcı

16 pedimiz var ve 8 düğme kaldı, bunlar da analog. Karttakiler 8 kanal olduğu için bunları kullanmayı daha kolay buldum ve veri pinlerini nereye bağlayacağımı bulmakta zorlandım.. cue spagetti bağlantısı….

2 adet 3.2” 256x64 OLED ekran

Bazı ekranları olmalı!!! NI Machine'da gelen orijinal LCD ekranlar hakkında hiçbir bilgi bulamadım ve daha fazla zaman kaybetmekten rahatsız olmadım, bu yüzden Çin'den bazılarını sipariş etmeye karar verdim… Bunları çalıştırmak için UG8x8 kitaplığını kullandım. Yeni ekranlar orijinalinden biraz daha küçüktü, bu yüzden 'kötü kısımları' boş bıraktım.

1 x Arduino Ödeneği

Tüm bu güç için yeterince değerli bir projeyi beklerken bir süre etrafta yattım! Karşılaştığım bir sorun vardı, Görünüşe göre bu panoların bazı revizyonlarında sıfırlama sorunu var, bu da bir çizim yükledikten sonra şeyi çalıştırmak için bazen sıfırlama düğmesine basmam gerektiği anlamına geliyordu. Bu, 10K'lık bir dirençle kolayca düzeltildi (Arduino forumunda bununla ilgili bir yazı var).

Adım 3: Kod

Arduino topluluğunda ne kadar destek olduğundan gerçekten çok etkilendim, çeşitli bileşenler için kod örnekleri ve kitaplıklar bulmak gerçekten basit ve basitti.

USB midi'yi kurmak ve çalıştırmak kolaydı ve birkaç dakika sürdü. LED'ler biraz zaman aldı ve her pini 1 saniyelik aralıklarla aşamalı olarak YÜKSEK ayarlayan ve not alan bir taslak oluşturmak zorunda kaldım. Her şeyi kodlamaya gelince kolaylaştırmak için PIN numaralarını tutan bir dizi yaptım.

Çoklayıcılarla konuşmak için 2 kitaplık yaptım, biri analog pedleri, diğeri düğmeleri idare ediyor. Yine bu gerçekten basitti. Ekledim, düzenleme vb. kullanmaktan çekinmeyin.

Bir sıralayıcıya ve bilgisayara ihtiyaç duymadan kayıt yapabilme yeteneğine sahip olmak istedim, BPM'yi ms'ye nasıl dönüştüreceğime dair bazı bilgiler buldum ve harika bir Arduino DUE zamanlayıcı kitaplığı buldum.

Zamanlayıcı kitaplığını kullanarak okuma girdilerini ve bazı şeyleri aralıklarla ayarlayabildim:

Pedler @ 1ms - Bunu, yanıt/geri sıçrama artefaktları arasında en iyi dengeyi sağlamak için buldum.

Düğmeler @ 40ms - Bir sıra kitaplığı kullandım, böylece hiçbir baskı kaçırılmadı.

İşleme ana döngüde yapılır, Arduino'yu kilitleyeceğinden, kesinti yaptığınızda çok fazla bir şey yapamazsınız.

Midi şeyler @BPM (ms cinsinden) - sıralama için, istenen BPM'de, ETC notalarının çalınacağını ve vuruş sayacını arttıran güncellemeleri yapan bir fonksiyon çağrılır.

Adım 4: Sonuç

Çözüm
Çözüm

Burada ne yaptığımdan emin değilim ama oldukça gururluyum, pedler mükemmel tepki veriyor, tepki verme ve geri tepme sorunlarıyla doğru dengeyi elde etmek için zamanlamayla uğraşmak zorunda kaldım. Sıralama harika çalışıyor ve DAW desteğini bulduğumda bu şeyi iş akışıma tamamen entegre edebiliyorum ve her zaman istediğim şeyleri bir kontrol cihazına ekleyebiliyorum! Bu üzerinde çalışmak gerçekten eğlenceli bir proje ve harika bir egzersizdi. C ile başa çıkmak, tersine mühendisliği ve çoklayıcıların, kaydırmalı yazmaçların ve MIDI sıralamasının nasıl çalıştığını anlamak. Ana kodu geliştirmeye devam ediyorum ve bir gün açık kaynak ritim tasarımcısı olarak yayınlayabilirim.

İPUÇLARI:

Arduino/SAM klasöründeki başlık dosyalarından birini düzenleyerek DUE'nin USB adını nasıl değiştireceğimi buldum.

MIDI-OX, Midi işlevselliğini test etmek için harika bir araçtır

BAĞLANTILAR:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spesifikasyonuhttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… BPM'yi ms'ye dönüştürme hakkında bazı bilgiler

travis-ci.com/SMFSW/Queue - Herhangi bir basışı kaçırmamamız için düğme girişleri için!

github.com/olikraus/u8g2/wiki/u8x8referenc… - LED/LCD Ekranlar için UG8 lib

github.com/ivanseidel/DueTimer/releases - Arduino DUE Zamanlama kütüphanesi

www.pjrc.com/teensy/td_libs_Encoder.html - Büyük düğme için Encoder Lib

shiftregister.simsso.de/ - ShiftIn Register lib - Henrik Heine tarafından düzenlendi, 24 Temmuz 2016

forum.arduino.cc/index.php?topic=57636.0 - MIDI Zaman Kodu öğeleri

Önerilen: