Daftar Isi:

HX1-DM - Mesin Drum DIY Bertenaga Arduino DUE (dibuat Dengan Mesin Mati MK2): 4 Langkah
HX1-DM - Mesin Drum DIY Bertenaga Arduino DUE (dibuat Dengan Mesin Mati MK2): 4 Langkah

Video: HX1-DM - Mesin Drum DIY Bertenaga Arduino DUE (dibuat Dengan Mesin Mati MK2): 4 Langkah

Video: HX1-DM - Mesin Drum DIY Bertenaga Arduino DUE (dibuat Dengan Mesin Mati MK2): 4 Langkah
Video: Вот почему миле машинки живут почти вечно - сбивка ворса #miele 2024, Juli
Anonim
Image
Image
Perbaikannya
Perbaikannya

Spesifikasi

  • Kontroler Midi / mesin drum hibrida: Bertenaga Arduino DUE!
  • 16 Bantalan penginderaan kecepatan dengan latensi sangat rendah 1>ms
  • Pengguna 8 kenop dapat dialihkan ke perintah Midi #CC apa pun
  • Sequencer bawaan 16ch (tidak perlu komputer!!)
  • Fungsionalitas masuk/keluar/melalui MIDI (dapat digunakan sebagai antarmuka midi USB!)
  • Jam MIDI parsial & dukungan MTC (bekerja pada kontrol MMC dan DAW)

Ini jelas merupakan salah satu proyek paling rumit yang pernah saya kerjakan, berbicara tentang 17 register geser keluaran, 6 register geser input, 2x 16 saluran multiplekser yang bekerja pada papan sirkuit Saya tidak tahu apa itu apa dan di mana plus saya tidak pernah mengacaukannya dengan register geser / multiplexer sebelum ……

Ini dimulai sebagai pembelian impulsif dari eBay, saya benar-benar menginginkan Maschine Instrumen Asli karena saya selalu menyukai bantalan drum di dalamnya dibandingkan dengan yang ada di studio MPC yang saya miliki jadi ketika saya melihat yang rusak di eBay seharga £ 40 pound saya pikir Saya akan mencoba memperbaikinya dengan skenario terburuk adalah ' jika saya tidak dapat memperbaikinya, saya memiliki Arduino DUE dan beberapa UNO tergeletak di sekitar, saya selalu dapat melakukan peretasan'

Saya sangat suka bantalan drum itu!!!!

Perlengkapan

1 x Instrumen Asli yang rusak Maschine MK2

1 x Arduino Karena.

17 x SN74HC595 - register geser keluaran 8-bit

6 x SN74HC165 - register geser input 8-bit

2 x 74HC4067 - 16 multiplekser saluran.

Layar OLED 2x3,2” 256x64.

beberapa kabel datar (kabel floppy lama bisa digunakan)

Langkah 1: Perbaikan

Penjual eBay cukup baik untuk memberikan gambaran tentang apa yang diharapkan dalam deskripsi dan telah melepas port USB. Papan telah mengalami tegangan berlebih dan tidak menyala. Tandai multimeter…. Papan tampaknya memiliki kekurangan.. 'Saya telah memperbaiki motherboard yang tak terhitung jumlahnya dengan celana pendek sebelumnya Jadi betapa sulitnya itu!?!' Ternyata tegangan berlebih ini (dan mungkin sebagian desain papan), telah mengambil hampir SETIAP komponen di papan termasuk CPU utama. Papan ini benar-benar buruk!

Saya terus mendorong & menyodok dengan multimeter saya, melakukan sedikit riset pada komponen dan mencari tahu apa yang masing-masing lakukan ditambah NI melakukan pekerjaan yang bagus untuk membuat hal-hal menjadi cukup jelas dengan berbagai titik uji di sekitar motherboard ??.

Langkah 2: Peretasan

Peretasan
Peretasan
Peretasan
Peretasan
Peretasan
Peretasan

Mengetahui bahwa saya perlu mengganti semua yang ada di CPU utama (yang tidak akan diperlukan) saya beralih ke eBay. Syukurlah semua yang dibutuhkan murah sehingga memesan banyak dari mereka menyenangkan. ?

17 x SN74HC595 - register geser keluaran 8-bit

17 register geser keluaran digunakan untuk mengontrol LED multi-warna pad drum dan semua LED Tombol (tepatnya 136!!) Ini sangat mudah digunakan dan dengan cepat menemukan perpustakaan menggunakan Arduino IDE untuk menyelamatkan diri saya membuat satu.. mereka dirantai bersama.

6 x SN74HC165 - register geser input 8-bit

Register geser input ini sangat bagus untuk banyak input pada 1 saluran. Total ada 48 tombol.

2 x 74HC4067 - 16 multiplekser saluran

