INHOUDSOPGAWE:

MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip: 3 stappe
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip: 3 stappe

Video: MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip: 3 stappe

Video: MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip: 3 stappe
Video: ВСТРЕЧИ С НЛО В БЕНТУОТЕРСЕ (военный свидетель) #НЛО 2024, November
Anonim
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip
MIDI-beheerde stapmotor met 'n direkte digitale sintese (DDS) chip

Het u al ooit 'n slegte idee dat u net 'n mini -projek moes word? Ek speel rond met 'n skets wat ek vir die Arduino Due gemaak het, wat daarop gemik was om musiek te maak met 'n AD9833 Direct Digital Synthesis (DDS) -module … hierdie . En die idee is presies wat hierdie klein broodplank-gebaseerde projek tot gevolg gehad het.

'N Kode vir die gebruik van MIDI-oor-USB om 'n Arduino Due te beheer en vierkantige golwe tussen 'n AD9833-module en die stepper-bestuurder te stuur, bevat 'n kode. Daar sal ook 'n diagram en basiese instruksies wees om dit aan te sluit op 'n Arduino Due.

Benodighede:

Wat u benodig vir hierdie projek:

Arduino Due

LET WEL: die kode is geskryf vir die betaaldatum, maar dit moet ook werk en/of aangepas word vir die nul. Dit maak gebruik van die MIDIUSB -biblioteek van Arduino, wat 'n inheemse USB -poort benodig.

Soldeerlose broodbord + springers

AD9833 Breakout Module

A4988 Stepper Driver (of soortgelyk)

NEMA 17 -stapmotor (of soortgelyk)

- 24V kragtoevoer (let op, ek het hierdie waarde van 24 volt gekies omdat dit groter was as die nominale stappermotorspanning. U implementering kan anders wees as u 'n groter motor gebruik)

Stap 1: Breadboarding

Broodplankry
Broodplankry

Die basiese idee hieragter is dat die Direct Digital Synthesis IC 'n vierkantige golf sal genereer om die 'stap' pen van die stapmotorbestuurder aan te dryf. Hierdie stepper -bestuurder sal die motor dan op die gespesifiseerde hoorbare frekwensie beweeg. Die rigting van die motor is ietwat willekeurig, solank dit op die regte frekwensie stap.

Die benadering wat ek verkies om met breadboarding te werk, is om eers die kragpenne en -gronde te laat loop en dan al die ander verbindings sonder krag te begin.

Grond:

- Koppel die AGND- en DGND -penne van die AD9833 -module aan die GND Rail op die broodbord.

- Koppel die twee GND -penne op die Stepper Driver aan die GND Rail

- Bring dit na een van die GNU -penne van die Arduino Due

3.3V krag:

- Koppel die VDD -pen van die Stepper Driver aan die V+ Rail van die broodbord

- Koppel die VCC -pen van die AD9833 -module aan die V+ Rail van die broodbord

- Bring dit na die Arduino Due se 3.3V -pen

24V krag:

- Koppel die VMOT -pen aan die 24V DC -kragtoevoer (afhangende van u motorkeuse, kan u 'n hoër of laer toevoerrail gebruik)

Module-tot-module-verbinding:

- Koppel die OUT -pen van die AD9833 -module aan die STEP -pen van die motorbestuurder

Stepper Driver -verbindings:

- Koppel die stapmotorverbindings aan die 2B/2A/1A/1B -penne. Polariteit is nie so belangrik nie, solank die bestuurdersfases ooreenstem met dié van die stappermotor.

- Koppel die RESET- en SLEEP -penne aan mekaar en bring die na die Arduino Due Pin 8.

- Koppel die DIR -pen aan die 3.3V -rail

AD9833 -moduleverbindings:

- Koppel SCLK aan die Arduino Due se SCK -pen. Let daarop dat hierdie pen op die 6-pen manlike ICSP-kop naby die mikrobeheerder is, nie op die normale eksterne vroulike opskrifte nie.

- Koppel die SDATA -pen aan die Due se MOSI -pen. Let daarop dat hierdie pen op die 6-pen manlike ICSP-kop naby die mikrobeheerder is, nie op die normale eksterne vroulike opskrifte nie.

- Koppel die FSYNC aan die Arduino Due Pin 6 (dit is die Chip Select -pen vir hierdie projek)

Noudat die broodbord volledig gemonteer is, is dit tyd om na die kode te kyk!

Stap 2: Programmering en MIDI -opstelling

Programmering en MIDI -opstelling
Programmering en MIDI -opstelling

Die aangehegte.ino-skets neem USB-MIDI-insette deur die Arduino Due se oorspronklike USB-poort en gebruik dit om die AD9833 te bestuur. Hierdie chip het 'n DAC wat werk by 25MHz met 28 bisse frekwensie -resolusie (totale oormaat vir wat hier nodig is), en baie van die kode hier stel dit in om 'n vierkantgolf uit te voer en uit te voer.

Let wel: daar is twee USB -poorte. Die een word gebruik vir die programmering van die bord, en die ander sal gebruik word vir MIDI-over-USB comm

Let daarop dat hierdie skets nie werk soos op die Arduino Uno nie - hierdie projek is spesifiek in die behoefte aan die oorspronklike USB in die Arduino Due of soortgelyke toestelle

Aanpassingsopsies:

- Daar is 2 modusse wat deur 'n voorverwerker -makro -definisie ingestel kan word. As '#define STOPNOTES' ongeskonde gelaat word, stop die stepper tussen die note. Dit is nie altyd wenslik nie (byvoorbeeld om vinnige arpeggio's te speel). Om hierdie gedrag te verander, moet u slegs die #define -verklaring uitvee of kommentaar lewer en die stap sal voortdurend loop sodra dit gespeel is.

-Ek gebruik 'n goedkoop 2-oktaaf MIDI-sleutelbord hiermee wat 'n oktaaf op/af-knoppie het, maar as u nie die opsie het nie, kan u die frekwensie-vertaling onder oktaaf verskuif deur te vermenigvuldig of te deel met magte van 2.

Die MIDI-na-frekwensie-vertaling word uitgevoer met hierdie reël in die playNote-funksie: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Ek is geneig om my rekenaar te gebruik om oor USB MIDI te koppel - u kan dit doen met u gunsteling sagteware vir digitale klankwerkstasies (DAW). As u nie een het nie, is dit redelik maklik om hierdie stelsel op te stel met LMMS - 'n gratis, open source platform. Sodra dit geïnstalleer en uitgevoer is, stel u die Arduino Due eenvoudig as die MIDI -uitvoerapparaat in, en as u 'n USB MIDI -sleutelbord gebruik, stel dit as 'n invoer in.

Stap 3: Toets en eksperimenteer

Tyd om jou stapmotor te speel!

Soos hierbo genoem, was die hele idee hiervan 'n soort van 'n off-the-manchet-eksperiment, maar probeer in elk geval self!

Aanbeveel: