Arduino - spelen de Piezo


de Piezo spelen!
Het doel van dit project is het genereren van muziek via beweging dankzij versnellingsmeters.

-1 3-assige versnellingsmeter
-1 kaart van de arduino
-1 luidspreker
-1 nummer kunnen uitdaging het crap-geluid van de spreker

De code is eenvoudig: het ritme van het nummer wordt uitgevoerd en voor elke stap van de tijd, de handschoen zintuigen van de richting van de zwaartekracht en kiest voor één van de drie noten van het liedje.

De code is hieronder.

U kunt kijken naar de video op Youtube.

Lees nieuws en updates op mijn pagina. Momenteel ben ik het verzamelen van fondsen tegen kanker, Doneer alstublieft!

/*
28 december 2012 - Sebastien RUBRECHT
Probeert af te spelen van een coole muziek met een crap speaker, in de hoop dat de "cool" het "onzin" zal compenseren.
De muziek is "waar is mijn geest" van The Pixies, die is echt makkelijk te spelen.
*/

#define AUTO 0 / / automatische modus: als dit 1 is, de muziek automatisch wordt afgespeeld.

Pinnen
Const int analogInPinX = 0;  Analoge invoer pin die de versnellingsmeter de eerste pin aan is gekoppeld
Const int analogInPinY = 1;  Analoge invoer pin die tweede pin van de versnellingsmeter is aangesloten op
Const int analogInPinZ = 2;  Analoge invoer pin die derde pin van de versnellingsmeter is aangesloten op
Const int tone1Pin = 9;  Toon uitgangssignaal

Const int highPin1 = 11;  5 V alimentation
Const int highPin2 = 12;  5 V alimentation
Const int lowPin1 = 5; grond voor een van de 2 versnellingsmeter gnd.
Const int lowPin2 = 6; grond voor een van de 2 versnellingsmeter gnd.

Const int ledOKPinGnd = 8;  grond voor OK Pin
Const int ledOKPinH = 10; 5 V alimentation voor OK Pin
Const int ledNOKPinGnd = 2; grond voor NOK Pin
Const int ledNOKPinH = 4;  5 V alimentation voor NOK Pin

constante waarden
Const float freq_rediese0 = 38.9;//frequency van een scherpe Re in Hz, voor oktaaf 0
Const float freq_mi0 = 41.2;//frequency voor een Mi in Hz, voor oktaaf 0
Const float freq_soldiese0 = 51.9;//frequency voor een scherpe Sol in Hz, voor oktaaf 0

constante gebruiker gedefinieerde parameters
Const int octave = 4; //octave nummer. Wees voorzichtig, onder 2(low) en boven 6 (acute), krijgt het erg lelijk
Const int temps = 380; //number van milliseconden voor 1 muzikale noot. 380 is het echte ritme, maar begin met 600 is makkelijker om te leren

variabelen
zweven freq_rediese = freq_rediese0 * pow (oktaaf 2); frequentie van een scherpe Re in Hz, voor het ingehouden octaaf
zweven freq_mi = freq_mi0 * pow (2, oktaaf); //frequency voor een Mi in Hz, voor de ingehouden octaaf
zweven freq_soldiese = freq_soldiese0 * pow (2, oktaaf); //frequency van een scherpe Sol in Hz, voor de ingehouden octaaf

int noire; //time van een notitie kwartnoot
int croche; //temps van een golvende-notitie
float frequentie; //frequency gespeeld

int sensorValue1;        waarde gelezen van de versnellingsmeter van eerste pin
int sensorValue2;        waarde gelezen van de versnellingsmeter van tweede pin
int sensorValue3;        waarde gelezen van de versnellingsmeter van tweede pin

VOID Setup {}
pinMode (tone1Pin, OUTPUT);

pinMode (highPin1, OUTPUT);
pinMode (highPin2, OUTPUT);
pinMode (lowPin1, OUTPUT);
pinMode (lowPin2, OUTPUT);

pinMode (ledOKPinGnd, OUTPUT);
pinMode (ledOKPinH, OUTPUT);
pinMode (ledNOKPinGnd, OUTPUT);
pinMode (ledNOKPinH, OUTPUT);

digitalWrite (lowPin1, laag);
digitalWrite (lowPin2, laag);
digitalWrite (highPin1, hoge);
digitalWrite (highPin2, hoge);

digitalWrite (ledOKPinGnd, laag);
digitalWrite (ledNOKPinGnd, laag);
}

