Tabla de contenido:
Video: Caja de rompecabezas Arduino: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Para este proyecto vamos a hacer una caja de rompecabezas que funcione con música. La esencia básica de esto es que cuando presiona un botón, libera una melodía y el Arduino calcula qué botones se presionan para que sepa cuál es la respuesta correcta y cuál es la incorrecta.
Suministros
1 x Arduino uno
Resistencia de 1 x 1k Ohm
5 resistencias de 220 ohmios
1 x zumbador piezo
5 x pulsador 6x6 mm
1 x juego de cables de puente
1 x tablero de perfilado / tira
1 x juego de soldaduras
1 x bisagra
1 x abrazadera
1 x cómoda pequeña / madera
1x pistola de pegamento caliente + barras de pegamento
1 x batería de 9v + soporte
un poco de Worbla
pintura
Paso 1:
Para empezar, debes presionar los pines en tu tablero. Ahora conecte el analógico 2 con un cable a la esquina de la placa. Vamos a conectarle dos resistencias en una línea. La primera es una resistencia de 10k Ohm. Al otro extremo de esta resistencia, conectamos el cable a la tierra analógica. La segunda resistencia es una resistencia de 220 ohmios que conectamos al primer botón. Utilice otra resistencia del mismo valor para conectar el segundo lado abierto del botón con el segundo botón. Sigue conectando los botones así hasta el último. En el último, toma un cable y lo conecta al lado cerrado correspondiente del botón y lo conecta al siguiente en la línea. Ahora repite el proceso que hiciste con las resistencias que solo conoces con cables planos. Conecte el primer botón al puerto analógico 3, 3V en su Arduino. En general, obtendrá una especie de patrón cruzado como se muestra a continuación.
Paso 2:
A continuación, conecte el timbre a la placa de pruebas y asegure un lado a la tierra digital y el otro al puerto 12. Es inteligente cargar el siguiente código en su Arduino para que pueda probar si todo funciona correctamente. Si es así, puede comenzar a soldar los componentes juntos. Haga esto sacándolos de la placa y soldando los cables y las conexiones juntos directamente. Si cree que necesita más longitud entre los botones, puede agregar un cable adicional entre las resistencias. La placa de pruebas ya no es necesaria en este momento.
Paso 3:
Después de que todo esté soldado, es hora de hacer la caja. Usé un juego de cajones baratos como base para el mío. Simplemente corté por la mitad a lo largo y quité la parte posterior y el lado que corté. Deberías tener dos piezas en forma de C ahora. Corta un lado de uno de ellos para usarlo como tapa. Ahora rote una de las piezas restantes para que encajen como una caja sin tapa y péguelas juntas. Una vez que el pegamento se haya fijado correctamente, taladre un pequeño orificio en cada lado de la caja para los botones y uno más grande para el timbre de la tapa.
Paso 4:
Ahora puedes empezar a pintar la caja. Hice el mío con un diseño de flores basado en BOTW, pero realmente puedes elegir el diseño que quieras. Una vez hecho esto, puede colocar los botones dentro de los agujeros y poner una gota de pegamento en la parte posterior del botón y la madera circundante. El mismo principio se aplica al timbre, pero el mío encaja perfectamente en el orificio, lo que lo hace innecesario. A continuación, coges un poco de Worbla y lo calientas y lo cortas para hacer unos pequeños botones. Pégalos con cuidado a los botones, pero asegúrate de no usar demasiado pegamento porque podrías atascarlos accidentalmente. Ahora puedes pintarlos para que se mezclen más con la caja.
Paso 5:
Por último, pegas o atornillas, la abrazadera y las bisagras de la caja y la tapa conectando las dos.
Paso 6:
Ahora que su caja está completa, todo lo que tiene que hacer es colocar el Arduino y la batería dentro y cerrar la tapa.
Paso 7: Código
// Este es el código para un rompecabezas / caja de música con el tema de Zelda.
// esto conecta su código a la lista de notas en la otra pestaña
#include "pitches.h"
// esta variable asegurará que Arduino vea una presión más prolongada del botón como solo una presión
int mismo = 0;
// desde aquí leerá tu entrada
int k = 2;
// este es tu pin de salida
int altavoz = 12;
// debajo están las melodías finales
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_G4, 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 duración normal de una nota
int BEATTIME = 300;
// el contador que va a realizar un seguimiento de dónde estamos en la solución
int teller = 0;
configuración vacía () {
Serial.begin (9600);
pinMode (2, ENTRADA);
pinMode (1, ENTRADA);
}
bucle vacío () {
// lee la entrada de los pines
k = analogRead (2);
int p = analogRead (1);
// si no hay ningún botón presionado no debería haber tono
si (cajero == 0) {
noTone (12);
}
// si los datos leídos se corresponden con los parámetros, ejecute el bit de código descrito
si (k> 320 && k <350) {
rechts ();
}
//""
más si (k 290) {
Enlaces();
}
//""
más si (k> 260 && k <280) {
boven ();
}
//""
más si (k> 240 && k <260) {
onder ();
}
//""
más si (k> 220 && k <240) {
a();
}
// si no lo hace (cuando no se presiona ningún botón), ejecute este código
demás {
// restablecer lo mismo para que se pueda usar la próxima vez que se presione un botón
igual = 0;
// si el contador llega a cierto número, ejecute el bit de código descrito
si (cajero == 166) {
zelda ();
}
//""
más si (cajero == 386) {
saria ();
}
//""
más si (cajero == 266) {
epona ();
}
//""
else if (cajero == 999) {
// toca este tono para marcar el error
tono (altavoz, NOTE_C3, BEATTIME);
// restablecer el contador a 0
cajero = 0;
}
}
// el retraso entre la entrada y la salida
retraso (100);
// imprime los valores de su entrada en el monitor serial
Serial.println (k);
}
// esta es la primera melodía
void zelda () {
// esto establece un contador que se actualiza mientras se reproduce la melodía para que pueda leerla y detenerse cuando debería
para (int i = 0; i <sizeof (Zelda); i ++) {
// dice cuanto debe durar una nota
int ZTime = 1000 / ZeldaTime ;
// genera los tonos
tono (altavoz, Zelda , ZTime);
// crea el retraso correcto
int pause = ZTime * 1.30;
retraso (pausa);
// restablece el contador
cajero = 0;
// imprime los valores de su entrada en el monitor serial
Serial.println (cajero);
}
}
//""
void epona () {
para (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
tono (hablante, Epona , ETime);
int pause = ETime * 1.30;
retraso (pausa);
cajero = 0;
Serial.println (cajero);
}
}
//""
void saria () {
para (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
tono (hablante, Saria , STime);
int pause = STime * 1.30;
retraso (pausa);
cajero = 0;
Serial.println (cajero);
}
}
rec vacío
hts () {
// si esto no estaba ya presionado
si (igual == 0) {
// si el contador tiene actualmente uno de estos valores, agréguelo
if (cajero == 0 || cajero == 132 || cajero == 165 || cajero == 232 || cajero == 265 || cajero == 331 || cajero == 374) {
cajero = cajero + 1;
}
// de lo contrario, configúrelo en 999 para que escuche el ruido de error
demás {
cajero = 999;
}
// establece lo mismo en uno para que Arduino no lea una pulsación prolongada como pulsaciones múltiples
igual = 1;
}
// toca el tono
demás {
tono (altavoz, NOTE_A4, BEATTIME);
}
// imprime los valores de su entrada en el monitor serial
Serial.println (cajero); }
//""
enlaces vacíos () {
si (igual == 0) {
if (cajero == 133 || cajero == 254 || cajero == 244 || cajero == 332 || cajero == 375 || cajero == 221) {
cajero = cajero + 11;
}
más si (cajero == 0) {
cajero = 111;
}
demás {
cajero = 999;
}
igual = 1;
} demás{
tono (altavoz, NOTE_B4, BEATTIME);
} Serial.println (cajero);
}
//""
void boven () {
si (igual == 0) {si (cajero == 111 || cajero == 144 || cajero == 233) {
cajero = cajero + 21;
}
más si (cajero == 0) {
cajero = 221;
}
demás {
cajero = 999;
}
igual = 1;
}
demás {
tono (altavoz, NOTE_D5, BEATTIME);
Serial.println (cajero);
}
}
//""
void onder () {
si (igual == 0) {
si (cajero == 343) {
cajero = cajero + 31;
}
más si (cajero == 0) {
cajero = 331;
} demás {
cajero = 999;
} igual = 1;
} demás {
tono (altavoz, NOTE_F4, BEATTIME);
Serial.println (cajero);
}
}
//""
anular un () {
si (igual == 0) {
si (cajero == 0) {
cajero = 461;
}
demás {
cajero = 999;
}
igual = 1;
}
tono (altavoz, NOTE_D4, BEATTIME);
Serial.println (cajero);
}
Recomendado:
Juego de rompecabezas de memoria usando un BBC MicroBit: 7 pasos
Juego de rompecabezas de memoria usando un BBC MicroBit: si no sabes qué es un BBC MicroBit, es básicamente un dispositivo muy pequeño que puedes programar para que tenga entradas y salidas. Algo como un Arduino, pero más desarrollado. Lo que realmente me encantó del MicroBit fue que tiene dos entradas b integradas
Despertador de rompecabezas de memoria: 3 pasos (con imágenes)
Memory Puzzle Alarm Clock: ¡Este es un Alarm Puzzle Clock, lo que significa que hay un pequeño juego de memoria que tienes que resolver para dejar de sonar la alarma! Como resumen, este reloj es para quien está siendo elegante por las mañanas. Tiene 3 leds que al presionar cualquiera de los botones, la alarma será
Juego de descifrar el código, caja de rompecabezas basada en Arduino: 4 pasos (con imágenes)
Juego de descifrar el código, caja de rompecabezas basada en Arduino: en este Instructable, te mostraré cómo construir tu propio juego de descifrar el código en el que usas un dial codificador giratorio para adivinar el código generado aleatoriamente en la caja fuerte. Hay 8 LED en la parte frontal de la caja fuerte para indicarle cuántos de los
Proyección azimutal Mapa 3D Decoración X Juego de rompecabezas de música popular - Arduino: 7 pasos
Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: INTRODUCCIÓN La siguiente página le enseñará cómo crear un proyecto Arduino, que tiene dos funciones principales: decoración sencilla con iluminación y juego de rompecabezas de música folk, que incorpora los campos de la geografía y la geometría. , mapas, Naciones Unidas y
Rompecabezas numérico con Arduino: 4 pasos (con imágenes)
Number Puzzle With Arduino: Hola amigos, hoy quiero compartir este único proyecto. Se trata de un juego de rompecabezas numérico con arduino, que el juego se muestra en el televisor y se controla mediante un teclado de (4x4) Ver video aquí Para deslizar o mover el cuadrado del rompecabezas, presione la tecla