Taula de continguts:
Vídeo: Motor pas a pas controlat per MIDI amb xip de síntesi digital directa (DDS): 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Alguna vegada heu tingut una mala idea que NOMÉS heu de convertir-vos en un mini projecte? Bé, estava jugant amb un esbós que havia fet per a l'Arduino Due dirigit a fer música amb un mòdul de síntesi digital directa (DDS) AD9833 … i en algun moment vaig pensar "hey, potser hauria d'instal·lar un motor pas a pas / controlador per això ". I aquesta idea és exactament el que va provocar aquest petit projecte basat en la taula de treball.
Aquest projecte inclourà algun codi per utilitzar MIDI-over-USB per controlar un Arduino Due i enviar ones quadrades entre un mòdul AD9833 i el controlador pas a pas. També hi haurà un diagrama i instruccions bàsiques per connectar-lo a un Arduino Due.
Subministraments:
Què necessiteu per a aquest projecte:
Arduino Due
NOTA: El codi està escrit per a Due, però també hauria de funcionar i / o adaptar-se al zero. Utilitza la biblioteca MIDIUSB d’Arduino, que requereix un port USB natiu.
Taula de pa sense soldadura + Jumpers
Mòdul AD9833 Breakout
Controlador pas a pas A4988 (o similar)
Motor pas a pas NEMA 17 (o similar)
- Font d'alimentació de 24 V (nota, he escollit aquest valor de 24 volts perquè era superior al voltatge nominal del motor pas a pas. La vostra implementació pot ser diferent si utilitzeu un motor més gran)
Pas 1: Taulers de revisió
La idea bàsica darrere d’això és que el CI de síntesi digital directa generarà una ona quadrada per conduir el pin "pas" del controlador del motor pas a pas. Aquest controlador pas a pas mourà el motor a la freqüència sonora especificada. La direcció del motor és una mica arbitrària sempre que passi a la freqüència correcta.
L’enfocament que prefereixo adoptar amb el taulell de navegació consisteix en executar primer els pins i els terrenys d’alimentació i després començar a executar totes les altres connexions sense alimentació.
Terra:
- Connecteu els passadors AGND i DGND del mòdul AD9833 al carril GND de la placa.
- Connecteu els dos passadors GND del controlador pas a pas amb el carril GND
- Porteu-ho a un dels pins GND d'Arduino Due
Potència de 3,3 V:
- Connecteu el pin VDD del controlador Stepper al rail V + de la placa de control
- Connecteu el pin VCC del mòdul AD9833 al rail V + del tauler de control
- Porteu-ho al pin d'Arduino Due de 3,3 V
Potència de 24V:
- Connecteu el pin VMOT a la font d'alimentació de 24 V CC (segons el motor que trieu, és possible que vulgueu fer servir un rail d'alimentació superior o inferior)
Connexió de mòdul a mòdul:
- Connecteu el pin OUT del mòdul AD9833 al pin STEP del controlador del motor
Connexions del controlador pas a pas:
- Connecteu les connexions del motor pas a pas als pins 2B / 2A / 1A / 1B. La polaritat no és tan important, sempre que les fases del controlador coincideixin amb les del motor pas a pas.
- Connecteu els pins RESET i SLEEP i porteu-los a l'Arduino Due Pin 8.
- Connecteu el pin DIR al carril de 3,3V
Connexions del mòdul AD9833:
- Connecteu SCLK al pin SCK d'Arduino Due. Tingueu en compte que aquest pin es troba a la capçalera ICSP mascle de 6 pins a prop del microcontrolador, no a les capçaleres femenines externes normals.
- Connecteu el pin SDATA al pin MOSI de Due. Tingueu en compte que aquest pin es troba a la capçalera ICSP mascle de 6 pins a prop del microcontrolador, no a les capçaleres femenines externes normals.
- Connecteu el FSYNC a l'Arduino Due Pin 6 (aquest és el pin Chip Select per a aquest projecte)
Ara que la taula de treball està totalment muntada, és hora de fer una ullada al codi.
Pas 2: programació i configuració MIDI
L'esbós.ino adjunt prendrà entrades USB-MIDI a través del port USB natiu d'Arduino Due i les utilitzarà per conduir l'AD9833. Aquest xip té un DAC que funciona a 25 MHz amb 28 bits de resolució de freqüència (excés total del que es necessita aquí), i gran part del codi aquí està configurant-lo per executar i produir una ona quadrada.
Nota: hi ha dos ports USB. Un s’utilitza per programar la placa i l’altre s’utilitzarà per a comunicacions MIDI-over-USB
Tingueu en compte que aquest esbós no funcionarà tal com està a l'Arduino Uno: aquest projecte és específic en la seva necessitat del Native USB a l'Arduino Due o dispositius similars
Opcions de personalització:
- Hi ha 2 modes, que es poden configurar mitjançant una definició de macro del preprocessador. Si es deixa intacte "#define STOPNOTES", el pas a pas s'aturarà entre les notes. Això no sempre es desitja (per exemple, jugar a arpegis ràpids), així que, per canviar aquest comportament, simplement suprimiu o comenteu que la sentència #define i el pas a pas funcionaran contínuament un cop reproduïts.
- Utilitzo un teclat MIDI barat de 2 octaves amb aquest botó que té un botó d’octava amunt / avall, però en cas que no tingueu aquesta opció, podeu canviar d’octava la traducció de freqüència inferior multiplicant o dividint per potències de 2.
La traducció MIDI a freqüència es fa amb aquesta línia a la funció playNote: int f_out = (int) (27,5 * pow (2, ((float) midiNote-33) / 12));
- Tendeixo a utilitzar el meu PC per a la interfície mitjançant USB MIDI: podeu fer-ho des del vostre programari DAW (Digital Audio Workstation) preferit. Si no en teniu, és bastant fàcil configurar aquest sistema mitjançant LMMS, una plataforma gratuïta de codi obert. Un cop instal·lat i funcionant, simplement configureu Arduino Due com a dispositiu de sortida MIDI i, si esteu fent servir un teclat MIDI USB, configureu-lo com a entrada.
Pas 3: proves i proves
És hora de tocar el motor pas a pas!
Com es va dir, tota la idea darrere d’això era una mena d’experiment senzill, així que, per descomptat, feu algun experiment propi.
Recomanat:
Motor pas a pas controlat Motor pas a pas sense microcontrolador: 6 passos
Motor pas a pas controlat pel motor pas a pas sense microcontrolador. Aquest projecte no requereix cap circuit complex ni un microcontrolador. Així doncs, sense més, comencem
Motor pas a pas controlat pel motor pas a pas sense microcontrolador (V2): 9 passos (amb imatges)
Motor pas a pas controlat amb motor pas a pas sense microcontrolador (V2): en una de les meves instruccions anteriors, us vaig mostrar com controlar un motor pas a pas mitjançant un motor pas a pas sense microcontrolador. Va ser un projecte ràpid i divertit, però va venir amb dos problemes que es resoldran en aquest instructiu. Llavors, enginy
Locomotora model controlada per motor pas a pas - Motor pas a pas com a codificador rotatiu: 11 passos (amb imatges)
Locomotora controlada per motor pas a pas | Motor pas a pas com a codificador rotatiu: en una de les instruccions anteriors, vam aprendre a utilitzar un motor pas a pas com a codificador rotatiu. En aquest projecte, ara utilitzarem aquest motor pas a pas encodador giratori per controlar una locomotora model mitjançant un microcontrolador Arduino. Així, sense fu
Motor pas a pas controlat Motor pas a pas com a codificador rotatiu: 11 passos (amb imatges)
Motor pas a pas controlat Motor pas a pas com a codificador rotatiu: teniu un parell de motors pas a pas al voltant i voleu fer alguna cosa? En aquesta instrucció, fem servir un motor pas a pas com a codificador rotatiu per controlar la posició d’un altre motor pas a pas mitjançant un microcontrolador Arduino. Així doncs, sense més preàmbuls, anem a
Base directa del mòbil d’entrada directa: 10 passos
Base directa del mòbil d’entrada directa: ho sé. El món necessita un altre suport per a mòbils tant com jo necessito un forat al cap. Sorprenentment, no vaig poder trobar un suport per a mòbil per al meu camió que s’adapti a les meves necessitats. No pensava que les meves necessitats fossin tan exòtiques, però no trobava