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
Oamenii de știință au descoperit două gene care ar putea opri răspândirea cancerului
Oamenii de știință au descoperit două gene care ar putea opri răspândirea cancerului
Lepra, între istorie și știință: ce înseamnă cu adevărat această boală și cât de mare este riscul astăzi
Lepra, între istorie și știință: ce înseamnă cu adevărat această boală și cât de mare este riscul astăzi
O navă spațială NASA de pe orbita planetei Marte s-a deconectat în mod misterios
O navă spațială NASA de pe orbita planetei Marte s-a deconectat în mod misterios
Geminidele ating vârful în weekendul 13 – 14 decembrie 2025. Cum să le vezi?
Geminidele ating vârful în weekendul 13 – 14 decembrie 2025. Cum să le vezi?
Epidemie „fără precedent” de gripă în Marea Britanie
Epidemie „fără precedent” de gripă în Marea Britanie
Fibrele, noul ingredient-vedetă. „Este un nutrient de care oamenii chiar au nevoie”
Fibrele, noul ingredient-vedetă. „Este un nutrient de care oamenii chiar au nevoie”
Nichita Stănescu, geniul răsfăţat de Ceauşeşti care a consumat alcool până a murit. „A făcut şi el un pact cu diavolul”
Nichita Stănescu, geniul răsfăţat de Ceauşeşti care a consumat alcool până a murit. „A făcut şi el un pact cu diavolul”
Gigantul Netflix, păcălit cu milioane de dolari de un regizor cunoscut de la Hollywood
Gigantul Netflix, păcălit cu milioane de dolari de un regizor cunoscut de la Hollywood
Locurile din avion pe care pasagerii ar trebui să le evite pe cât posibil
Locurile din avion pe care pasagerii ar trebui să le evite pe cât posibil
Interesul SUA pentru Groenlanda, motiv de panică pentru serviciile secrete daneze
Interesul SUA pentru Groenlanda, motiv de panică pentru serviciile secrete daneze
Unde ajung bagajele pierdute în aeroport?
Unde ajung bagajele pierdute în aeroport?
Oamenii tocmai acum realizează că Pământul are o coadă, care se întinde pe milioane de kilometri
Oamenii tocmai acum realizează că Pământul are o coadă, care se întinde pe milioane de kilometri
Un simplu truc cu lumina dezvăluie căi cerebrale ascunse în detaliu microscopic
Un simplu truc cu lumina dezvăluie căi cerebrale ascunse în detaliu microscopic
Ce a descoperit o echipă de cercetători în structura termică de sub Groenlanda?
Ce a descoperit o echipă de cercetători în structura termică de sub Groenlanda?
A fost recuperată prima comoară de pe „Sfântul Graal al epavelor”
A fost recuperată prima comoară de pe „Sfântul Graal al epavelor”
Copilăria lângă un părinte narcisic: consecințe emoționale și drumul către vindecare
Copilăria lângă un părinte narcisic: consecințe emoționale și drumul către vindecare
Cuvintele care vindecă: cum să vorbești ca să fii auzit, respectat și înțeles
Cuvintele care vindecă: cum să vorbești ca să fii auzit, respectat și înțeles
Cum a devenit „narcisismul” unul dintre cele mai folosite cuvinte ale psihologiei moderne
Cum a devenit „narcisismul” unul dintre cele mai folosite cuvinte ale psihologiei moderne