Home » Timp Liber » Cum sa construiesti o harpa electronica – Smart Nation

Cum sa construiesti o harpa electronica – Smart Nation

Cum sa construiesti o harpa electronica – Smart Nation
Publicat: 02.12.2013
Scris de Viorel Spinu
In tutorialul  de saptamana aceasta vreau sa va povestesc despre cum putem construi o harpa electronica folosing placa Arduino.  Pentru inceput va invit sa urmariti urmatorul video:
 
 
O harpa electronica are in loc de corzile din metal niste corzi invizibile din laser, iar atunci cand treci cu mana prin dreptul senzorului de lumina, ciupesti practic raza si generezi melodii, asa cum se intampla la o harpa obisnuita.
 
Daca vreti sa construiti o harpa electronica atunci va pot fi de mare folos codurile sursa pe care le impartasec acum cu voi.
 
Placa Arduino este practic creierul intregii operatiuni. Ea ruleaza codul sursa pe care il gasiti detaliat mai jos si care va ajuta sa emiteti notele muzicale.
 
>>cod sursa harpa
 
#include
 
#include
 
#define SOUND_RELEASE_TIME 1000
 
#define INSTRUMENT_COUNT 16
 
#define VOLUME 127 // an int between 0 and 127
 
byte resetMIDI = 4;
 
byte ledPin = 13;
 
byte stari[16];
 
byte hittedNote[INSTRUMENT_COUNT];
 
uint32_t timestamp[INSTRUMENT_COUNT];
 
long valCapSens[INSTRUMENT_COUNT];
 
#define T 0×78  //TOBE
 
#define M 0×79 //MELODIC
 
byte nota[INSTRUMENT_COUNT] =            {
 
62, 63, 49, 64, 65, 66, 67, 68, 69, 66, 43,  30, 57, 41,  61,  48};
 
int instrumentNumber[INSTRUMENT_COUNT] = {
 
3,  3, -1, 3,  3,  3,  3,  3,  3,  -1, -1,  -1, -1, -1,  -1,  -1};
 
int bank[INSTRUMENT_COUNT] =             {
 
M,  M,  T, M,  M,  M,  M,  M,  M,   T,  T,   T,  T,  T,   T,   T};
 
SoftwareSerial mySerial(2, 3);
 
boolean USE_SINGLE_TRESHOLD = true;
 
int PRAG_PRESETAT = 300;
 
int PRAG_SENZORI[INSTRUMENT_COUNT] = {
 
2000, 3500, 3500, 3500, 3500, 3500, 2000, 1000, 2000, 3500, 3500, 3500, 3500, 2000, 1000, 2000};
 
int SAMPLES = 50;
 
//long AUTOCAL_MILLIS = 0xFFFFFFFF;
 
long AUTOCAL_MILLIS = 200;
 
void loop() {
 
int lumina = analogRead(0);
 
if (lumina
 
noteON(8);
 
}
 
delay(100);
 
}
 
void noteON(int index){
 
talkMIDI(0xB0, 0×07, VOLUME);
 
talkMIDI(0xB0, 0, bank[0]);
 
talkMIDI(0xC0, instrumentNumber[1], 0);
 
noteOn(0, nota[index], 127);
 
 
 
}
 
void setup()  {
 
Serial.begin(115200);
 
midi_setup();
 
talkMIDI(0xB0, 0×07, VOLUME);
 
if (USE_SINGLE_TRESHOLD) {
 
for (int counter = 0; counter
 
PRAG_SENZORI[counter] = PRAG_PRESETAT;
 
}
 
}
 
}
 
void midi_setup() {
 
mySerial.begin(31250);
 
pinMode(resetMIDI, OUTPUT);
 
digitalWrite(resetMIDI, LOW);
 
delay(100);
 
digitalWrite(resetMIDI, HIGH);
 
delay(100);
 
for(int i; i
 
timestamp[i] = 0xFFFFFFFF;
 
}
 
talkMIDI(0xB0, 0, 0×00);
 
}
 
void noteOn(byte channel, byte note, byte attack_velocity) {
 
talkMIDI( (0×90 | channel), note, attack_velocity);
 
}
 
void noteOff(byte channel, byte note, byte release_velocity) {
 
talkMIDI( (0×80 | channel), note, release_velocity);
 
}
 
