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

Παιχνίδι φωνηέντων με Arduino και YX5300 MP3 Module Catalex: 13 βήματα
Παιχνίδι φωνηέντων με Arduino και YX5300 MP3 Module Catalex: 13 βήματα

Βίντεο: Παιχνίδι φωνηέντων με Arduino και YX5300 MP3 Module Catalex: 13 βήματα

Βίντεο: Παιχνίδι φωνηέντων με Arduino και YX5300 MP3 Module Catalex: 13 βήματα
Βίντεο: Μαθαίνω τα φωνήεντα 2024, Νοέμβριος
Anonim
Παιχνίδι φωνηέντων με Arduino και YX5300 MP3 Module Catalex
Παιχνίδι φωνηέντων με Arduino και YX5300 MP3 Module Catalex

Μπορείτε να διαβάσετε αυτήν την ερώτηση; Αυτό είναι περίεργο! Αυτή την ερώτηση την έκανα επίτηδες. Εάν μπορείτε να διαβάσετε αυτό το κείμενο, είναι επειδή γνωρίζετε ολόκληρο το αλφάβητο και, φυσικά, μάθατε για όλα τα φωνήεντα.

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

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

Τελικά, είναι δυνατόν να χρησιμοποιηθούν κάποιοι τεχνολογικοί πόροι για να μάθουμε φωνήεντα;

Σε αυτό το άρθρο, θα σας διδάξω πώς να διδάξετε τους μαθητές και τα παιδιά σας φωνήεντα μέσα από ένα παιχνίδι.

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

Έτσι, θα μάθουν παίζοντας και θα έχουν πάντα κίνητρο για σπουδές.

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

Προμήθειες

JLCPCB Εκτυπωμένος πίνακας κυκλωμάτων

Arduino Uno

Διακόπτης κουμπιού

Αντίσταση 10kR

Αρσενική κεφαλίδα 2, 54mm 1x7

Βήμα 1: Ανάπτυξη του παιχνιδιού των φωνηέντων με το Arduino

Ανάπτυξη του παιχνιδιού των φωνηέντων με το Arduino
Ανάπτυξη του παιχνιδιού των φωνηέντων με το Arduino

Η καρδιά του παιχνιδιού είναι ο πίνακας τυπωμένου κυκλώματος JLCPCB των φωνηέντων. Μπορείτε να αποκτήσετε πρόσβαση σε αυτόν τον σύνδεσμο και να κατεβάσετε τα αρχεία του έργου. Διαθέτει 5 κουμπιά. Θα χρησιμοποιήσετε κάθε κουμπί για να αντιπροσωπεύσετε ένα φωνήεν και να το συνδέσετε με το Arduino σας.

Η πλακέτα τυπωμένου κυκλώματος φαίνεται στο σχήμα 1.

Βήμα 2:

Εικόνα
Εικόνα

Με αυτό το PCB Project, μπορείτε να το συνδέσετε με το Arduino και να δημιουργήσετε το παιχνίδι σας. Στη συνέχεια, θα σας προσφέρω ένα ηλεκτρονικό σχήμα για να συναρμολογήσετε ή να δημιουργήσετε το έργο στο πρωτοπόρο σας.

Βήμα 3:

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

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

Βήμα 4: Η ιδέα του έργου

Η ιδέα του έργου
Η ιδέα του έργου

Θα σας μάθω πώς να συναρμολογείτε ένα ηχοσύστημα MP3 με το Arduino. Αυτό το σύστημα θα είναι υπεύθυνο για την αναπαραγωγή της φωνής που μιλά το γράμμα. Ο ήχος κάθε γράμματος θα αντληθεί χρησιμοποιώντας μια τιμή από 1 έως 5, όπου το 1 αντιπροσωπεύει το Α και το 5 αντιπροσωπεύει το U.

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

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

Για να γίνει αυτό, πρέπει να συναρμολογήσετε το ακόλουθο κύκλωμα.

Σε αυτό το κύκλωμα, θα συνδέσετε τη μονάδα MP3 και τον πίνακα φωνηέντων στο Arduino. Η μονάδα Bluetooth χρησιμοποιήθηκε για να αντιπροσωπεύσει τη μονάδα MP3 Catalex.

Το Arduino θα είναι υπεύθυνο για την ταξινόμηση των 5 αριθμών και στη συνέχεια την αποστολή της εντολής για να ενεργοποιήσει το τραβηγμένο φωνήεν

Βήμα 5:

Εικόνα
Εικόνα

Μετά από αυτό, θα περιμένουμε μέχρι το παιδί να ακούσει και να πατήσει ένα κουμπί, όπως φαίνεται στο παραπάνω σχήμα.

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

Βήμα 6: Χτίζοντας τη λογική προγραμματισμού του παιχνιδιού

Χτίζοντας τη λογική προγραμματισμού του παιχνιδιού
Χτίζοντας τη λογική προγραμματισμού του παιχνιδιού

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

Παρακάτω σας παρέχω όλη τη λογική προγραμματισμού του έργου.

Βήμα 7:

Στη συνέχεια, θα εξηγήσω βήμα προς βήμα για να οικοδομήσουμε τη λογική αυτού του διασκεδαστικού παιχνιδιού για παιδιά.

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

#define ARDUINO_RX 5 // θα πρέπει να συνδεθεί στο TX της μονάδας Serial MP3 Player #define ARDUINO_TX 6 // να συνδεθεί στο RX της μονάδας SoftwareSerial mp3 (ARDUINO_RX, ARDUINO_TX). στατικό int8_t Send_buf [8] = {0}; // Buffer for Send εντολές. // ΚΑΛΥΤΕΡΑ ΤΟΠΙΚΑ στατικό uint8_t ansbuf [10] = {0}; // Αποθήκευση για τις απαντήσεις. // ΚΑΛΥΤΕΡΑ ΤΟΠΙΚΑ String mp3Answer; // Απάντηση από το MP3. String sanswer (άκυρο). Συμβολοσειρά sbyte2hex (uint8_t b); / ************ Byte εντολής *************************/ #define CMD_NEXT_SONG 0X01 // Play next τραγούδι. #define CMD_PREV_SONG 0X02 // Αναπαραγωγή προηγούμενου τραγουδιού. #define CMD_PLAY_W_INDEX 0X03 #define CMD_VOLUME_UP 0X04 #define CMD_VOLUME_DOWN 0X05 #define CMD_SET_VOLUME 0X06 #define CMD_SNG_CYCL_PLAY #define CMD_SEL_DEV 0X09 #define CMD_SLEEP_MODE 0X0A #define CMD_WAKE_UP 0X0B #define CMD_RESET 0X0C #define CMD_PLAY 0X0D #define CMD_PAPUSE 0X0 #define CMD_FOLDER_CYCLE 0X17 #define CMD_SHUFFLE_PLAY 0x18 // #define CMD_SET_SNGL_CYCL 0X19 // Ορισμός ενός κύκλου. #define CMD_SET_DAC 0X1A #define DAC_ON 0x00 #define DAC_OFF 0x01 #define CMD_PLAY_W_VOL 0X22 #define CMD_PLAYING_N 0x4C #define CMD_QUERY_STATUS 0x42 #define CMD_QUERY_VOLUME 0x43 #define CMD_QUERY_FLDR_TRACKS 0x4e #define CMD_QUERY_TOT_TRACKS 0x48 #define CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons ************************ / #define DEV_TF 0X02 / ************** ********************************************** *****/ int numero; byte estado? byte buzzer = 2; byte pin = 0; byte SortNumber = 0; κουμπί bool = 0; void setup () {Serial.begin (9600); mp3.begin (9600); καθυστέρηση (500)? για (pin = 8; pin 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (pin); // καθυστέρηση (1000); } while (κουμπί! = 1); Serial.println ("Saiu …"); if (κουμπί == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); καθυστέρηση (3000)? } if (κουμπί == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); καθυστέρηση (3000)? } // Ελέγξτε για την απάντηση. if (mp3.available ()) {Serial.println (decodeMP3Answer ()); } καθυστέρηση (100); //Serial.println("Tocando musica … "); } /******************************************** ******************************* / /*Λειτουργία sendMP3Command: αναζητήστε μια εντολή 'c' και στείλτε την σε MP3 * / /*Παράμετρος: γ. Κωδικός για την εντολή MP3, 'h' για βοήθεια. *// *Return: void */ void sendMP3Command (char c) {switch (c) {case '?': Case 'h': Serial.println ("HELP"); Serial.println ("p = Play"); Serial.println ("P = Παύση"); Serial.println ("> = Επόμενο"); Serial.println ("': Serial.println (" Επόμενο "); sendCommand (CMD_NEXT_SONG); sendCommand (CMD_PLAYING_N); // ζητήστε τον αριθμό αρχείου που παίζει διάλειμμα. Θήκη" κάρτα μνήμης τοποθετήθηκε. "; Διάλειμμα; θήκη 0x3D: αποκωδικοποιημένοMP3Answer + = " -> Ολοκληρωμένο παιχνίδι num" + String (ansbuf [6], DEC); // sendCommand (CMD_NEXT_SONG); // sendCommand (CMD_PLAYING_N); // ζητήστε τον αριθμό του αρχείου που παίζει διάλειμμα. θήκη 0x40: αποκωδικοποιημένοMP3Answer += " -> Σφάλμα"; διάλειμμα; περίπτωση 0x41: αποκωδικοποιημένηMP3Answer += " -> Τα δεδομένα ανακτήθηκαν σωστά."; διακοπή; περίπτωση 0x42: αποκωδικοποιημέναMP3Answer += " -> Κατάσταση αναπαραγωγής:" +Χορδή (ansbuf [6], DEC); break; περίπτωση 0x48: αποκωδικοποιημένοMP3Answer + = " -> Αριθμός αρχείων:" + String (ansbuf [6], DEC); break; case 0x4C: αποκωδικοποιημένοMP3Answer + = " -> Αναπαραγωγή:" + String (ansbuf [6], DEC); break; περίπτωση 0x4E: αποκωδικοποιημένοMP3Answer + = " -> Αριθμός αρχείων φακέλου:" + String (ansbuf [6], DEC); break; case 0x4F: decodedMP3Answer + = " -> Αριθμός φακέλων:" + String (ansbuf [6], DEC); break;} return decodedMP3Answer;} /******************************** ************ ******************************** / /*Λειτουργία: Αποστολή εντολής στο MP3* / /*Παράμετρος: byte εντολή *// *Παράμετρος: παράμετρος byte dat1 για την εντολή *// *Παράμετρος: παράμετρος byte dat2 για την εντολή */ void sendCommand (εντολή byte) {sendCommand (εντολή, 0, 0); } void sendCommand (εντολή byte, byte dat1, byte dat2) {καθυστέρηση (20); Send_buf [0] = 0x7E; // Send_buf [1] = 0xFF; // Send_buf [2] = 0x06; // Len Send_buf [3] = εντολή; // Send_buf [4] = 0x01; // 0x00 ΟΧΙ, 0x01 feedback Send_buf [5] = dat1; // datah Send_buf [6] = dat2; // datal Send_buf [7] = 0xEF; // Serial.print ("Αποστολή:"); για (uint8_t i = 0; i <8; i ++) {mp3.write (Send_buf ); Serial.print (sbyte2hex (Send_buf )); } Serial.println (); } /******************************************** ******************************* / /*Λειτουργία: sbyte2hex. Επιστρέφει δεδομένα byte σε μορφή HEX. * / /*Παράμετρος:- uint8_t β. Byte για μετατροπή σε HEX. *// *Return: String */ String sbyte2hex (uint8_t b) {String shex; shex = "0X"; εάν (b <16) shex += "0"; shex += String (b, HEX); σεξ += ""; επιστροφή σεξ? } /******************************************** ******************************* / /*Λειτουργία: shex2int. Επιστρέφει ένα int από μια συμβολοσειρά HEX. */ /*Παράμετροι. char *s για μετατροπή σε HEX. * / /*Παράμετρος: n. μήκος char *s '. *// *Επιστροφή: int */ int shex2int (char *s, int n) {int r = 0; για (int i = 0; i = '0' && s = 'A' && s <= 'F') {r *= 16; r + = (s - 'A') + 10; }} επιστροφή r; } /******************************************** ******************************* / /*Λειτουργία: sanswer. Επιστρέφει μια συμβολοσειρά απάντησης από τη μονάδα mp3 UART. * / /*Παράμετρος:- uint8_t β. κενός. * / /*Επιστροφή: Χορδή. Εάν η απάντηση είναι καλά διαμορφωμένη απάντηση. */ String sanswer (άκυρο) {uint8_t i = 0; String mp3answer = ""; // Λάβετε μόνο 10 Bytes ενώ (mp3.διαθέσιμο () && (i <10)) {uint8_t b = mp3.read (); ansbuf = b; i ++? mp3answer += sbyte2hex (b); } // εάν η μορφή απάντησης είναι σωστή. εάν ((ansbuf [0] == 0x7E) && (ansbuf [9] == 0xEF)) {επιστροφή mp3answer; } return "???:" + mp3answer; }

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

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

#define ARDUINO_RX 5 // θα πρέπει να συνδεθεί στο TX της μονάδας Serial MP3 Player #define ARDUINO_TX 6 // να συνδεθεί στο RX της μονάδας SoftwareSerial mp3 (ARDUINO_RX, ARDUINO_TX). στατικό int8_t Send_buf [8] = {0}; // Buffer for Send εντολές. // ΚΑΛΥΤΕΡΑ ΤΟΠΙΚΑ στατικό uint8_t ansbuf [10] = {0}; // Αποθήκευση για τις απαντήσεις. // ΚΑΛΥΤΕΡΑ ΤΟΠΙΚΑ String mp3Answer; // Απάντηση από το MP3. String sanswer (άκυρο). Χορδή sbyte2hex (uint8_t b); / ************ Byte εντολής *************************/ #define CMD_NEXT_SONG 0X01 // Play next τραγούδι. #define CMD_PREV_SONG 0X02 // Αναπαραγωγή προηγούμενου τραγουδιού. #define CMD_PLAY_W_INDEX 0X03 #define CMD_VOLUME_UP 0X04 #define CMD_VOLUME_DOWN 0X05 #define CMD_SET_VOLUME 0X06 #define CMD_SNG_CYCL_PLAY #define CMD_SEL_DEV 0X09 #define CMD_SLEEP_MODE 0X0A #define CMD_WAKE_UP 0X0B #define CMD_RESET 0X0C #define CMD_PLAY 0X0D #define CMD_PAPUSE 0X0 #define CMD_FOLDER_CYCLE 0X17 #define CMD_SHUFFLE_PLAY 0x18 // #define CMD_SET_SNGL_CYCL 0X19 // Ορισμός ενός κύκλου. #define CMD_SET_DAC 0X1A #define DAC_ON 0x00 #define DAC_OFF 0x01 #define CMD_PLAY_W_VOL 0X22 #define CMD_PLAYING_N 0x4C #define CMD_QUERY_STATUS 0x42 #define CMD_QUERY_VOLUME 0x43 #define CMD_QUERY_FLDR_TRACKS 0x4e #define CMD_QUERY_TOT_TRACKS 0x48 #define CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons ************************ / #define DEV_TF 0X02 / ************** ********************************************** *****/ int numero; byte estado? byte buzzer = 2; byte pin = 0; byte SortNumber = 0; κουμπί bool = 0;

