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
Fără precedent: Un rinichi a fost transportat cu drona într-un timp record
Fără precedent: Un rinichi a fost transportat cu drona într-un timp record
O rocă marțiană bizară conține un mineral pe care oamenii de știință nu se așteptau să îl găsească
O rocă marțiană bizară conține un mineral pe care oamenii de știință nu se așteptau să îl găsească
Penelopa, femeia care i-a învins pe pețitori fără să ridice sabia. Cum a devenit simbolul inteligenței în mitologia greacă
Penelopa, femeia care i-a învins pe pețitori fără să ridice sabia. Cum a devenit simbolul inteligenței în mitologia ...
Calea Lactee ar putea fi mai mare decât au estimat astronomii
Calea Lactee ar putea fi mai mare decât au estimat astronomii
Sonda japoneză Hayabusa2 a surprins un asteroid cu două capete aflat la milioane de kilometri distanță
Sonda japoneză Hayabusa2 a surprins un asteroid cu două capete aflat la milioane de kilometri distanță
Oamenii de știință au calculat când vor muri ultimele plante de pe Pământ
Oamenii de știință au calculat când vor muri ultimele plante de pe Pământ
Imperiul Roman nu ar fi existat fără sclavi. Cum milioane de oameni lipsiți de libertate au construit cea mai mare putere a Antichității
Imperiul Roman nu ar fi existat fără sclavi. Cum milioane de oameni lipsiți de libertate au construit cea mai mare putere ...
Cele mai frumoase stații de metrou și noduri de transport urban din lume
Cele mai frumoase stații de metrou și noduri de transport urban din lume
Cercetătorii au aflat cum celulele cancerului de colon își schimbă identitatea pentru a se răspândi
Cercetătorii au aflat cum celulele cancerului de colon își schimbă identitatea pentru a se răspândi
Manualele de biologie s-au înșelat: Oamenii de știință au descoperit cum crește, de fapt, părul uman
Manualele de biologie s-au înșelat: Oamenii de știință au descoperit cum crește, de fapt, părul uman
Nu timpul petrecut în jocuri video îi afectează pe tineri! Ce au descoperit acum oamenii de știință?
Nu timpul petrecut în jocuri video îi afectează pe tineri! Ce au descoperit acum oamenii de știință?
Test de cultură generală. Care este cel mai mic lucru din Univers?
Test de cultură generală. Care este cel mai mic lucru din Univers?
2026, anul care a schimbat deja lumea. Evenimentele care au marcat primele șase luni
2026, anul care a schimbat deja lumea. Evenimentele care au marcat primele șase luni
Cele mai inspirate cadouri pentru copiii de 7 ani: jocuri, cărți și activități care stimulează creativitatea
Cele mai inspirate cadouri pentru copiii de 7 ani: jocuri, cărți și activități care stimulează creativitatea
Schimbările climatice, o provocare majoră pentru muzeele din Marea Britanie
Schimbările climatice, o provocare majoră pentru muzeele din Marea Britanie
Ce țări străbate cel mai lung și mai adânc tunel feroviar din lume?
Ce țări străbate cel mai lung și mai adânc tunel feroviar din lume?
Uniunea de la Kalmar, momentul în care s-au unificat regatele nordice
Uniunea de la Kalmar, momentul în care s-au unificat regatele nordice
Donald Trump vrea ca Groenlanda „să fie controlată de Statele Unite, nu de Danemarca”
Donald Trump vrea ca Groenlanda „să fie controlată de Statele Unite, nu de Danemarca”