Metall Doctor Who Sonic skruvmejsel med Arduino (10 / 13 steg)

Steg 10: Arduino skiss plockade isär



Här är hur koden fungerar och hur till modifiera den. Snälla spela med koden nedan att få olika ljud och dela dina resultat i kommentaren. Om du menar allvar om att köpa ett kit från mig, då förväntar jag mig att spela med denna kod och ge mig feedback.

/*
* Version 2.5 M
* För ATTiny85 16Mhz
*/

#include "pitches.h"

Den här raden innehåller fliken pitch i koden. Fliken pitch.h innehåller olika tonhöjd - vi kallar dem "Observera" från nu på.

int melodi [] = {
NOTE_F7, NOTE_G4, NOTE_A2};

Denna array "melodi" innehar de anteckningar som kommer att spelas och den ordning som de spelas i. Jag experimenterade med 2 till 5 noterar. För mitt projekt kändes 3 anteckningar gjorde en bra kvittrande eller kvittrar buller för sonics jag gjorde. Jag hade en musiker buddy analysera verkliga ljudet från TV-show och han berättade den dominerande noteringen var i G-skala. Vänligen röra med denna matris genom att lägga till och ta bort anteckningar, ändra anteckningar och arrangera ordern tills du får det ljud som du.

int noteDurations [] = {9,12,7};

Notera varaktighet. Musiknoter är vanligtvis full Obs, halv Obs, fjärdedelsnot och 8: e not. Denna representeras i koden som 1,2,4,8 vilket innebär 1 sekund dividerat med 1,2,4, eller 8. Men gör vi musik. Vi gör en warbly, chirpy buller. Så spelade jag med icke-konventionella Obs varaktigheter som noterar varaktighet 1/15: e för en andra lång eller 1/6th eller 1/12th. Matrisen "noteDuration" nedan anges att NOTE_F7 kommer att spelas på 1/9th varaktighet, NOTE_G4 spelar för 1/12th, och NOTE_A2 på 1/7th. En anmärkning varaktighet måste anges för varje anteckning i matrisen "melodi". Spela med noteDuration att få rätt rytm för din sonic.

int x = 0;

Detta är bara en variabel som ska användas som en räknare

int led1 = 3;
int led2 = 2;

void setup() {
pinMode (led1, produktionen);
pinMode (led2, produktionen);
}

Här två variabler definierar pin-koder för våra LED utgång. Om du verkligen ville kan du lägga till två mer lysdioder eftersom inte alla stiften på ATTiny85 används. Men jag tror två räcker.

void loop() {

Huvudloop. Med varje körning genom huvudsakliga öglan spelas bara en anmärkning på den angivna längd följt av en paus (mer om pauser nedan).

om (x < 5) {
digitalWrite (led1, hög);
digitalWrite (led2, låg);
x = x ++;
}
annars om (x < 7) {
digitalWrite (led1, hög);
digitalWrite (led2, hög);
x = x ++;
}
annars om (x < 9) {
digitalWrite (led1, låg);
digitalWrite (led2, hög);
x = x ++;
}
annat {
x = 0;
}

Detta avsnitt anger LED blinkar mönstret. Använda någon logik du vilja blink mönstret du. Mina användningsområden "x" som en räknare med ett intervall från 0-10. På det lägre intervallet LED1 är på och LED2 är avstängd. Då i mitt urval av "x" både lysdioder är på. På övre utbud av "x" LED1 är avstängd och LED2 är på.

för (int thisNote = 0; thisNote < 3; thisNote ++) {
int noteDuration = 1000/noteDurations [thisNote];

Ovanstående kod går igenom och spelar noterna i melodi array en ton i taget. Den delen där det står "thisNote < 3" värdet måste vara lika med antalet sedlar i matrisen. Så om "melodi" har fyra anteckningar sedan "thisNote < 4". Resten av koden siffror Obs varaktighet i millisekunder.

tonen (4, melody[thisNote],noteDuration);

Det är där tonen är faktiskt outputed till högtalaren. I detta exempel är utdata på pinne 4.

int pauseBetweenNotes = noteDuration *. 14.
Delay(pauseBetweenNotes);
noTone(4);

En paus mellan tonerna måste sättas annars noterar köra tillsammans och det låter som en dålig skrikande ljud. Pausa längd får inte vara ett fast belopp av tid (som 1/4 sekund mellan varje ton) men måste baseras på Obs varaktighet till låter rätt. Koden nedan anger paus tid som en procentandel av notera varaktighet. Spela med decimalvärdet att få en bra paus tid mellan anteckningar. Jag hittade ett värde mellan.09-.21 vara en bra mängd paus. Den sista raden "noTone(4)" stänger av utdata till pinne 4.

}
}

SLUTET av koden

Se Steg
Relaterade Ämnen

"Doctor Who" Sonic skruvmejsel (9/10 läkare)

när en vän gav mig idén att gå som den tionde läkare för Halloween, jag var helt såld på den, trots att jag hade bara fyra dagar kvar till den stora festen att dra ihop. Kostym sig sannolikt garanterar inte en Instructable som det var mestadels spars...

Doctor Who Sonic skruvmejsel WiFi Jammer

Så är ett stort fan av läkaren som jag hade en idé att bygga en sonic skruvmejsel som även var en wifi jammer. Så i den här videon gjorde jag en utan riktig planering bara använder 3 billiga ficklampor på ebay och att göra det när jag gick. Jag gick...

11th Doctor's Sonic skruvmejsel

tid för en Halloween kompatibel!I år bestämde jag mig för att jag ville sätta ihop ett 11th Doctor kostym för Halloween. Detta innebar naturligtvis att jag behövde skaffa mig en sonic skruvmejsel! Fungerande version från början bestämde jag mig att k...

Master's Laser skruvmejsel från "Doctor Who"

Karl Whovians förstå att Doctor Who sonic skruvmejsel leksaker är onödigt dyra. Här är en modell av Master's laser skruvmejsel (det finns redan flera Instructables på den sonic, är det dags att göra något lite mer unikt). Denna metall prop kosta om $...

Hur man gör Doctor Who's Sonic skruvmejsel

jag älskar att titta på DOCTOR WHO och jag märker att han alltid har detta lilla verktyg som han använder för att öppna dörrar och plocka lås och alla möjliga saker. Jag tittade upp några saker på google om det och fick reda på att det kallas en SONI...

Göra en Sonic skruvmejsel för de Premiär av Doctor Who

är det Happy Hour ännu?Om du älskar vodka drinkar och läkaren, prova detta nerdy recept för en "Sonic skruvmejsel". Vodka, apelsinjuice och vissa timey wimey och du kommer vara wibbly vinglig.Tyvärr, var tvungen att göra det.Denna video är en de...

DIY funktionella Sonic skruvmejsel

Förra Halloween min äldsta son Colin utklädd till läkaren från Doctor Who och jag sydde ihop en Sonic skruvmejsel för honom från bitar av skräp jag scrounged upp i garaget. När han ser Sonic skruvmejseln beslutade min yngsta son Sam han absolut hade...

Vars klocka?? Doctor Who klocka!

Äventyr i tid och rum!Nu finns i min Etsy Shop!Jag gillar att göra klockor. Jag är fascinerad av tid och tidsresor. Möjligen på grund av detta gillar jag också Doctor Who (längsta Science Fiction TV-serien någonsin!).De senaste säsongerna har en ny t...

Doctor Who födelsedagskort

Detta extraordinära "Doctor Who" kort liknar 11 läkaren (spelad av Matt Smith). Detta kort har den distinkta fluga som han vanligtvis bär och Sonic skruvmejseln sticker upp ur fickan. Dessutom använder detta kort kardborrband för att hålla stäng...

Doctor Who Gallifreyan klockan

Hej människor och andra livsformer! Detta är min Gallifreyan TIDMÄTARE (aka läkare som klocka). Till skillnad från jorden klockor visar här en tid i Gallifreyan tal snarare än arabiska eller romerska siffror. Det tar lite tid att vänja sig att läsa s...

Lätt Sonic skruvmejsel

Vara ärlig... Vem har inte velat ha en sonic skruvmejsel?Jag har letat efter delarna för att göra en enkel, snygg en för någon gång.Det största problemet var att lägga till ljud. Det var tvungen att ha ljud! Ingen Arduino, ingen programmering mitt eg...

Sonic skruvmejsel

om du behöver öppna ett lås, eller helt enkelt sätta upp en massa skåp, sonic skruvmejsel är verktyget för dig. Om du inte vet om Doctor Who, gå den mest fantastiska Sci-Fi-Hi-Fi/allt serien någonsin, och se det just nu. Detta var mitt första försök...

Sonic skruvmejsel TV-B-Gone konvertering

så förra månaden, jag fick reda på min väns födelsedag kom upp och jag bestämde mig för jag var tvungen att få dem något fantastiskt. Hon är en riktigt stor läkare som fan, och jag hade precis avslutat titta på alla avsnitt nu på Netflix. Jag bläddra...

Sonic skruvmejsel Mark VI

För ett tag sedan jag fick i uppdrag att göra en annan anpassad sonic skruvmejsel av metall med min vanliga elektronik tillägg.En rolig kommentar om detta sonic är att fronten cykler färger. Jag är även den arduino skissen för sund kretsen med dessa...

Arbetar Sonic skruvmejsel

uppdatera 2/4/2014Version 3.0 är klar och redo att sättas upp på instructables. Jag har inte kunnat avsluta instruktionerna som jag har just börjat skolan tillbaka upp men de ska komma, hoppas på fritid. Jag vill dock lägga upp koden för attiny85 PCM...

Arbetar Sonic skruvmejsel - Version 3.0

)Detta är min tredje överlämnandet av en sonic skruvmejsel komplett med arbetande ljud och en TVbgone krets.Nu är över, låt oss ha lite kul.Vissa funktioner:En sann-till-serien ljudEn tvbgone klon krets. Det visar nästan någon tv eller inaktivera ino...

DOCTOR WHO CYBERMAN kostym

Detta är den kostym jag gjorde till Halloween 2011. Designen bygger främst på utformningen av Cybermen från 1967 seriella titeln "The Moonbase". Av olika skäl - några praktiska, några personliga - jag försökte inte skapa en exakt kopia av dräkte...

Trafiksignal / bromsljus ledningar med Arduino Controller

jag alltid velat ha en gammal trafiksignal och slutligen fick en nyligen. Det var dock mycket enkelt fast så att alla lampor var fast på. Vad kul är det? Jag ville prova en Arduino styrenhet och trodde detta skulle vara ett trevligt enkelt projekt at...

Rädda en NOKIA 3310 LCD och använda den med Arduino

Detta instructable berättar hur till extraktet LCD-skärm defekt händig Nokia 3310 och att modifiera den för användning med Arduino.Jag hade en gammal defekt Nokia 3310 händig. Det inte laddar batteriet. Jag ville kasta bort, men för mig kom den idén,...