Sommario:
Video: Scatola puzzle Arduino: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Per questo progetto realizzeremo una scatola puzzle che funzioni con la musica. L'essenza di base è che quando si preme un pulsante rilascia una melodia e Arduino calcola quali pulsanti vengono premuti in modo che sappia qual è la risposta giusta e qual è la risposta sbagliata.
Forniture
1 x Arduino uno
1 x 1k Ohm resistore
5 x 220 Ohm resistori
1 x cicalino piezo
5 x pulsante 6x6 mm
1 x set di cavi per ponticelli
1 x perf/strip board
1 x set di saldatura
1 x cerniera
1 x morsetto
1 x cassettiera piccola/legna
1x pistola per colla a caldo + stick di colla
1 x batteria 9v + supporto
un po' di worbla
dipingere
Passo 1:
Per iniziare devi premere i pin nella breadboard. Ora collega l'analogico 2 con un filo all'angolo della scheda. Collegheremo due resistori in una linea. Il primo è un resistore da 10k Ohm. All'altra estremità di questo resistore colleghiamo il filo alla terra analogica. Il secondo resistore è un resistore da 220 Ohm che colleghiamo al primo pulsante. Utilizzare un altro resistore dello stesso valore per collegare il secondo lato aperto del pulsante con il secondo pulsante. Continua a collegare i pulsanti in questo modo fino all'ultimo. All'ultimo prendi un filo e lo colleghi a un corrispondente lato chiuso del pulsante e lo colleghi a quello successivo in linea. Ora ripeti il processo che hai fatto con i resistori che conosci solo con fili semplici. Collega il primo pulsante alla porta analogica 3, 3V sul tuo Arduino. Tutto sommato otterrai una sorta di croce come illustrato di seguito.
Passo 2:
Quindi collega il cicalino alla breadboard e fissa un lato alla terra digitale e l'altro alla porta 12. È intelligente caricare già il seguente codice nel tuo Arduino in modo da poter verificare se tutto funziona correttamente. Se lo è, puoi iniziare a saldare i componenti insieme. Fai questo estraendoli dalla breadboard e saldando direttamente i fili e le connessioni. Se pensi di aver bisogno di più lunghezza tra i pulsanti, puoi aggiungere del filo extra tra i resistori. La breadboard non è più necessaria a questo punto.
Passaggio 3:
Dopo che tutto è stato saldato, è il momento di creare la scatola stessa. Ho usato una cassettiera economica come base per la mia. Ho semplicemente tagliato a metà nel senso della lunghezza e rimosso il retro e il lato che ho tagliato. Dovresti avere due pezzi a forma di C ora. Taglia un lato di uno di loro da usare come coperchio. Ora ruota uno dei pezzi rimanenti in modo che si incastrino come una scatola senza coperchio e incollali insieme. Una volta che la colla si è fissata correttamente, pratica un piccolo foro su ciascun lato della scatola per i pulsanti e uno più grande per il cicalino nel coperchio.
Passaggio 4:
Ora puoi iniziare a dipingere la scatola. Ho fatto il mio con un disegno floreale basato su BOTW ma puoi davvero scegliere qualsiasi disegno tu voglia. Fatto ciò, puoi inserire i bottoni all'interno dei fori e mettere un po' di colla sul retro del bottone e sul legno circostante. Lo stesso principio vale per il cicalino ma il mio si inserisce perfettamente nel foro rendendolo superfluo. Quindi prendi del worbla e scaldalo e taglialo per fare dei piccoli bottoni. Incollali con cura sui pulsanti, ma assicurati di non usare troppa colla perché potresti accidentalmente bloccarli. Ora puoi dipingerli per farli fondere maggiormente con la scatola.
Passaggio 5:
Infine si incollano o si avvitano il morsetto e le cerniere sulla scatola e sul coperchio che collegano i due.
Passaggio 6:
Ora che la tua scatola è completa, tutto ciò che devi fare è inserire Arduino e la batteria al suo interno e chiudere il coperchio.
Passaggio 7: codice
// Questo è il codice per un puzzle/carillon a tema Zelda.
// questo collega il tuo codice all'elenco delle note nell'altra scheda
#include "pitch.h"
// questa variabile assicurerà che Arduino veda una pressione più lunga del pulsante come una sola pressione
int stesso = 0;
// da qui leggerà il tuo input
intk = 2;
//questo è il tuo pin di output
int altoparlante = 12;
// sotto ci sono le melodie finali
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_A NOTE_B4;, NOTE
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTA_RE5, NOTA_B4, NOTA_A4, NOTA_RE5, NOTA_B4, NOTA_A4, NOTA_RE5, NOTA_B4, NOTA_A4, NOTA_B4, NOTA_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_E}
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// la durata normale di una nota
int TEMPO DI BATTUTA = 300;
// il contatore che terrà traccia di dove siamo nella soluzione
int cassiere = 0;
void setup() {
Serial.begin(9600);
pinMode(2, INGRESSO);
pinMode(1, INGRESSO);
}
ciclo vuoto() {
// legge l'input dai pin
k = analogRead(2);
int p = analogRead(1);
//se non viene premuto alcun pulsante non dovrebbe esserci alcun tono
if (cassiere == 0) {
noTono(12);
}
//se i dati letti corrispondono ai parametri esegui il bit di codice descritto
se (k > 320 && k < 350) {
retti();
}
//""
altrimenti se (k 290) {
link();
}
//""
altrimenti se (k > 260 && k < 280) {
boven();
}
//""
altrimenti se (k> 240 && k < 260) {
sotto();
}
//""
altrimenti se (k > 220 && k < 240) {
un();
}
// in caso contrario (quando non viene premuto alcun pulsante), esegui questo codice
altro {
// ripristina lo stesso in modo che possa essere utilizzato la prossima volta che viene premuto un pulsante
uguale = 0;
// se il contatore raggiunge un certo numero esegue il bit di codice descritto
if (cassiere == 166) {
zelda();
}
//""
altrimenti se (cassiere == 386) {
sario();
}
//""
altrimenti se (cassiere == 266) {
epona();
}
//""
altrimenti se (cassiere == 999) {
//riproduci questo tono per contrassegnare l'errore
tono (altoparlante, NOTE_C3, BEATTIME);
//ripristina il contatore a 0
cassiere = 0;
}
}
//il ritardo tra input e output
ritardo(100);
// stampa i valori del tuo input nel monitor seriale
Serial.println(k);
}
// questa è la prima melodia
vuoto zelda() {
//questo imposta un contatore che si aggiorna da solo durante la riproduzione della melodia in modo che possa leggerla e fermarsi quando dovrebbe
for (int i = 0; i < sizeof(Zelda); i++) {
//dice quanto deve durare una nota
int ZTime = 1000 / ZeldaTime;
//genera i toni
tono (altoparlante, Zelda, ZTime);
//crea il ritardo corretto
int pausa = ZTime * 1.30;
ritardo (pausa);
//reimposta il contatore
cassiere = 0;
// stampa i valori del tuo input nel monitor seriale
Serial.println(cassiere);
}
}
//""
vuoto epona() {
for (int i = 0; i < sizeof(Epona); i++) {
int ETime = 1000 / EponaTime;
tono (altoparlante, Epona, ETime);
int pausa = ETime * 1.30;
ritardo (pausa);
cassiere = 0;
Serial.println(cassiere);
}
}
//""
vuoto saria() {
for (int i = 0; i < sizeof(Saria); i++) {
int STime = 1000 / SariaTime;
tono (altoparlante, Saria, STime);
int pausa = STime * 1.30;
ritardo (pausa);
cassiere = 0;
Serial.println(cassiere);
}
}
vuoto rec
hts() {
// se questo non fosse già stato premuto
if (stesso == 0) {
// se il contatore ha attualmente uno di questi valori aggiungi questo ad esso
if (cassiere == 0 || cassiere == 132 || cassiere == 165 || cassiere == 232 || cassiere == 265 || cassiere == 331 || cassiere == 374) {
cassiere = cassiere + 1;
}
// altrimenti impostalo su 999 in modo da sentire il rumore di errore
altro {
cassiere = 999;
}
// imposta lo stesso su uno in modo che Arduino non legga una pressione prolungata come pressioni multiple
stesso = 1;
}
// suona il tono
altro {
tono (altoparlante, NOTE_A4, BEATTIME);
}
// stampa i valori del tuo input nel monitor seriale
Serial.println(cassiere); }
//""
collegamenti vuoti() {
if (stesso == 0) {
if (cassiere == 133 || cassiere == 254 || cassiere == 244 || cassiere == 332 || cassiere == 375 || cassiere == 221) {
cassiere = cassiere + 11;
}
altrimenti se (cassiere == 0) {
cassiere = 111;
}
altro {
cassiere = 999;
}
stesso = 1;
} altro{
tono (altoparlante, NOTE_B4, BEATTIME);
} Serial.println(cassiere);
}
//""
vuoto boven() {
if (stesso == 0) { if (cassiere == 111 || cassiere == 144 || cassiere == 233) {
cassiere = cassiere + 21;
}
altrimenti se (cassiere == 0) {
cassiere = 221;
}
altro {
cassiere = 999;
}
stesso = 1;
}
altro {
tono (altoparlante, NOTE_D5, BEATTIME);
Serial.println(cassiere);
}
}
//""
void on() {
if (stesso == 0) {
if (cassiere == 343) {
cassiere = cassiere + 31;
}
altrimenti se (cassiere == 0) {
cassiere = 331;
} altro {
cassiere = 999;
} stesso = 1;
} altro {
tono(altoparlante, NOTE_F4, BEATTIME);
Serial.println(cassiere);
}
}
//""
vuoto a() {
if (stesso == 0) {
if (cassiere == 0) {
cassiere = 461;
}
altro {
cassiere = 999;
}
stesso = 1;
}
tono (altoparlante, NOTE_D4, BEATTIME);
Serial.println(cassiere);
}
Consigliato:
Arduino: Scatola di compleanno con canto per i regali: 14 passaggi
Arduino: scatola cantante di compleanno per regali: questa scatola cantante di compleanno è realizzata allo scopo di confezionare regali di compleanno, assistita da Arduino per fornire funzioni speciali, tra cui cantare e accendere la candela a LED. Con la possibilità di cantare la canzone di buon compleanno e di accendere il LED c
Riutilizzare una vecchia scatola del router per il tuo progetto Arduino: 3 passaggi
Riutilizzare una vecchia scatola del router per il tuo progetto Arduino: questo progetto è nato dalla necessità di ospitare il mio progetto di automazione domestica. Ho deciso di riutilizzare il case da un vecchio router PlusNet difettoso (router Thomson TG585). I requisiti per il mio involucro erano::Scatola sospesa a basso profilo Coperchio facile da aprire
Scatola delle proposte con Arduino: 6 passaggi
Scatola delle proposte con Arduino: in questo tutorial, ti mostrerò come creare una semplice scatola delle proposte di matrimonio con Arduino Uno. Questo sarà il modo perfetto per proporre a qualcuno che è appassionato di elettronica/progetti Arduino. Questo progetto è ispirato al video di Youtube
Scatola di effetti sonori Arduino minimi: 5 passaggi
Minimal Arduino Sound Effect Box: questo è un progetto rapido di una scatola di effetti sonori. Il dispositivo legge un file wav preregistrato da una microSD assegnata a un pulsante specifico e lo riproduce quando viene premuto
Centro di controllo della scatola di uscita Arduino con Google Calendar: 4 passaggi
Arduino Outlet Box Control Center con Google Calendar: in questo Instructable imparerai come costruire un centro di controllo per la tua casa utilizzando un modulo relè di alimentazione Adafruit a 4 uscite. Avrai bisogno di una scheda Arduino con un modulo wifi come l'Adafruit Feather Huzzah e un Adafruit Power Relay Module 4