Πίνακας περιεχομένων:

Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: 7 Βήματα
Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: 7 Βήματα

Βίντεο: Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: 7 Βήματα

Βίντεο: Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: 7 Βήματα
Βίντεο: Why all world maps are wrong 2024, Ιούλιος
Anonim
Image
Image
Σχεδιάστε το Διοικητικό Συμβούλιο
Σχεδιάστε το Διοικητικό Συμβούλιο

ΕΙΣΑΓΩΓΗ

Η ακόλουθη σελίδα θα σας καθοδηγήσει πώς να δημιουργήσετε ένα έργο Arduino, το οποίο έχει δύο κύριες λειτουργίες-απλή διακόσμηση με φωτισμό και παιχνίδι παζλ λαϊκής μουσικής, που ενσωματώνει τους τομείς της γεωγραφίας, της γεωμετρίας, των χαρτών, των Ηνωμένων Εθνών και της μουσικής όλα μαζί σε ένα. Βασισμένη στη δομή των εξαγώνων, η συσκευή απεικονίζει τον παγκόσμιο χάρτη στην ισοσταθμισμένη προβολή Azimuthal, η οποία είναι η μορφή προβολής χάρτη που χρησιμοποιείται από τα Ηνωμένα Έθνη (και το σύμβολό της).

Κατά την ενεργοποίηση της λειτουργίας διακόσμησης, οι ήπειροι του χάρτη θα λάμπουν σε διαφορετικά χρώματα που καθορίζονται από τυχαίους συνδυασμούς τιμών RGB μέσω της χρήσης LED RGB.

Η λειτουργία παιχνιδιού, από την άλλη πλευρά, απαιτεί από τους χρήστες να αναγνωρίσουν την προέλευση των δημοτικών τραγουδιών μουσικής (που επιλέγονται με τυχαία δημιουργία αριθμών από το 1 έως το 20) και να τοποθετούν τον ηπειρωτικό πίνακα της απάντησής του στην αντίστοιχη θέση του στον κύριο ξύλινο πίνακα μέσα σε ένα σύνολο χρόνο (προκαθορισμένο για 1 λεπτό).

_

ΠΡΟΜΗΘΕΙΕΣ

Πραγματικά Υλικά

  • LED 5mm RGB *20
  • Καλώδια
  • Αντιστάσεις *9
  • Arduino Board *1 (οποιουδήποτε τύπου)
  • Breadboards *3
  • Κουμπιά *7
  • Πίνακας οθόνης LCD I2C *1
  • Κουτί από χαρτόνι (13*9*5,7 ίντσες, 33*23*14,5 εκ.)
  • Ξύλινη σανίδα (37,5*29*0,8 εκ.)
  • Ακρυλικές σανίδες (διαφανείς * 2, ημιδιαφανείς * 1)
  • Φορητός φορτιστής *1

Εργαλεία:

  • Λεπίδα *1
  • Κόλλες UV Cure *1
  • Ταινία διπλής όψης *1 ρολό
  • Πυροβόλο θερμό κόλλα *1

Μηχανές:

Μηχανή κοπής λέιζερ

Λογισμικό:

  • Adobe Illustrator
  • Adobe Photoshop
  • Rhino 3D

Βήμα 1: Σχεδιάστε τον πίνακα

Μπορείτε να κατεβάσετε απευθείας το συνημμένο αρχείο ή να ακολουθήσετε τα παρακάτω βήματα.

Περιγραφή του χάρτη

  1. Κατεβάστε ένα περίγραμμα χάρτη από την Google

    1. Google "λογότυπο Ηνωμένων Εθνών"
    2. Επιλέξτε "εργαλεία - μέγεθος - μεγάλο"
    3. Κατεβάστε την πιο αγαπημένη σας εικόνα (αυτή που χρησιμοποιεί αυτό το έργο: σύνδεσμος) *Προσπαθήστε να μην επιλέξετε αυτές με περίπλοκες γραμμές που επικαλύπτονται με τις ηπειρωτικές χώρες *
  2. Μεταφέρετε τον χάρτη που έχετε κατεβάσει στην έκδοση εκτύπωσης

    1. Χρωματίστε τις ανεπιθύμητες περιοχές σε λευκό χρησιμοποιώντας τη λειτουργία πινέλου στο Adobe Photoshop
    2. Εξαγωγή αρχείου (JPEG)
    3. Εισαγάγετε το αρχείο στο Adobe Illustrator και χρησιμοποιήστε τη λειτουργία "ίχνος εικόνας" για να εντοπίσετε τον χάρτη
    4. Εξαγωγή αρχείου (dxf)

Προσθήκη του εξαγωνικού φόντου

  1. Εισαγάγετε το αρχείο dxf στο Rhino
  2. Επιλέξτε τη λειτουργία "πολύγωνο" και πληκτρολογήστε το "6" για την επιλογή "NumSides"
  3. Πληκτρολογήστε "3.5" για την τιμή της ακτίνας
  4. Σχεδιάστε 28 εξάγωνα ίσου μεγέθους
  5. Εξαγάγετε το αρχείο σε 3dm

Βήμα 2: Κοπή λέιζερ

Image
Image
Κοπή λέιζερ
Κοπή λέιζερ
Κοπή λέιζερ
Κοπή λέιζερ
Κοπή λέιζερ
Κοπή λέιζερ
  1. Εισαγάγετε το αρχείο που ολοκληρώθηκε προηγουμένως στο xxx.
  2. Χρησιμοποιώντας τη μηχανή κοπής λέιζερ, εκτυπώστε το κύριο σώμα στον ξύλινο πίνακα και τις ηπείρους στις ακρυλικές σανίδες (2 διαφανείς & 1 ημιδιαφανείς) (τα βίντεο παρέχονται παραπάνω)

Βήμα 3: Δημιουργήστε τη συσκευή

Δημιουργήστε τη συσκευή
Δημιουργήστε τη συσκευή
Δημιουργήστε τη συσκευή
Δημιουργήστε τη συσκευή
Δημιουργήστε τη συσκευή
Δημιουργήστε τη συσκευή

Πίνακες μετά από κοπή με λέιζερ

  • Ακρυλικές Ηπείρους

    1. Χρησιμοποιήστε τις κολλητικές ουσίες που θεραπεύονται με υπεριώδη ακτινοβολία για να κολλήσετε τους τρεις πίνακες κάθε ηπείρου μαζί (με το ημιδιαφανές ως μεσαίο στρώμα)
    2. Χρησιμοποιήστε την υπεριώδη ακτινοβολία για να λάμψετε στις κολλημένες περιοχές για να επιτρέψετε στις κόλλες να στερεοποιηθούν
  • Foundationδρυμα ξύλινων σανίδων

    1. Αφαιρέστε χειροκίνητα τις μικρές περιοχές γης που έχουν κολλήσει στον κύριο ξύλινο πίνακα
    2. *Εάν κάποιο μέρος της ξύλινης σανίδας είναι σπασμένο, χρησιμοποιήστε τις κόλλα που θεραπεύονται με υπεριώδη ακτινοβολία για να τα κολλήσετε πίσω*

Δημιουργία της βάσης (Κάτω Foundationδρυμα ολόκληρης της συσκευής)

  1. Βρείτε ένα κουτί από χαρτόνι κατάλληλου μεγέθους, με διαστάσεις κοντά 13*9*5,7 ίντσες (33*23*14,5 εκ.)
  2. Χρησιμοποιώντας την ξύλινη σανίδα ως μοντέλο αναφοράς, εντοπίστε τα ηπειρωτικά μέρη στην επάνω επιφάνεια του κουτιού
  3. Ανιχνεύστε το κάτω μέρος των κουμπιών στην επάνω επιφάνεια του κουτιού, με κάθε κουμπί κεντραρισμένο σε κάθε ιχνηλατημένο ηπειρωτικό τμήμα
  4. Χρησιμοποιήστε μια λεπίδα για να κόψετε τα μέρη του κουμπιού ακολουθώντας τα ίχνη
  5. Μέσα στα ιχνηλατημένα ηπειρωτικά μέρη, χρησιμοποιήστε μια λεπίδα για να κόψετε σύντομα τμήματα που περιβάλλουν το κουμπί
  6. Ανιχνεύστε δύο ακόμη κάτω μέρη του κουμπιού στη δεξιά πλευρά του κουτιού (προσπαθήστε να ευθυγραμμίσετε τα ίχνη με το ίδιο ύψος)
  7. Ανιχνεύστε την πλακέτα οθόνης LCD στη δεξιά πλευρά του κουτιού (πάνω από τα δύο κουμπιά στο προηγούμενο βήμα)
  8. Χρησιμοποιήστε μια λεπίδα για να κόψετε τα δύο μέρη του κουμπιού και το τμήμα LCD ακολουθώντας τα ίχνη στα βήματα 6 και 7

Βήμα 4: Δημιουργήστε τα κυκλώματα

Δημιουργήστε τα κυκλώματα
Δημιουργήστε τα κυκλώματα

Αναφερόμενοι στα παραπάνω σχήματα, φτιάξτε το κύκλωμα.

Σημείωση:

  • Οι αντιστάσεις για τις λυχνίες LED RGB και αυτές των κουμπιών είναι διαφορετικές, ΔΕΙΤΕ ΚΑΘΑΡΑ!
  • Δεδομένου ότι ο πίνακας οθόνης LCD παραπάνω δεν έχει το μοντέλο I2C, δεν συνδέεται τέλεια. (Οι πίνακες οθόνης LCD με μοντέλα I2C πρέπει να συνδέσουν μόνο τέσσερις ακίδες)

    • Συνδέστε τα GND στην οθόνη και την πλακέτα Arduino
    • Συνδέστε το VCC στην οθόνη με τις θετικές καρφίτσες στο breadboard
    • Συνδέστε τα SDA στην οθόνη και την πλακέτα Arduino
    • Συνδέστε τα SCL στην οθόνη και την πλακέτα Arduino

Βήμα 5: Ανεβάστε τον κώδικα

Μπορείτε να βρείτε τον κωδικό για αυτό το έργο εδώ ή παρακάτω.

Κάθε γραμμή κωδικοποίησης έχει μια δευτερεύουσα σημείωση που εξηγεί το σκοπό και τη λειτουργία της.

Σημείωση:

  • Όλες οι συγκεκριμένες ακίδες D μπορούν να αλλάξουν και να προσαρμοστούν με βάση τη διάταξη του κυκλώματός σας
  • Όλα τα δευτερόλεπτα που καθυστερούν μπορούν να αλλάξουν σε διαφορετικές τιμές, αλλά ΜΗΝ ΤΑ ΔΙΑΓΡΑΦΕΤΕ! (Αυτά τα δευτερόλεπτα καθυστέρησης επιτρέπουν στον κώδικα να ρέει πιο λογικά. Χωρίς αυτά, ορισμένα τμήματα του κώδικα ενδέχεται να μην λειτουργούν!)
  • Στη γραμμή 24 (εισαγωγή του "για βρόχο"), μπορείτε να ορίσετε τον αριθμό των επαναλήψεων για τους οποίους θέλετε να εκτελείται ο βρόχος (η αρχική τιμή είναι 5)
  • Ο συνδυασμός χρωμάτων των LED RGB σε βρόχους "εάν πιέζεται" και "αν δεν πιέζεται" κάθε κουμπιού μπορεί να προσαρμοστεί και να προσαρμοστεί. (Αρχικά, οι λυχνίες LED RGB θα λάμπουν με πράσινο χρώμα αν πιέζονται ενώ θα λάμπουν με κόκκινο αν δεν πιέζονται. Μπορείτε να αλλάξετε τις τιμές για να έχετε δημιουργικά χρώματα για απάντηση ΣΩΣΤΟ και ΛΑΘΟΣ)

#περιλαμβάνω

#include LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2); // ορίστε τη διεύθυνση LCD για ένδειξη 16 χαρακτήρων και 2 γραμμών int _R; // εισαγάγετε τη μεταβλητή R, η οποία αντιπροσωπεύει την κόκκινη τιμή των LED RGB int _G. // εισαγάγετε τη μεταβλητή G, η οποία αντιπροσωπεύει την πράσινη τιμή των RGB LED int _B. // εισαγάγετε τη μεταβλητή B, η οποία αντιπροσωπεύει την μπλε τιμή των RGB LED int _SongNumber. // εισαγωγή μεταβλητής SongNumber void setup () {pinMode (10, INPUT); // ορίζει το D10 ως είσοδο για το pinMode του κουμπιού διακόσμησης (9, INPUT). // ορίζει το D9 ως είσοδο για το pinMode του κουμπιού-παιχνιδιού παζλ (8, ΕΙΣΟΔΟΣ). // ορίζει το D8 ως είσοδο για το κουμπί Eurasia pinMode (4, INPUT). // ορίζει το D4 ως είσοδο για το κουμπί pinMode της Βόρειας Αμερικής (3, ΕΙΣΟΔΟΣ). // ορίζει το D3 ως είσοδο για το κουμπί pinMode της Νότιας Αμερικής (2, ΕΙΣΟΔΟΣ). // ορίζει το D2 ως είσοδο για το pinMode του κουμπιού Africa (1, INPUT). // ορίζει το D1 ως είσοδο για το κουμπί Ωκεανία lcd_I2C_27.init (); // αρχικοποίηση της πλακέτας οθόνης LCD lcd_I2C_27.backlight (); // ενεργοποιήστε τον οπίσθιο φωτισμό της πλακέτας οθόνης LCD} void loop () {if (digitalRead (10)) {// εάν το κουμπί διακόσμησης χάρτη πατηθεί για (int i = 0; i <5; ++ i) {// εκτελέστε τον ακόλουθο βρόχο για 5 φορές _R = τυχαίο (0, 1023); // δώστε στη μεταβλητή R μια τυχαία τιμή από 0 έως 1023 _G = τυχαία (0, 1023). // δώστε στη μεταβλητή G μια τυχαία τιμή από 0 έως 1023 _B = τυχαία (0, 1023). // δώστε στη μεταβλητή Β μια τυχαία τιμή από 0 έως 1023 analogWrite (13, (_R /4)); // η τιμή R των LED RGB για την πρώτη ομάδα υποκαθιστά και γράφει τη μεταβλητή τιμή από 0 έως 255 analogWrite (12, (_G /4)). // η τιμή G των LED RGB για την πρώτη ομάδα υποκαθιστά και γράφει τη μεταβλητή τιμή από 0 έως 255 analogWrite (11, (_B /4)). // η τιμή Β των LED RGB για την πρώτη ομάδα υποκαθιστά και γράφει τη μεταβλητή τιμή από 0 έως 255 analogWrite (7, (_R /4)). // η τιμή R των LED RGB για τη δεύτερη ομάδα υποκαθιστά και γράφει τη μεταβλητή τιμή από 0 έως 255 analogWrite (6, (_G /4)). // η τιμή G των LED RGB για τη δεύτερη ομάδα υποκαθιστά και γράφει τη μεταβλητή τιμή από 0 έως 255 analogWrite (5, (_B /4)). // η τιμή Β των LED RGB για τη δεύτερη ομάδα υποκαθιστά και γράφει τη μεταβλητή τιμή από 0 έως 255 καθυστέρηση (3000). // περιμένετε 3000 χιλιοστά του δευτερολέπτου (3 δευτερόλεπτα)} // δεδομένου ότι οι τιμές της μεταβλητής R, G, B καθορίζονται στον βρόχο, θα υπάρχουν πέντε διαφορετικοί συνδυασμοί χρωμάτων ανά βρόχο} if (digitalRead (9)) {// if πατιέται το κουμπί παζλ-παιχνίδι _SongNumber = τυχαίο (1, 20). // δώστε στη μεταβλητή SongNumber μια τυχαία τιμή από 1 έως 20 lcd_I2C_27.setCursor (0, 0); // ορίστε τον κέρσορα, η καταμέτρηση ξεκινά με 0 lcd_I2C_27.print (_SongNumber). // εκτυπώστε την τιμή του SongNumber στην πλακέτα οθόνης analogWrite (13, 0). // επαναφέρετε και γράψτε την τιμή του D13 ως 0 analogWrite (12, 0). // επαναφέρετε και γράψτε την τιμή του D12 ως 0 analogWrite (11, 0). // επαναφέρετε και γράψτε την τιμή του D11 ως 0 analogWrite (7, 0). // επαναφέρετε και γράψτε την τιμή του D7 ως 0 analogWrite (6, 0). // επαναφέρετε και γράψτε την τιμή του D6 ως 0 analogWrite (5, 0). // επαναφέρετε και γράψτε την τιμή του D5 ως 0 εάν (_SongNumber> = 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// εάν η τιμή του η μεταβλητή SongNumber είναι από 18 έως 20 καθυστερήσεις (60000). // περιμένετε για 60000 χιλιοστά του δευτερολέπτου για να ακούσουν οι παίκτες τη λαϊκή μουσική (60 δευτερόλεπτα, 1 λεπτό) εάν (digitalRead (1)) {// εάν πατήσετε το κουμπί Oceania analogWrite (13, 0). // analogWrite την τιμή του D13 ως 0 analogWrite (12, 255); // analogWrite την τιμή του D12 ως 255 analogWrite (11, 0); // analogWrite την τιμή του D11 ως 0 analogWrite (7, 0); // analogWrite την τιμή του D7 ως 0 analogWrite (6, 255). // analogWrite την τιμή του D6 255 analogWrite (5, 0); // analogWrite την τιμή του D5 ως 0} // όλες οι λυχνίες LED RGB θα λάμπουν σε πράσινο χρώμα else {// αν δεν πατηθεί το κουμπί Oceania analogWrite (13, 255). // analogWrite την τιμή του D13 ως 255 analogWrite (12, 0); // analogWrite την τιμή του D12 ως 0 analogWrite (11, 0); // analogWrite την τιμή του D11 ως 0 analogWrite (7, 255). // analogWrite την τιμή του D7 ως 255 analogWrite (6, 0). // analogWrite την τιμή του D6 ως 0 analogWrite (5, 0); // analogWrite the value of D5 as 0} // all the RGB LEDs will be bright in red color} // δεδομένου ότι οι σωστές απαντήσεις για το SongNumber 18 έως 20 είναι όλες Ωκεανία, αυτός ο «αν βρόχος» έχει πρόσβαση αν η απάντηση του παίκτη είναι σωστή ή όχι lcd_I2C_27.clear (); // Διαγράψτε την καθυστέρηση της πλακέτας οθόνης LCD (1000). // περιμένετε για 1000 χιλιοστά του δευτερολέπτου (1 δευτερόλεπτο)}}

