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
Care țări UE le oferă cei mai mulți bani profesorilor?
Care țări UE le oferă cei mai mulți bani profesorilor?
Cum au schimbat Universul primele stele? Noi simulări fără precedent au aflat răspunsul
Cum au schimbat Universul primele stele? Noi simulări fără precedent au aflat răspunsul
Cele mai misterioase scrieri ale lumii antice, pe care nimeni nu a reușit să le descifreze
Cele mai misterioase scrieri ale lumii antice, pe care nimeni nu a reușit să le descifreze
Limbile în care „stânga” și „dreapta” nu sunt reperele principale. Cum se orientează vorbitorii lor
Limbile în care „stânga” și „dreapta” nu sunt reperele principale. Cum se orientează vorbitorii lor
Mai puține alimente ultraprocesate, simptome mai ușoare de depresie? Ce arată un studiu din 2026
Mai puține alimente ultraprocesate, simptome mai ușoare de depresie? Ce arată un studiu din 2026
Ce poți face la 30 de ani pentru a îmbătrâni mai sănătos
Ce poți face la 30 de ani pentru a îmbătrâni mai sănătos
Ce ne dezvăluie anestezia generală despre creier și misterul conștiinței
Ce ne dezvăluie anestezia generală despre creier și misterul conștiinței
Sonda Juice tocmai a folosit Pământul drept o praștie gravitațională pentru a ajunge la Jupiter
Sonda Juice tocmai a folosit Pământul drept o praștie gravitațională pentru a ajunge la Jupiter
Scădere alarmantă înregistrată de cea mai mare colonie de pinguini din lume. Care este cauza?
Scădere alarmantă înregistrată de cea mai mare colonie de pinguini din lume. Care este cauza?
Euro continuă să se deprecieze în raport cu dolarul. Care este motivul?
Euro continuă să se deprecieze în raport cu dolarul. Care este motivul?
O metodă ingenioasă deschide o cale nouă de a detecta leziunile cerebrale după AVC
O metodă ingenioasă deschide o cale nouă de a detecta leziunile cerebrale după AVC
Un oraș foarte bogat este și cel mai poluat de pe planetă
Un oraș foarte bogat este și cel mai poluat de pe planetă
Un studiu recent a recalculat când se va destrăma Sistemul Solar
Un studiu recent a recalculat când se va destrăma Sistemul Solar
Industria invizibilă care susține alimentația globală: ce este sectorul alimentar informal?
Industria invizibilă care susține alimentația globală: ce este sectorul alimentar informal?
Cel mai mare furt de vin din istoria Italiei: au fost luate zeci de mii de sticle
Cel mai mare furt de vin din istoria Italiei: au fost luate zeci de mii de sticle
16-28 octombrie 1962 – Criza rachetelor din Cuba. Cele 13 zile în care lumea s-a apropiat de războiul nuclear
16-28 octombrie 1962 – Criza rachetelor din Cuba. Cele 13 zile în care lumea s-a apropiat de războiul nuclear
De ce expansiunea reală a Universului nu se potrivește cu datele noastre? Astronomii tocmai au elucidat misterul
De ce expansiunea reală a Universului nu se potrivește cu datele noastre? Astronomii tocmai au elucidat misterul
Un pui de țestoasă cu două capete a fost găsit la Cape Cod. Este al treilea caz în cinci ani
Un pui de țestoasă cu două capete a fost găsit la Cape Cod. Este al treilea caz în cinci ani