Kami memiliki 16 bantalan dan 8 kenop yang tersisa, ini juga analog. Saya merasa lebih mudah menggunakan ini karena yang ada di papan adalah 8 saluran dan saya kesulitan menemukan di mana harus menghubungkan pin data.. isyarat spaghetti junction….

Layar OLED 2x3,2” 256x64

Itu harus memiliki beberapa layar!!! Saya tidak dapat menemukan info apa pun pada layar LCD asli yang disertakan dalam NI Maschine dan saya tidak dapat repot membuang waktu lagi untuk mencobanya, jadi saya memutuskan untuk memesan beberapa dari Cina… Saya menggunakan perpustakaan UG8x8 untuk membuatnya berfungsi. Layar baru sedikit lebih kecil dari aslinya jadi saya hanya menghilangkan 'bit buruk'.

1 x Arduino Karena

Saya memiliki ini tergeletak di sekitar untuk beberapa waktu menunggu proyek yang cukup layak untuk semua kekuatan itu!! Ada masalah yang saya temui, Sepertinya beberapa revisi papan ini memiliki masalah reset yang berarti saya harus menekan tombol reset kadang-kadang untuk menjalankannya setelah mengunggah sketsa. Ini mudah diperbaiki dengan resistor 10K (ada posting di forum Arduino tentang ini).

Langkah 3: Kode

Saya sangat terkesan dengan banyaknya dukungan yang ada di komunitas Arduino, menemukan contoh kode dan pustaka untuk berbagai komponen sangat sederhana dan mudah.

Mengaktifkan dan menjalankan midi USB itu mudah dan membutuhkan waktu beberapa menit. LED membutuhkan beberapa waktu dan saya harus membuat sketsa yang secara bertahap mengatur setiap pin TINGGI dalam interval 1 detik dan mencatat.. Saya membuat sebuah array yang menyimpan nomor PIN untuk membuatnya lebih mudah ketika harus mengkodekan semuanya.

Saya membuat 2 perpustakaan untuk berbicara dengan multiplexer, satu menangani bantalan analog dan yang lainnya tombol. Sekali lagi ini sangat sederhana. Saya telah melampirkannya, silakan gunakan edit dll.

Saya ingin memiliki sequencer dan kemampuan untuk merekam tanpa memerlukan komputer, saya menemukan beberapa informasi tentang cara mengubah BPM ke ms dan menemukan perpustakaan timer Arduino DUE yang hebat.

Menggunakan perpustakaan pengatur waktu, saya dapat mengatur input bacaan dan hal-hal dalam interval:

Pads @ 1ms - Saya menemukan ini untuk memberikan keseimbangan terbaik antara artefak respons / de-bounce.

Buttons @ 40ms - Saya menggunakan pustaka antrian sehingga tidak ada penekanan yang terlewatkan.

Pemrosesan dilakukan di loop utama, Anda tidak dapat melakukan terlalu banyak saat Anda dalam interupsi karena ini akan mengunci Arduino.

Midi stuff @BPM (dalam ms) - untuk pengurutan, pada BPM yang diinginkan, sebuah fungsi dipanggil untuk memperbarui nada DLL yang akan dimainkan dan meningkatkan penghitung ketukan.

Langkah 4: Kesimpulan

Kesimpulan
Kesimpulan

Tidak yakin apa yang saya buat di sini, tetapi saya cukup bangga, bantalan merespons dengan sangat baik, saya harus mengutak-atik waktu untuk mendapatkan keseimbangan yang tepat dengan masalah responsif dan debounce. Urutannya berfungsi dengan baik dan begitu saya mengetahui dukungan DAW, saya dapat sepenuhnya mengintegrasikan hal ini ke dalam alur kerja saya dan dapat menambahkan hal-hal dalam pengontrol yang selalu saya inginkan!. Ini adalah proyek yang sangat menyenangkan untuk dikerjakan dan latihan yang hebat dalam memahami C, memahami rekayasa balik dan cara kerja multiplexer, register geser, dan pengurutan MIDI. Saya terus meningkatkan kode utama dan mungkin akan merilisnya suatu hari nanti sebagai desainer ritme open source.

TIPS:

Saya menemukan cara mengubah nama USB DUE dengan mengedit salah satu file header di folder Arduino/SAM.

MIDI-OX adalah alat yang hebat untuk menguji fungsionalitas Midi

LINK:

www.usb.org/sites/default/files/midi10.pdf - Spesifikasi MIDI USBhttps://midi.terragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Beberapa info tentang cara mengonversi BPM ke ms

travis-ci.com/SMFSW/Queue - Untuk input tombol agar kami tidak ketinggalan penekanan!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib untuk Layar LED/LCD

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib untuk tombol besar

shiftregister.simsso.de/ - ShiftIn Register lib - Dibuat oleh Henrik Heine, 24 Juli 2016

forum.arduino.cc/index.php?topic=57636.0 - hal-hal Kode Waktu MIDI

Direkomendasikan: