Obsah:

MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS): 3 kroky
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS): 3 kroky

Video: MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS): 3 kroky

Video: MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS): 3 kroky
Video: Tripoidní robot s krokovými motory FASTECH 2024, Listopad
Anonim
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)
MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS)

Měli jste někdy špatný nápad, že jste se JEN museli proměnit v mini projekt? Pohrával jsem si s náčrtkem, který jsem vytvořil pro Arduino Due, zaměřeným na vytváření hudby pomocí modulu AD9833 Direct Digital Synthesis (DDS) … a v určitém okamžiku jsem si řekl „hej, možná bych měl vybavit krokový motor/ovladač tento . A právě tato myšlenka vyvolala tento malý projekt na bázi prkénka.

Součástí tohoto projektu bude nějaký kód pro použití MIDI přes USB k ovládání Arduino Due a odesílání čtvercových vln mezi modulem AD9833 a krokovým ovladačem. K dispozici bude také schéma a základní pokyny pro připojení k Arduino Due.

Zásoby:

Co budete pro tento projekt potřebovat:

Arduino splatné

POZNÁMKA: Kód je napsán pro splatnost, ale měl by také fungovat a/nebo být upraven pro nulu. Využívá knihovnu MIDIUSB Arduina, která vyžaduje nativní port USB.

Brousek bez pájky + propojky

Breakout modul AD9833

Krokový ovladač A4988 (nebo podobný)

NEMA 17 krokový motor (nebo podobný)

- 24V napájení

Krok 1: Breadboarding

Breadboarding
Breadboarding

Základní myšlenkou je, že integrovaný obvod přímé digitální syntézy generuje čtvercovou vlnu, která pohání pin „krokového“ovladače krokového motoru. Tento krokový ovladač pak pohne motorem na zadanou slyšitelnou frekvenci. Směr motoru je poněkud libovolný, pokud kráčí na správné frekvenci.

Přístup, který upřednostňuji s chlebem, je nejprve spustit napájecí kolíky a uzemnění a poté začít spouštět všechna ostatní připojení bez napájení.

Přízemní:

- Připojte kolíky AGND a DGND modulu AD9833 k liště GND na desce.

- Připojte dva kolíky GND na krokovém ovladači k liště GND

- Přeneste to na jeden z GND pinů Arduino Due

Napájení 3,3 V:

- Připojte kolík VDD krokového ovladače k liště V+ kolejnice

- Připojte kolík VCC modulu AD9833 k liště V+ kolejnice

- Přeneste to na pin 3.3V Arduino Due

Napájení 24V:

- Připojte kolík VMOT k napájecímu zdroji 24 V DC (v závislosti na vašem výběru motoru možná budete chtít spustit vyšší nebo nižší napájecí lištu)

Připojení modulu k modulu:

- Připojte pin OUT z modulu AD9833 ke kolíku STEP ovladače motoru

Připojení krokového ovladače:

- Připojte konektory krokového motoru k pinům 2B/2A/1A/1B. Polarita není tak důležitá, pokud se fáze ovladače shodují s fázemi krokového motoru.

- Spojte RESET a SLEEP Piny dohromady a přeneste je na Arduino Due Pin 8.

- Připojte pin DIR k liště 3,3 V

Připojení modulu AD9833:

- Připojte SCLK ke kolíku SCK Arduino Due. Všimněte si, že tento kolík je na 6pinové hlavičce ICSP v blízkosti mikrokontroléru, nikoli na běžných externích zásuvkách.

- Připojte pin SDATA ke kolíku MOSI Due. Všimněte si, že tento kolík je na 6pinové hlavičce ICSP v blízkosti mikrokontroléru, nikoli na běžných externích zásuvkách.

- Připojte FSYNC k Arduino Due Pin 6 (toto je pin pro výběr čipu pro tento projekt)

Nyní, když je prkénko plně sestaveno, je čas se podívat na kód!

Krok 2: Programování a nastavení MIDI

Programování a nastavení MIDI
Programování a nastavení MIDI

Přiložený nákres.ino převede vstupy USB-MIDI přes nativní port USB Arduino Due a použije je k pohonu jednotky AD9833. Tento čip má DAC, který běží na frekvenci 25 MHz s 28bitovým rozlišením frekvence (celkové přebití toho, co je zde potřeba), a velká část kódu zde konfiguruje, aby běžela a produkovala čtvercovou vlnu.

Poznámka: existují dva USB porty. Jeden slouží k programování desky a druhý bude použit pro komunikaci MIDI přes USB

Všimněte si, že tato skica nebude fungovat tak, jak je, na Arduino Uno - tento projekt je specifický svou potřebou pro nativní USB v Arduino Due nebo podobných zařízeních

Možnosti přizpůsobení:

- Existují 2 režimy, které lze nastavit definicí makra preprocesoru. Pokud „#define STOPNOTES“zůstane nedotčeno, stepper se zastaví mezi poznámkami. To není vždy žádoucí (například hraní rychlých arpeggií). Chcete -li toto chování změnit, jednoduše odstraňte nebo okomentujte, že #define prohlášení a stepper poběží po hraní nepřetržitě.

-Používám levnou 2oktávovou MIDI klávesnici, která má tlačítko nahoru/dolů o oktávu, ale v případě, že tuto možnost nemáte, můžete níže uvedený frekvenční posun posunout o oktávu vynásobením nebo dělením mocninami 2.

Překlad MIDI na frekvenci se provádí pomocí tohoto řádku ve funkci playNote: int f_out = (int) (27,5*pow (2, (((float) midiNote-33)/12));

- K propojení přes USB MIDI používám svůj počítač - můžete to udělat z vašeho oblíbeného softwaru Digital Audio Workstation (DAW). Pokud ho nemáte, je docela snadné tento systém nastavit pomocí LMMS - bezplatné platformy s otevřeným zdrojovým kódem. Jakmile je nainstalován a spuštěn, jednoduše nastavte Arduino Due jako výstupní zařízení MIDI, a pokud používáte USB MIDI klávesnici, nastavte jej jako vstup.

Krok 3: Testování a experimentování

Čas hrát svůj krokový motor!

Jak bylo řečeno, celá myšlenka za tím byla jakýmsi experimentem mimo manžetu, takže v každém případě proveďte nějaké vlastní experimentování!

Doporučuje: