Spisu treści:

Sterowany przez MIDI silnik krokowy z układem bezpośredniej syntezy cyfrowej (DDS): 3 kroki
Sterowany przez MIDI silnik krokowy z układem bezpośredniej syntezy cyfrowej (DDS): 3 kroki

Wideo: Sterowany przez MIDI silnik krokowy z układem bezpośredniej syntezy cyfrowej (DDS): 3 kroki

Wideo: Sterowany przez MIDI silnik krokowy z układem bezpośredniej syntezy cyfrowej (DDS): 3 kroki
Wideo: Novation Circuit Tracks i Circuit Rhythm - pełny tutorial obu grooveboxów 2024, Lipiec
Anonim
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)
Sterowany przez MIDI silnik krokowy z chipem bezpośredniej syntezy cyfrowej (DDS)

Czy kiedykolwiek miałeś zły pomysł, który TYLKO musiałeś przekształcić w mini projekt? Cóż, bawiłem się szkicem, który wykonałem dla Arduino Due, którego celem było tworzenie muzyki za pomocą modułu AD9833 Direct Digital Synthesis (DDS)… i w pewnym momencie pomyślałem „hej, może powinienem podłączyć silnik / sterownik krokowy do ten . I ten pomysł jest dokładnie tym, co zapoczątkowało ten mały projekt oparty na płytce prototypowej.

W tym projekcie znajdzie się kod do używania MIDI-over-USB do sterowania Arduino Due i wysyłania fal prostokątnych między modułem AD9833 a sterownikiem krokowym. Pojawi się również schemat i podstawowe instrukcje dotyczące podłączenia tego do Arduino Due.

Kieszonkowe dzieci:

Czego potrzebujesz do tego projektu:

Arduino Due

UWAGA: Kod jest napisany dla Due, ale powinien również działać i/lub być dostosowany do Zero. Wykorzystuje bibliotekę MIDIUSB Arduino, która wymaga natywnego portu USB.

Płytka bez lutowania + zworki

Moduł wyłamujący AD9833

Sterownik krokowy A4988 (lub podobny)

Silnik krokowy NEMA 17 (lub podobny)

- Zasilanie 24 V (uwaga, wybrałem tę wartość 24 V, ponieważ była większa niż nominalne napięcie silnika krokowego. Twoja implementacja może być inna, jeśli użyjesz większego silnika)

Krok 1: Deska do krojenia chleba

Deska do krojenia chleba
Deska do krojenia chleba

Podstawową ideą jest to, że układ scalony Direct Digital Synthesis wygeneruje falę prostokątną napędzającą pin „krokowy” sterownika silnika krokowego. Ten sterownik krokowy będzie następnie poruszał silnikiem z określoną słyszalną częstotliwością. Kierunek silnika jest nieco arbitralny, o ile pracuje z odpowiednią częstotliwością.

Podejście, które wolę zastosować w przypadku płytek stykowych, polega na uruchomieniu najpierw pinów zasilania i uziemienia, a następnie uruchomienie wszystkich innych połączeń, które nie są zasilane.

Grunt:

- Podłącz styki AGND i DGND modułu AD9833 do szyny GND na płytce stykowej.

-Połącz dwa piny GND na sterowniku krokowym do szyny GND

- Przenieś to do jednego z pinów GND Arduino Due

Moc 3,3 V:

- Podłącz pin VDD sterownika krokowego do szyny V+ płytki stykowej

- Podłącz pin VCC modułu AD9833 do szyny V+ płytki stykowej

- Przenieś to do pinu 3.3V Arduino Due

Zasilanie 24V:

- Podłącz pin VMOT do zasilacza 24 V DC (w zależności od wybranego silnika, możesz chcieć uruchomić wyższą lub niższą szynę zasilającą)

Połączenie między modułami:

- Podłącz pin OUT z modułu AD9833 do pinu STEP sterownika silnika

Połączenia sterownika krokowego:

- Podłącz połączenia silnika krokowego do pinów 2B/2A/1A/1B. Polaryzacja nie jest tak ważna, o ile fazy sterownika pasują do faz silnika krokowego.

- Połącz ze sobą piny RESET i SLEEP i przenieś je do pinu Arduino Due 8.

- Podłącz pin DIR do szyny 3.3V

Połączenia modułu AD9833:

- Podłącz SCLK do pinu SCK Arduino Due. Zauważ, że ten pin znajduje się na 6-pinowym męskim złączu ICSP w pobliżu mikrokontrolera, a nie na normalnych zewnętrznych złączach żeńskich.

- Podłącz pin SDATA do pinu MOSI Due. Zauważ, że ten pin znajduje się na 6-pinowym męskim złączu ICSP w pobliżu mikrokontrolera, a nie na normalnych zewnętrznych złączach żeńskich.

- Podłącz FSYNC do Arduino Due Pin 6 (jest to pin do wyboru chipa dla tego projektu)

Teraz, gdy płytka prototypowa jest już w pełni zmontowana, czas przyjrzeć się kodowi!

Krok 2: Programowanie i konfiguracja MIDI

Programowanie i konfiguracja MIDI
Programowanie i konfiguracja MIDI

Załączony szkic.ino przejmie wejścia USB-MIDI przez natywny port USB Arduino Due i użyje ich do sterowania AD9833. Ten układ ma przetwornik cyfrowo-analogowy, który działa z częstotliwością 25 MHz z 28 bitami rozdzielczości częstotliwości (całkowita przesada dla tego, co jest tutaj potrzebne), a większość kodu tutaj konfiguruje go, aby działał i wyprowadzał falę prostokątną.

Uwaga: są dwa porty USB. Jeden służy do programowania płytki, a drugi służy do komunikacji MIDI-over-USB

Zwróć uwagę, że ten szkic nie będzie działał tak, jak jest na Arduino Uno - ten projekt jest specyficzny, ponieważ wymaga natywnego USB w Arduino Due lub podobnych urządzeniach

Opcje dostosowywania:

- Dostępne są 2 tryby, które można ustawić za pomocą definicji makra preprocesora. Jeśli "#define STOPNOTES" pozostanie nienaruszone, stepper zatrzyma się pomiędzy nutami. Nie zawsze jest to pożądane (na przykład granie szybkich arpeggio), więc aby zmienić to zachowanie, po prostu usuń lub skomentuj tę instrukcję #define, a stepper będzie działał nieprzerwanie po zagraniu.

- Używam taniej 2-oktawowej klawiatury MIDI, która ma przycisk oktawy w górę/w dół, ale jeśli nie masz takiej opcji, możesz przesunąć o oktawę niższą translację częstotliwości, mnożąc lub dzieląc przez potęgi 2.

Translacja MIDI na częstotliwość odbywa się za pomocą tej linii w funkcji playNote:int f_out = (int)(27.5*pow(2, ((float)midiNote-33)/12)));

- Zwykle używam mojego komputera do łączenia się przez USB MIDI - możesz to zrobić ze swojego ulubionego oprogramowania Digital Audio Workstation (DAW). Jeśli go nie masz, bardzo łatwo jest skonfigurować ten system za pomocą LMMS - bezpłatnej platformy o otwartym kodzie źródłowym. Po zainstalowaniu i uruchomieniu po prostu ustaw Arduino Due jako urządzenie wyjściowe MIDI, a jeśli używasz klawiatury USB MIDI, ustaw ją jako wejście.

Krok 3: Testowanie i eksperymentowanie

Czas zagrać w silnik krokowy!

Jak już wspomniałem, cały pomysł za tym krył się w pewnym rodzaju eksperymentu z mankietu, więc na wszelki wypadek poeksperymentuj sam!

Zalecana: