Indholdsfortegnelse:
Video: Arduino Puzzle Box: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Til dette projekt skal vi lave en puslespilkasse, der fungerer med musik. Det grundlæggende i det er, at når du trykker på en knap, frigiver den en melodi, og Arduino beregner, hvilke knapper der trykkes på, så den ved, hvad der er det rigtige og hvad der er det forkerte svar.
Forbrugsvarer
1 x Arduino uno
1 x 1k Ohm modstand
5 x 220 Ohm modstande
1 x Piezo -summer
5 x trykknap 6x6 mm
1 x sæt jumperwires
1 x perf/strip board
1 x loddet sæt
1 x hængsel
1 x klemme
1 x lille kommode/træ
1x varm limpistol + limpinde
1 x 9v batteri + holder
lidt worbla
maling
Trin 1:
Til at starte med skal du trykke på dine nåle i dit brødbræt. Tilslut nu analog 2 med en ledning til hjørnet af brættet. Vi skal forbinde to modstande til det i en linje. Den første er en 10k Ohm modstand. I den anden ende af denne modstand tilslutter vi ledning til den analoge jord. Den anden modstand er en 220 Ohm modstand, vi forbinder til den første knap. Brug en anden modstand af samme værdi for at forbinde den anden åbne side af knappen med den anden knap. Bliv ved med at forbinde knapperne sådan her til den sidste. Ved den sidste griber du en ledning og slutter den til en tilsvarende lukket side af knappen og slutter den til den næste i rækken. Du gentager nu den proces, du gjorde med modstandene, der kun kendes med almindelige ledninger. Tilslut den første knap til den analoge 3, 3V -port på din Arduino. Alt i alt får du en slags krydsmønster som vist nedenfor.
Trin 2:
Derefter tilslutter du summeren til brødbrættet og fastgør den ene side til den digitale jord og den anden til 12 -porten. Det er smart at allerede uploade følgende kode til din Arduino, så du kan teste, om alt fungerer korrekt. Hvis det er det, kan du begynde at lodde komponenterne sammen. Gør dette ved at tage dem ud af brødbrættet og lodde ledningerne og forbindelserne direkte sammen. Hvis du tror, du har brug for mere længde mellem knapperne, kan du tilføje en ekstra ledning mellem modstandene. Brødbrættet er ikke længere nødvendigt på dette tidspunkt.
Trin 3:
Efter at alt er loddet er det tid til at lave selve kassen. Jeg brugte et billigt sæt skuffer som en base til min. Jeg skar simpelthen halvt på langs og fjernede bagsiden og siden, jeg skar igennem. Du skal have to c -formede stykker nu. Skær den ene side af en af dem til brug som låg. Drej nu et af de resterende stykker, så de passer sammen som en låg uden låg og lim dem sammen. Når limen har sat sig ordentligt, borer du et lille hul i hver side af boksen til knapperne og et større til summeren i låget.
Trin 4:
Nu kan du komme til at male boksen. Jeg lavede mit med et blomsterdesign baseret på BOTW, men du kan virkelig vælge ethvert design, du ønsker. Når dette er gjort, kan du lægge knapperne inde i hullerne og lægge en klump lim på bagsiden af knappen og det omgivende træ. Det samme princip gælder for summeren, men min passer perfekt i hullet, hvilket gør det unødvendigt. Derefter tager du noget worbla og opvarmer og skærer det for at lave nogle små knapper. Lim dem forsigtigt fast på knapperne, men sørg for ikke at bruge for meget lim, fordi du ved et uheld kan få knapperne til at sidde fast. Nu kan du male dem om for at få dem til at smelte mere sammen med kassen.
Trin 5:
Til sidst limer eller skruer du, klemmen og hængslerne på kassen og låget, der forbinder de to.
Trin 6:
Nu hvor din boks er komplet, skal du blot sætte Arduino og batteri i den og lukke låget.
Trin 7: Kode
// Dette er koden til et puslespil/musikboks med Zelda -tema.
// dette forbinder din kode med listen over noter i den anden fane
#include "pitches.h"
// denne variabel vil sikre, at Arduino ser et længere tryk på knappen som et enkelt tryk
int samme = 0;
// herfra vil det læse dit input
int k = 2;
// dette er din output pin
int -højttaler = 12;
// nedenfor er slutmelodierne
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};
// den normale varighed af en note
int BEATTIME = 300;
// tælleren, der vil holde styr på, hvor vi er i løsningen
int teller = 0;
ugyldig opsætning () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// læser input fra benene
k = analogRead (2);
int p = analogRead (1);
// hvis der ikke er trykket på nogen knap, bør der ikke være nogen tone
hvis (teller == 0) {
noTone (12);
}
// hvis de læste data svarer til parametrene, kør den beskrevne bit kode
hvis (k> 320 && k <350) {
rechts ();
}
//""
ellers hvis (k 290) {
links ();
}
//""
ellers hvis (k> 260 && k <280) {
boven ();
}
//""
ellers hvis (k> 240 && k <260) {
onder ();
}
//""
ellers hvis (k> 220 && k <240) {
en();
}
// hvis den ikke gør det (når der ikke trykkes på en knap), skal du køre denne kode
andet {
// nulstil det samme, så det kan bruges næste gang der trykkes på en knap
samme = 0;
// hvis tælleren er op til et bestemt tal, kør den beskrevne bit kode
hvis (teller == 166) {
zelda ();
}
//""
ellers hvis (teller == 386) {
saria ();
}
//""
ellers hvis (teller == 266) {
epona ();
}
//""
ellers hvis (teller == 999) {
// afspil denne tone for at markere fejlen
tone (højttaler, NOTE_C3, BEATTIME);
// nulstil tælleren til 0
teller = 0;
}
}
// forsinkelsen mellem input og output
forsinkelse (100);
// udskriver værdierne for dit input i den serielle skærm
Serial.println (k);
}
// dette er den første melodi
void zelda () {
// dette sætter en tæller, der opdaterer sig selv, mens melodien afspilles, så den kan læse den og stoppe, når den skal
for (int i = 0; i <sizeof (Zelda); i ++) {
// siger, hvor længe en note skal vare
int ZTime = 1000 / ZeldaTime ;
// genererer tonerne
tone (højttaler, Zelda , ZTime);
// skaber den korrekte forsinkelse
int pause = ZTime * 1,30;
forsinkelse (pause);
// nulstiller tælleren
teller = 0;
// udskriver værdierne for dit input i den serielle skærm
Serial.println (teller);
}
}
//""
void epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
tone (højttaler, Epona , ETime);
int pause = ETime * 1,30;
forsinkelse (pause);
teller = 0;
Serial.println (teller);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
tone (højttaler, Saria , STime);
int pause = STime * 1,30;
forsinkelse (pause);
teller = 0;
Serial.println (teller);
}
}
ugyldig rec
hts () {
// hvis dette ikke allerede var trykket
hvis (samme == 0) {
// hvis tælleren i øjeblikket har en af disse værdier, tilføj dette til den
hvis (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || teller == 374) {
teller = teller + 1;
}
// ellers indstil den til 999, så du hører fejlstøj
andet {
teller = 999;
}
// indstil det samme til en, så Arduino ikke læser en længere tryk som flere tryk
samme = 1;
}
// afspil tonen
andet {
tone (højttaler, NOTE_A4, BEATTIME);
}
// udskriver værdierne for dit input i den serielle skærm
Serial.println (teller); }
//""
ugyldige links () {
hvis (samme == 0) {
hvis (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
teller = teller + 11;
}
ellers hvis (teller == 0) {
teller = 111;
}
andet {
teller = 999;
}
samme = 1;
} andet {
tone (højttaler, NOTE_B4, BEATTIME);
} Serial.println (teller);
}
//""
void boven () {
hvis (samme == 0) {hvis (teller == 111 || teller == 144 || teller == 233) {
teller = teller + 21;
}
ellers hvis (teller == 0) {
kasserer = 221;
}
andet {
teller = 999;
}
samme = 1;
}
andet {
tone (højttaler, NOTE_D5, BEATTIME);
Serial.println (teller);
}
}
//""
void onder () {
hvis (samme == 0) {
hvis (teller == 343) {
teller = teller + 31;
}
ellers hvis (teller == 0) {
teller = 331;
} andet {
teller = 999;
} samme = 1;
} andet {
tone (højttaler, NOTE_F4, BEATTIME);
Serial.println (teller);
}
}
//""
annullere a () {
hvis (samme == 0) {
hvis (teller == 0) {
teller = 461;
}
andet {
teller = 999;
}
samme = 1;
}
tone (højttaler, NOTE_D4, BEATTIME);
Serial.println (teller);
}
Anbefalede:
Crack the Code Game, Arduino Based Puzzle Box: 4 trin (med billeder)
Crack the Code Game, Arduino Based Puzzle Box: I denne Instructable vil jeg vise dig, hvordan du bygger dit eget crack -kodespil, hvor du bruger en roterende encoderhjul til at gætte den tilfældigt genererede kode til pengeskabet. Der er 8 lysdioder på forsiden af pengeskabet for at fortælle dig, hvor mange af de
Heroes of Hammerwatch Puzzle på en Arduino: 4 trin
Heroes of Hammerwatch Puzzle på en Arduino: Hej alle sammen, dette er mit første uforgængelige og engelsk er ikke mit første sprog, så vær fri til at rette mig, hvor jeg tager fejl. I denne instruktive vil jeg vise dig, hvordan du laver et puslespil fra spillet Hammerur ved hjælp af arduino
PUZZLE - Arduino Logic Game: 3 trin
PUZZLE - Arduino Logic Game: Hej. Jeg vil gerne fortælle dig om historien om at skabe et simpelt puslespil " Puzzle " ved hjælp af Arduino UNO og TFT-Shield. For at oprette spillet havde jeg brug for følgende komponenter: Arduino UNO Power Adapter (AC-DC) 6-12V til Arduino UNO Micro
Puzzle Box - Codebreakers and Groundbreakers [UCM]: 7 trin (med billeder)
Puzzle Box - Codebreakers and Groundbreakers [UCM]: Et laserskåret puslespilkasse designet til et digitalt makerværksted på The Fitzwilliam Museum, Cambridge i forbindelse med deres Codebreakers og Groundbreakers -udstilling. Til workshoppen var knappen i puslespilleboksen forbundet med en MakeyMakey en
Cedar (Cigar?) Box Speaker Box: 8 trin (med billeder)
Cedar (Cigar?) Box Speaker Box: Inspireret af Munny -højttalerne, men ikke villig til at bruge mere end $ 10, her er min instruktion ved hjælp af gamle computerehøjttalere, en trækasse fra genbrugsbutikken og masser af varm lim