Innholdsfortegnelse:
Video: MIDI-kontrollert trinnmotor med direkte digital syntese (DDS) brikke: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Har du noen gang hatt en dårlig idé om at du BARE måtte bli til et miniprosjekt? Vel, jeg lekte med en skisse jeg hadde laget for Arduino Due med sikte på å lage musikk med en AD9833 Direct Digital Synthesis (DDS) -modul … og på et tidspunkt tenkte jeg "hei, kanskje jeg burde rigge en steppermotor/driver til dette". Og den ideen er nettopp det som utløste dette lille brødbrettbaserte prosjektet.
Inkludert i dette prosjektet vil være noen kode for bruk av MIDI-over-USB for å kontrollere en Arduino Due og sende firkantbølger mellom en AD9833-modul og trinndriveren. Det vil også være et diagram og grunnleggende instruksjoner for å koble dette til en Arduino Due.
Rekvisita:
Dette trenger du for dette prosjektet:
Arduino Due
MERK: Koden er skrevet for forfall, men den bør også fungere og/eller tilpasses for null. Den bruker Arduinos MIDIUSB -bibliotek, som krever en innebygd USB -port.
Loddefritt brødbrett + hoppere
AD9833 Breakout -modul
A4988 Stepper Driver (eller lignende)
NEMA 17 trinnmotor (eller lignende)
- 24V strømforsyning (merk at jeg valgte denne verdien på 24 volt fordi den var større enn den nominelle trinnmotorspenningen. Implementeringen din kan være annerledes hvis du bruker en større motor)
Trinn 1: Breadboarding
Den grunnleggende ideen bak dette er at Direct Digital Synthesis IC vil generere en firkantbølge for å drive trinnmotordriverens "trinn" -nål. Denne stepperdriveren vil deretter bevege motoren med den angitte hørbare frekvensen. Retningen til motoren er noe vilkårlig så lenge den går med riktig frekvens.
Tilnærmingen jeg foretrekker å ta med breadboarding er å kjøre strømnålene og bakken først og deretter begynne å kjøre alle de andre, ikke-strømtilkoblingene.
Bakke:
- Koble AGND- og DGND -pinnene på AD9833 -modulen til GND -skinnen på brødbrettet.
- Koble de to GND -pinnene på stepperdriveren til GND -skinnen
- Ta med dette til en av Arduino Due's GND Pins
3.3V Strøm:
- Koble VDD -pinnen til trinndriveren til brødbrettets V+ skinne
- Koble VCC -pinnen til AD9833 -modulen til brødbrettets V+ skinne
- Ta dette med til Arduino Due's 3.3V Pin
24V strøm:
- Koble VMOT -pinnen til 24V DC strømforsyning (avhengig av motorvalg, kan det være lurt å kjøre en høyere eller lavere forsyningsskinne)
Modul-til-modul-tilkobling:
- Koble OUT -pinnen fra AD9833 -modulen til STEP -pinnen på motordriveren
Stepper Driver -tilkoblinger:
- Koble trinnmotorforbindelsene til 2B/2A/1A/1B -pinnene. Polaritet er ikke så viktig, så lenge driverfasene stemmer overens med trinnene i trinnmotoren.
- Koble RESET- og SLEEP -pinnene sammen, og ta dem med til Arduino Due Pin 8.
- Koble DIR -pinnen til 3.3V -skinnen
AD9833 modultilkoblinger:
- Koble SCLK til Arduino Due's SCK -pinne. Vær oppmerksom på at denne pinnen er på den 6-pinners ICSP-hodet i nærheten av mikrokontrolleren, ikke på de vanlige eksterne kvinnelige hodene.
- Koble SDATA -pinnen til Due's MOSI -pinne. Vær oppmerksom på at denne pinnen er på den 6-pinners ICSP-hodet i nærheten av mikrokontrolleren, ikke på de vanlige eksterne kvinnelige hodene.
- Koble FSYNC til Arduino Due Pin 6 (dette er Chip Select pin for dette prosjektet)
Nå som brødbrettet er ferdig montert, er det på tide å ta en titt på koden!
Trinn 2: Programmering og MIDI -oppsett
Den vedlagte.ino-skissen vil ta USB-MIDI-innganger gjennom Arduino Due's native USB-port, og vil bruke dem til å kjøre AD9833. Denne brikken har en DAC som kjører på 25 MHz med 28 bits med frekvensoppløsning (total overkill for det som trengs her), og mye av koden her konfigurerer den til å kjøre og sende ut en firkantbølge.
Merk: det er to USB -porter. Den ene brukes til programmering av brettet, og den andre skal brukes til MIDI-over-USB-kommando
Vær oppmerksom på at denne skissen ikke fungerer som den er på Arduino Uno - dette prosjektet er spesifikt i behovet av Native USB i Arduino Due eller lignende enheter
Tilpasningsalternativer:
- Det er 2 moduser, som kan angis med en forhåndsbehandlingsmakrodefinisjon. Hvis "#define STOPNOTES" er intakt, stopper trinnet mellom notene. Dette er ikke alltid ønsket (for eksempel å spille raske arpeggioer), så for å endre denne oppførselen, bare slett eller kommenter at #define -setningen og stepperen vil kjøre kontinuerlig når den er spilt.
-Jeg bruker et billig 2-oktav MIDI-tastatur med dette som har en oktav opp/ned-knapp, men hvis du ikke har det alternativet, kan du oktavskifte frekvensoversettelsen nedenfor ved å multiplisere eller dividere med 2.
MIDI-til-frekvens-oversettelsen utføres med denne linjen i playNote-funksjonen: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));
- Jeg pleier å bruke min PC for grensesnitt over USB MIDI - du kan gjøre dette fra din favoritt Digital Audio Workstation (DAW) programvare. Hvis du ikke har en, er det ganske enkelt å sette opp dette systemet ved hjelp av LMMS - en gratis, åpen kildekode -plattform. Når den er installert og kjører, setter du bare Arduino Due som MIDI -utgangsenhet, og hvis du bruker et USB MIDI -tastatur, angir du det som en inngang.
Trinn 3: Testing og eksperimentering
På tide å spille steppermotoren din!
Som sagt, hele ideen bak dette var et slags off-the-cuff-eksperiment, så gjør for all del noen eksperimenter!
Anbefalt:
Bærbart innendørs lys med 100W LED -brikke: 26 trinn (med bilder)
Bærbart innendørs lys med 100W LED -brikke: I denne instruksjonsboken / videoen vil jeg vise deg hvordan jeg lagde bærbart innendørs lys med 100W LED -brikke som er drevet med 19V 90W strømforsyning fra en gammel bærbar PC. UPDATE 2 (FINAL): Temperatur rundt LED -en (37C stabil @85W etter 30 minutter i et 20C rom)
Fantastisk analog syntese/organ som bare bruker diskrete komponenter: 10 trinn (med bilder)
Awesome Analog Synthesizer/Organ Using Only Discrete Components: Analoge synthesizere er veldig kule, men også ganske vanskelige å lage. Så jeg ønsket å lage en så enkel som den kan bli, så dens funksjon kan være lett å forstå. For at den skal fungere, kan du trenger noen få grunnleggende sub-kretser: En enkel oscillator med resis
Min første syntese: 29 trinn (med bilder)
Min første syntese: Barnesynten kom til da jeg satt bøyd over et sammenfiltret rot av synthesizertråder. Vennen min Oliver kom bort, vurderte situasjonen og sa: "Du vet at du har lykkes med å lage verdens mest kompliserte barneleke." Mens min første
La oss bygge en SN76489 USB MIDI -syntese med Arduino Nano: 7 trinn
La oss bygge en SN76489 USB MIDI Synth med Arduino Nano: Har du noen gang ønsket å bygge din egen synthesizer basert på gamle chip-melodier fra 80-tallet? Spill enkle polyfoniske låter som høres ut akkurat som disse gamle Sega Master System- og Megadrive -videospillene hørtes ut som? Jeg har, så jeg bestilte noen få SN76489 -brikker fra eb
Kom i kontakt med din indre brikke: 7 trinn
Kom i kontakt med din indre brikke: Hvis du leser dette på det instruerbare nettstedet, bruker du nesten helt sikkert en datamaskin for å gjøre det. Og som de fleste av dere vet, bruker datamaskiner mikrochips til å behandle all informasjonen de jobber med og lagrer. Du har kanskje til og med sett IC -brikkene