Sisukord:

Otsese digitaalse sünteesi (DDS) kiibiga MIDI-juhitav samm-mootor: 3 sammu
Otsese digitaalse sünteesi (DDS) kiibiga MIDI-juhitav samm-mootor: 3 sammu

Video: Otsese digitaalse sünteesi (DDS) kiibiga MIDI-juhitav samm-mootor: 3 sammu

Video: Otsese digitaalse sünteesi (DDS) kiibiga MIDI-juhitav samm-mootor: 3 sammu
Video: Документальный фильм «Экономика солидарности в Барселоне» (многоязычная версия) 2024, November
Anonim
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga
MIDI-juhitav samm-mootor otsese digitaalse sünteesi (DDS) kiibiga

Kas teil on kunagi olnud halb mõte, et pidite lihtsalt miniprojektiks muutuma? Noh, ma mängisin ringi eskiisiga, mille olin koostanud Arduino Due jaoks ja mille eesmärk oli teha muusikat AD9833 Direct Digital Synthesis (DDS) mooduliga … ja mingil hetkel mõtlesin: "Hei, võib -olla peaksin astmemootori/draiveri seadistama see ". Ja see idee on just see, mis selle väikese leivaplaadipõhise projekti vallandas.

Sellesse projekti on kaasatud kood MIDI-üle-USB kasutamiseks Arduino Due juhtimiseks ja kandiliste lainete saatmiseks AD9833 mooduli ja samm-draiveri vahel. Samuti on skeem ja põhijuhised selle ühendamiseks Arduino Duega.

Tarvikud:

Mida vajate selle projekti jaoks:

Arduino Due

MÄRKUS. Kood on kirjutatud tähtajaks, kuid see peaks töötama ja/või olema kohandatud nulliks. See kasutab Arduino MIDIUSB raamatukogu, mis nõuab natiivset USB -porti.

jooteta leivalaud + džemprid

AD9833 Breakout moodul

A4988 samm -draiver (või sarnane)

NEMA 17 samm -mootor (või sarnane)

- 24 V toiteallikas (pange tähele, et valisin selle väärtuse 24 volti, kuna see oli suurem kui samm -mootori nimipinge. Suurema mootori kasutamisel võib teie rakendus olla erinev)

1. samm: leivalaud

Leivalaud
Leivalaud

Selle põhiidee on see, et Direct Digital Synthesis IC genereerib nelinurkse laine, et juhtida samm -mootori juhi "samm" tihvti. See sammujuht liigutab mootorit määratud helisagedusel. Mootori suund on mõnevõrra suvaline, kui see liigub õigel sagedusel.

Lähenemisviis, mida ma eelistan leivalaua puhul kasutada, on kõigepealt toitepistikute ja -pindade käivitamine ning seejärel kõigi muude toiteväliste ühenduste käivitamine.

Maapind:

- Ühendage mooduli AD9833 AGND ja DGND kontaktid leivaplaadil asuva GND -liistuga.

- Ühendage samm -juhi kaks GND tihvti GND -rööpaga

- Viige see ühele Arduino Due GND -tihvtile

3.3V võimsus:

- Ühendage samm -draiveri VDD tihvt leivaplaadi V+ rööpaga

- Ühendage AD9833 mooduli VCC tihvt leivaplaadi V+ rööpaga

- Viige see Arduino Due 3,3 V pinnile

24V toide:

- Ühendage VMOT -tihvt 24 V alalisvoolu toiteallikaga (sõltuvalt teie valitud mootorist võite soovida kasutada kõrgemat või madalamat toiteliini)

Moodulitevaheline ühendus:

- Ühendage AD9833 mooduli OUT -tihvt mootori juhi STEP -tihvtiga

Stepper draiveri ühendused:

- Ühendage samm -mootori ühendused 2B/2A/1A/1B tihvtidega. Polaarsus pole nii tähtis, kui juhi faasid sobivad sammuga.

- Ühendage RESET ja SLEEP tihvtid kokku ja viige need Arduino Due Pin 8 külge.

- Ühendage DIR -tihvt 3.3V rööpaga

AD9833 mooduli ühendused:

- Ühendage SCLK Arduino Due SCK -tihvtiga. Pange tähele, et see tihvt asub 6-kontaktilise isase ICSP päises mikrokontrolleri lähedal, mitte tavalistel välistel naissoost päistel.

- Ühendage SDATA tihvt Due's MOSI tihvtiga. Pange tähele, et see tihvt asub 6-kontaktilise isase ICSP päises mikrokontrolleri lähedal, mitte tavalistel välistel naissoost päistel.

- Ühendage FSYNC Arduino Due Pin 6 -ga (see on selle projekti jaoks Chip Select pin)

Nüüd, kui leivaplaat on täielikult kokku pandud, on aeg koodile pilk peale visata!

2. samm: programmeerimine ja MIDI seadistamine

Programmeerimine ja MIDI seadistamine
Programmeerimine ja MIDI seadistamine

Lisatud.ino visand võtab USB-MIDI sisendid läbi Arduino Due natiivse USB-pordi ja kasutab neid AD9833 juhtimiseks. Sellel kiibil on DAC, mis töötab sagedusel 25 MHz sagedusega 28 bitti (täielik ülekoormus selle jaoks, mida siin vaja on) ja suur osa siinsetest koodidest konfigureerib seda ruutlaine käivitamiseks ja väljastamiseks.

Märkus: USB -porte on kaks. Ühte kasutatakse tahvli programmeerimiseks ja teist kasutatakse MIDI-üle-USB komm

Pange tähele, et see visand ei tööta Arduino Uno praegusel kujul - see projekt on spetsiifiline, kuna vajab Arduino Due või sarnaste seadmete natiivset USB -d

Kohandamisvalikud:

- On 2 režiimi, mida saab seadistada eeltöötleja makromääratlusega. Kui "#define STOPNOTES" jäetakse puutumata, peatub samm steppide vahel. Seda ei soovita alati (näiteks kiirete arpeggiosade mängimine), nii et selle käitumise muutmiseks lihtsalt kustutage või kommenteerige, et #define lause ja samm liiguvad esitamise ajal pidevalt.

-Ma kasutan odavat 2-oktaavilist MIDI-klaviatuuri, millel on oktaavi üles/alla nupp, kuid kui teil seda võimalust pole, saate alloleva sagedusega tõlget oktaavi nihutada, korrutades või jagades 2-ga.

MIDI-sagedusmuundamine toimub selle reaga funktsioonis playNote: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));

- Ma kasutan oma arvutit USB MIDI kaudu liidestamiseks - seda saate teha oma lemmik Digital Audio Workstation (DAW) tarkvarast. Kui teil seda pole, on selle süsteemi seadistamine LMMS -i - tasuta avatud lähtekoodiga platvormi - abil üsna lihtne. Kui see on installitud ja käivitatud, määrake Arduino Due lihtsalt MIDI -väljundseadmeks ja kui kasutate USB -MIDI -klaviatuuri, määrake see sisendiks.

3. samm: katsetamine ja katsetamine

Aeg mängida oma samm -mootorit!

Nagu öeldud, oli kogu selle idee omamoodi käeulatusest väljas, seega tehke igal juhul oma katsetusi!

Soovitan: