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

Arduino Hangman in Morse: 9 βήματα
Arduino Hangman in Morse: 9 βήματα

Βίντεο: Arduino Hangman in Morse: 9 βήματα

Βίντεο: Arduino Hangman in Morse: 9 βήματα
Βίντεο: Arduino based Morse Code tutor - Ham radio projects. 2024, Ιούνιος
Anonim
Arduino Hangman στο Morse
Arduino Hangman στο Morse

Σε αυτό το σεμινάριο θα σας δείξω πώς να ρυθμίσετε το δικό σας Arduino για να παίζετε το Hangman στέλνοντας τον κώδικα Morse με έναν απλό φακό ή τη λειτουργία φακού από το τηλέφωνό σας.

Το μόνο που πρέπει να ακολουθήσετε είναι: Ένας πίνακας Arduino.10 LED-φώταΣύρματα για να τα συνδέσετε όλα. Επιπλέον: Ένα στοιχείο Piezo (για να προσθέσετε ήχο).

Βήμα 1: Ρύθμιση των φώτων LED

Ρύθμιση των φώτων LED
Ρύθμιση των φώτων LED

Αυτό το παιχνίδι Morse θα χρησιμοποιήσει 4 φώτα για να δείξει τα 4 γράμματα στη λέξη που πρέπει να μαντέψει και 5 φώτα για να δείξει τις ζωές που έχει αφήσει ο παίκτης να μαντέψει, οπότε πρώτα απ 'όλα θα πρέπει να συνδέσετε 9 LED -φώτα με τον συνήθη τρόπο, όπως φαίνεται στην εικόνα.

Βήμα 2: Προσθέστε έναν αυτοσχέδιο αισθητήρα φωτός

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

Το μόνο που χρειάζεται να κάνετε είναι να συνδέσετε τη θετική πλευρά του φωτός LED σε μία από τις αναλογικές σας θύρες (στην περίπτωσή μου A0) και την πλευρά μείον στη γείωσή σας.

Βήμα 3: Προσθέστε το λεξικό σας

Προσθέστε το λεξικό σας
Προσθέστε το λεξικό σας

Πρώτα απ 'όλα, ας ξεκινήσουμε προσθέτοντας ένα είδος λεξικού για τη μετάφραση γραμμάτων στους αντίστοιχους κώδικες Μορς. Για να γίνει αυτό, απλώς κάνουμε έναν πίνακα 26 επί 5, με την πρώτη υποδοχή κάθε δευτερεύοντος πίνακα να έχει το γράμμα και τις 4 επόμενες υποδοχές να έχουν τον αντίστοιχο κώδικα Μορς ή ένα κενό, εάν δεν έχει απομείνει κώδικας. Έτσι για παράδειγμα με το γράμμα s, η πρώτη υποδοχή έχει 's', η δεύτερη, η τρίτη και η τέταρτη υποδοχή έχουν '.' και η τελευταία υποδοχή έχει ''.

Βήμα 4: Κάντε τα φώτα να ανάβουν από προεπιλογή

Κάντε τα φώτα να ανάβουν από προεπιλογή
Κάντε τα φώτα να ανάβουν από προεπιλογή
Κάντε τα φώτα να ανάβουν από προεπιλογή
Κάντε τα φώτα να ανάβουν από προεπιλογή

Σε αυτό το βήμα, βεβαιωνόμαστε ότι τα φώτα είναι αναμμένα μόλις ξεκινήσει το πρόγραμμα και Morse το γράμμα που αντιπροσωπεύουν μόλις ο χρήστης τα μαντέψει σωστά (ο κωδικός για αυτό θα γραφτεί στο βήμα 6). Επίσης, βεβαιωνόμαστε ότι υπάρχουν μόνο τόσα φώτα για τις ζωές όσες ζωές έχουν απομείνει στον παίκτη.

Πριν από αυτό, βεβαιωθείτε ότι έχετε έναν πίνακα με τους αριθμούς θύρας και τους ακέραιους ρυθμισμένους στο 0 για να αντιπροσωπεύουν τον χρόνο κατά τον οποίο πρέπει να ανάβει, να σβήνει το φως και ποιο μέρος του Morse εμφανίζεται αυτή τη στιγμή το φως LED.

Βήμα 5: Προσθήκη της εισόδου

Προσθήκη της εισόδου
Προσθήκη της εισόδου

Τώρα θα γράψουμε τον κωδικό για να ελέγξουμε εάν η συσκευή αναβοσβήνει στο LED-φως που είναι συνδεδεμένο στην αναλογική μας θύρα A0 και αν πρόκειται να το μεταφράσουμε στο σωστό γράμμα.

Για να βεβαιωθούμε ότι η ανάγνωση είναι σωστή, υπολογίζουμε κατά μέσο όρο κάθε 20 ενδείξεις από το φως LED και χρησιμοποιούμε αυτόν τον αριθμό για να παρακολουθούμε αν η λυχνία είναι σβηστή ή αναμμένη. Για να γίνει αυτό, στην αρχή του προγράμματος ορίζουμε NUM_AVG στον αριθμό των φορών που θέλουμε να ελέγξει το φως πριν από τη μέση τιμή του. Όσο υψηλότερος είναι αυτός ο αριθμός, τόσο πιο ακριβής είναι η ανάγνωση, αλλά μπορεί επίσης να προκαλέσει καθυστερήσεις.

Το msBtnPushed αντιπροσωπεύει το χρονικό διάστημα για το οποίο έχει ανάψει το φως. Το lastPressed είναι ένα boolean που παρακολουθεί αν στον προηγούμενο βρόχο το φως ήταν αναμμένο.

Βήμα 6: Χειρισμός της εισόδου

Χειρισμός της εισόδου
Χειρισμός της εισόδου
Χειρισμός της εισόδου
Χειρισμός της εισόδου

Για αυτό το βήμα, θα ρίξουμε μια ματιά στο τι πρέπει να κάνουμε μόλις περάσει αρκετός χρόνος για να υποθέσουμε ότι δεν θα προστεθεί άλλο Morse και πρέπει να ελέγξουμε αν ο Morse έστειλε σε μορφή ένα γράμμα και αν είναι ένα σωστό γράμμα.

Για να γίνει αυτό, πρέπει να έχουμε τη συμβολοσειρά wordToGuess στη λέξη που θέλουμε να μαντέψουν οι παίκτες μας. Προσωπικά έχω μια γεννήτρια τυχαίων αριθμών για να την ορίσω σε μια τυχαία λέξη στην αρχή, αλλά θα μπορούσατε επίσης να την ορίσετε απλά σε μία λέξη.

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

ΥΓ: Όλες οι λειτουργίες Serial.println είναι μόνο για σκοπούς δοκιμής. Ενδέχεται να διαγραφούν με την ολοκλήρωσή τους.

Το goodTimer και το badTimer είναι απλώς τιμές για εάν σκοπεύετε να χρησιμοποιήσετε ένα στοιχείο Piezo για να προσθέσετε ήχο. Εάν το επιθυμείτε, πρέπει επίσης να προσθέσετε τον κωδικό στη δεύτερη εικόνα, η οποία αναπαράγει τους ήχους.

Βήμα 7: Μορφή των σωστά μαντευμένων επιστολών

Μόρσιμο των σωστά μαντευμένων επιστολών
Μόρσιμο των σωστά μαντευμένων επιστολών

Όπως υποσχεθήκαμε προηγουμένως, σε αυτό το βήμα θα κάνουμε τα φώτα που αντιπροσωπεύουν τα γράμματα που έχουν μαντέψει σωστά Morse το γράμμα τους.

Για αυτό, έχω γράψει δύο συναρτήσεις: morseThis και nextLetter. Χρησιμοποιεί τους αριθμούς που είχαμε ορίσει προηγουμένως στον πίνακα χρονοδιακόπτη και τους αλλάζει ανάλογα με το τμήμα του κώδικα Morse που λάμπει αυτήν τη στιγμή.

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

Βήμα 8: Ελέγξτε τη ρύθμιση και την επαναφορά μας

Αναθεώρηση της ρύθμισης και της επαναφοράς μας
Αναθεώρηση της ρύθμισης και της επαναφοράς μας

Φυσικά το πρόγραμμα δεν θα τρέξει αν τα φώτα δεν έχουν ρυθμιστεί στην έξοδο και την είσοδο. Προσθέτω επίσης μια γεννήτρια τυχαίων αριθμών για να προσθέσω μια λέξη από μια λίστα λέξεων που έχω βάλει σε έναν πίνακα που ονομάζεται wordsToGuess.

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

Βήμα 9: Όλες οι μεταβλητές σε μία εικόνα

Όλες οι μεταβλητές σε μία εικόνα
Όλες οι μεταβλητές σε μία εικόνα

Τέλος, μπορείτε να το χρησιμοποιήσετε για να ελέγξετε αν έχετε ρυθμίσει σωστά όλες τις απαραίτητες μεταβλητές.

Τώρα απολαύστε το παιχνίδι Hangman in Morse!

Συνιστάται: