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
Un parazit care nu mai fusese văzut la oameni provoacă o serie de simptome diverse și ciudate
Un parazit care nu mai fusese văzut la oameni provoacă o serie de simptome diverse și ciudate
Copilul tău este pretențios la mâncare? Iată ce trebuie să faci!
Copilul tău este pretențios la mâncare? Iată ce trebuie să faci!
Test de cultură generală. Care a fost prima democrație din istorie?
Test de cultură generală. Care a fost prima democrație din istorie?
Cea mai mare fotografie făcută vreodată cu rețeaua de telescoape ALMA dezvăluie ce se ascunde în „inima” Căii Lactee
Cea mai mare fotografie făcută vreodată cu rețeaua de telescoape ALMA dezvăluie ce se ascunde în „inima” Căii Lactee
FBI concediază agenți care lucrau la anchete ce-l vizau pe Donald Trump
FBI concediază agenți care lucrau la anchete ce-l vizau pe Donald Trump
Giganții americani de Inteligență Artificială acuză China de furt
Giganții americani de Inteligență Artificială acuză China de furt
Cel mai toxic oraș de pe Pământ: cum a decăzut de la 10.000 de locuitori și a rămas un oraș-fantomă?
Cel mai toxic oraș de pe Pământ: cum a decăzut de la 10.000 de locuitori și a rămas un oraș-fantomă?
Au trecut 90 de ani de la moartea unui mare fiziolog rus. Învăţăm şi astăzi despre experimentele lui
Au trecut 90 de ani de la moartea unui mare fiziolog rus. Învăţăm şi astăzi despre experimentele lui
Cât de posibil este ca Inteligența Artificială să declanșeze o criză majoră în societate?
Cât de posibil este ca Inteligența Artificială să declanșeze o criză majoră în societate?
Tocmai frica de îmbătrânire ne face să îmbătrânim mai repede, dezvăluie un studiu
Tocmai frica de îmbătrânire ne face să îmbătrânim mai repede, dezvăluie un studiu
Care este cel mai însorit loc de pe Pământ?
Care este cel mai însorit loc de pe Pământ?
Schimbările climatice „influențează cine se naște și cine nu se naște”, arată un studiu de la Oxford
Schimbările climatice „influențează cine se naște și cine nu se naște”, arată un studiu de la Oxford
A fost descoperită o legătură surprinzătoare între furtunile solare și cutremure
A fost descoperită o legătură surprinzătoare între furtunile solare și cutremure
O fosilă unică, veche de 190 de milioane de ani, rescrie istoria unei specii de dinozaur
O fosilă unică, veche de 190 de milioane de ani, rescrie istoria unei specii de dinozaur
Oamenii de știință programează bacterii pentru a devora tumorile canceroase
Oamenii de știință programează bacterii pentru a devora tumorile canceroase
Miopia este în creștere, iar un obicei comun ar putea fi de vină
Miopia este în creștere, iar un obicei comun ar putea fi de vină
De ce mirosurile declanșează amintiri mai bine decât imaginile (P)
De ce mirosurile declanșează amintiri mai bine decât imaginile (P)
Un nou studiu arată că peștii sanitari sunt mai inteligenți decât au crezut cercetătorii
Un nou studiu arată că peștii sanitari sunt mai inteligenți decât au crezut cercetătorii