DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING)
by MathieuF16 in Circuits > Arduino
1188 Views, 6 Favorites, 0 Comments
DIY MIDI CONTROLLER USB Plug & Play (UPGRADE NEOPIXEL RING)
Passionate MAO and Electronic Music but also seeing that it was possible to create a personalize Midi Interface i made mine
6 Potentiometers and 12 buttons ( on / off ) but to make the spot more difficult that it was already i wish add visual indication auround each rotary button
POTENTIOMETERS AND BUTTONS
To be able to send a command midi with potentiometer it took me undersand that the potentiometer are analogic component ( 0 to 1023 ) and the data that receives Arduino on its anologic input have small variation
that small variation disturbed the comunication with Computer
I advise you to test each potentiometers to avoid an error and if the variation of value is very important a potentiomtre is maybe HS
The value will examine by arduino and must be send to Computer in Midi must be Clean ( its's numeric data )
The small variation can be exculed of data that will be inclued in program The buttons acts like on / off switch
NEOPIXEL RINGS WITH ARDUINO
To use the neopixel RIng with arduino you must install the NEOPIXEL Library
https://learn.adafruit.com/adafruit-neopixel-uberg...
#include // Library Neopixel
#define PINX X // DATA IN ; Which pin on the microcontroller board is connected to the NeoPixels?
#define NUMPIXELS XX // How many NeoPixels are attached to the board?
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELSX, PINX, NEO_GRB + NEO_KHZ800); //NeoPixel Library
pixels.setPixelColor(i, 0, 0, 0); // RGB COLOR CODE in decimal
pixels.setBrightness (brightness) // Setting of Brightness
pixels.show() // This sends the updated pixel color to the hardware.
For information the neopixel with 16 pixels running counter-clockwise
About power consumption we are
(2x12 + 2x 16 + 2x24) x 3 (each component have 3 leds RGB) = 312 leds.
Each Led consume 20ma, Total 6,4A but we use never all pixels light on and secondly never with maximum luminosity.
To consume less power i discover a tip of persistance retinienne
Anyway 5V output give by arduino it's not enought to it work correctly
MIDI COMMUNICATION With the Arduino
Firstly Copy midi library Midi.h in C:\Program Files (x86)\Arduino\libraries"
https://sourceforge.net/projects/arduinomidilib/
In order to use the arduino same as an Interface Plug And Plug and can transmit midi information in USB you must flash arduino with a custom Firmware
See there for this handling : https://dartmobo.com/midi-over-usb/
The only problem is ; to modify the code if there is an error you must put the custom firmware in arduino to reactivate the serial communication
Wiring
The rotary are connected on Analogic Input
The switch GND ,Led GND ,and Neopixel DATA IN on Digital Input
https://www.sparkfun.com/products/9277
Led used are mono color choose the same color pin for led on pcb
The Program
Microcontroller means Programming
That was for me the harder step but it's opportunity to get back into it
The program devide in several part in one loop
each part becoming a subprogramm
Set switch DATA pin with the led data Pin matching on Pcb board
affiche () ; // Read Potentiometer Value and Send Midi Data;
// Control NeoPixel with The read of Potentiometer Value and Set Color and Broghtness
ring1 ();
ring2();
ring3();
ring4();
ring5();
ring6();
button(); // Check the button state , send midi data and control Led
i'm very happy to have expert opinion to improve my program
3D Print Part
to receive the 6 neo pixel ring with impossibility to touch potentiometres a support is create
The Neopixel are glue on it with glue gun
This support is on second level because rotary can't put in Neopixel 12 ring
Aluminium Plate
Plexiglass Box 8mm
To drill and tapp on the middle of slice i used a plexiglass of 8mm thickness
Cut 5 Piece of plexiglass i used a circular saw ;
1 x 210mm / 270mm
2 x 210mm / 60mm
2 x 254mm / 60mm
To do assembly of the box We drill and Tapp on the middle of the slice of each part
We do the same thing to put the spacer
Drilling 2,5mm
Tapping 3 mm
Assembly
With the aid of spacer and 3mm screw we put it all together
35mm Spacer for NEOPIXEL support ,50mm spacer for Sparkfun PCB and 5mm for Arduino
FINAL (Video TEST)
https://youtu.be/c_BEFl-kEec
Cart
6 x Liniar Potentiometers 10KOhm 0.25w
12 x Resistor 220Ohm 0.25w
12 x Resistor 10Kohm 0.25W
12 x DIODE STANDARD ON SEMICONDUCTOR 1N4148TA 100V 200MA
6 x Resistor 470Ohm
1 x Capacitor 1000uF
1 x ARDUINO 2650 R3
3 x BUTTON PAD BREAKOUT PCB 2X2
3 x BUTTON PAD YOP BEZEL 2X2
2 x ADAFRUIT NEOPIXEL RGB 12 LED RING
2 x ADAFRUIT NEOPIXEL RGB 16 LED RING
2 x ADAFRUIT NEOPIXEL RGB 24 LED RING
12 x HEXAGONAL Spacer M3 X 50MM
3 x E HEXAGONAL Spacer M3 X 35MM
1 x Sector Adaptator 5V 4A
1 x USB A MALE to B MALE 20CM
1 x Adaptator USB 2.0 TYPE B FEMELLE to USB 2.0 TYPE A
1 x INTERRUPTEUR A BASCULE TRU COMPONENTS
1 X Connecting Low Voltage Vertical Female 5MM 2.2MM
1 x Plate of PLEXIGALS tickness 8MM