Taula de continguts:
Vídeo: Arduino Puzzle Box: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Per a aquest projecte farem una caixa de trencaclosques que funcioni amb la música. L’essencial bàsic és que quan premeu un botó allibera una melodia i l’Arduino calcula quins botons es premen perquè sàpiga què és correcte i quina és la resposta equivocada.
Subministraments
1 x Arduino uno
Resistència 1 x 1k Ohm
Resistències de 5 x 220 Ohm
1 xPiezo Buzzer
5 x polsador de 6x6 mm
1 x establir cables de pont
1 x tauler de perf / strip
1 x soldadura
1 x frontissa
1 x pinça
1 x petit calaixera / fusta
1 pistola de cola calenta + pals de cola
1 x bateria de 9v + suport
una mica de worbla
pintura
Pas 1:
Per començar, heu de prémer els pins a la taula de treball. Ara connecteu l'analògic 2 amb un cable a la cantonada de la placa. Anem a connectar-hi dues resistències en una línia. El primer és una resistència de 10 k Ohm. A l’altre extrem d’aquesta resistència connectem el cable a la terra analògica. La segona resistència és una resistència de 220 Ohm que connectem al primer botó. Utilitzeu una altra resistència del mateix valor per connectar el segon costat obert del botó amb el segon botó. Seguiu connectant els botons així fins a l'últim. A la darrera agafeu un cable i el connecteu al costat tancat corresponent del botó i el connecteu al següent de la línia. Ara repetiu el procés que heu fet amb les resistències que només coneixeu amb cables simples. Connecteu el primer botó al port analògic de 3, 3V del vostre Arduino. Amb tot, obtindreu una mena de patern creuat, tal com es mostra a continuació.
Pas 2:
A continuació, connecteu el zumbador a la placa de fixació i fixeu un costat a la terra digital i l'altre al port 12. És intel·ligent carregar el següent codi al vostre Arduino perquè pugueu provar si tot funciona correctament. Si és així, podeu començar a soldar els components junts. Feu-ho traient-los de la taula de pa i soldant directament els cables i les connexions. Si creieu que necessiteu més longitud entre els botons, podeu afegir un cable addicional entre les resistències. En aquest moment, la taula de treball ja no és necessària.
Pas 3:
Després de soldar-se tot, és hora de fer la caixa mateixa. Vaig utilitzar un calaix barat com a base per a la meva. Simplement he tallat per la meitat al llarg de la longitud i he tret la part posterior i el costat que he tallat. Hauríeu de tenir dues peces en forma de c ara. Talleu un costat d’un d’ells per fer-lo servir com a tapa. Ara gireu una de les peces restants perquè encaixin com una caixa sense tapa i enganxeu-les. Un cop la cola s'hagi fixat correctament, practiqueu un petit forat a cada costat de la caixa per als botons i un altre més gran per al brunzidor de la tapa.
Pas 4:
Ara podeu començar a pintar la caixa. Vaig fer el meu amb un disseny de flors basat en BOTW, però realment podeu triar qualsevol disseny que vulgueu. Un cop fet això, podeu posar els botons dins dels forats i posar un globus de cola a la part posterior del botó i la fusta que l'envolta. El mateix principi s'aplica al timbre, però el meu s'adapta perfectament al forat, cosa que fa que sigui innecessari. A continuació, agafeu una mica de worbla i escalfeu-la i la talleu per fer uns botons petits. Enganxeu-los amb cura als botons, però assegureu-vos de no utilitzar-ne massa, ja que és possible que accidentalment enganxeu els botons. Ara podeu pintar-los per tal que es combinin més amb la caixa.
Pas 5:
Per últim, enganxeu o cargoleu, la pinça i les frontisses de la caixa i la tapa que uneixen les dues.
Pas 6:
Ara que la vostra caixa està completa, tot el que heu de fer és posar-hi l’Arduino i la bateria i tancar la tapa.
Pas 7: Codi
// Aquest és el codi per a una caixa de música / trencaclosques amb temàtica Zelda.
// connecta el vostre codi a la llista de notes de l'altra pestanya
#include "pitches.h"
// aquesta variable assegurarà que l'Arduino vegi una pulsació més llarga del botó amb només prémer-la
int mateix = 0;
// des d’aquí llegirà la vostra entrada
int k = 2;
// aquest és el vostre pin de sortida
int speaker = 12;
// a continuació es mostren les melodies finals
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_A5}
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, 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};
// la durada normal d’una nota
int BEATTIME = 300;
// el comptador que farem un seguiment de si estem en la solució
int caixer = 0;
configuració nul·la () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
bucle buit () {
// llegeix l'entrada dels pins
k = Llegir analògic (2);
int p = analogRead (1);
// si no hi ha cap botó premut, no hi haurà cap to
if (caixer == 0) {
noTone (12);
}
// si les dades llegides corresponen als paràmetres, executeu el bit de codi descrit
if (k> 320 && k <350) {
rechts ();
}
//""
altrament si (k 290) {
links ();
}
//""
altrament si (k> 260 && k <280) {
boven ();
}
//""
altrament si (k> 240 && k <260) {
onder ();
}
//""
altrament si (k> 220 && k <240) {
a ();
}
// si no ho fa (quan no es prem cap botó), executeu aquest codi
més {
// restableix el mateix perquè es pugui utilitzar la propera vegada que es prem un botó
igual = 0;
// si el comptador és fins a un nombre determinat, executeu el bit de codi descrit
if (caixer == 166) {
zelda ();
}
//""
else if (caixer == 386) {
saria ();
}
//""
else if (caixer == 266) {
epona ();
}
//""
else if (caixer == 999) {
// toca aquest to per marcar l’error
to (altaveu, NOTE_C3, BEATTIME);
// restableix el comptador a 0
caixer = 0;
}
}
// el retard entre l'entrada i la sortida
retard (100);
// imprimeix els valors de la vostra entrada al monitor sèrie
Serial.println (k);
}
// aquesta és la primera melodia
void zelda () {
// estableix un comptador que s'actualitza a si mateix mentre toca la melodia perquè pugui llegir-la i aturar-se quan ho faci
for (int i = 0; i <sizeof (Zelda); i ++) {
// diu quant de temps ha de durar una nota
int ZTime = 1000 / ZeldaTime ;
// genera els tons
to (altaveu, Zelda , ZTime);
// crea el retard correcte
int pause = ZTime * 1,30;
retard (pausa);
// restableix el comptador
caixer = 0;
// imprimeix els valors de la vostra entrada al monitor sèrie
Serial.println (caixer);
}
}
//""
void epona () {
per a (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
to (altaveu, Epona , ETime);
int pause = ETime * 1,30;
retard (pausa);
caixer = 0;
Serial.println (caixer);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
to (altaveu, Saria , STime);
int pause = STime * 1,30;
retard (pausa);
caixer = 0;
Serial.println (caixer);
}
}
rec nul
hts () {
// si encara no es premia
if (igual == 0) {
// si el comptador té actualment un d'aquests valors, afegiu-hi
if (caixer == 0 || caixer == 132 || caixer == 165 || caixer == 232 || caixer == 265 || caixer == 331 || caixer == 374) {
caixer = caixer + 1;
}
// en cas contrari, configureu-lo a 999 perquè sentiu el soroll d'error
més {
caixer = 999;
}
// Estableix el mateix a un perquè l'Arduino no llegeixi una premsa prolongada com a premsa múltiple
igual = 1;
}
// toca el to
més {
to (altaveu, NOTE_A4, BEATTIME);
}
// imprimeix els valors de la vostra entrada al monitor sèrie
Serial.println (caixer); }
//""
enllaços buits () {
if (igual == 0) {
if (caixer == 133 || caixer == 254 || caixer == 244 || caixer == 332 || caixer == 375 || caixer == 221) {
caixer = caixer + 11;
}
else if (caixer == 0) {
caixer = 111;
}
més {
caixer = 999;
}
igual = 1;
} més {
to (altaveu, NOTE_B4, BEATTIME);
} Serial.println (caixer);
}
//""
void boven () {
if (igual == 0) {if (caixer == 111 || caixer == 144 || caixer == 233) {
caixer = caixer + 21;
}
else if (caixer == 0) {
caixer = 221;
}
més {
caixer = 999;
}
igual = 1;
}
més {
to (altaveu, NOTE_D5, BEATTIME);
Serial.println (caixer);
}
}
//""
void onder () {
if (igual == 0) {
if (caixer == 343) {
caixer = caixer + 31;
}
else if (caixer == 0) {
caixer = 331;
} més {
caixer = 999;
} igual = 1;
} més {
to (altaveu, NOTE_F4, BEATTIME);
Serial.println (caixer);
}
}
//""
buida a () {
if (igual == 0) {
if (caixer == 0) {
caixer = 461;
}
més {
caixer = 999;
}
igual = 1;
}
to (altaveu, NOTE_D4, BEATTIME);
Serial.println (caixer);
}
Recomanat:
Heroes of Hammerwatch Puzzle en un Arduino: 4 passos
Heroes of Hammerwatch Puzzle en un Arduino: Hola a tothom, aquest és el meu primer intructable i l’anglès no és el meu primer idioma, així que sigueu lliure de corregir-me on estic equivocat. En aquest instructiu us mostraré com fer un trencaclosques a partir del joc Hammerwatch amb arduino
Una Juke Box per als més joves Aka Raspi-Music-Box: 5 passos
A Juke Box for the Very Young … Aka Raspi-Music-Box: inspirat en el instructiu "Raspberry-Pi-based-RFID-Music-Robot" descrivint un reproductor de música fabricat per ROALDH per als seus tres anys, vaig decidir construir una caixa de seguretat per als meus fills encara més petits. Bàsicament és una caixa amb 16 botons i un Raspi 2 i
PUZZLE - Joc de lògica Arduino: 3 passos
PUZZLE - Joc de lògica Arduino: Hola. M'agradaria explicar-vos la història de la creació d'un simple joc de trencaclosques "Trencaclosques" utilitzant Arduino UNO i TFT-Shield. Per crear el joc necessitava els components següents: Arduino UNO Power Adapter (AC-DC) 6-12V for Arduino UNO Micro
Puzzle Box: Codebreakers and Groundbreakers [UCM]: 7 passos (amb imatges)
Puzzle Box: Codebreakers and Groundbreakers [UCM]: un kit de caixes de trencaclosques tallat amb làser dissenyat per a un taller de fabricants digitals al Museu Fitzwilliam de Cambridge en connexió amb la seva exposició Codebreakers and Groundbreakers. Per al taller, el botó del quadre del trencaclosques estava connectat a un MakeyMakey a
Cedar (Cigar?) Box Box Speaker: 8 passos (amb imatges)
Cedar (Cigar?) Box Speaker Box: inspirat en els altaveus de Munny, però no disposat a gastar més de 10 dòlars, aquí teniu el meu instructiu fent servir altaveus d'ordinador vells, una caixa de fusta de la botiga de segona mà i molta cola calenta