Hier gibt’s den Code
int controlChange = 176; // MIDI Kanal 1 int controllerNummer[] = {20,21,22,23,24,25,26,27,28,29,30,71,75,74,76,33}; int potiWert[16]; int controllerWert[16]; int controllerWertAlt[16]; int i = 0; int bit1 = 0; int bit2 = 0; int bit3 = 0; void setup() { //Select-Pins 4051s pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); //Sensoren pinMode(5, OUTPUT); //Trigger 1 pinMode(6, INPUT); //Echo 1+2 pinMode(7, OUTPUT); //Trigger 2 //Taster mit LED pinMode(8, INPUT_PULLUP); pinMode(9, OUTPUT); pinMode(10, INPUT_PULLUP); pinMode(11, OUTPUT); Serial.begin(9600); } void loop() { for (i = 0; i <= 7; i++) { bit1 = bitRead(i,0); bit2 = bitRead(i,1); bit3 = bitRead(i,2); digitalWrite(2, bit1); digitalWrite(3, bit2); digitalWrite(4, bit3); potisAbfragen(i,A0); potisAbfragen(i+8,A1); } sensorenAbfragen(5, 6, controllerNummer[13]); // sensorenAbfragen(7, 6, controllerNummer[14]); } void potisAbfragen(int zaehler, int analogPin) { potiWert[zaehler] = 0.2 * potiWert[zaehler] + 0.8 * analogRead(analogPin); controllerWert[zaehler] = map(potiWert[zaehler],0,1023,0,127); if (controllerWert[zaehler] != controllerWertAlt[zaehler]) { sendeMIDI(controlChange, controllerNummer[zaehler], controllerWert[zaehler]); controllerWertAlt[zaehler] = controllerWert[zaehler]; } } void sensorenAbfragen(int triggerPin, int echoPin, int ctrlNummer) { //Messung auslösen digitalWrite(triggerPin, LOW); delayMicroseconds(2); digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); long sensorWert = pulseIn(echoPin, HIGH); if (sensorWert <= 2500) { int sensorMIDI = map(sensorWert,2500,200,0,127); sendeMIDI(controlChange, ctrlNummer, sensorMIDI); } } void sendeMIDI(int statusByte, int dataByte1, int dataByte2) { Serial.write(statusByte); Serial.write(dataByte1); Serial.write(dataByte2); }
Hi Götz,
erstmal ein dickes, dickes Lob an dich für deine Videos! Die sind echt interessant, exzellent gemacht und eine große Inspiration für mich, auch als nicht-Audiotechniker oder Musiker! Gerade auf Deutsch findet man solche Projekte, die den kompletten Entwicklungsprozess von den Grundlagen über das Konzept zum fertigen Gerät abbilden, doch eher selten, daher ein dicker Daumen nach oben!
Ich hab auch gleich eine Frage an dich, und zwar hab ich bei den Ultraschallsensoren (ich hab auch den HC-SR04) festgestellt, dass der sich komplett aufhängt, wenn man mit ihm „ins Leere zielt“, er also mehr als ca. 3m Abstand (teilweise auch weniger) zum nächsten Hindernis hat. Er lässt sich dann nur durch einen harten Reset (Stromversorgung ab- und wieder anschalten) wieder zum Laufen bewegen. Ist dir das auch aufgefallen, bzw. wie löst du das Problem? Ich hab das dann mittels Transistor als Schalter gelöst, der die Stromversorgung neu einschaltet, wenn der Fall eintritt.
Code und Schaltplan kann ich dir gerne schicken, falls du Interesse hast.
nochmal ein großes Lob an dich, mach weiter so und viele Grüße!
Atin
Hi Atin,
vielen Dank für dein Lob!!
Glücklicherweise hab ich das Problem mit den Sensoren nicht und du hast es ja auch schon schlau gelöst. Ich hab allerdings schon mehrere Zuschauer gehabt, die Probleme mit den Sensoren hatten oder denen die Dinger kaputt gegangen sind. Es scheint da also eine komplette Ladung kaputter Sensoren in China produziert worden sein… 🙁
Trotzdem viel Erfolg und viele Grüße
Götz
Hallo Götz
Auch von mir mal als erstes ein grosses lob für deine ausführlichen videos. Hab scho viel gesucht und dich endlich gefunden. 😉
Ich hab da mal ne frage:
Wie sieht es mit motorfadern im midicontroller aus? Ist das irgendwie möglich? Die idee wäre ein mc herzurichten, welcher beim öffnen eines abgespeicherten projekts, der dann automatisch die eingestellten faderwerte der daw einstellt.
Freue mich auf ne antwort und liebe grüsse
Hanspeter, vielen Dank für Dein Lob! Motorfader und MC an sich sind kein großes Problem, es ist allerdings nicht so einfach die Werte aus der DAW wieder herauszubekommen. Da gibt es leider keinen Standard. Guck mal in mein erstes Live-Video, da spreche ich das Thema auch kurz an. VG Götz
Hallo Götz
ich bin durch Zufall auf deine Tutorials gestossen.
Quasi aus einer Idee die 2 Techniker hatten.
Jetzt ist die Idee eine ähnliche Midi Box wie du zu bauen. Mit ca. 15 Buttons und einem T-Bar fader. Das ganze soll dann Direkt über MIDI ausgegeben werden. Und da werden deine Tutorials sicherlich helfen.
Und von der Qualität deiner Tutorials bin ich einfach begeistert. Sowohl vom KnowHow das vermittelt wird als auch von der Qualität der Videos.
Vielen Dank
Marco
Hallo Götz
wiedermal ein Klasse Tutorial!
Meine frage wäre, würdest du deine Fritzing Schema als Bild zur Verfügung stellen. Verkabeln der ICs ist mir noch nicht ganz klar.
Vielen Dank
Marco
Hallo,
super bis jetzt. Geht es denn noch weiter mit dem Controller?
Wäre schön, wenn da noch mehr kommt.
Also, weiter so,
Gruß Klaus
Hi Götz. Mich würde interessieren welche LED Buttons du da in deinem Controller verwendest und mit welchem durchmesser ich bei diesen im Frontplatten Designer arbiten muss.
LG Julian
Hey Götz, erstmal ein riesen Lob für den Workshop, du hast mich dazu gebracht in die Arduino-Welt einzusteigen, die ersten MIDI-Controller sind bereits fertig, ich baue inspiriert von deinem Controller eine „modulare Steuerumgebung“ zur interkativen Steuerung eines Live Sets für Kinder.
Sprich alles wird ein wenig überdimensioniert, die Piezopads(die mussten bei mir mit rein) haben beispielweise die Maße 25×25 🙂 Vielen Dank dafür 🙂 !!!
Das ganze läuft auch recht stabil, nur frage ich mich, wie man den am besten die Hairless Bridge umgehen, bzw. die „MIDI-Schnittstelle“ auf den Arduino loaden kann 🙁 . die Arduino Einheit sollte bestenfalls einfach Plug and Play als MIDI Controller erkannt werden. Hast du dies bezüglich eine Idee oder hab ich was übersehen?
Vielen Dank und liebe Grüße,
Janosch
Hoppla, hat sich soeben erledigt, da war ich wohl blind 😀
https://www.youtube.com/watch?v=Vs8wO7AX1n4
Hallo Götz,
erstmal ein riesengroßes dickes, dickes Lob an dich für deine Videos! ich habe schon viele tutorials in verschieden Bereichen gesehen, aber deine sind bis jetzt die besten. mit Humor, das macht das ganze nicht zu trocken und trotzdem sachlich so dass man als Anfänger gut mit kommt.
erstmals war das die letzte Folge oder kommt noch das finale? wie man motorfader programmiert und damit midi empfangt und sendet interessiert mich auch sehr . ich plane einen midi Controller mit motorfader und led buttens für lightsoftware die midi empfangt und sendet. auch zur Music Produktion geeignet. das wichtigste ist für mich wie programmiere ich die einfachen led butten(nicht rgb), wie bei ableton live wenn ein cue aktiv ist leuchtet die led. Midi wird von ableton gesendet. bei nicht aktiven cue, ist die Led aus. bei ableton sind das midi noten so viel ich weiss. bei einer lightsoftare werden genau midi noten gesendet ob aktiv oder nicht. für buttens werden noten gesendet und cc befehle für fader und potis.(welche noten oder cc nummer von der Software kann ich auslesen).
ich finde leider kein tutorial für die led butten mit midi controlle. ich bräuchte die info wie das funktioniert. die buttens stehen bei mir an erster stelle in meinen Projekt, die kann ich nicht auslassen. normale fader und potis funktionieren dank deine hilfe, nur wie schließe ich die led buttens an unjd programiee sie? vielleicht kannst du mir ein Beispiel Programm senden. oder ein kleines vidio tutorial machen(ich weiss das ist eine kostbare zeit)wie ich sie in deinem Programm einbauen kann. so sehe ich gleich, wie sie in einem hauptprogramm eingebaut sind. du würdest mi sehr weiter helfen. sonst steht mein ganzes projekt.
vielen dank im voraus!
nochmal ein Großes lob!
LG Mario
Hallo Götz
Auch von mir ein großes Lob für deinen tollen MIDI-Controller und die umfangreichen Videos dazu.
Für den MIDI-Out ist ja alles vorhanden.
Was ich jetzt ein wenig vermisse ist der MIDI-In.
Wie kann ich Daten vom MIDI-In weiter bearbeiten?
Hallo Götz,
danke für diese großartige Tutorialreihe!
Besser kann man das glaube ich nicht machen!
Vielen vielen Dank!
Vielen Dank, Peter! 🙂
check mal den Arduino pro Micro, da gibts 3 Stück für 20€ mit der arcore MIDI Erweiterung sollte es klappten
Hallo Götz.
Ich habe mal eine Frage bezüglich der Verkabelung auf der Platine . Ich selber habe mich entschieden lauter Draht Brücken in die Platine zu stecken und diese dan fest zu löten . Geht eigentlich ganz gut aber ich Frage mich nun ob es Probleme macht wen sich bestimmte Kabel kreuzen. Bei mir gehen zb Beispiel die 3 digital Leitungen einmal komplett über die 5V und über 4 daten Leitungen von den potis. Kann es dan passieren das ich fehlerhafte Werte kriege ?
Ich glaube nicht, da wir es nicht mit super empfindlichen Audiosignalen oder unglaublich hohen Übertragungsraten zu tun haben.