Cum transformam o orga electronica defecta intr-un pian MIDI?

Cum transformam o orga electronica defecta intr-un pian MIDI?

Timp de citit: 4 minute

In acest articol va vom prezenta cum puteti sa transformati o orga electronica defecta intr-un pian MIDI. Aplicatia are scop interactiv, fiind ulterior folositoare copiilor.

Pentru realizarea proiectului vom avea nevoie de o placa Arduino Uno (sau similara) si cabluri.

Partea Hardware

Primul pas necesar pentru a realiza acest proiect este dezasamblarea pianului (orgii electronice).

Dupa dezasamblare (in acest caz) se pot observa matricea de butoane si sursa de tensiune, ambele conectate la controller-ul pianului prin doua cabluri-panglica, care au in total 13 fire.

Cum functioneaza o matrice de butoane?

In general matricile de butoane sunt necesare pentru a introduce date in diferite aplicatii. Matricea de butoane pentru acest proiect este formata din 8 randuri si 5 coloane (vezi imaginea de mai jos).

Pentru a determinare ce buton este apasat sau nu, microcontroller-ul responsabil de aceasta aplicatie (cel de pe Arduino) trebuie sa aplice, tensiune la fiecare rand si sa citeasca daca exista, sau nu tensiune la conexiunile coloanelor.

De exemplu, daca microcontroller-ul aplica semnal la randul 3 si exista tensiune la coloanal 4, atunci inseamna ca butonul U15 este apasat.

Conectarea matricei de butoane la Arduino

Pentru a conecta matricea de butoane la Arduino, cablurile-panglica deja existente au fost inlocuite cu niste cabluri de tip Dupont T-T.

Pentru a putea controla diferite soft-uri, precum FL Studio, este necesara folosirea protocolul MIDI.

Ce este Protocolul MIDI?

Protocolul MIDI (Musical Instrument Digital Interface) este un protocol ce permite comunicarea dintre calculatoare si instrumente musicale electronice. Datele MIDI sunt compuse din 3 octeti.

Primul octet ne spune daca nota este ON/OFF si ce canal va fi folosit, cel de-al doilea octet transmite calculatorului ce nota dorim sa fie redata (intre 0 si 127), iar cel de-al treilea va transmite calculatorului “viteza notei” (note velocity, care poate fii intre 0-127). In proiectul nostru, placa de dezvoltare Arduino Uno va trimite aceste date cu ajutorul comenzii Serial.write(). Astfel, codul care va trebui incarcat pe placa Arduino pentru aceasta aplicatie este prezentat mai jos:

#include <Keypad.h> const byte ROWS = 5; const byte COLS = 8; byte colPins[COLS] = {21, 20, 19, 18, 17, 16, 15, 14}; byte rowPins[ROWS] = {6, 5, 4, 3, 2}; char hexaKeys[ROWS][COLS] = { {1, 2, 3, 4, 5, 6, 7, 8}, {9, 10, 11, 12, 13, 15, 16, 17}, {18, 19, 20, 21, 22, 23, 24, 25}, {26, 27, 28, 29, 30, 31, 32, 33}, {34, 35, 36, 37, 38, 39, 40, 41} }; Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void setup() { Serial.begin(9600); } void loop() { int customKey = customKeypad.getKey(); if (customKey != NO_KEY) { Serial.write(B10010001); Serial.write(customKey); Serial.write(100); } }

Inainte de incarcarea codului, trebuie sa adaugati si libraria Keypad.h, librarie ce o puteti descarca de aici: https://playground.arduino.cc/.

Daca orga de lumini (pianul) folosit are mai multe sau mai putine randuri / coloane, trebuie sa modificati variabilele ROWS si COLS. Dupa aceasta, trebuie sa specificati la ce pini ati conectat randurile / coloanele in variabilele colPins/rowPins.

Dupa ce ati incarcat codul pe placa dvs. Arduino, va fii necesar sa instalati urmatoarele aplicatii pe computerul dvs.:

https://www.tobias-erichsen.de/software/ (loopMIDI)
https://projectgus.github.io/ (Hairless MIDI)

Aplicatia loopMIDI

Prima aplicatie (loopMIDI) este folosita pentru a crea un port MIDI virtual, iar ce-a de-a doua (Hairless MIDI) pentru a trimite datele primite de la Arduino la acel port virtual.

Pentru a crea un port MIDI virtual trebuie sa apasati doar butonul “+” din partea stanga jos a aplicatiei loopMIDI.

Aplicatia „Hairless MIDI <-> Serial Bridge”

Pentru a conecta placa Arduino la portul MIDI virtual, in cadrul aplicatiei “Hairless MIDI <-> Serial Bridge” trebuie sa selectati in meniul “Serial port” tipul de placa Arduino, iar in partea dreapta, in meniul “MIDI Out”, trebuie sa selectati portul “loopMIDI Port”.

Tot in aplicatia “Hairless MIDI <-> Serial Bridge” va trebui sa intrati in File> Prefrences si sa modificati “Baud rate”-ul la 9600.

Dupa ce ati facut aceste configuratii, bifati butonul “Serial <-> MIDI Bridge On” pentru a porni conexiunea dintre portul serial Arduino si portul virtual MIDI.

Pentru a putea verifica daca totul este in regula, dupa apasarea oricarei taste de pe pianul modificat, ar trebui sa primiti mesaje de tipul “+2.833 – Serial In: Ch 2: Note 6 on velocity 100“ in cadrul aplicatiei “Hairless MIDI <-> Serial Bridge”.

Daca totul este in regula, acum puteti sa deschideti o aplicatie precum FL Studio, sa intrati in “OPTIONS>MIDI Settings”, la “Input”, sa selectati dispozitivul “loopMIDI Port”, dupa care sa apasati butonul “Enable” din partea stanga , iar din partea dreapta sa selectati Portul numarul 1.

Autor: Florin Baciu

Un comentariu

  1. O realizare deosebită. E de muncă, nu glumă. Dar îți trebuie și cap pentru asta. Adică specialitate pe pâine…

Adauga un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *