Πίνακας περιεχομένων:
Βίντεο: Arduino Puzzle Box: 7 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Για αυτό το έργο θα φτιάξουμε ένα κουτί παζλ που λειτουργεί με μουσική. Η βασική ουσία είναι ότι όταν πατάτε ένα κουμπί, εκπέμπει μια μελωδία και το Arduino υπολογίζει ποια κουμπιά πατούν έτσι ώστε να γνωρίζει ποια είναι η σωστή και ποια η λάθος απάντηση.
Προμήθειες
1 x Arduino uno
Αντίσταση 1 x 1k Ohm
5 x 220 Ohm αντιστάσεις
1 xPiezo Buzzer
5 x κουμπί 6x6 mm
1 x σετ καλώδια Jumper
1 x πίνακας perf/strip
1 x συγκολλητικό
1 x μεντεσέ
1 x σφιγκτήρας
1 x μικρή συρταριέρα/ξύλο
1x πιστόλι θερμής κόλλας + ξυλάκια κόλλας
1 x μπαταρία 9V + θήκη
λίγο βούρμπλα
χρώμα
Βήμα 1:
Για να ξεκινήσετε, πρέπει να πιέσετε τις καρφίτσες σας στο breadboard σας. Τώρα συνδέστε το αναλογικό 2 με ένα καλώδιο στη γωνία του πίνακα. Θα συνδέσουμε δύο αντιστάσεις σε αυτό σε μια γραμμή. Το πρώτο είναι μια αντίσταση 10k Ohm. Στο άλλο άκρο αυτής της αντίστασης συνδέουμε το καλώδιο στην αναλογική γείωση. Η δεύτερη αντίσταση είναι μια αντίσταση 220 Ohm που συνδέουμε στο πρώτο κουμπί. Χρησιμοποιήστε μια άλλη αντίσταση της ίδιας τιμής για να συνδέσετε τη δεύτερη ανοιχτή πλευρά του κουμπιού με το δεύτερο κουμπί. Συνεχίστε να συνδέετε τα κουμπιά όπως αυτό μέχρι το τελευταίο. Στο τελευταίο πιάνετε ένα καλώδιο και το συνδέετε σε μια αντίστοιχη κλειστή πλευρά του κουμπιού και το συνδέετε με το επόμενο στη σειρά. Επαναλαμβάνετε τώρα τη διαδικασία που κάνατε με τις αντιστάσεις που γνωρίζετε μόνο με απλά καλώδια. Συνδέστε το πρώτο κουμπί στην αναλογική θύρα 3, 3V στο Arduino σας. Συνολικά θα πάρετε ένα είδος σταυρού πατέρα όπως απεικονίζεται παρακάτω.
Βήμα 2:
Στη συνέχεια, συνδέστε το βομβητή στη σανίδα ψύξης και ασφαλίστε τη μία πλευρά στο ψηφιακό έδαφος και την άλλη στη θύρα 12. Είναι έξυπνο να ανεβάσετε ήδη τον ακόλουθο κώδικα στο Arduino σας, ώστε να μπορείτε να ελέγξετε αν όλα λειτουργούν σωστά. Εάν είναι, μπορείτε να αρχίσετε να κολλάτε τα εξαρτήματα μαζί. Κάντε το βγάζοντάς τα από το breadboard και συγκολλώντας τα καλώδια και τις συνδέσεις μεταξύ τους απευθείας. Εάν πιστεύετε ότι χρειάζεστε μεγαλύτερο μήκος μεταξύ των κουμπιών, μπορείτε να προσθέσετε επιπλέον καλώδιο μεταξύ των αντιστάσεων. Το breadboard δεν είναι πλέον απαραίτητο σε αυτό το σημείο.
Βήμα 3:
Αφού συγκολληθούν όλα, ήρθε η ώρα να φτιάξετε το ίδιο το κουτί. Χρησιμοποίησα ένα φτηνό σετ συρταριών ως βάση για το δικό μου. Απλά έκοψα στη μέση κατά μήκος και αφαίρεσα την πλάτη και την πλευρά που έκοψα. Θα πρέπει τώρα να έχετε δύο κομμάτια σε σχήμα c. Κόψτε τη μία πλευρά του ενός για να το χρησιμοποιήσετε ως καπάκι. Τώρα περιστρέψτε ένα από τα υπόλοιπα κομμάτια έτσι ώστε να ταιριάζουν μεταξύ τους σαν ένα κουτί χωρίς καπάκι και κολλήστε τα μεταξύ τους. Μόλις στερεωθεί σωστά η κόλλα, ανοίξτε μια μικρή τρύπα σε κάθε πλευρά του κουτιού για τα κουμπιά και μια μεγαλύτερη για το βομβητή στο καπάκι.
Βήμα 4:
Τώρα μπορείτε να βάψετε το κουτί. Έκανα το δικό μου με σχέδιο λουλουδιών βασισμένο στο BOTW αλλά μπορείτε πραγματικά να επιλέξετε όποιο σχέδιο θέλετε. Αφού γίνει αυτό, μπορείτε να βάλετε τα κουμπιά μέσα στις τρύπες και να βάλετε μια σφαίρα κόλλας στο πίσω μέρος του κουμπιού και το γύρω ξύλο. Η ίδια αρχή ισχύει και για το βομβητή, αλλά το δικό μου ταιριάζει απόλυτα στην τρύπα καθιστώντας το περιττό. Στη συνέχεια, αρπάζετε λίγη worbla και ζεσταίνετε και την κόβετε για να φτιάξετε μερικά μικρά κουμπιά. Κολλήστε τα προσεκτικά πάνω στα κουμπιά, αλλά βεβαιωθείτε ότι δεν χρησιμοποιείτε πολύ κόλλα γιατί μπορεί να κολλήσετε κατά λάθος τα κουμπιά. Τώρα μπορείτε να τα βάψετε για να αναμειχθούν περισσότερο με το κουτί.
Βήμα 5:
Τέλος κολλάτε ή βιδώνετε, τον σφιγκτήρα και τους μεντεσέδες στο κουτί και το καπάκι που συνδέει τα δύο.
Βήμα 6:
Τώρα που το κουτί σας έχει ολοκληρωθεί το μόνο που έχετε να κάνετε είναι να βάλετε το Arduino και την μπαταρία μέσα του και να κλείσετε το καπάκι.
Βήμα 7: Κωδικός
// Αυτός είναι ο κωδικός για ένα παζλ/μουσική με θέμα Zelda.
// αυτό συνδέει τον κωδικό σας με τη λίστα σημειώσεων στην άλλη καρτέλα
#include "pitches.h"
// αυτή η μεταβλητή θα διασφαλίσει ότι το Arduino βλέπει μεγαλύτερο πάτημα του κουμπιού ως ένα μόνο πάτημα
int ίδιο = 0;
// από εδώ θα διαβάσει την εισαγωγή σας
int k = 2;
// αυτό είναι το pin σας εξόδου
int ηχείο = 12;
// παρακάτω είναι οι τελικές μελωδίες
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_5, NOT_B5, NOT_B5, NOTE_D5, NOTE_D5, NOTE_D5, NOTE_55, NOTEB5, NOTE_D5, NOTEB5, NOTE_DE, NOTE_5, NOTE_5, NOTE_5, NOTE_5, NOTEB5, NOTE_DE, NOTE_5, NOTE_DE, NOTE_5
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_4, NOTE4, NOTE_4, NOTE
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// η κανονική διάρκεια μιας νότας
int BEATTIME = 300;
// ο μετρητής που θα παρακολουθεί αν βρισκόμαστε στη λύση
int teller = 0;
void setup () {
Serial.begin (9600);
pinMode (2, ΕΙΣΟΔΟΣ);
pinMode (1, ΕΙΣΟΔΟΣ);
}
void loop () {
// διαβάζει την είσοδο από τις ακίδες
k = analogRead (2);
int p = analogRead (1);
// εάν δεν πατήσετε κάποιο κουμπί, δεν πρέπει να υπάρχει τόνος
εάν (ταμίας == 0) {
noTone (12);
}
// εάν τα δεδομένα ανάγνωσης αντιστοιχούν στις παραμέτρους εκτελέστε το περιγραφόμενο κομμάτι κώδικα
αν (k> 320 && k <350) {
rechts ();
}
//""
αλλιώς αν (k 290) {
συνδέσεις();
}
//""
αλλιώς αν (k> 260 && k <280) {
πλεγμένο ();
}
//""
αλλιώς αν (k> 240 && k <260) {
onder ();
}
//""
αλλιώς αν (k> 220 && k <240) {
ένα();
}
// αν δεν το κάνει (όταν δεν πατηθεί κανένα κουμπί), εκτελέστε αυτόν τον κωδικό
αλλιώς {
// επαναφέρετε το ίδιο ώστε να μπορεί να χρησιμοποιηθεί την επόμενη φορά που θα πατήσετε ένα κουμπί
ίδιο = 0;
// εάν ο μετρητής είναι έως έναν συγκεκριμένο αριθμό, εκτελέστε το περιγραφόμενο κομμάτι κώδικα
εάν (ταμίας == 166) {
zelda ();
}
//""
αλλιώς αν (ταμίας == 386) {
σαρια ()?
}
//""
αλλιώς αν (ταμίας == 266) {
epona ();
}
//""
αλλιώς αν (ταμίας == 999) {
// παίξτε αυτόν τον τόνο για να επισημάνετε το σφάλμα
τόνος (ηχείο, NOTE_C3, BEATTIME)
// επαναφέρετε τον μετρητή στο 0
ταμείο = 0;
}
}
// η καθυστέρηση μεταξύ εισόδου και εξόδου
καθυστέρηση (100)?
// εκτυπώνει τις τιμές της εισόδου σας στη σειριακή οθόνη
Serial.println (k);
}
// αυτή είναι η πρώτη μελωδία
void zelda () {
// αυτό θέτει έναν μετρητή που ενημερώνεται κατά την αναπαραγωγή της μελωδίας, ώστε να μπορεί να την διαβάσει και να σταματήσει όταν πρέπει
για (int i = 0; i <sizeof (Zelda); i ++) {
// λέει πόσο καιρό πρέπει να διαρκέσει μια νότα
int ZTime = 1000 / ZeldaTime ;
// δημιουργεί τους τόνους
τόνος (ηχείο, Zelda , ZTime);
// δημιουργεί τη σωστή καθυστέρηση
int pause = ZTime * 1,30;
καθυστέρηση (παύση)?
// επαναφέρει τον μετρητή
ταμείο = 0;
// εκτυπώνει τις τιμές της εισόδου σας στη σειριακή οθόνη
Serial.println (ταμείο);
}
}
//""
void epona () {
για (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
τόνος (ηχείο, Epona , ETime);
int pause = ETime * 1,30;
καθυστέρηση (παύση)?
ταμείο = 0;
Serial.println (ταμείο);
}
}
//""
void saria () {
για (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
τόνος (ηχείο, Saria , STime);
int pause = STime * 1,30;
καθυστέρηση (παύση)?
ταμείο = 0;
Serial.println (ταμείο);
}
}
void rec
hts () {
// εάν αυτό δεν ήταν ήδη πατημένο
αν (ίδιο == 0) {
// εάν ο μετρητής έχει αυτήν τη στιγμή μία από αυτές τις τιμές, προσθέστε το σε αυτό
εάν (ταμίας == 0 || πωλητής == 132 || πωλητής == 165 || πωλητής == 232 || πωλητής == 265 || πωλητής == 331 || πωλητής == 374) {
ταμίας = ταμίας + 1;
}
// αλλιώς ρυθμίστε το στο 999, ώστε να ακούτε θόρυβο σφάλματος
αλλιώς {
ταμίας = 999;
}
// ορίστε το ίδιο σε ένα έτσι ώστε το Arduino να μην διαβάζει παρατεταμένο πάτημα ως πολλαπλά πατήματα
ίδιο = 1;
}
// παίξτε τον τόνο
αλλιώς {
τόνος (ηχείο, NOTE_A4, BEATTIME)
}
// εκτυπώνει τις τιμές της εισόδου σας στη σειριακή οθόνη
Serial.println (ταμείο); }
//""
άκυροι σύνδεσμοι () {
αν (ίδιο == 0) {
εάν (ταμίας == 133 || πωλητής == 254 || ταμίας == 244 || ταμίας == 332 || πωλητής == 375 || ταμίας == 221) {
ταμίας = ταμίας + 11;
}
αλλιώς αν (ταμίας == 0) {
ταμείο = 111;
}
αλλιώς {
ταμίας = 999;
}
ίδιο = 1;
} αλλο {
τόνος (ηχείο, NOTE_B4, BEATTIME)
} Serial.println (ταμίας);
}
//""
void boven () {
αν (ίδιο == 0) {αν (ταμείο == 111 || ταμείο == 144 || ταμείο == 233) {
ταμίας = ταμίας + 21;
}
αλλιώς αν (ταμίας == 0) {
ταμίας = 221;
}
αλλιώς {
ταμίας = 999;
}
ίδιο = 1;
}
αλλιώς {
τόνος (ηχείο, NOTE_D5, BEATTIME)
Serial.println (ταμείο);
}
}
//""
void onder () {
αν (ίδιο == 0) {
εάν (ταμίας == 343) {
ταμίας = ταμίας + 31;
}
αλλιώς αν (ταμίας == 0) {
πωλητής = 331;
} αλλο {
ταμίας = 999;
} ίδιο = 1;
} αλλο {
τόνος (ηχείο, NOTE_F4, BEATTIME)
Serial.println (ταμείο);
}
}
//""
void a () {
αν (ίδιο == 0) {
εάν (ταμίας == 0) {
ταμίας = 461;
}
αλλιώς {
ταμίας = 999;
}
ίδιο = 1;
}
τόνος (ηχείο, NOTE_D4, BEATTIME)
Serial.println (ταμείο);
}
Συνιστάται:
Crack the Code Game, Arduino Based Puzzle Box: 4 βήματα (με εικόνες)
Crack the Code Game, Arduino Based Puzzle Box: Σε αυτό το Instructable, θα σας δείξω πώς να δημιουργήσετε το δικό σας παιχνίδι κώδικα στο οποίο χρησιμοποιείτε έναν περιστροφικό επιλογέα κωδικοποιητή για να μαντέψετε τον τυχαία δημιουργημένο κώδικα στο χρηματοκιβώτιο. Υπάρχουν 8 LED στο μπροστινό μέρος του χρηματοκιβωτίου για να σας πω πόσα από τα
Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: 7 Βήματα
Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: ΕΙΣΑΓΩΓΗ Η παρακάτω σελίδα θα σας καθοδηγήσει πώς να δημιουργήσετε ένα έργο Arduino, το οποίο έχει δύο κύριες λειτουργίες - απλή διακόσμηση με φωτισμό και παιχνίδι παζλ λαϊκής μουσικής, που ενσωματώνει τους τομείς της γεωγραφίας, της γεωμετρίας , χάρτες, Ηνωμένα Έθνη και
PUZZLE - Arduino Logic Game: 3 Βήματα
PUZZLE - Arduino Logic Game: Γεια σας. Θα ήθελα να σας πω για την ιστορία της δημιουργίας ενός απλού παιχνιδιού παζλ " Puzzle " χρησιμοποιώντας Arduino UNO και TFT-Shield. Για να δημιουργήσω το παιχνίδι χρειαζόμουν τα ακόλουθα στοιχεία: Arduino UNO Power Adapter (AC-DC) 6-12V για Arduino UNO Micro
Puzzle Box - Codebreakers and Groundbreakers [UCM]: 7 βήματα (με εικόνες)
Puzzle Box - Codebreakers and Groundbreakers [UCM]: Ένα κιτ κουτί παζλ με λέιζερ, σχεδιασμένο για εργαστήριο ψηφιακών κατασκευαστών στο Μουσείο Fitzwilliam, Cambridge σε σχέση με την έκθεση Codebreakers και Groundbreakers. Για το εργαστήριο, το κουμπί στο κουτί παζλ συνδέθηκε με ένα MakeyMakey a
Arduino 'breadbot' Puzzle Game: 6 βήματα (με εικόνες)
Arduino 'breadbot' Παζλ παιχνίδι: Ω όχι! Το μωρό μου ρομπότ χρειάζεται δύο καλώδια για να ξαναζωντανέψει! Σήμερα θα φτιάξουμε ένα παιχνίδι παζλ που μπορεί να διδάξει στους αρχάριους χρήστες του arduino κάτι για το breadboarding. Γι 'αυτό το έφτιαξα! Μπορείτε να το κάνετε όσο πιο περίπλοκο θέλετε, αλλά επέλεξα