Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino-basierter MIDI-Schrittmotor-Synthesizer

Komponenten und Zubehör

Komponente Menge Hinweis
Arduino UNO 1 Andere Arduino-Boards mit mehr I/O möglich
A4988 Schrittmotortreiber 4
Arduino CNC Shield V3 1 Optional, erleichtert Verdrahtung der A4988
12V 6A Netzteil 1 Für die Schrittmotoren
NEMA 17 Schrittmotor (OpenBuilds) 4

Benötigte Werkzeuge & Maschinen

Projektbeschreibung

Inspiriert von Floppy-Drive-Musik, bei der Schrittmotoren Töne erzeugen, wurde ein eigener MIDI-Schrittmotor-Synthesizer entwickelt. Ziel war ein einfacher, erweiterbarer Code, der MIDI-Daten in Motorbewegungen umsetzt.

Gesamtprozess

Kernaufgabe: MIDI-Daten empfangen, in Schrittfrequenzen umrechnen und mehrere Motoren simultan ansteuern.

MIDI-Daten extrahieren

Die Arduino MIDI-Bibliothek interpretiert eingehende MIDI-Nachrichten (Note On/Off, Kanal) und leitet sie an die Steuerfunktion weiter.

Schrittmotoren steuern

Die A4988-Treiber benötigen nur STEP und DIR. Da die Drehrichtung den Ton nicht beeinflusst, wird DIR fest auf LOW (oder GND) gelegt. Ein digitalWrite auf STEP erzeugt einen Schritt. Mikroschritt-Auflösung beeinflusst die Laufruhe, nicht die Tonhöhe.

Herausforderung: Gleichzeitige Ansteuerung

delay() blockiert und verhindert paralleles Spielen. Stattdessen wird micros() genutzt, um für jeden Motor individuell den nächsten Schrittzeitpunkt zu berechnen. Geschwindigkeiten werden in Arrays gespeichert (Index = Motornummer = MIDI-Kanal). So lassen sich beliebig viele Motoren durch Vergrößerung der Arrays hinzufügen.

Geschwindigkeitsberechnung

Ein Test mit 440 Hz (A4) auf dem STEP-Pin erzeugte den passenden Ton. Da die Steuergröße die Periodendauer in Mikrosekunden ist, wurden die MIDI-Notenfrequenzen in Perioden umgerechnet und in einem Array pitchValues abgelegt (Index = MIDI-Notennummer). Wert 0 bedeutet Stopp.

Array statt Formel erlaubt volle Kontrolle über den spielbaren Tonumfang und Korrektur von Resonanzen. Beim Autor lag die Resonanz bei ca. F3; die Noten E3, F3, F#3 wurden um eine Oktave verschoben. (Test mit „Tune Stepper.ino“).

USB-MIDI-Gerät erstellen

Damit der Arduino als USB-MIDI-Gerät erkannt wird, kann die Firmware des onboard AVR-Chips (ATmega16U2/8U2) geflasht werden: HIDUINO oder mocuLUFA. mocuLUFA bietet Dual-Boot: Per Jumper auf dem ICSP-Header zwischen USB-MIDI und USB-Serial (für Sketch-Upload) umschaltbar.

Code & Installation

Der vollständige Code inkl. Konfigurationsanleitung befindet sich auf GitHub:

https://github.com/jzkmath/Arduino-MIDI-Stepper-Motor-Instrument

Gehäuse & Anbauteile (3D-Druck)

Schaltpläne

Arduino-basierter MIDI-Schrittmotor-Synthesizer
Jumper-Positionen auf dem CNC Shield V3
Arduino-basierter MIDI-Schrittmotor-Synthesizer
Aufbau auf Steckbrett ohne Shield
Arduino-basierter MIDI-Schrittmotor-Synthesizer
Schaltbild mit Bauteilwerten
Arduino-basierter MIDI-Schrittmotor-Synthesizer
Anschluss einer klassischen MIDI-DIN-Buchse

Herstellungsprozess

  1. Bernstein: Vom antiken Harz zum wissenschaftlichen Schatz – Geschichte, Eigenschaften und moderne Nutzung
  2. Die Guillotine: Geschichte, Design und Vermächtnis
  3. Silizium: Eigenschaften, Produktion und Marktausblick
  4. Die Ukulele: Von portugiesischen Wurzeln zur modernen Handwerkskunst
  5. Der komplette Leitfaden zur US-Hühnerindustrie: Geschichte, Produktion und Qualitätskontrolle
  6. Kompost: Die ultimative Lösung zur Bodenverbesserung
  7. Gelatine: Vom antiken Protein zur modernen Anwendung – Herstellung, Nutzung und Sicherheit
  8. Die Evolution und Fertigung moderner Stiftschloss-Zylinderschlösser
  9. Wodka: Von antiker Destillation zur modernen Produktion
  10. Eisen: Eigenschaften, Geschichte und alltägliche Anwendungen