COI - Beat Keeper (3 / 4 steg)

Steg 3: Programmering/kod

Ladda ner filen i slutet av den instructable eller kopiera följande kod till din Arduino-Intel IDE (Integrated Development Environment). Ladda upp koden till Edison styrelsen. Observera att det finns flera anpassningsbara parametrar som visas i koden, viktigast av allt en sträng kallas slå med bokstäver som representerar sensorerna som utlöses på beat och en unitsPerBeat som berättar hur många tecken gå in i ett enda slag.

#include < br >

#include

#include

rgb_lcd
LCD;

#define
S_SENS A3

#define
T_SENS 8

#define
ROT_SENS A0

int
yellowPinNum = 3;

int
greenPinNum = 5;

int
redPinNum = 6;

int
thresholdSound = 400. Från 1024

minTime
och maxTime kan anpassas.

int
minTime = 250; //Corresponds till 240 slag/minut

int
maxTime = 1000; //Corresponds till 60 slag/minut

int
beatTime = maxTime;

lång
lång lastMillis = 0;

dubbel
poäng = 1,0; Detta är ett värde som hålls mellan 0 och 1 som påverkas
av de senaste prestanda.

dubbel
memoryPersistance =. 8; Detta värde är anpassningsbara och bör vara
mellan 0 och 1.

röding
touchCode = 'T';

röding
soundCode = s ';

röding
bothCode = "B";

röding
silentCode = '-';

Sträng
slå = "S-T-T - T-"; Detta är anpassningsbara att producera en ny
Beat. Slag kan vara av godtycklig längd.

int
unitsPerBeat = 2; Anpassningsbara, är antalet tecken i beat
per "beat"

int
beatIndex = 0;

Booleskt värde
touchedLastTime = false;

Booleskt värde
soundLastTime = false;

Booleskt värde
scoreIntegrated = false;

void
Setup() {

//
Se till att initiera stiften för utdata:

pinMode (yellowPinNum,
PRODUKTION);

pinMode (greenPinNum,
PRODUKTION);

pinMode (redPinNum,
PRODUKTION);

Ställa in
upp LCD skärm

LCD.BEGIN(16,2);

lcd.setRGB(255,255,255);

//
Ställa in pinMode av ingångarna

pinMode (S_SENS,
INPUT);

pinMode (T_SENS,
INPUT);

pinMode (ROT_SENS,
INPUT);

Säkerhet:

unitsPerBeat
= max (unitsPerBeat, 1);

}

