Mündəricat:

Birbaşa Rəqəmsal Sintez (DDS) Çipli MIDI nəzarətli Step Motor: 3 Addım
Birbaşa Rəqəmsal Sintez (DDS) Çipli MIDI nəzarətli Step Motor: 3 Addım

Video: Birbaşa Rəqəmsal Sintez (DDS) Çipli MIDI nəzarətli Step Motor: 3 Addım

Video: Birbaşa Rəqəmsal Sintez (DDS) Çipli MIDI nəzarətli Step Motor: 3 Addım
Video: ODMFR Cerrahi Rehber Tasarlamada Dental Radyolojinin Yeri 2024, Iyul
Anonim
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor
Birbaşa Rəqəmsal Sintez (DDS) Çipi olan MIDI nəzarətli Step Motor

Yalnız bir mini layihəyə çevrilməyiniz lazım olduğu barədə pis bir fikir var? AD9833 Birbaşa Rəqəmsal Sintez (DDS) modulu ilə musiqi yaratmaq məqsədi ilə Arduino Due üçün hazırladığım bir eskizlə oynayırdım … və bir anda düşündüm ki, "bəlkə, bir step motor/sürücü qurmalıyam. bu ". Və bu fikir, bu kiçik çörək taxtasına əsaslanan layihəyə səbəb olan şeydir.

Bu layihəyə Arduino Due-ni idarə etmək və AD9833 modulu ilə step sürücüsü arasında kvadrat dalğaları göndərmək üçün USB üzərindən MIDI istifadə etmək üçün bəzi kodlar daxil ediləcək. Bunu bir Arduino Due ilə bağlamaq üçün bir diaqram və əsas təlimatlar da olacaq.

Təchizat:

Bu layihə üçün nə lazımdır:

Arduino Due

DİQQƏT: Kod Tövsiyə üçün yazılmışdır, lakin eyni zamanda işləməli və/və ya Sıfıra uyğunlaşdırılmalıdır. Doğma USB portu tələb edən Arduino MIDIUSB kitabxanasından istifadə edir.

Lehimsiz çörək taxtası + atlayanlar

AD9833 Breakout Modulu

A4988 Stepper Sürücü (və ya bənzəri)

NEMA 17 Stepper Motor (və ya bənzəri)

- 24V Güc Təchizatı (qeyd edin, nominal stepper motor gərginliyindən daha yüksək olduğu üçün 24 Volt dəyərini seçdim. Daha böyük bir motor istifadə etsəniz tətbiqiniz fərqli ola bilər)

Addım 1: Breadboard

Çörək taxtası
Çörək taxtası

Bunun arxasındakı əsas fikir, Direct Digital Synthesis IC -nin, step motor sürücüsünün "addım" pinini idarə etmək üçün bir kvadrat dalğa meydana gətirməsidir. Bu step sürücü daha sonra mühərriki müəyyən edilmiş səs tezliyində hərəkət etdirəcək. Mühərrikin istiqaməti düzgün tezliklə addımladığı müddətcə bir qədər özbaşına olur.

Çörək taxtası ilə istifadə etməyi üstün tutduğum yanaşma, əvvəlcə elektrik sancaqlarını və zəminləri işə salmaq və sonra bütün digər gücsüz əlaqələri işə salmaqdır.

Zəmin:

- AD9833 Modulunun AGND və DGND pinlərini çörək taxtasındakı GND Rail -ə qoşun.

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

- Bunu Arduino Due -nin GND pinlərindən birinə gətirin

3.3V Güc:

- Stepper Sürücüsünün VDD Pinini çörək taxtasının V+ Railinə qoşun

- AD9833 Modulunun VCC Pinini çörək taxtasının V+ Railinə qoşun

- Bunu Arduino Due -nin 3.3V Pininə gətirin

24V Güc:

- VMOT pinini 24V DC Güc qaynağına qoşun (seçdiyiniz mühərrikdən asılı olaraq daha yüksək və ya aşağı bir təchizat xətti çəkmək istəyə bilərsiniz)

Moduldan Modula Bağlantı:

- Çıxış pinini AD9833 modulundan motor sürücüsünün STEP pininə qoşun

Sürücü Sürücü Əlaqələri:

- Stepper Motor bağlantılarını 2B/2A/1A/1B pinlərinə qoşun. Sürücü fazaları Step Motorun fazaları ilə üst -üstə düşdükcə polarite o qədər də vacib deyil.

- RESET və SLEEP pinlərini birləşdirin və onları Arduino Due Pin 8 -ə gətirin.

- DIR Pinini 3.3V Rayına qoşun

AD9833 Modul Əlaqələri:

- SCLK -ni Arduino Due SCK pininə qoşun. Qeyd edək ki, bu pin normal xarici dişi başlıqlarda deyil, mikrokontrolörün yaxınlığındakı 6 pinli ICSP başlıqdadır.

- SDATA Pinini Due MOSI pininə qoşun. Qeyd edək ki, bu pin normal xarici dişi başlıqlarda deyil, mikrokontrolörün yaxınlığındakı 6 pinli ICSP başlıqdadır.

- FSYNC -ni Arduino Due Pin 6 -ya qoşun (bu layihə üçün Chip Select pinidir)

Çörək taxtası tam yığıldıqdan sonra koda nəzər salmağın vaxtı gəldi!

Addım 2: Proqramlaşdırma və MIDI Quraşdırma

Proqramlaşdırma və MIDI Quraşdırma
Proqramlaşdırma və MIDI Quraşdırma

Əlavə edilmiş.ino eskizi, Arduino Due-nin Native USB portu vasitəsilə USB-MIDI girişlərini alacaq və AD9833-ü idarə etmək üçün onlardan istifadə edəcək. Bu çipdə 25 MHz 28 bit tezlikdə işləyən bir DAC var (burada lazım olanlar üçün ümumi həddini aşma) və buradakı kodun çoxu bunu bir kvadrat dalğasını işə salmaq və çıxarmaq üçün konfiqurasiya edir.

Qeyd: iki USB portu var. Biri lövhəni proqramlaşdırmaq üçün, digəri isə USB üzərindən MIDI-dən istifadə etmək üçün istifadə ediləcək

Diqqət yetirin ki, bu eskiz Arduino Uno -da olduğu kimi işləməyəcək - bu layihə Arduino Due və ya oxşar cihazlarda Native USB ehtiyacına görə xüsusi olaraq hazırlanmışdır

Fərdiləşdirmə Seçimləri:

- Preprocessor makro tərifi ilə təyin edilə bilən 2 rejim var. "#Define STOPNOTES" toxunulmaz qalarsa, addım notlar arasında dayanacaq. Bu həmişə arzuolunmazdır (məsələn, sürətli arpejlər oynayır), buna görə də bu davranışı dəyişdirmək üçün sadəcə #define ifadəsinin və stepperin oynandıqdan sonra davamlı olaraq işləyəcəyini silin və ya şərh edin.

-Oktavanın yuxarı/aşağı düyməsinə malik ucuz 2 oktavalı MIDI klaviatura istifadə edirəm, amma bu seçiminiz yoxdursa, 2-nin güclərinə vuraraq və ya bölməklə aşağıdakı tezlik tərcüməsini oktavaya dəyişə bilərsiniz.

MIDI-dən tezliyə tərcümə playNote funksiyasında bu xətt ilə aparılır: int f_out = (int) (27.5*pow (2, ((float) midiNote-33)/12));

- Kompüterimi USB MIDI ilə əlaqə qurmaq üçün istifadə edirəm - bunu sevdiyiniz Digital Audio Workstation (DAW) proqramından edə bilərsiniz. Biriniz yoxdursa, pulsuz və açıq mənbə platforması olan LMMS -dən istifadə edərək bu sistemi qurmaq olduqca asandır. Quraşdırıldıqdan və işlədildikdən sonra Arduino Due -ni MIDI Çıxış Cihazı olaraq təyin edin və USB MIDI klaviatura istifadə edirsinizsə, bunu giriş olaraq təyin edin.

Addım 3: Test və Təcrübə

Step motorunuzu oynamaq vaxtıdır!

Dediyimiz kimi, bunun arxasındakı bütün fikir bir növ manşet təcrübəsi idi, buna görə də öz təcrübənizlə bir az təcrübə edin!

Tövsiyə: