Πίνακας περιεχομένων:

Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS): 3 βήματα
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS): 3 βήματα

Βίντεο: Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS): 3 βήματα

Βίντεο: Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS): 3 βήματα
Βίντεο: SKR 1.4 - A4988/DRV8825 configuration 2024, Νοέμβριος
Anonim
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)
Βηματικό μοτέρ ελεγχόμενο με MIDI με τσιπ άμεσης ψηφιακής σύνθεσης (DDS)

Είχατε ποτέ κακή ιδέα ότι ΜΟΝΟ έπρεπε να μετατραπεί σε ένα μίνι έργο; Λοιπόν, έπαιζα με ένα σκίτσο που είχα κάνει για το Arduino Due με στόχο τη δημιουργία μουσικής με μια μονάδα AD9833 Direct Digital Synthesis (DDS)… και κάποια στιγμή σκέφτηκα «γεια, ίσως πρέπει να φτιάξω ένα βηματικό μοτέρ/οδηγό Αυτό . Και αυτή η ιδέα είναι ακριβώς αυτό που πυροδότησε αυτό το μικρό έργο βασισμένο στο breadboard.

Σε αυτό το έργο θα περιλαμβάνεται κάποιος κωδικός για τη χρήση MIDI-over-USB για τον έλεγχο ενός Arduino Due και την αποστολή τετραγωνικών κυμάτων μεταξύ μιας μονάδας AD9833 και του προγράμματος οδήγησης stepper. Θα υπάρχει επίσης ένα διάγραμμα και βασικές οδηγίες για τη σύνδεση αυτού σε ένα Arduino Due.

Προμήθειες:

Τι θα χρειαστείτε για αυτό το έργο:

Arduino Due

ΣΗΜΕΙΩΣΗ: Ο κωδικός είναι γραμμένος για το Due, αλλά θα πρέπει επίσης να λειτουργεί ή/και να προσαρμόζεται για το μηδέν. Χρησιμοποιεί τη βιβλιοθήκη MIDIUSB του Arduino, η οποία απαιτεί εγγενή θύρα USB.

Χωρίς συγκόλληση Breadboard + άλτες

AD9833 Ενότητα Breakout Module

A4988 Stepper Driver (ή παρόμοιο)

NEMA 17 Stepper Motor (ή παρόμοιο)

- Τροφοδοτικό 24V (σημειώστε, επέλεξα αυτήν την τιμή των 24 Volts επειδή ήταν μεγαλύτερη από την ονομαστική τάση βηματικού κινητήρα. Η εφαρμογή σας μπορεί να είναι διαφορετική εάν χρησιμοποιείτε μεγαλύτερο κινητήρα)

Βήμα 1: Breadboarding

Breadboarding
Breadboarding

Η βασική ιδέα πίσω από αυτό είναι ότι το IC Digital Synthesis IC θα δημιουργήσει ένα τετράγωνο κύμα για να οδηγήσει τον πείρο "βημάτων" του οδηγού βηματικού κινητήρα. Αυτός ο οδηγός βηματισμού θα μετακινήσει τον κινητήρα στη συγκεκριμένη ηχητική συχνότητα. Η κατεύθυνση του κινητήρα είναι κάπως αυθαίρετη αρκεί να πατάει στη σωστή συχνότητα.

Η προσέγγιση που προτιμώ να ακολουθήσω με το breadboarding είναι να τρέξω πρώτα τους ακροδέκτες τροφοδοσίας και στη συνέχεια να αρχίσω να τρέχω όλες τις άλλες συνδέσεις εκτός ρεύματος.

Εδαφος:

- Συνδέστε τις καρφίτσες AGND και DGND της μονάδας AD9833 στη ράγα GND στον πίνακα ψωμιού.

- Συνδέστε τις δύο ακίδες GND στο πρόγραμμα οδήγησης Stepper στο σιδηρόδρομο GND

- Φέρτε αυτό σε μία από τις καρφίτσες GND του Arduino Due

Ισχύς 3.3V:

- Συνδέστε το VDD Pin του Stepper Driver στο V+ Rail του breadboard

- Συνδέστε τον πείρο VCC της μονάδας AD9833 στη ράγα V+ του breadboard

- Φέρτε το στην καρφίτσα 3.3V του Arduino Due

Ισχύς 24V:

- Συνδέστε τον πείρο VMOT στο τροφοδοτικό 24V DC (ανάλογα με τον κινητήρα που επιλέγετε, μπορεί να θέλετε να εκτελέσετε υψηλότερη ή χαμηλότερη ράγα παροχής)

Σύνδεση ενότητας-ενότητας:

- Συνδέστε τον πείρο OUT από τη μονάδα AD9833 στον πείρο STEP του προγράμματος οδήγησης κινητήρα

Συνδέσεις προγράμματος οδήγησης Stepper:

- Συνδέστε τις συνδέσεις Stepper Motor στις ακίδες 2Β/2Α/1Α/1Β. Η πολικότητα δεν είναι τόσο σημαντική, αρκεί οι φάσεις του οδηγού να ταιριάζουν με αυτές του Stepper Motor.

