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
Iți recomandăm
Cele mai noi articole
Ce este fenomenul „manosphere” și de ce politicienii britanici cer măsuri ferme pentru protejarea bărbaților?
Ce este fenomenul „manosphere” și de ce politicienii britanici cer măsuri ferme pentru protejarea bărbaților?
Ce s-a întâmplat după ce un agent de Inteligență Artificială a halucinat și a invitat mai mulți oameni la o petrecere?
Ce s-a întâmplat după ce un agent de Inteligență Artificială a halucinat și a invitat mai mulți oameni la o petrecere?
Noul decalaj digital din familie. Copiii folosesc Inteligența Artificială zilnic, dar părinții nu știu
Noul decalaj digital din familie. Copiii folosesc Inteligența Artificială zilnic, dar părinții nu știu
Utilizatorii de social media devin tot mai pasivi. Ce a dus la schimbarea comportamentului din online?
Utilizatorii de social media devin tot mai pasivi. Ce a dus la schimbarea comportamentului din online?
Test de cultură generală. Care este cel mai puternic acid din lume?
Test de cultură generală. Care este cel mai puternic acid din lume?
Tratamentele de beauty „bizare” din social media: cât este trend și cât este știință?
Tratamentele de beauty „bizare” din social media: cât este trend și cât este știință?
Insula din Grecia cu mai mulți oameni de 90 de ani decât orice alt loc din lume
Insula din Grecia cu mai mulți oameni de 90 de ani decât orice alt loc din lume
O țară din Europa face pregătiri în caz de război cu Rusia
O țară din Europa face pregătiri în caz de război cu Rusia
Iranienii nu mai găsesc minele pe care chiar ei le-au pus în Strâmtoarea Ormuz
Iranienii nu mai găsesc minele pe care chiar ei le-au pus în Strâmtoarea Ormuz
Astăzi se împlinesc 140 de ani de la naşterea unuia dintre cei mai mari pictori ai României
Astăzi se împlinesc 140 de ani de la naşterea unuia dintre cei mai mari pictori ai României
Cum ne pot afecta pielea primele raze de Soare de după iarnă?
Cum ne pot afecta pielea primele raze de Soare de după iarnă?
Metoda japoneză pentru un bagaj de mână ușor dar cu multe opțiuni vestimentare
Metoda japoneză pentru un bagaj de mână ușor dar cu multe opțiuni vestimentare
„Laptele auriu”, băutura recomandată pentru un somn profund și odihnitor
„Laptele auriu”, băutura recomandată pentru un somn profund și odihnitor
Cercetătorii testează pentru prima dată pe oameni o tehnică de resetare celulară
Cercetătorii testează pentru prima dată pe oameni o tehnică de resetare celulară
8 instrumente AI gratuite pe care le poți folosi zilnic în 2026
8 instrumente AI gratuite pe care le poți folosi zilnic în 2026
Supe, ciorbe, amintiri: de ce fiecare cultură are propriul bol de zeamă caldă?
Supe, ciorbe, amintiri: de ce fiecare cultură are propriul bol de zeamă caldă?
Ce este ura și de ce apare?
Ce este ura și de ce apare?
De ce ne gândim obsesiv la aceleași lucruri noaptea
De ce ne gândim obsesiv la aceleași lucruri noaptea