INHOUDSOPGAWE:
Video: Arduino Puzzle Box: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Vir hierdie projek gaan ons 'n raaisel boks maak wat met musiek werk. Die hoofdoel daarvan is dat as u op 'n knoppie druk, 'n deuntjie vrygestel word en die Arduino bereken watter knoppies ingedruk word, sodat hy weet wat die regte en die verkeerde antwoord is.
Voorrade
1 x Arduino uno
1 x 1k Ohm weerstand
5 x 220 Ohm weerstande
1 x Piezo -gonser
5 x drukknop 6x6 mm
1 x stel draaddrade
1 x perf/strookbord
1 x solderset
1 x skarnier
1 x klem
1 x laaikas/hout
1x warm lijmpistool + gomstokkies
1 x 9v battery + houer
bietjie worbla
verf
Stap 1:
Om mee te begin, moet u u penne in u broodbord druk. Koppel nou analoog 2 met 'n draad aan die hoek van die bord. Ons gaan twee weerstande in 'n lyn daaraan koppel. Die eerste is 'n 10k Ohm -weerstand. Aan die ander kant van hierdie weerstand verbind ons draad met die analoog aarde. Die tweede weerstand is 'n 220 Ohm -weerstand wat ons aan die eerste knoppie koppel. Gebruik 'n ander weerstand van dieselfde waarde om die tweede oop kant van die knoppie met die tweede knoppie te verbind. Verbind die knoppies soos hierdie tot die laaste een. By die laaste een gryp u 'n draad en koppel dit aan die ooreenstemmende geslote kant van die knoppie en koppel dit aan die volgende in die ry. U herhaal nou die proses wat u gedoen het met die weerstande wat u slegs met gewone drade ken. Koppel die eerste knoppie aan die analoge 3, 3V -poort op u Arduino. Al met al kry u 'n soort kruispatroon soos hieronder getoon.
Stap 2:
Steek dan die gonser in die broodbord en maak die een kant vas aan die digitale grond en die ander aan die 12 -poort. Dit is slim om die volgende kode reeds in u Arduino op te laai, sodat u kan toets of alles reg werk. As dit die geval is, kan u begin om die komponente saam te soldeer. Doen dit deur hulle uit die broodbord te haal en die drade en verbindings direk saam te soldeer. As u dink dat u meer lengte tussen die knoppies benodig, kan u 'n ekstra draad tussen die weerstande voeg. Die broodbord is op hierdie stadium nie meer nodig nie.
Stap 3:
Nadat alles gesoldeer is, is dit tyd om die boks self te maak. Ek het 'n goedkoop stel laaie as 'n basis vir myne gebruik. Ek het eenvoudig in die lengte in die helfte gesny en die agterkant en die kant wat ek deurgesny het, verwyder. U behoort nou twee stukke in c -vorm te hê. Sny een kant daarvan om as deksel te gebruik. Draai nou een van die oorblywende stukke sodat dit soos 'n deksellose boks bymekaar pas en plak dit vas. Sodra die gom reg is, boor u 'n klein gaatjie aan elke kant van die boks vir die knoppies en 'n groter vir die gonser in die deksel.
Stap 4:
Nou kan u die boks skilder. Ek het myne gedoen met 'n blomme -ontwerp gebaseer op BOTW, maar u kan regtig enige ontwerp kies wat u wil. Nadat u dit gedoen het, kan u die knoppies in die gate plaas en 'n bol gom op die agterkant van die knoppie en die omliggende hout plaas. Dieselfde beginsel geld vir die gonser, maar myne pas perfek in die gat, wat dit onnodig maak. Gryp dan 'n worbla en verhit en sny dit om 'n paar klein knoppies te maak. Plak dit versigtig op die knoppies vas, maar sorg dat u nie te veel gom gebruik nie, aangesien u die knoppies per ongeluk kan vassteek. Nou kan u dit oorskilder om meer by die boks te pas.
Stap 5:
Laastens gom of skroef u die klem en die skarniere op die boks en die deksel wat die twee verbind.
Stap 6:
Noudat u boks voltooi is, hoef u net die Arduino en die battery daarin te sit en die deksel toe te maak.
Stap 7: Kode
// Dit is die kode vir 'n legkaart-/musiekboks met 'n Zelda -tema.
// dit koppel u kode aan die lys notas op die ander oortjie
#sluit "pitches.h" in
// hierdie veranderlike sal verseker dat die Arduino 'n langer druk op die knoppie as net een druk
int dieselfde = 0;
// van hier af lees dit u insette
int k = 2;
// dit is jou uitvoerpen
int spreker = 12;
// hieronder is die eindmelodieë
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_A}
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1.5, 4, 4, 1.5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4;
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// die normale duur van 'n nota
int SLAGTYD = 300;
// die toonbank wat ons sal byhou as ons in die oplossing is
int teller = 0;
ongeldige opstelling () {
Serial.begin (9600);
pinMode (2, INVOER);
pinMode (1, INVOER);
}
leemte -lus () {
// lees die insette van die penne
k = analogRead (2);
int p = analogRead (1);
// as daar geen knoppie gedruk word nie, behoort daar geen toon te wees nie
as (teller == 0) {
noTone (12);
}
// as die geleesdata ooreenstem met die parameters, voer die beskrywe stukkie kode uit
as (k> 320 && k <350) {
regs ();
}
//""
anders as (k 290) {
skakels ();
}
//""
anders as (k> 260 && k <280) {
boven ();
}
//""
anders as (k> 240 && k <260) {
onder ();
}
//""
anders as (k> 220 && k <240) {
a ();
}
// as dit nie die geval is nie (as daar geen knoppie ingedruk word nie), voer hierdie kode uit
anders {
// herstel dieselfde sodat dit gebruik kan word die volgende keer dat 'n knoppie gedruk word
dieselfde = 0;
// as die teller tot 'n sekere getal is, voer die beskrywe stukkie kode uit
as (teller == 166) {
zelda ();
}
//""
anders as (teller == 386) {
saria ();
}
//""
anders as (teller == 266) {
epona ();
}
//""
anders as (teller == 999) {
// speel hierdie toon om die fout te merk
toon (spreker, NOTE_C3, BEATTIME);
// stel die toonbank terug op 0
teller = 0;
}
}
// die vertraging tussen invoer en uitset
vertraging (100);
// druk die waardes van u invoer in die seriële monitor af
Serial.println (k);
}
// dit is die eerste melodie
void zelda () {
// dit stel 'n toonbank in wat homself opdateer terwyl die melodie gespeel word, sodat dit dit kan lees en kan stop wanneer dit moet
vir (int i = 0; i <sizeof (Zelda); i ++) {
// sê hoe lank 'n noot moet hou
int ZTime = 1000 / ZeldaTime ;
// genereer die toon
toon (spreker, Zelda , ZTime);
// skep die korrekte vertraging
int pouse = ZTime * 1,30;
vertraging (pouse);
// stel toonbank terug
teller = 0;
// druk die waardes van u invoer in die seriële monitor af
Serial.println (teller);
}
}
//""
leegte epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
toon (spreker, Epona , ETime);
int pouse = ETime * 1,30;
vertraging (pouse);
teller = 0;
Serial.println (teller);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
toon (spreker, Saria , STime);
int pouse = STime * 1,30;
vertraging (pouse);
teller = 0;
Serial.println (teller);
}
}
leegte rec
hts () {
// as dit nog nie ingedruk is nie
as (dieselfde == 0) {
// as die teller tans een van hierdie waardes het, voeg dit by
as (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || teller == 374) {
teller = teller + 1;
}
// anders stel dit op 999 sodat u die foutgeruis hoor
anders {
teller = 999;
}
// stel dieselfde op een sodat die Arduino nie 'n lang pers as 'n paar keer druk nie
dieselfde = 1;
}
// speel die toon
anders {
toon (spreker, NOTE_A4, BEATTIME);
}
// druk die waardes van u invoer in die seriële monitor af
Serial.println (teller); }
//""
nietige skakels () {
as (dieselfde == 0) {
as (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
teller = teller + 11;
}
anders as (teller == 0) {
teller = 111;
}
anders {
teller = 999;
}
dieselfde = 1;
} anders {
toon (spreker, NOTE_B4, BEATTIME);
} Serial.println (teller);
}
//""
void boven () {
if (dieselfde == 0) {if (teller == 111 || teller == 144 || teller == 233) {
teller = teller + 21;
}
anders as (teller == 0) {
teller = 221;
}
anders {
teller = 999;
}
dieselfde = 1;
}
anders {
toon (spreker, NOTE_D5, BEATTIME);
Serial.println (teller);
}
}
//""
ongeldig onder () {
as (dieselfde == 0) {
as (teller == 343) {
teller = teller + 31;
}
anders as (teller == 0) {
teller = 331;
} anders {
teller = 999;
} dieselfde = 1;
} anders {
toon (spreker, NOTE_F4, BEATTIME);
Serial.println (teller);
}
}
//""
nietig a () {
as (dieselfde == 0) {
as (teller == 0) {
teller = 461;
}
anders {
teller = 999;
}
dieselfde = 1;
}
toon (spreker, NOTE_D4, BEATTIME);
Serial.println (teller);
}
Aanbeveel:
Crack the Code Game, Arduino Based Puzzle Box: 4 stappe (met foto's)
Crack the Code Game, Arduino Based Puzzle Box: In hierdie instruksies gaan ek jou wys hoe om jou eie speletjie te bou waarin jy 'n draaiknop gebruik om die willekeurig gegenereerde kode na die kluis te raai. Daar is 8 LED's aan die voorkant van die kluis om u te vertel hoeveel van die
Azimuthal -projeksie 3D -kaartversiering X Folk Music Puzzle Puzzle - Arduino: 7 stappe
Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: INLEIDING Die volgende bladsy sal u leer hoe om 'n Arduino -projek te skep, wat twee hooffunksies het - eenvoudige versiering met beligting en volksmusiek -puzzelspel, wat die velde van geografie, meetkunde insluit , kaarte, Verenigde Nasies, en
Heroes of Hammerwatch Puzzle op 'n Arduino: 4 stappe
Heroes of Hammerwatch Puzzle on an Arduino: Hallo almal, dit is my eerste intructable en engels is nie my eerste taal nie, dus stel my vry om my reg te stel waar ek verkeerd is. In hierdie instruksies sal ek jou wys hoe om 'n legkaart uit die spel te maak Hamerhorlosie met arduino
PUZZLE - Arduino Logic Game: 3 stappe
PUZZLE - Arduino Logic Game: Hello.Ek wil jou vertel van die geskiedenis van die skep van 'n eenvoudige puzzelspel " Puzzle " met behulp van Arduino UNO en TFT-Shield. Om die spel te skep, het ek die volgende komponente nodig: Arduino UNO Power Adapter (AC-DC) 6-12V vir Arduino UNO Micro
Puzzle Box - Codebreakers and Groundbreakers [UCM]: 7 stappe (met foto's)
Puzzle Box - Codebreakers and Groundbreakers [UCM]: 'n Lasergesnyde raaiselkissie wat ontwerp is vir 'n werkswinkel vir digitale vervaardigers in The Fitzwilliam Museum, Cambridge in verband met hul Codebreakers en Groundbreakers -uitstalling. Vir die werkswinkel is die knoppie in die raaiselkassie gekoppel aan 'n MakeyMakey