Indholdsfortegnelse:
Video: MIDI-styret trinmotor med en chip til direkte digital syntese (DDS): 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Har du nogensinde haft en dårlig idé om, at du BARE skulle blive til et mini -projekt? Nå, jeg legede med en sketch jeg havde lavet til Arduino Due med det formål at lave musik med et AD9833 Direct Digital Synthesis (DDS) modul … og på et tidspunkt tænkte jeg "hey, måske skulle jeg rigge en stepper motor/driver til det her". Og den idé er præcis det, der udløste dette lille breadboard-baserede projekt.
Inkluderet i dette projekt vil være en kode til brug af MIDI-over-USB til at styre en Arduino Due og sende firkantede bølger mellem et AD9833-modul og stepper-driveren. Der vil også være et diagram og grundlæggende instruktioner til tilslutning af dette til en Arduino Due.
Tilbehør:
Hvad skal du bruge til dette projekt:
Arduino Due
BEMÆRK: Koden er skrevet til Due, men den skal også fungere og/eller tilpasses til nul. Det anvender Arduinos MIDIUSB -bibliotek, som kræver en indbygget USB -port.
Loddefri brødbræt + Jumpers
AD9833 Breakout -modul
A4988 Stepper Driver (eller lignende)
NEMA 17 Stepmotor (eller lignende)
- 24V strømforsyning (bemærk, jeg valgte denne værdi på 24 volt, fordi den var større end den nominelle trinmotorspænding. Din implementering kan være anderledes, hvis du bruger en større motor)
Trin 1: Breadboarding
Den grundlæggende idé bag dette er, at Direct Digital Synthesis IC vil generere en firkantbølge til at drive trinmotorens driver "trin" -stift. Denne stepper driver vil derefter flytte motoren med den angivne hørbare frekvens. Motorens retning er noget vilkårlig, så længe den træder med den korrekte frekvens.
Den fremgangsmåde, jeg foretrækker at følge med breadboarding, er at køre strømstifterne og grunde først og derefter begynde at køre alle de andre, ikke-strømforbindelser.
Jord:
- Tilslut AGND- og DGND -benene på AD9833 -modulet til GND -skinnen på brødbrættet.
- Tilslut de to GND Pins på Stepper Driver til GND Rail
- Bring dette over til en af Arduino Due's GND Pins
3.3V strøm:
- Tilslut VDD Pin på Stepper Driver til breadboardets V+ Rail
- Tilslut VCC -stiften på AD9833 -modulet til brødbrættets V+ skinne
- Bring dette over til Arduino Due's 3.3V Pin
24V effekt:
- Tilslut VMOT -stiften til 24V DC -strømforsyningen (afhængigt af dit motorvalg, vil du måske køre en højere eller lavere forsyningsskinne)
Modul-til-modul-forbindelse:
- Tilslut OUT -stiften fra AD9833 -modulet til STEP -stiften på motordriveren
Stepper Driver -forbindelser:
- Tilslut trinmotorforbindelserne til 2B/2A/1A/1B benene. Polaritet er ikke så vigtigt, så længe førerfaserne matcher trinmotorens.
- Tilslut RESET- og SLEEP -benene sammen, og bring dem over til Arduino Due Pin 8.
- Tilslut DIR -stiften til 3.3V -skinnen
AD9833 -modulforbindelser:
- Tilslut SCLK til Arduino Due's SCK -pin. Bemærk, at denne pin er på det 6-benede ICSP-header til mænd nær mikrokontrolleren, ikke på de normale eksterne kvindelige headers.
- Tilslut SDATA -stiften til Due's MOSI -pin. Bemærk, at denne pin er på det 6-benede ICSP-header til mænd nær mikrokontrolleren, ikke på de normale eksterne kvindelige headers.
- Tilslut FSYNC til Arduino Due Pin 6 (dette er Chip Select pin til dette projekt)
Nu hvor brødbrættet er færdigmonteret, er det tid til at tage et kig på koden!
Trin 2: Programmering og MIDI -opsætning
Den vedhæftede.ino-skitse tager USB-MIDI-indgange gennem Arduino Due's native USB-port og bruger dem til at drive AD9833. Denne chip har en DAC, der kører ved 25 MHz med 28 bit frekvensopløsning (total overkill for det, der er nødvendigt her), og meget af koden her konfigurerer det til at køre og udsende en firkantbølge.
Bemærk: Der er to USB -porte. Den ene bruges til programmering af tavlen, og den anden bruges til MIDI-over-USB komm
Bemærk, at denne skitse ikke fungerer som den er på Arduino Uno - dette projekt er specifikt i forhold til dets behov for Native USB i Arduino Due eller lignende enheder
Tilpasningsmuligheder:
- Der er 2 tilstande, der kan indstilles ved en makrodefinition på en forprocessor. Hvis "#define STOPNOTES" efterlades intakt, stopper stepper mellem noterne. Dette er ikke altid ønsket (f.eks. Afspilning af hurtige arpeggioer), så for at ændre denne adfærd skal du blot slette eller kommentere, at #define -sætning og stepper kører kontinuerligt, når de er spillet.
-Jeg bruger et billigt 2-oktavs MIDI-tastatur med dette, der har en oktav op/ned-knap, men hvis du ikke har den mulighed, kan du oktavskifte nedenstående frekvensoversættelse ved at multiplicere eller dividere med 2.
MIDI-til-frekvens-oversættelsen udføres med denne linje i playNote-funktionen: int f_out = (int) (27,5*pow (2, ((float) midiNote-33)/12));
- Jeg plejer at bruge min pc til grænseflade over USB MIDI - du kan gøre dette fra din foretrukne Digital Audio Workstation (DAW) software. Hvis du ikke har en, er det ret let at konfigurere dette system ved hjælp af LMMS - en gratis open source -platform. Når det er installeret og kører, skal du blot indstille Arduino Due som MIDI -outputenhed, og hvis du bruger et USB MIDI -tastatur, skal du indstille det som en input.
Trin 3: Test og eksperimenter
Tid til at spille din stepper motor!
Som nævnt var hele ideen bag dette et slags off-the-cuff-eksperiment, så prøv på alle måder selv!
Anbefalede:
Genbrug gammel bærbar touchpad til at styre en trinmotor: 11 trin (med billeder)
Genbrug den gamle bærbare touchpad til at styre en trinmotor: Jeg lavede dette projekt for et par måneder siden. For et par dage siden lagde jeg en video af projektet ud på r/Arduino på Reddit. Da jeg så folk blive interesseret i projektet, besluttede jeg at gøre denne Instructable, hvor jeg har foretaget nogle ændringer af Arduino -koden og
Sådan bruges trinmotor som roterende encoder og OLED -display til trin: 6 trin
Sådan bruges trinmotor som roterende encoder og OLED -skærm til trin: I denne vejledning lærer vi, hvordan du sporer trinmotortrinene på OLED -skærmen. Se en demonstrationsvideo. Kredit for den originale vejledning går til youtube -bruger " sky4fly "
Valg af trinmotor og driver til et Arduino Automated Shade Screen Project: 12 trin (med billeder)
Valg af en trinmotor og driver til et Arduino Automated Shade Screen Project: I denne Instructable vil jeg gennemgå de trin, jeg tog for at vælge en Step Motor og Driver til et prototype Automated Shade Screen -projekt. Skærmskærmene er de populære og billige Coolaroo håndsvingede modeller, og jeg ville udskifte t
Smart styresystem til robotbiler ved hjælp af trinmotor fra gammelt diskette/cd -drev: 8 trin (med billeder)
Smart styresystem til robotbiler ved hjælp af trinmotor fra Old Floppy/CD Drive: Smart styresystem til robotbiler Er du bekymret for at lave et godt styresystem til din robotbil? Her er en fantastisk løsning ved bare at bruge dine gamle disketter/ CD/ DVD -drev. se det ud og få en idé om detBesøg georgeraveen.blogspot.com
Tilføjelse af en direkte line-in til din bilstereo til en iPod/mp3-afspiller: 5 trin
Tilføjelse af en direkte line-in til din bilstereo til en iPod/mp3-afspiller: Denne instruktion viser dig, hvordan du tilføjer en ekstra indgang, f.eks. Et hovedtelefonstik, til din bil, så du kan lytte til en iPod/mp3-afspiller/GPS eller alt, hvad der har en line-out gennem din bils stereo. Mens jeg vil tilføje det på min '99 Chevy Subu