void loop {}
Noire = temps;
Croche = temps/2;

"waar is mijn geest" is 4 * (1 mi + 1sol #); 2 * (1re # + 1sol #); 2 * (1 mi + 1/2 mi + 1 / 2re #).
for (int j = 0; j < 4; j ++) //4 * (1 mi + 1sol #)
{
frequentie = acqNote(freq_mi); de richting van de hogere versnelling krijgt van de sensor en geeft als resultaat de assofrequency. De theoretische goeie is een Mi.
Opmerking (frequentie, noire); / / speelt de frequentie keerde terug op de vorige regel 1 "noire" periode.
frequentie = acqNote(freq_soldiese);
Opmerking (frequentie, noire);
}
for (int j = 0; j < 2; j ++) //2 * (1re # + 1sol #);
{
frequentie = acqNote(freq_rediese);
Opmerking (frequentie, noire);
frequentie = acqNote(freq_soldiese);
Opmerking (frequentie, noire);
}
for (int j = 0; j < 2; j ++) / / 2 * (1 mi + 1/2 mi + 1 / 2re #)
{
frequentie = acqNote(freq_mi);
Opmerking (frequentie, noire);
frequentie = acqNote(freq_mi);
Opmerking (frequentie, croche);
frequentie = acqNote(freq_rediese);
Opmerking (frequentie, croche);
}
}

VOID opmerking (zweven freq, int duur)
{
De functie "note" speelt een notitie bij frequentie "freq" (Hz) tijdens "duur" (ms)

conversie van de frequentie in een semi-periode
dubbele semiperiod_micros =1/(double(freq)) * 1000000 * 0,5;

lange duree=long(duration);
niet-ondertekende lang een = millis();
terwijl (millis() < (a + duree))
{
digitalWrite (tone1Pin, hoge);
delayMicroseconds(int(semiperiod_micros));
digitalWrite (tone1Pin, laag);
delayMicroseconds(int(semiperiod_micros));
}
Om te scheiden van de toelichting (het klinkt beter), kleine vertragingen.
Als (duur > 300)
{delay(15);}
anders
{delay(7);}
}

zweven acqNote(float freq_ref) {}

"acqNote" krijgt de versnelling in de 3 richtingen van de sensor, selecteert u de hoogste en geeft als resultaat de bijbehorende frequentie.
Als de id overeenkomt met de theoretische goede frequentie "freq_ref", er wordt overgeschakeld op de groene led, anders de rode led.

float freq;

de beide analoge input waarden luidt als volgt:
sensorValue1 = analogRead(analogInPinX);
sensorValue2 = analogRead(analogInPinY);
sensorValue3 = analogRead(analogInPinZ);

Deze eigenschap retourneert de index van de max van 3 waarden
Als ((max(max(sensorValue1,sensorValue2),sensorValue3))==sensorValue1) {}
freq = freq_rediese;
}
anders als ((max(max(sensorValue1,sensorValue2),sensorValue3))==sensorValue2) {}
freq = freq_mi;
}
else {}
freq = freq_soldiese;
}

overgeschakeld op de groene led als de frequentie gevonden is de theoretische goeie, anders rode.
Als (freq == freq_ref) {}
digitalWrite(ledOKPinH,HIGH);
digitalWrite(ledNOKPinH,LOW);
}
else {}
digitalWrite(ledOKPinH,LOW);
digitalWrite(ledNOKPinH,HIGH);
}
Als (AUTO) {}
Return freq_ref;
}
else {}
retourneren freq;
}

};

Gerelateerde Artikelen

Arduino spelen van de melodie met de Sd kaart

Arduino spelen van de melodie met de Sd kaart

Dit project is in SD-kaart geladen gestolen melodie wordt verstrekt door de opdracht die is verzonden vanuit de seriële monitor.Als u wilt toevoegen, moet het toepassingsbestand var.siz 6-melody melody melody hetzelfde als de naam van de opgegeven co
Arduino spelen (micro) muziek zonder schild

Arduino spelen (micro) muziek zonder schild

Micromusic, 8 bit muziek, arduino muziek!Stap 1: overVoor een project van een collectieve kunst maakte ik een muziek-spelen met Arduino. Muziek begint met ultrasone sensor.Stap 2: CodeDe code voor de muziek die u met de hand schrijven, spelen door oo
Ode aan de vreugde en andere klassieke muziek met Arduino spelen

Ode aan de vreugde en andere klassieke muziek met Arduino spelen

Dit is een basic tutorial (ideaal voor beginners!) met behulp van de Arduino Uno of soortgelijke versie te spelen van Ode aan de vreugde van Beethoven. Dit was een van mijn eerste projecten met Arduino.Wat u zult moeten:-Arduino Uno of soortgelijke v
Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX)

Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX)

Geïnteresseerd in maken nette projecten met een Arduino maar niet weet waar te beginnen?Hier is een gemakkelijk te volgen gids op hoe te connect & gebruiken een schare van elektronische componenten.(schaamteloze plug)Geïnteresseerd in het doen het al
K.K. Bossa lied en animatie op een Arduino

K.K. Bossa lied en animatie op een Arduino

Wat doet het?Speelt het liedje K.K. Bossa uit Animal Crossing en een animatie met behulp van een Arduino Uno, een piezo en een 16 X 2 LCD.De animatie is gebaseerd off van Animal Crossing nieuwe Leaf.De top video is met de mannelijke dorpsbewoner en d
Arduino/Twitter Mets Apple

Arduino/Twitter Mets Apple

Wanneer ik ga met mijn kinderen te zien de Mets Citi Field, ze gek voor de Home Run Apple.To me, de appel is onderdeel van wat honkbal spannend voor kinderen maakt. Hoewel mijn kinderen niet de meeste van de spellen kijken kunnen, ik nog steeds genie
Stuur email met ESP8266 en Arduino UNO

Stuur email met ESP8266 en Arduino UNO

Hoe krijg ik Adafruits "send_email_smtp.ino" te Stuur e-mail met ESP8266 en Arduino UNO.En het opheffen van het probleem met "geen reactie van module" veel hebben.De module werkt op 3,3 v logica volgens de documentatie, maar ik had gee
Arduino macht handschoen

Arduino macht handschoen

de belangrijkste idee is het creëren van een prop voor plezier en cosplay vergelijkbaar met een ijzeren man handschoen of Megaman blaster kanon.Stap 1: onderdelen ik zal worden met behulp van een ring 16 pixel Ada fruit en 5 8 pixel stroken samen met
Lees E-mail met Arduino en Wave Shield

Lees E-mail met Arduino en Wave Shield

als onderdeel van mijn project hier (dat project is in een wedstrijd dus als je dit dan stemmen voor!) dat gebruikt een Arduino te onderbreken van een extrernal geluidsbron (dwz iPod) als u wilt u laten weten over dingen om je heen gebeurt, ik had he
Speel de Fransen kan kan met behulp van een Arduino en de zoemer

Speel de Fransen kan kan met behulp van een Arduino en de zoemer

Bonjour!Controleer je Arduino spelen de Franse kan kan met behulp van een zoemer. Geen Tang. Geen branden. Het is zo ongecompliceerd is zo schandalig de kan houdt.Dit instructable heeft betrekking op één of andere info inleidende elektronica, en rich
Installeren van de Arduino IDE 1.6.5 bij Kano OS (Raspbian) - Raspberry Pi

Installeren van de Arduino IDE 1.6.5 bij Kano OS (Raspbian) - Raspberry Pi

Hallo iedereen.Het doel van dit instructable is zodat u kunt installeren en gebruiken van de Arduino IDE 1.6.5 Kano OS. Laat beginnen over Kano OS eerste en vervolgens verder met de instructies voor het installeren.KENNISGEVING: Als u een normale Ras
Emotionele woordenschat Play Mat

Emotionele woordenschat Play Mat

[Ik vind veel dingen overdag] Dit is een educatieve spelen mat voor kinderen tussen de leeftijden tussen 2 en 7 om te spelen en hun emotionele woordenschat uit te breiden door het opwekken van gevoelens van nieuwsgierigheid, plezier en liefde voor he
Frankenstein project

Frankenstein project

"Dit instructable is gemaakt door Howard Kaplan vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com)". Afdrukken in 3D werd uitgevoerd bij de Advanced Visualization Center aan de University of Sou
Simon Game - xylofoon versie

Simon Game - xylofoon versie

een beetje spelinterface maak ik... Kortom, het zal het spel simon... behalve veel harder en xylofoon stijl :)(Voor degenen die niet weten, simon spel is het volgende:http://www.YouTube.com/watch?v=4YhVyt4q5HI)Materialen / gereedschappen zijn vrij on