- Συνδέστε τις καρφίτσες RESET και SLEEP μαζί και φέρτε τις στο Arduino Due Pin 8.

- Συνδέστε την καρφίτσα DIR στη ράγα 3.3V

AD9833 Συνδέσεις ενότητας:

- Συνδέστε το SCLK στον πείρο SCK του Arduino Due. Λάβετε υπόψη ότι αυτός ο πείρος βρίσκεται στην αρσενική κεφαλίδα ICSP 6 ακίδων κοντά στον μικροελεγκτή και όχι στις κανονικές εξωτερικές γυναικείες κεφαλίδες.

- Συνδέστε την καρφίτσα SDATA στην καρφίτσα MOSI του Due. Σημειώστε ότι αυτός ο πείρος βρίσκεται στην αρσενική κεφαλίδα ICSP 6 ακίδων κοντά στον μικροελεγκτή και όχι στις κανονικές εξωτερικές θηλυκές κεφαλίδες.

- Συνδέστε το FSYNC στο Arduino Due Pin 6 (αυτό είναι το pin Chip Select για αυτό το έργο)

Τώρα που το breadboard έχει συναρμολογηθεί πλήρως, ήρθε η ώρα να ρίξουμε μια ματιά στον κώδικα!

Βήμα 2: Προγραμματισμός και ρύθμιση MIDI

Προγραμματισμός και ρύθμιση MIDI
Προγραμματισμός και ρύθμιση MIDI

Το συνημμένο σκίτσο.ino θα λάβει εισόδους USB-MIDI μέσω της αυθεντικής θύρας USB του Arduino Due και θα τις χρησιμοποιήσει για την οδήγηση του AD9833. Αυτό το τσιπ έχει ένα DAC που τρέχει σε 25MHz w/ 28 bits ανάλυσης συχνότητας (συνολική υπέρβαση για ό, τι χρειάζεται εδώ), και μεγάλο μέρος του κώδικα εδώ είναι η διαμόρφωση για την εκτέλεση και έξοδο ενός τετραγωνικού κύματος.

Σημείωση: υπάρχουν δύο θύρες USB. Το ένα χρησιμοποιείται για τον προγραμματισμό του πίνακα και το άλλο θα χρησιμοποιηθεί για MIDI-over-USB comm

Σημειώστε ότι αυτό το σκίτσο δεν θα λειτουργήσει όπως στο Arduino Uno - αυτό το έργο είναι συγκεκριμένο στην ανάγκη του για εγγενές USB στο Arduino Due ή παρόμοιες συσκευές

Επιλογές προσαρμογής:

- Υπάρχουν 2 λειτουργίες, οι οποίες μπορούν να ρυθμιστούν με προεπιλεγμένο μακρο ορισμό. Εάν το "#define STOPNOTES" μείνει άθικτο, το βήμα θα σταματήσει ανάμεσα στις σημειώσεις. Αυτό δεν είναι πάντα επιθυμητό (για παράδειγμα, παίζοντας γρήγορα arpeggios), οπότε για να αλλάξετε αυτήν τη συμπεριφορά, απλώς διαγράψτε ή σχολιάστε αυτήν τη δήλωση #define και το stepper θα εκτελείται συνεχώς μόλις παιχτεί.

-Χρησιμοποιώ ένα φθηνό πληκτρολόγιο MIDI 2 οκτάβων με αυτό που έχει ένα κουμπί οκτάβας πάνω/κάτω, αλλά σε περίπτωση που δεν έχετε αυτήν την επιλογή, μπορείτε να μετακινήσετε την οκτάβα-μετατροπή της κάτω συχνότητας μετάφρασης πολλαπλασιάζοντας ή διαιρώντας με τις δυνάμεις του 2.

Η μετάφραση MIDI σε συχνότητα γίνεται με αυτήν τη γραμμή στη λειτουργία playNote: int f_out = (int) (27.5*pow (2, ((float) midiNote-33)/12));

- Έχω την τάση να χρησιμοποιώ τον υπολογιστή μου για διασύνδεση μέσω USB MIDI - μπορείτε να το κάνετε από το αγαπημένο σας λογισμικό Digital Audio Workstation (DAW). Εάν δεν έχετε ένα, είναι πολύ εύκολο να ρυθμίσετε αυτό το σύστημα χρησιμοποιώντας το LMMS - μια δωρεάν πλατφόρμα ανοιχτού κώδικα. Μόλις εγκατασταθεί και εκτελεστεί, απλώς ορίστε το Arduino Due ως συσκευή εξόδου MIDI και εάν χρησιμοποιείτε πληκτρολόγιο USB MIDI, ορίστε το ως είσοδο.

Βήμα 3: Δοκιμή και πειραματισμός

Timeρα να παίξετε το βηματικό σας μοτέρ!

Όπως αναφέρθηκε, ολόκληρη η ιδέα πίσω από αυτό ήταν ένα είδος πειράματος χωρίς μανσέτες, οπότε με κάθε τρόπο, πειραματιστείτε μόνοι σας!

Συνιστάται: