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
Intrigi și orgolii politice în vremuri de război. „Cartierul Corpului II de armată, transformat într-un adevărat club politic de partid şi mai ales într-un cuib de intrigi”
Intrigi și orgolii politice în vremuri de război. „Cartierul Corpului II de armată, transformat într-un adevărat ...
Fizicienii au găsit dovezi pentru „timpul negativ”
Fizicienii au găsit dovezi pentru „timpul negativ”
SPECIAL. Selly, TOTUL despre Buzz House, relația cu Smără și cel mai frumos cadou
SPECIAL. Selly, TOTUL despre Buzz House, relația cu Smără și cel mai frumos cadou
Astronomii din Galați au descoperit o nouă stea variabilă! Ce nume a primit?
Astronomii din Galați au descoperit o nouă stea variabilă! Ce nume a primit?
Cercetătorii sunt surprinși de faptul că veverițele au început să mănânce carne
Cercetătorii sunt surprinși de faptul că veverițele au început să mănânce carne
Cum s-a ferit un general român de holera din Bulgaria în anul 1913: A dat ordin să fie construite niște clădiri pe piloni „ca în Veneția, ca să nu-l ajungă microbii”
Cum s-a ferit un general român de holera din Bulgaria în anul 1913: A dat ordin să fie construite niște clădiri pe piloni ...
În mod surprinzător, vâscul are un efect vindecător foarte puternic
În mod surprinzător, vâscul are un efect vindecător foarte puternic
Incertitudinea face parte din condiția umană –  Cum putem învăța să trăim cu ea?
Incertitudinea face parte din condiția umană – Cum putem învăța să trăim cu ea?
5 sfaturi care te ajută să bei responsabil de Crăciun și Anul Nou
5 sfaturi care te ajută să bei responsabil de Crăciun și Anul Nou
Testul HPV, „strategia de screening preferată” pentru cancerul de col uterin
Testul HPV, „strategia de screening preferată” pentru cancerul de col uterin
Test de cultură generală. Când a avut loc primul Crăciun?
Test de cultură generală. Când a avut loc primul Crăciun?
Descoperă locuri inedite pentru călătoriile tale: Aventuri din lumea largă (P)
Descoperă locuri inedite pentru călătoriile tale: Aventuri din lumea largă (P)
Cum a reușit Pipera să devină cel mai atractiv cartier din zona București-Ilfov? (P)
Cum a reușit Pipera să devină cel mai atractiv cartier din zona București-Ilfov? (P)
Transformările digitale şi viitorul marketingului (P)
Transformările digitale şi viitorul marketingului (P)
Scolioza și hernia de disc, afecțiuni ale coloanei vertebrale care pot fi tratate (P)
Scolioza și hernia de disc, afecțiuni ale coloanei vertebrale care pot fi tratate (P)
NASA, pregătită să scrie istorie în Ajun de Crăciun! O sondă va ajunge mai aproape de Soare decât orice alt obiect construit de om
NASA, pregătită să scrie istorie în Ajun de Crăciun! O sondă va ajunge mai aproape de Soare decât orice alt obiect ...
RAVEN, robotul-pasăre care zboară, face salturi și merge pe sol
RAVEN, robotul-pasăre care zboară, face salturi și merge pe sol
Transport public gratuit într-o capitală europeană cu 1,4 milioane de locuitori
Transport public gratuit într-o capitală europeană cu 1,4 milioane de locuitori