void
loop() {

Kontrollera
för en slå överrullning

Booleskt värde
rollOver = false;

om (millis ()-lastMillis
> beatTime) {

lastMillis
= lastMillis + beatTime;

rollOver
= sant;

beatIndex
= (beatIndex + 1)%beat.length();

}

IF(Millis()
< lastMillis) {

lastMillis
= millis();

rollOver
= sant;

beatIndex
= (beatIndex + 1)%beat.length();

}

Läs
Speed preferens och display på LCD.

IF(rollOver) {

beatTime
= minTime+(int) (analogRead (ROT_SENS) / 1024.0 * (maxTime-minTime));

dubbel
BPM = 60.0*1000.0/beatTime;

lcd.setCursor(0,0);

LCD.Print("
"), //Clear skärm

lcd.setCursor(0,1);

LCD.Print("
");

lcd.setCursor(0,0);

LCD.Print ("BPM:
");

LCD.Print(BPM);

beatTime
= beatTime/unitsPerBeat;

}

Kontrollera
för att se om under första kvartalet. Så, slå på lämplig LED, och
Kontrollera för handen.

om (millis ()-lastMillis
< beatTime/3) {

scoreIntegrated
= false; Betyder soundLastTime, touchedLastTime har potentiellt nya
värden.

om (beatIndex
== 0){

analogWrite (yellowPinNum,
0); Full ljusstyrka på första taktdelen.

}

annat
om (beatIndex % unitsPerBeat == 0) {

analogWrite (yellowPinNum,
200). Lägre ljusstyrka.

} //End
om är första beat

om (slå [beatIndex] == touchCode
|| slå [beatIndex] == bothCode) {

analogWrite (greenPinNum,
0);

}

om (slå [beatIndex] == soundCode
|| Beat[beatIndex]==bothCode) {

analogWrite (redPinNum,
0);

}

IF(digitalRead(T_SENS)==1) {

touchedLastTime = sant;

}

IF(analogRead(S_SENS) > thresholdSound) {

soundLastTime = sant;

}

}

annat
om (millis ()-lastMillis > (beatTime * 2) / 3) {

scoreIntegrated
= false; Betyder soundLastTime, touchedLastTime har potentiellt nya
värden.

IF(digitalRead(T_SENS)==1) {

touchedLastTime = sant;

}

IF(analogRead(S_SENS) > thresholdSound) {

soundLastTime = sant;

}

}

annat {

analogWrite (yellowPinNum,
255); //Inverted av någon anledning.

analogWrite (greenPinNum,
255);

analogWrite (redPinNum,
255);

om (scoreIntegrated
== false) {

dubbel
korrekthet = 0;

om (slå [beatIndex] == bothCode
& & touchedLastTime & & soundLastTime) {

korrekthet = 1;

}

annat
om (slå [beatIndex] == touchCode & & touchedLastTime & &
! soundLastTime) {

korrekthet = 1;

}

annat
om (slå [beatIndex] == soundCode & &! touchedLastTime & &
soundLastTime) {

korrekthet = 1;

}

annat
om (slå [beatIndex] == silentCode & &! touchedLastTime & &
! soundLastTime) {

korrekthet = poäng;

}

poäng
= poäng * memoryPersistance + correctness*(1-memoryPersistance);

lcd.setRGB((int)(255*(1-score)),(int) (255
* poäng), 0);

lcd.setCursor(0,1);

LCD.Print((int)(score*100));

LCD.Print("%");

scoreIntegrated
= sant;

touchedLastTime = false;

soundLastTime = false;

}

}

}

Se Steg
Relaterade Ämnen

Att göra Fresh Beats med fem Nintendo Gameboys genom 8BITches

8 stycke Che av 8BITches, chip hop-bandet från Maine, förklarar hur han gör sin heta Beats på Nintendo Gameboys....

Kondom Keeper kalender

vad kalendrar och fruar har gemensamt? Svar: de båda har en massa datum. Åtminstone har de bättre om du vill ha dem att vara lycklig!Jag är en man. Schemaläggning tid med min fru är inte något som kommer naturligt för mig. För att göra det lättare, h...

Läskiga allvarliga Keeper monster

hur jag fick idén för denna kostym var jag kombinerade flera bilder på monster att jag gillade och kombinerat olika delar och kom upp med detta. Hoppas ni gillar den.Jag först började med en skallig mössa och används anda tuggummi för att limma det n...

Hur man gör någon titta Beat-up

Hej alla och Välkommen till tekniska blogg för Indy Mogul Episode #12 (Beat-up). Detta är en ganska lätt bygga jämfört med Samurai pansar från förra veckan. Du kan mixa och matcha dessa tekniker för att skapa "slagsäck ansikte" effekten av dina...

Matcha Keeper... (eller tandpetare Keeper)

Har du någonsin backpacking eller camping och din match box blir blöt? Som får mig på nerverna, så jag kom upp med detta. En tejp / chapstick matcha keeper!Steg 1: starta...Först ta din begagnade chapstick röret.Steg 2: Rensa! Ta en kniv och ösa ut g...

Tic Tac Tunes - nu med Tic Tac Beat Box

Micro-orgel och trumset i en Tic TacDenna lilla ruta ger dig timmar av roligt komponera egna låtar. Du kan variera tune tempot och växla mellan en pentatoniska och blues skala som producerar en mängd olika slagverk ljud.Ladda upp ett annat program oc...

Analoga Beat Box

detta är en analog krets som spelar synthesized trummans takt. Det kan skalas i mängden och kvaliteten på ljud.Steg 1: Vad du behöver 1 strömkälla3 brödunderläggenLedningar (gul, blå, röd och andra) om du känner för följande konventioner2 högtalare6...

Beats Radio: Hacka en radio för att resa business man/designer.

Beats av Dr Dre ge dig hög kvalitet musik genom mycket bekväma hörlurar. Beats Radio ger denna samma kvalitet av musik utan genom alla dina favorit radiokanaler. Radion är liten och kompakt och kan transporteras via handtaget överst. De tre typerna a...

Förbättra Korg Volca Beats med individ-ut Mod

VARNING, KOMMER UTFÖR DETTA MOD INTE GARANTIN FÖR DIN VOLCA BEATS OCH KAN POTENTIELLT SKADA DEN, SÅ GÅ VIDARE PÅ EGEN RISK!Korg mot slår är en riktigt cool prisvärda analoga trummaskin, men med alla de instrument som summeras till en utgång är en all...

Bygga en elektronisk score keeper/förvaringsbox

bruksanvisningen för varje många munchkin serie av kortspel innehåller alltid en fras som "du behöver en 10 dubbelsidiga dö för varje spelare eller någon annan enhet att hålla poäng."10 dubbelsidigt tärningarna är inte svårt att hitta i mitt hus...

"Beat It" på gitarr Video

här är mig spela Beat It av Michael Jackson på ym Fender Squier Telecaster. I en annan instructable jag visar hur man gör det i tabulatur....

Hur man spelar en grundläggande jazztrummor Beat

Inledning:Spela trummor kan verka som en skrämmande feat. Dock innebär denna jazz beat helt enkelt hög hatt och cymbal. Dock kunde detta deceivingly enkel jazz beat kvalificera dig att bli en av Letterman sent natten trummisar. Kom ihåg att medan jag...

Krage keeper

Min Chihuahua har alltid haft en känslig del av halsen där spännet av hennes krage gnuggar mot hennes päls som orsakar håravfall och irritation. Efter att ha provat ut flera kragar med spännen jag kom med en idé för en liten läder bit passar som jag...

Uppgraderat aa-12 med hart beat, räckvidd, grepp, arbetande klipp och utlösa

min Knex AA-12 med syn, hart beat, grepp, och arbetande klipp och trigger. Det är mycket svårt kanon att bygga och du behöver en hel del bitar....

Den viktigaste Keeper

Någonsin ställer du dina nycklar på skrivbordet, att vända och se dem gå bort med liten person, aka lillebror. Som det äldst av åtta det händer mig hela tiden. Så jag gjorde mig själv denna viktiga keeper, dess min ta på den klassiska krok som du hän...

Video Beats: Musik Visualizer

Video slår är en hårdvarubaserad musik visualizer - det genererar en visualisering som bygger på musik du mata den och visar den på någon standard TV-apparaten. Här är en liten demo (hoppa över till 27 sekunder att se visualisering);Principen om för...

Lösenord Keeper

Detta är min senaste lösenord keeper som har en masse förbättringarna över den senaste iterationen. Förbättringarna inkluderar, aes-256-bitarskryptering, mindre formfaktorn & denna version kostar betydligt mindre än den tidigare versionen. Nyckeln ti...

Hur man gör Rap Beats Online med Dubturbo

lära sig hur till göra Rap Beats Online med Dubturbo i enkla steg....

SquawkBox - en algoritmisk beat box med en leksak diktafon

detta instructable handlar om att göra en beatbox - men en som gör saker lite annorlunda. Det handlar också om återanvända befintliga leksak teknik för att göra det hända. För att utveckla en kontrollerbar ljud-motorn, väljer jag att "krets böj"...