void talkMIDI(byte cmd, byte data1, byte data2) {
 
digitalWrite(ledPin, HIGH);
 
mySerial.write(cmd);
 
mySerial.write(data1);
 
if( (cmd & 0xF0)
 
mySerial.write(data2);
 
digitalWrite(ledPin, LOW);
 
}
 
void printPaddingZeros(long number) {
 
if (number
 
Serial.print(“     “);
 
}
 
else if (number
 
Serial.print(“    “);
 
}
 
else if (number
 
Serial.print(“   “);
 
}
 
else if (number
 
Serial.print(“  “);
 
}
 
Serial.print(number);
 
}
 
Si apoi daca vreti sa vedeti cum functioneaza senzorul de lumina atunci trebuie sa utilizati codul sursa de mai jos:
 
>>senzor lumina
 
void setup(){
 
Serial.begin(9600);
 
 
 
}
 
void loop(){
 
int lumina = analogRead(0);
 
Serial.println(lumina);
 
}
 
 
 
Smart Nation este platforma unde tehnologia va inspira pe voi toti. Sa va imaginati, sa inovati, sa creati!
 
Intra pe SmartNation.ro daca vrei sa fii informat in legatura cu noile gadget-uri, dar si pentru a putea afla cum functioneaza, ce fac si cum iti pot imbunatati viata de zi cu zi. 
 
 
Urmărește DESCOPERĂ.ro pe
Google News și Google Showcase
Cele mai noi articole
Trucul șocant prin care poți să-ți crești masa musculară
Trucul șocant prin care poți să-ți crești masa musculară
Iată cum o simplă vizită la coafor ar putea să ne pună viața în pericol
Iată cum o simplă vizită la coafor ar putea să ne pună viața în pericol
Test de cultură generală. Ce este apa carbogazoasă?
Test de cultură generală. Ce este apa carbogazoasă?
Telescopul Spațial James Webb a găsit o planetă misterioasă care nu seamănă cu nimic din Sistemul Solar
Telescopul Spațial James Webb a găsit o planetă misterioasă care nu seamănă cu nimic din Sistemul Solar
Meteorologii anunță vreme neobișnuit de caldă până la jumătatea lunii februarie
Meteorologii anunță vreme neobișnuit de caldă până la jumătatea lunii februarie
Nvidia a intrat în top 10 cele mai valoroase companii din lume
Nvidia a intrat în top 10 cele mai valoroase companii din lume
Demența ar putea fi prevenită cu antibiotice, antivirale și vaccinuri, arată un studiu
Demența ar putea fi prevenită cu antibiotice, antivirale și vaccinuri, arată un studiu
Crima perfectă: uciderea ministrului Barbu Catargiu
Crima perfectă: uciderea ministrului Barbu Catargiu
Protest Greenpeace la Forumul Economic Mondial: ce mesaje au afișat activiștii?
Protest Greenpeace la Forumul Economic Mondial: ce mesaje au afișat activiștii?
Europa trebuie să învețe cum să aibă grijă de ea însăși, avertizează Volodimir Zelenski
Europa trebuie să învețe cum să aibă grijă de ea însăși, avertizează Volodimir Zelenski
Fondatorul IMDb pleacă de la conducerea companiei după 35 de ani
Fondatorul IMDb pleacă de la conducerea companiei după 35 de ani
Implant cerebral revoluționar pentru tratarea depresiei, testat în Marea Britanie
Implant cerebral revoluționar pentru tratarea depresiei, testat în Marea Britanie
Regele Mihai: „Nu știam că avea să urmeze cea mai rapidă lovitură de stat din istorie”. Cine a trădat din Regență și l-a adus pe Carol al II-lea pe Tronul României?
Regele Mihai: „Nu știam că avea să urmeze cea mai rapidă lovitură de stat din istorie”. Cine a trădat din Regență ...
Aproape un sfert dintre speciile de apă dulce sunt amenințate de extincție
Aproape un sfert dintre speciile de apă dulce sunt amenințate de extincție
Astronomii au confirmat cel mai rapid vânt măsurat vreodată pe o planetă! „N-am mai văzut așa ceva până acum”
Astronomii au confirmat cel mai rapid vânt măsurat vreodată pe o planetă! „N-am mai văzut așa ceva până acum”
Mihail Manoilescu, o arestare cu scandal în România interbelică
Mihail Manoilescu, o arestare cu scandal în România interbelică
David Lynch: „Dune a fost singurul eșec real din cariera mea”
David Lynch: „Dune a fost singurul eșec real din cariera mea”
Secretul pentru o genuflexiune corectă. O mișcare simplă, cheia sănătății pe termen lung
Secretul pentru o genuflexiune corectă. O mișcare simplă, cheia sănătății pe termen lung