Spisu treści:
- Krok 1: Deska do krojenia chleba
- Krok 2: Programowanie i konfiguracja MIDI
- Krok 3: Testowanie i eksperymentowanie
Wideo: Sterowany przez MIDI silnik krokowy z układem bezpośredniej syntezy cyfrowej (DDS): 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
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
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
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:
Silnik krokowy z płytką ESP32: 4 kroki
Silnik krokowy z płytką ESP32: Silniki krokowe to silniki prądu stałego, które poruszają się w dyskretnych krokach. Mają wiele cewek, które są zorganizowane w grupy zwane „fazami”. Zasilając każdą fazę po kolei, silnik będzie się obracał, krok po kroku. Silniki krokowe są bardzo przydatne
Silnik krokowy sterowany silnikiem krokowym bez mikrokontrolera!: 6 kroków
Silnik krokowy sterowany silnikiem krokowym bez mikrokontrolera!: W tej krótkiej instrukcji wykonamy prosty sterownik silnika krokowego za pomocą silnika krokowego. Ten projekt nie wymaga skomplikowanych obwodów ani mikrokontrolera. Więc bez zbędnych ceregieli, zaczynajmy
Silnik krokowy sterowany silnikiem krokowym bez mikrokontrolera (V2): 9 kroków (ze zdjęciami)
Silnik krokowy sterowany silnikiem krokowym bez mikrokontrolera (V2): W jednej z moich poprzednich instrukcji pokazałem, jak sterować silnikiem krokowym za pomocą silnika krokowego bez mikrokontrolera. Był to szybki i zabawny projekt, ale pojawił się z dwoma problemami, które zostaną rozwiązane w tym Instruktażowym. Więc dowcip
Model lokomotywy sterowany silnikiem krokowym - Silnik krokowy jako enkoder obrotowy: 11 kroków (ze zdjęciami)
Model lokomotywy sterowany silnikiem krokowym | Silnik krokowy jako enkoder obrotowy: W jednym z poprzednich podręczników dowiedzieliśmy się, jak używać silnika krokowego jako enkodera obrotowego. W tym projekcie użyjemy teraz tego silnika krokowego obracanego obrotowym enkoderem do sterowania modelową lokomotywą za pomocą mikrokontrolera Arduino. Więc bez fu
Silnik krokowy sterowany silnikiem krokowym - Silnik krokowy jako enkoder obrotowy: 11 kroków (ze zdjęciami)
Silnik krokowy sterowany silnikiem krokowym | Silnik krokowy jako enkoder obrotowy: Masz kilka silników krokowych i chcesz coś zrobić? W tej instrukcji użyjmy silnika krokowego jako enkodera obrotowego do sterowania pozycją innego silnika krokowego za pomocą mikrokontrolera Arduino. Więc bez zbędnych cere