Βήμα 8:

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

#define CMD_PLAY_W_INDEX 0X03

Η διεύθυνση 0x03 ορίζεται με το όνομα CMD_PLAY_W_INDEX. Χρησιμοποιείται για να ενεργοποιήσει ένα τραγούδι από τον αριθμό του, δηλαδή εισάγετε τον αριθμό του ήχου και θα παιχτεί.

Με αυτές τις τιμές θα τις χρησιμοποιήσουμε και θα διαμορφώσουμε τη λειτουργία του έργου μας.

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

Βήμα 9: Η συνάρτηση Void Setup ()

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

void setup ()

{Serial.begin (9600); mp3.begin (9600); καθυστέρηση (500)? για (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); καθυστέρηση (500)? }

Ξεκίνησα τη σειριακή επικοινωνία για την εκτύπωση δεδομένων στο σίριαλ του υπολογιστή και στη συνέχεια ξεκινήσαμε τη σειριακή επικοινωνία μέσω του αντικειμένου mp3.

Serial.begin (9600);

mp3.begin (9600); καθυστέρηση (500)?

Η μονάδα mp3 ελέγχεται μέσω εντολών που λαμβάνει το σειριακό Arduino. Σε αυτή τη διαδικασία, χρησιμοποιήσαμε τη βιβλιοθήκη SoftwareSerial και μιμηθήκαμε ένα σήριαλ στις ψηφιακές ακίδες του Arduino.

Έτσι, θα μπορείτε να χρησιμοποιήσετε το Arduino για τον έλεγχο της μονάδας MP3 μέσω εντολών που αποστέλλονται σε αυτήν.

Επιπλέον, κάναμε τη διαμόρφωση των ψηφιακών ακίδων και την προετοιμασία της μονάδας κάρτας MP3

για (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); καθυστέρηση (500)?

Αφού κάνουμε τη διαμόρφωση, πρέπει να μεταβούμε στην κύρια λογική της συνάρτησης void loop.

Βήμα 10: Ο κύριος βρόχος κενής συνάρτησης ()

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

κενός βρόχος ()

{pin = 8; randomSeed (analogRead (A0)); numero = τυχαίο (8, 12); SortNumber = numero; numero = numero - 7; Serial.println (numero); sendCommand (0x03, 0, numero); καθυστέρηση (1000)? do {button = digitalRead (pin); Serial.println (κουμπί); καρφίτσα ++; if (pin> 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (pin); // καθυστέρηση (1000); } while (κουμπί! = 1); Serial.println ("Saiu …"); if (κουμπί == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); καθυστέρηση (3000)? } if (κουμπί == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); καθυστέρηση (3000)? } // Ελέγξτε για την απάντηση. if (mp3.available ()) {Serial.println (decodeMP3Answer ()); } καθυστέρηση (100); //Serial.println("Tocando musica … "); }

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

Ο κώδικας για την παραγωγή της τυχαίας τιμής φαίνεται παρακάτω.

καρφίτσα = 8;

randomSeed (analogRead (A0)); numero = τυχαίο (8, 12); SortNumber = numero;

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

numero = numero - 7;

Μετά από αυτό, αναπαρήγαγα τον ήχο του φωνήεντος που τραβήχτηκε στην παρακάτω γραμμή.

sendCommand (0x03, 0, numero);

καθυστέρηση (1000)?

Τώρα έχει έρθει η σημαντική στιγμή: η στιγμή που θα διαβάσουμε το κουμπί που έχει πατήσει το παιδί. Το τμήμα κώδικα παρουσιάζεται παρακάτω.

κάνω

{button = digitalRead (pin); Serial.println (κουμπί); καρφίτσα ++; if (pin> 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (pin); // καθυστέρηση (1000); } while (κουμπί! = 1);

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

Θα κάνετε την επαλήθευση χρησιμοποιώντας τον παρακάτω κωδικό.

εάν (κουμπί == 1 && (pin-1)! = Ταξινόμηση αριθμού)

{sendCommand (0x03, 0, 6); καθυστέρηση (3000)? } if (κουμπί == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); καθυστέρηση (3000)? }

Η πρώτη συνθήκη θα εκτελεστεί όταν ο χρήστης κάνει λάθος επειδή πατήθηκε ένα κουμπί και η τιμή ενεργοποίησης του πείρου ήταν διαφορετική από την αντλημένη ακίδα (SortNumber).

Σε αυτό το σημείο, πρέπει να εκτελέσετε την παρακάτω εντολή.

sendCommand (0x03, 0, 6);

καθυστέρηση (3000)?

Αυτή η εντολή χρησιμοποιείται για την ενεργοποίηση λανθασμένου τόνου απόκρισης. Τέλος, έχουμε τη δεύτερη συνθήκη που θα χρησιμοποιηθεί για να ελέγξουμε αν το παιδί έχει δίκιο.

εάν (κουμπί == 1 && (pin-1) == Ταξινόμηση αριθμού)

{sendCommand (0x03, 0, 7); καθυστέρηση (3000)? }

Βήμα 11:

Εικόνα
Εικόνα

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

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

Στο παραπάνω σχήμα το soundbox εκτελεί το τραγούδι που είναι αποθηκευμένο στην κάρτα SD της μονάδας MP3 YX5300.

Βήμα 12: Συμπέρασμα

Η εκπαίδευση στην τάξη πρέπει να αλλάζει συνεχώς και το Arduino μπορεί να είναι ένας μεγάλος σύμμαχος στη δημιουργία διασκεδαστικών εργασιών.

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

Σε αντίθεση με τις παραδοσιακές μεθόδους διδασκαλίας, τα παιδιά θα μάθουν μέσω της διασκέδασης στην τάξη μέσω παιχνιδιών και ηλεκτρονικών.

Βήμα 13: Αναγνώριση

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

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

Συνιστάται: