Fredag den 13: e musikaliska stugan (3 / 4 steg)

Steg 3: Source Code



En fullständig lista över källkoden kan erhållas från min Pastebin.com profil, här. Jag kommer att omfatta några centrala begrepp i kodexen för de nya till Arduino utveckling.

Tonar bibliotek

Tonar biblioteket kan erhållas på Google-koden från här. Detta bibliotek är otroligt enkel att använda. När vi har zip-filen extraheras till katalogen bibliotek i vårt Arduino IDE installation rotkatalog, kan vi börja spela toner. Detta bibliotek är egentligen perfekt för detta projekt eftersom det producerar, liksom många elektroniska apparater, square ljudvågor som är vad producerades även i den ursprungliga NES hårdvaran. Låt oss ta en titt på ett snabbt exempel. Eftersom vi har stift 12 och 13 går direkt till högtalaren, måste vi initiera dem med två tonar objekt som,

Tone tone1; < br > tona tone2;

Nästa, vi i våra setup() loop initiera dem för ljudutgång med följande två rader av kod,

tone1.BEGIN(13); < br > tone2.begin(12);

Nu, kan vi helt enkelt kallar metoden play() på varje ton objekt som,

tone1.Play(440,900);

som i ovanstående fall, skulle spela en 440 (den musikaliska Obs: A4) för 900 millisekunder (ms). Att spela två toner samtidigt är lätt. Som skrivs av denna handledning, metoden play() ta ett heltal som en frekvensvärde, så frekvenser med bråk i dem, såsom B4 som är faktiskt 493.883 måste hz, avrundas uppåt eller nedåt. Play () -metoden gafflarna, och arbetsflödet fortsätter till nästa rad i koden. Till exempel koden,

tone1.Play(440,900);
tone2.Play(122,900); delay(900) < br > < br > tone1.play(622,900); < br > tone2.play(784,900); < br > delay(900);

kommer att spela tonerna 440hz och 122hz samtidigt för 900ms och samtidigt göra så Arduino pausar använda funktionen delay() för 900ms. Omedelbart efter, tonar 622hz och 784hz spelas samtidigt för 900ms och Arduino pauser, igen, för 900ms medan du spelar toner.

Delay() är viktigt att komma ihåg som Play () -metoden gafflarna. Ett bra exempel är under en for() slinga. Om vi vill spela en ton flera gånger i rad och inte pausa Arduino med delay(), låter det som om det spelar tonen vi ange endast en gång!

Kom också ihåg att det finns många referenser som lätt kan hittas online med en sökmotor för att hitta ungefärliga frekvenser av noter som spelas på ett piano som kan refereras samtidigt som projekt som spelar låtar. För vår låt behöver vi inte oroa sig om att räkna ut dem eftersom jag har redan gjort det för oss och sätta dem i C++-kod. För att visa ett litet exempel dock, använder vi följande frekvenser för avsnittet vers.

int del 1 [] = {740,494,587}. 740hz (F #5), 494hz (B4), 587hz (D5)
int del 2 [] = {659,466,554}. 659hz (E5), 466hz (A #4), 554hz (C# 5)

Basfrekvenser (det finns bara två) är 122hz (~ B2) och 116hz (A #2). Bass varar 3 anteckningar, så om du vill spela dem samtidigt, vi använder funktionen anpassade definierade playSection() i C++ kod.

Trycker på knappkod

Tryckknapp koden använder en enkel digitalRead() funktion för att kontrollera spänning kommer igenom på PIN-koden anges. I vårt fall är det stift 2. Det kräver inte en speciell tredje part bibliotek att använda.

I vår setup() funktion måste vi initiera PIN-koden för input och använda den följande lina av koden för att göra det,

pinMode (2, ingång);

Nu i vår loop() händelsehantering looping funktion, kan vi helt enkelt ta en läsning av spänningen med funktionen digitalRead() , som,

digitalRead(2);

Om det returnerade värdet är lika med konstanten för hög spänning (1), då börja vi uppspelning av musik. Annars bör den återvända så lågt (0).

Se Steg
Relaterade Ämnen

Fredag den 13: e dricka

Känner mig otur? Har inte fått ett datum ännu för alla hjärtans dag? Ja den SuperTenders har en stor drink du ska korsa väg med för att göra i helgen "purrfect:" den svarta katten. Det är lätt att göra och har en riktigt läcker söt syrlig smakSt...

C.I.M.M. (CD, jag pod, Mp, musikalisk enhet) jacka

en jacka som har hörlurar inbyggda i dem.. Det inte bara skyddar din musikaliska enhet i det regn, du kan också lyssna på dina favoritlåtar i regnet. Med hörlurarna i basen av jacka, och enkel tillgång till den musikaliska enheten du väljer är det en...

Hemlagad äpple jäst

jag fick en uppsättning böcker från Amazon Kindle bibliotek, 1 bok av ätbara historia och 1 av drickbart historia. De förklara de processer som användes för länge sedan av våra förfäder, för att göra vinäger, Cider, öl och mjöd (ska arbete på att gör...

Hemmagjord Super lätt äppelcider

när jag växte upp, en sak jag alltid såg fram emot varje år var fat av Apple Cider, min farfar hade i sitt garage. Från färska drycken som kom i oktober, till bra grejer med en trevlig liten matbit i januari och februari, var det en av höjdpunkterna...

Spolen Pump V2.0 - test rigg

detta Instructable är en guide till att bygga och driva en enkel spole pump.Sousdey från Kambodja och Välkommen till vårt projekt!Efter vår första Instructable, hur för att göra en mycket enkel handmanövrerad vattenpumpen komponenter lätt kan hittas...

Lägg en Step-Up ring (för filter) till din Holga!

Detta instructable visar dig hur du lägger till en step-up ring din Holga så att du kan bifoga filter till det enkelt. Ja... du kan köpa Holga serien av filter om du gillar, och om du inte redan äger en uppsättning filter som är bra. Men om liksom ja...

Pocketfold bröllopsinbjudan

detta är en mycket komplex Instructable, men är absolut värt besväret.Detta är inte ett kit, men 100% helt handgjorda!Jag tittade på några tutorials online, men ingen av dem verkligen matchade vad jag ville åstadkomma. Efter dagar av beräkning av och...

Fattig Mans glasfiber, permanent utomhusfärg, aldrig måla igen (nästan), tätskikt med ut epoxi, glasfiber epoxi allergi lättnad

Tillbaka i 2011 jag byggde en teardrop husbil, när jag behövde en plats att sova några nätter i veckan som lång bilresa hem orsakade mig att somna bakom ratten vägen till ofta. Jag fick planer för teardrop fri från den bästa teardrop trailer plats i...

Underwater musikinstrument: ljud från vatten

Låt oss bygga ett musikinstrument som gör ljudet från vibrationer i vätska!För första gången i mänsklighetens historia ger vi vattnet en "röst".Jag minns från min barndom, berättade våra barnträdgårdslärare:"Det finns 3 typer av instrument:...

Kokos koja | Ett hem för fåglar & varelser

Hej. Mitt namn är Chelsea och jag volontär på en ideell papegoja räddning i Thousand Palms, California. Mitt jobb här tillåter mig att arbeta med små papegojor som senegals, turturduvor, nymfer och conures.Denna handledning hjälper dig att göra en li...

Hicka kostym (praktiska 2)

på grund av min kostymer de senaste par åren, min kontor och grannar har höga förväntningar för mig i min Halloween kostym varje år. I år hade jag bokstavligen människor frågar mig i April om jag visste vad jag skulle vara för Halloween ännu. Och mit...

Katt Poop Fudge

så om du letar efter ett sätt att brutto människor ut på fredag den 13: e eller på Halloween, här ya go. Katt Poop Fudge.Också, kolla in Jessyratfink'sCat hår tårta.Med denna combo av behandlar är du säker på att drabbats av någon part.Steg 1: Saker...

Hur man Rap

* Obs att Instructables skruvas mig ur en rättvis tävling i det brännande frågorna tävling rond 4. Men tävlingen var avsedd att hjälpa människor som ville ha fast, verkliga, första hand insikt, rappa och freestyleing. En det är vad jag försökte göra....

Evil Dead 2 motorsåg

Evil Dead 2 är en av mina favorit filmer genom tiderna; en som jag kan ha köpt fler gånger än även Star Wars. (Jag äger den på Betamax!) Min fru tog mig till platsen för den ursprungliga Evil Dead stugan nära sitt hem i Tennessee. Här är din chans at...

Händig Tricks från Australien

någonstans över regnbågen är magiska landet Oz, ett parallellt universum där de kallar "ketchup" "tomatsås". De har sina egna sätt att göra saker, och här är några random som jag såg där.Att se mer händig tricks,försök händig Tricks fr...

Monster invasionen scen

här är en steg för steg på hur omvandla lugnande, normal scenerier till skrämmande scener med picnik.com (en fri foto redigerande webbplats) tillsammans med Microsoft PowerPoint och färg.Steg 1: Enter http://www.picnik.com till URL: ruta i din webblä...

Leopold Robotic dans plysch ödlan

detta instructable kommer att gå igenom hur man bygger en robot plysch ödlaDetta mekatroniska djur, dubbade Leopold den 17: e (han gick igenom 17 iterationer), utvecklades som det andra projektet för klassen våren 2012 saker att tänka på The Universi...

Festfalia, A Ford Festiva Flip Top Hyper Miler husbil

Jag har velat göra en bil in i en husbil i flera år och till slut hittade jag den perfekta bilen för den, den ödmjuka Ford Festiva. Varför välja en sådan liten bil? Jag tror att begränsningar föder kreativitet och jag ville hög MPGs. Detta är inte me...

Hur man tejpa en High School spela (Ja)

Hej alla -Under mina år i High School var jag verkligen med drama-programmet, särskilt med besättning. Började i konstruktion, flyttade till kör, sedan till belysning, och nu när jag har examen, jag drog tillbaka att hjälpa till med belysning och mul...