Βήμα 6: Ολοκληρώνοντας τη συσκευή

  1. Ανοίξτε το κουτί από χαρτόνι και βάλτε τα προηγουμένως κατασκευασμένα κυκλώματα (συμπεριλαμβανομένων όλων των στοιχείων, π.
  2. Αναφερόμενοι στον κώδικα και τα ίχνη των ηπειρωτικών στην κορυφή του κουτιού, τοποθετήστε τα κουμπιά σε κάθε μία από τις αντίστοιχες θέσεις τους

    *Μπορείτε να ανατρέξετε στις πλαϊνές σημειώσεις πίσω από τους κωδικούς για να διασφαλίσετε ποιο κουμπί είναι για ποια ήπειρο*

  3. Γεμίστε τα δύο "κουμπιά λειτουργίας" (map-deco του D10 και παζλ-παιχνίδι του D9) σε καθένα από τα κομμένα τμήματα στη δεξιά πλευρά του κουτιού
  4. Τοποθετήστε την πλακέτα οθόνης LCD στο κομμένο τμήμα της στη δεξιά πλευρά του κουτιού
  5. Ανοίξτε το κουτί και βεβαιωθείτε ότι όλα τα καλώδια είναι σωστά συνδεδεμένα στις σανίδες
  6. Κολλήστε το ξύλινο θεμέλιο στο πάνω μέρος του κουτιού χρησιμοποιώντας ταινία διπλής όψης (βεβαιωθείτε ότι έχετε ευθυγραμμιστεί σωστά, ώστε τα κουμπιά να χωράνε ακριβώς στο κομμένο τμήμα των ξύλινων σανίδων)
  7. Χρησιμοποιήστε πιστόλι θερμής κόλλας για να γεμίσετε τα μικρά τμήματα της περιοχής (όχι τις κύριες ηπείρους)

Βήμα 7: ΕΓΙΝΕ !!!!

Για το παιχνίδι παζλ, μεταβείτε στον σύνδεσμο για τη δοκιμαστική λίστα αναπαραγωγής!

Συνιστάται: