Obsah:
Video: MIDI ovládaný krokový motor s čipem s přímou digitální syntézou (DDS): 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
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
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
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:
Přenosné vnitřní světlo s LED čipem 100 W: 26 kroků (s obrázky)
Přenosné vnitřní světlo se 100W LED čipem: V tomto návodu / videu vám ukážu, jak jsem vyrobil přenosné vnitřní světlo se 100W LED čipem, který je napájen 19V 90W napájecím zdrojem ze starého notebooku. UPDATE 2 (KONEČNÉ): Teplota kolem LED (37C stabilní @85W po 30 minutách v místnosti 20C)
IR ovládaný krokový motorový zdvih: 15 kroků
IR řízený krokový motorový zdvih: Potřeboval jsem automatizovat zvedání velkého obrazu, který skrývá televizi namontovanou nad krbem. Obraz je namontován na vlastní posuvný ocelový rám, který používá lana, kladky a protizávaží, takže jej lze zvednout ručně. Zní to teoreticky dobře, ale
Krokový motorem řízený krokový motor bez mikrokontroléru!: 6 kroků
Krokový motorem řízený krokový motor bez mikrokontroléru !: V tomto rychlém návodu vyrobíme jednoduchý ovladač krokového motoru pomocí krokového motoru. Tento projekt nevyžaduje žádné složité obvody ani mikrokontrolér. Takže bez dalších okolků začneme
Krokový motorem řízený krokový motor bez mikrokontroléru (V2): 9 kroků (s obrázky)
Krokový motorem řízený krokový motor bez mikrokontroléru (V2): V jednom z mých předchozích Instructables jsem vám ukázal, jak ovládat krokový motor pomocí krokového motoru bez mikrokontroléru. Byl to rychlý a zábavný projekt, ale přišel se dvěma problémy, které budou v tomto Instructable vyřešeny. Takže vtip
Krokový motorem řízený krokový motor - Krokový motor jako rotační kodér: 11 kroků (s obrázky)
Krokový motorem řízený krokový motor | Krokový motor jako rotační kodér: Máte pár krokových motorů a chcete něco udělat? V tomto Instructable použijme krokový motor jako rotační kodér k ovládání polohy jiného krokového motoru pomocí mikrokontroléru Arduino. Takže bez dalších okolků pojďme