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
De ce ne atrag oamenii indisponibili? Cum putem schimba tiparul, potrivit științei
De ce ne atrag oamenii indisponibili? Cum putem schimba tiparul, potrivit științei
Erupția Vezuviului ar fi avut loc în august. Atunci de ce victimele din Pompeii purtau haine groase de lână?
Erupția Vezuviului ar fi avut loc în august. Atunci de ce victimele din Pompeii purtau haine groase de lână?
De ce oamenii care înșală ajung să se mintă și pe ei înșiși? Ce spune psihologia despre justificarea infidelității
De ce oamenii care înșală ajung să se mintă și pe ei înșiși? Ce spune psihologia despre justificarea infidelității
Ce este „rage bait” și de ce Internetul pare plin de oameni care încearcă să ne enerveze
Ce este „rage bait” și de ce Internetul pare plin de oameni care încearcă să ne enerveze
Ce spun cercetările despre alegerea unei școli — și de ce majoritatea criteriilor pe care le folosim contează mai puțin decât credem (P)
Ce spun cercetările despre alegerea unei școli — și de ce majoritatea criteriilor pe care le folosim contează mai puțin ...
Cine a supraviețuit erupției Vezuviului? Urmele lăsate de oamenii care au fugit din Pompeii
Cine a supraviețuit erupției Vezuviului? Urmele lăsate de oamenii care au fugit din Pompeii
De ce noul film al lui Christopher Nolan a stârnit controverse, deși a devenit unul dintre cele mai mari succese ale anului
De ce noul film al lui Christopher Nolan a stârnit controverse, deși a devenit unul dintre cele mai mari succese ale anului
Ce înseamnă „brain rot”? Termenul care descrie unul dintre cele mai discutate obiceiuri ale Internetului
Ce înseamnă „brain rot”? Termenul care descrie unul dintre cele mai discutate obiceiuri ale Internetului
O cauză neurologică neobișnuită se ascunde în spatele dilatării pupilelor noastre
O cauză neurologică neobișnuită se ascunde în spatele dilatării pupilelor noastre
Vorbești mai multe limbi străine? Creierul tău ar putea fi cu 13 ani mai tânăr
Vorbești mai multe limbi străine? Creierul tău ar putea fi cu 13 ani mai tânăr
Ce este efectul Mandela: De ce mii de oameni își amintesc același lucru, deși nu s-a întâmplat niciodată
Ce este efectul Mandela: De ce mii de oameni își amintesc același lucru, deși nu s-a întâmplat niciodată
Dolly Parton, „Păpușa Blondă” a muzicii country: Cum și-a transformat imaginea publică într-o strategie de carieră
Dolly Parton, „Păpușa Blondă” a muzicii country: Cum și-a transformat imaginea publică într-o strategie de carieră
Cel mai nou telescop spațial al NASA se apropie cu pași repezi de lansare
Cel mai nou telescop spațial al NASA se apropie cu pași repezi de lansare
Țara în care casele abandonate pot fi cumpărate cu mai puțin de 1 euro
Țara în care casele abandonate pot fi cumpărate cu mai puțin de 1 euro
Secretul pentru un somn odihnitor poate fi găsit în fructe
Secretul pentru un somn odihnitor poate fi găsit în fructe
Maica Tereza, călugăriţa care a primit Premiul Nobel pentru Pace
Maica Tereza, călugăriţa care a primit Premiul Nobel pentru Pace
Cel puțin 35.000 de oameni au murit în Europa din cauza căldurii extreme din această vară
Cel puțin 35.000 de oameni au murit în Europa din cauza căldurii extreme din această vară
Cel mai frumos sat din lume, sufocat de turiști. Ce pregătesc autoritățile?
Cel mai frumos sat din lume, sufocat de turiști. Ce pregătesc autoritățile?