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
Cât trebuie să plătească turiștii care vor să vadă Fontana di Trevi din Roma?
Cât trebuie să plătească turiștii care vor să vadă Fontana di Trevi din Roma?
Un crater din Canada, numit și „Ochiul din Quebec”, arată extrem de ciudat
Un crater din Canada, numit și „Ochiul din Quebec”, arată extrem de ciudat
Un schelet fără cap, vechi de 9.500 de ani, este cel mai vechi adult incinerat din Africa
Un schelet fără cap, vechi de 9.500 de ani, este cel mai vechi adult incinerat din Africa
De ce bătrânii sunt mai predispuși să distribuie informații greșite online?
De ce bătrânii sunt mai predispuși să distribuie informații greșite online?
Un studiu a descoperit cel mai frumos mod prin care să-ți menții creierul tânăr
Un studiu a descoperit cel mai frumos mod prin care să-ți menții creierul tânăr
Lacul din Canada care este pe cât de colorat, pe atât de urât mirositor
Lacul din Canada care este pe cât de colorat, pe atât de urât mirositor
Arheologii au descoperit cel mai mare și mai vechi oraș preistoric găsit vreodată în Irlanda
Arheologii au descoperit cel mai mare și mai vechi oraș preistoric găsit vreodată în Irlanda
Predicțiile The New York Times pentru 2026. Cum va răspunde lumea la excesul tehnologic?
Predicțiile The New York Times pentru 2026. Cum va răspunde lumea la excesul tehnologic?
De ce nu ne putem mișca degetele de la picioare unul câte unul?
De ce nu ne putem mișca degetele de la picioare unul câte unul?
Test de cultură generală. Care este diferența dintre cafea și ceai?
Test de cultură generală. Care este diferența dintre cafea și ceai?
Top 4 momente în care Inteligența Artificială a scăpat de sub control, de la chatboți controversați la experimente politice
Top 4 momente în care Inteligența Artificială a scăpat de sub control, de la chatboți controversați la experimente ...
Cel mai înalt diplomat al Chinei a acuzat SUA că acționează ca „polițist al lumii”
Cel mai înalt diplomat al Chinei a acuzat SUA că acționează ca „polițist al lumii”
Premii record la Australian Open 2026. Ce au anunțat organizatorii?
Premii record la Australian Open 2026. Ce au anunțat organizatorii?
Reguli drastice pentru turiștii care vor să ajungă într-o destinație turistică foarte populară
Reguli drastice pentru turiștii care vor să ajungă într-o destinație turistică foarte populară
Hirohito, împăratul care a domnit 62 de ani. După ce a permis atrocităţile totalitare s-a supus generalului american Douglas MacArthur
Hirohito, împăratul care a domnit 62 de ani. După ce a permis atrocităţile totalitare s-a supus generalului american ...
Risc de contaminare cu lapte praf. Nestlé anunță o retragere globală!
Risc de contaminare cu lapte praf. Nestlé anunță o retragere globală!
Pas strategic major anunțat de Nvidia la CES 2026
Pas strategic major anunțat de Nvidia la CES 2026
Cea mai frumoasă călătorie cu trenul din lume costă doar 15 euro
Cea mai frumoasă călătorie cu trenul din lume costă doar 15 euro