Სარჩევი:

ხმოვანთა თამაში Arduino– ით და YX5300 MP3 მოდულით Catalex: 13 საფეხური
ხმოვანთა თამაში Arduino– ით და YX5300 MP3 მოდულით Catalex: 13 საფეხური

ვიდეო: ხმოვანთა თამაში Arduino– ით და YX5300 MP3 მოდულით Catalex: 13 საფეხური

ვიდეო: ხმოვანთა თამაში Arduino– ით და YX5300 MP3 მოდულით Catalex: 13 საფეხური
ვიდეო: 1. Q Light Controller + კონტროლერი პლუს QLC + -თან დაიწყო. ფიქრები და ფუნქციები 2024, ნოემბერი
Anonim
ხმოვანთა თამაში Arduino– ით და YX5300 MP3 მოდულით Catalex– ით
ხმოვანთა თამაში Arduino– ით და YX5300 MP3 მოდულით Catalex– ით

შეგიძლია წაიკითხო ეს კითხვა? Უცნაურია! ეს კითხვა მიზანმიმართულად დავსვი. თუ შეგიძლიათ წაიკითხოთ ეს ტექსტი, ეს იმიტომ, რომ თქვენ იცით მთელი ანბანი და, რა თქმა უნდა, გაეცანით ყველა ხმოვანს.

ხმოვნები ყველა სიტყვაშია. თითოეული მათგანისგან თავის დაღწევა შეუძლებელია. ახლა ნება მომეცით დაგისვათ კითხვა. იყო თქვენი ბავშვობის სწავლა სახალისო და ჩართული ტექნოლოგიური რესურსებით?

დარწმუნებული ვარ, რომ სასწავლო რესურსი ცოტა იყო და თქვენ გამოიყენეთ ტრადიციული მეთოდები ხმოვანთა და ანბანის შესასწავლად.

ყოველივე ამის შემდეგ, შესაძლებელია თუ არა ტექნოლოგიური რესურსების გამოყენება ხმოვანთა შესასწავლად?

ამ სტატიაში მე გასწავლით თუ როგორ უნდა ასწავლოთ თქვენს მოსწავლეებსა და ბავშვებს ხმოვნები თამაშის საშუალებით.

მე გასწავლით თუ როგორ უნდა შექმნათ სისტემა ხმით, სადაც თქვენი შვილი/მოსწავლე მოისმენს წერილის ხმას და უნდა დააჭიროს ღილაკს, რომ მიუთითოს სწორი ასო.

ამრიგად, ისინი ისწავლიან თამაშის დროს და ყოველთვის იქნებიან სწავლის მოტივირებული.

ახლა მე ვაპირებ გაჩვენოთ ეტაპობრივი პროცესი, რომ შექმნათ თქვენი საკუთარი თამაში და ასწავლოთ ხმოვნები ბავშვებს.

მარაგები

JLCPCB ბეჭდური მიკროსქემის დაფა

არდუინო უნო

Pushbutton გადამრთველი

10kR რეზისტორი

მამაკაცის სათაური 2, 54 მმ 1x7

ნაბიჯი 1: ხმოვანთა თამაშის განვითარება არდუინოსთან ერთად

ხმოვანთა თამაშის განვითარება არდუინოსთან ერთად
ხმოვანთა თამაშის განვითარება არდუინოსთან ერთად

თამაშის გული არის ხმოვანთა JLCPCB ნაბეჭდი მიკროსქემის დაფა. თქვენ შეგიძლიათ შეხვიდეთ ამ ბმულზე და ჩამოტვირთოთ პროექტის ფაილები. მას აქვს 5 ღილაკი. თქვენ გამოიყენებთ თითოეულ ღილაკს ხმოვანთა წარმოსადგენად და თქვენს არდუინოსთან დასაკავშირებლად.

ნაბეჭდი მიკროსქემის დაფა ნაჩვენებია ფიგურაში 1.

ნაბიჯი 2:

გამოსახულება
გამოსახულება

ამ PCB პროექტის საშუალებით შეგიძლიათ დაუკავშიროთ იგი Arduino– ს და შექმნათ თქვენი თამაში. შემდეგი, მე შემოგთავაზებთ ელექტრონულ სქემას, რომ შეაგროვოთ ან ააწყოთ პროექტი თქვენს პროტობორდზე.

ნაბიჯი 3:

ამ სქემატურიდან ჩვენ შევქმენით ელექტრონული დაფის განლაგება. ის ნაჩვენებია ფიგურა 2 -ში და შეგიძლიათ ჩამოტვირთოთ ფაილები და შექმნათ თქვენი პროექტი.

არდუინოდან შეარჩიეთ 5 ქინძისთავი და დააკავშირეთ დაფაზე მხტუნავები არდუინოსთან. წინააღმდეგ შემთხვევაში, თქვენ შეგიძლიათ შეიკრიბოთ შემდეგი ელექტრონული დიაგრამა.

ნაბიჯი 4: პროექტის იდეა

პროექტის იდეა
პროექტის იდეა

მე გასწავლით თუ როგორ უნდა ააწყოთ MP3 ხმის სისტემა არდუინოსთან ერთად. ეს სისტემა პასუხისმგებელი იქნება ასოზე მოლაპარაკე ხმის რეპროდუცირებაზე. თითოეული ასოს ბგერა შედგენილი იქნება მნიშვნელობიდან 1 -დან 5 -მდე, სადაც 1 წარმოადგენს A და 5 წარმოადგენს U- ს.

ამრიგად, როდესაც ბავშვი ისმენს ხმას, მან უნდა შეხედოს კლავიატურას, ამოიცნოს ხმოვანთა მართლწერა და დააჭიროს სწორ ღილაკს.

თუ ის ვერ მოხერხდა, სისტემა წითელ შუქს 3 -ჯერ აანთებს. წინააღმდეგ შემთხვევაში, სისტემა გააქტიურებს ზუმერს 5 წამის განმავლობაში და დახაზავს ახალ ხმოვანს.

ამისათვის თქვენ უნდა შეიკრიბოთ შემდეგი წრე.

ამ წრეში თქვენ დააკავშირებთ MP3 მოდულს და ხმოვან დაფას არდუინოზე. Bluetooth მოდული გამოიყენებოდა Catalex MP3 მოდულის წარმოსადგენად.

არდუინო პასუხისმგებელი იქნება 5 ნომრის დახარისხებაზე და შემდეგ ბრძანების გაგზავნა გაყვანილი ხმოვნის გასააქტიურებლად

ნაბიჯი 5:

გამოსახულება
გამოსახულება

ამის შემდეგ, ჩვენ დაველოდებით სანამ ბავშვი მოისმენს და არ დააჭერს ღილაკს, როგორც ეს მოცემულია ზემოთ მოცემულ ფიგურაში.

თითოეული ზემოთ ღილაკი წარმოადგენს ანბანის ხმოვანებას. შემდეგი, მე გაჩვენებთ თუ როგორ ააშენებთ პროგრამირების ლოგიკას ამ პროექტისთვის.

ნაბიჯი 6: შექმენით თამაშის პროგრამირების ლოგიკა

თამაშის პროგრამირების ლოგიკის შექმნა
თამაშის პროგრამირების ლოგიკის შექმნა

ხმოვანთა თამაშის სისტემა დაფუძნებულია YX5300 მოდულის მუშაობაზე. ამ მოდულს აქვს გარკვეული ფუნქციები, თუმცა, ჩვენ ყურადღებას გავამახვილებთ თამაშის სამუშაო სტრუქტურის წარმოდგენაზე YX5300 მოდულის ძირითადი ფუნქციების საშუალებით.

ქვემოთ მე გთავაზობთ პროექტის ყველა პროგრამირების ლოგიკას.

ნაბიჯი 7:

შემდეგში, მე ეტაპობრივად განვმარტავ ბავშვებისთვის ამ სახალისო თამაშის ლოგიკის ასაშენებლად.

#ჩართეთ

#განსაზღვრეთ ARDUINO_RX 5 // უნდა დაუკავშიროთ სერიული MP3 პლეერის მოდულის TX #განსაზღვრეთ ARDUINO_TX 6 // დაუკავშიროთ მოდულის პროგრამული უზრუნველყოფის სერიული RX mp3 (ARDUINO_RX, ARDUINO_TX); სტატიკური int8_t Send_buf [8] = {0}; // ბუფერი გაგზავნის ბრძანებებისათვის. // უკეთესი ლოკალური სტატიკური uint8_t ansbuf [10] = {0}; // ბუფერი პასუხებისთვის. // უკეთესი ლოკალური სიმებიანი mp3Answer; // პასუხი MP3– დან. სიმებიანი სანსვერი (ბათილია); სიმებიანი sbyte2hex (uint8_t ბ); / ************ ბრძანების ბაიტი ************************* # #განსაზღვრეთ CMD_NEXT_SONG 0X01 // ითამაშეთ შემდეგი სიმღერა. #განსაზღვრეთ CMD_PREV_SONG 0X02 // წინა სიმღერის დაკვრა. #განსაზღვრეთ CMD_PLAY_W_INDEX 0X03 #განსაზღვრეთ CMD_VOLUME_UP 0X04 #განსაზღვრეთ CMD_VOLUME_DOWN 0X05 #განსაზღვრეთ CMD_SET_VOLUME 0X06 #განსაზღვრეთ CMD_SNG_CYCL_ // ციკლი #განსაზღვრეთ CMD_SEL_DEV 0X09 #განსაზღვრეთ CMD_SLEEP_MODE 0X0A #განსაზღვრეთ CMD_WAKE_UP 0X0B #განსაზღვრეთ CMD_RESET 0X0C #განსაზღვრეთ CMD_PLAY 0X0D #განსაზღვრეთ CMD_PAUSE 0X0 #განსაზღვრეთ CMD_FOLDER_CYCLE 0X17 #განსაზღვრეთ CMD_SHUFFLE_PLAY 0x18 // #განსაზღვრეთ CMD_SET_SNGL_CYCL 0X19 // ერთი ციკლის დაყენება. განსაზღვრავს CMD_SET_DAC 0X1A განსაზღვრავს DAC_ON 0X00 განსაზღვრავს DAC_OFF 0X01 განსაზღვრავს CMD_PLAY_W_VOL 0X22 განსაზღვრავს CMD_PLAYING_N 0x4C განსაზღვრავს CMD_QUERY_STATUS 0x42 განსაზღვრავს CMD_QUERY_VOLUME 0x43 განსაზღვრავს CMD_QUERY_FLDR_TRACKS 0x4e განსაზღვრავს CMD_QUERY_TOT_TRACKS 0x48 განსაზღვრავს CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons ************************* # #განსაზღვრეთ DEV_TF 0X02 / ************** ********************************************** *****/ int numero; ბაიტი ესტადო; ბაიტი ზუზერი = 2; ბაიტი pin = 0; ბაიტი SortNumber = 0; bool ღილაკი = 0; void setup () {Serial.begin (9600); mp3.დაწყება (9600); დაგვიანება (500); for (pin = 8; pin 13) {pin = 8; } Serial.println ("ვარენდო …"); Serial.println (pin); // დაგვიანება (1000); } while (ღილაკი! = 1); Serial.println ("საიუ …"); 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… "); } /******************************************** ******************************* / /*ფუნქცია sendMP3 ბრძანება: ეძებეთ 'c' ბრძანება და გააგზავნეთ MP3 * / /*პარამეტრი: გ. კოდი MP3 ბრძანებისთვის, 'h' დახმარებისთვის. *// *Return: void */ void sendMP3Command (char c) {switch (c) {case '?': Case 'h': Serial.println ("HELP"); Serial.println ("p = თამაში"); Serial.println ("P = პაუზა"); Serial.println ("> = შემდეგი"); Serial.println ("': Serial.println (" შემდეგი "); sendCommand (CMD_NEXT_SONG); sendCommand (CMD_PLAYING_N); // ითხოვეთ ფაილის რაოდენობა შესვენების დროს; საქმე' მეხსიერების ბარათი ჩასმულია."; შესვენება; საქმე 0x3D.. DEC); შესვენება; საქმე 0x48: დეკოდირებული MP3Answer + = " -> ფაილის რაოდენობა:" + სიმებიანი (ansbuf [6], DEC); შესვენება; საქმე 0x4C: დეკოდირებული MP3Answer + = " -> დაკვრა:" + სიმებიანი (ansbuf [6], DEC); შესვენება; საქმე 0x4E: დეკოდირებული MP3Answer + = " -> საქაღალდის ფაილის რაოდენობა:" + სიმებიანი (ansbuf [6], DEC); შესვენება; საქმე 0x4F: დეკოდირებული MP3Answer + = " -> საქაღალდის რაოდენობა:" + სიმებიანი (ansbuf [6], DEC); შესვენება;} დაშიფრული დაბრუნება MP3Answer;} /********************************* ************* ******************************** / /*ფუნქცია: გაგზავნეთ ბრძანება MP3* / /*პარამეტრი: ბაიტი ბრძანება *// *პარამეტრი: ბაიტი dat1 პარამეტრი ბრძანებისთვის *// *პარამეტრი: ბაიტი dat2 პარამეტრი ბრძანებისთვის */ void sendCommand (ბაიტის ბრძანება) {sendCommand (ბრძანება, 0, 0); } void sendCommand (ბრძანება byte, byte dat1, byte dat2) {დაგვიანებით (20); Send_buf [0] = 0x7E; // Send_buf [1] = 0xFF; // Send_buf [2] = 0x06; // ლენ Send_buf [3] = ბრძანება; // Send_buf [4] = 0x01; // 0x00 NO, 0x01 კავშირი Send_buf [5] = dat1; // datah Send_buf [6] = dat2; // datal Send_buf [7] = 0xEF; // Serial.print ("გაგზავნა:"); for (uint8_t i = 0; i <8; i ++) {mp3.write (Send_buf ); Serial.print (sbyte2hex (Send_buf )); } Serial.println (); } /******************************************** ******************************** / /*ფუნქცია: sbyte2hex. აბრუნებს ბაიტის მონაცემებს HEX ფორმატში. * / /*პარამეტრი:- uint8_t ბ. ბაიტი HEX- ზე გადასაყვანად. *// *დაბრუნება: სიმებიანი */ სიმებიანი sbyte2hex (uint8_t ბ) {სიმებიანი შექსი; shex = "0X"; თუ (b <16) შექსი += "0"; shex += სიმებიანი (b, HEX); shex += ""; დაბრუნების shex; } /******************************************** ******************************* / /*ფუნქცია: shex2int. აბრუნებს int- ს HEX სტრიქონიდან. */ /*Პარამეტრები. char *s HEX- ზე გადასაყვანად. * / /*პარამეტრი: n. char *s სიგრძე. *// *დაბრუნება: int */ int shex2int (char *s, int n) {int r = 0; for (int i = 0; i = '0' && s = 'A' && s <= 'F') {r *= 16; r + = (s - 'A') + 10; }} დაბრუნება r; } /******************************************** ******************************* / /*ფუნქცია: sanswer. აბრუნებს სიმებიანი პასუხს mp3 UART მოდულიდან. * / /*პარამეტრი:- uint8_t ბ. სიცარიელე * / /*დაბრუნება: სიმებიანი. თუ პასუხი კარგად არის ჩამოყალიბებული პასუხი. */ სიმებიანი პასუხი (ბათილია) {uint8_t i = 0; სიმებიანი mp3answer = ""; // მიიღეთ მხოლოდ 10 ბაიტი სანამ (mp3.available () && (i <10)) {uint8_t b = mp3.read (); ansbuf = b; მე ++; mp3answer += sbyte2hex (ბ); } // თუ პასუხის ფორმატი სწორია. if ((ansbuf [0] == 0x7E) && (ansbuf [9] == 0xEF)) {დაბრუნება mp3answer; } დაბრუნება "???:" + mp3answer; }

პირველ რიგში, ჩვენ განვსაზღვრავთ პროგრამის ყველა ცვლადს და YX5300 მოდულის წვდომის რეგისტრის მისამართებს.

#ჩართეთ

#განსაზღვრეთ ARDUINO_RX 5 // უნდა დაუკავშიროთ სერიული MP3 პლეერის მოდულის TX #განსაზღვრეთ ARDUINO_TX 6 // დაუკავშიროთ მოდულის პროგრამული უზრუნველყოფის სერიული RX mp3 (ARDUINO_RX, ARDUINO_TX); სტატიკური int8_t Send_buf [8] = {0}; // ბუფერი გაგზავნის ბრძანებებისათვის. // უკეთესი ლოკალური სტატიკური uint8_t ansbuf [10] = {0}; // ბუფერი პასუხებისთვის. // უკეთესი ლოკალური სიმებიანი mp3 პასუხი; // პასუხი MP3– დან. სიმებიანი სანსვერი (ბათილია); სიმებიანი sbyte2hex (uint8_t ბ); / ************ ბრძანების ბაიტი ************************* # #განსაზღვრეთ CMD_NEXT_SONG 0X01 // ითამაშეთ შემდეგი სიმღერა. #განსაზღვრეთ CMD_PREV_SONG 0X02 // წინა სიმღერის დაკვრა. #განსაზღვრეთ CMD_PLAY_W_INDEX 0X03 #განსაზღვრეთ CMD_VOLUME_UP 0X04 #განსაზღვრეთ CMD_VOLUME_DOWN 0X05 #განსაზღვრეთ CMD_SET_VOLUME 0X06 #განსაზღვრეთ CMD_SNG_CYCL_ // ციკლი #განსაზღვრეთ CMD_SEL_DEV 0X09 #განსაზღვრეთ CMD_SLEEP_MODE 0X0A #განსაზღვრეთ CMD_WAKE_UP 0X0B #განსაზღვრეთ CMD_RESET 0X0C #განსაზღვრეთ CMD_PLAY 0X0D #განსაზღვრეთ CMD_PAUSE 0X0 #განსაზღვრეთ CMD_FOLDER_CYCLE 0X17 #განსაზღვრეთ CMD_SHUFFLE_PLAY 0x18 // #განსაზღვრეთ CMD_SET_SNGL_CYCL 0X19 // ერთი ციკლის დაყენება. განსაზღვრავს CMD_SET_DAC 0X1A განსაზღვრავს DAC_ON 0X00 განსაზღვრავს DAC_OFF 0X01 განსაზღვრავს CMD_PLAY_W_VOL 0X22 განსაზღვრავს CMD_PLAYING_N 0x4C განსაზღვრავს CMD_QUERY_STATUS 0x42 განსაზღვრავს CMD_QUERY_VOLUME 0x43 განსაზღვრავს CMD_QUERY_FLDR_TRACKS 0x4e განსაზღვრავს CMD_QUERY_TOT_TRACKS 0x48 განსაზღვრავს CMD_QUERY_FLDR_COUNT 0x4f / ********* *** Opitons ************************* # #განსაზღვრეთ DEV_TF 0X02 / ************** *********************************************** *****/ int numero; ბაიტი ესტადო; ბაიტი ზუზერი = 2; ბაიტი pin = 0; ბაიტი SortNumber = 0; bool ღილაკი = 0;

ნაბიჯი 8:

ეს რეგისტრაციის მისამართები გამოიყენება მოდულის მუშაობის კონფიგურაციისთვის. მაგალითად, იხილეთ ეს რეგისტრაციის მისამართი ქვემოთ.

#განსაზღვრეთ CMD_PLAY_W_INDEX 0X03

მისამართი 0x03 განსაზღვრულია სახელით CMD_PLAY_W_INDEX. იგი გამოიყენება სიმღერის გასააქტიურებლად მისი რიცხვიდან, ანუ შეიყვანთ ხმის რაოდენობას და ის დაკვრა იქნება.

სწორედ ამ ღირებულებებით გამოვიყენებთ მათ და დავაკონფიგურირებთ ჩვენი პროექტის ფუნქციონირებას.

მას შემდეგ რაც განსაზღვრავთ გამოყენებულ სხვადასხვა მისამართებს, ჩვენ შევდივართ დაყენების ფუნქციაში და დავაკონფიგურირებთ ქინძისთავებს და სერიულ კომუნიკაციას ჩვენი პროექტისთვის.

ნაბიჯი 9: Void Setup () ფუნქცია

შემდეგი, იხილეთ ბათილად დაყენების ფუნქცია. მე გავაკეთე ღილაკის მიმაგრების ყველა პარამეტრი, MP3 მოდულის სერიული კომუნიკაცია და ბარათის მოდულის ინიციალიზაცია MP3– ში.

ბათილად დაყენება ()

{Serial.begin (9600); mp3.დაწყება (9600); დაგვიანება (500); for (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); დაგვიანება (500); }

დავიწყე სერიული კომუნიკაცია კომპიუტერის სერიაზე მონაცემების დასაბეჭდად და შემდეგ დავიწყეთ სერიული კომუნიკაცია mp3 ობიექტის საშუალებით.

სერიული.დაწყება (9600);

mp3.დაწყება (9600); დაგვიანება (500);

Mp3 მოდული კონტროლდება Arduino სერიის მიერ მიღებული ბრძანებების საშუალებით. ამ პროცესში ჩვენ გამოვიყენეთ SoftwareSerial ბიბლიოთეკა და მივბაძეთ სერიალს Arduino ციფრულ ქინძისთავებზე.

ამრიგად, თქვენ შეძლებთ გამოიყენოთ Arduino– ს MP3 მოდულის გასაკონტროლებლად მისთვის გაგზავნილი ბრძანებების საშუალებით.

გარდა ამისა, ჩვენ გავაკეთეთ ციფრული ქინძისთავების კონფიგურაცია და MP3 ბარათის მოდულის ინიციალიზაცია

for (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); დაგვიანება (500);

კონფიგურაციის გაკეთების შემდეგ, ჩვენ უნდა წავიდეთ მთავარ ლოგიკაში void loop ფუნქციაში.

ნაბიჯი 10: ძირითადი ფუნქციის ბათილი მარყუჟი ()

კოდი ძალიან მარტივია და მთელი ლოგიკური სტრუქტურა ქვემოთ არის წარმოდგენილი. შემდგომში მე აგიხსნით ძირითადი ფუნქციის სრულ ლოგიკას.

ბათილი მარყუჟი ()

{pin = 8; randomSeed (analogRead (A0)); რიცხვი = შემთხვევითი (8, 12); სორტირება = რიცხვი; ნუმერო = ნუმერო - 7; Serial.println (numero); sendCommand (0x03, 0, numero); დაგვიანება (1000); გააკეთე {ღილაკი = digitalRead (პინი); Serial.println (ღილაკი); pin ++; if (pin> 13) {pin = 8; } Serial.println ("ვარენდო …"); Serial.println (pin); // დაგვიანება (1000); } while (ღილაკი! = 1); Serial.println ("საიუ …"); 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 -მდე ეხება ხმოვანთა ციფრულ პინს.

ქვემოთ მოცემულია შემთხვევითი მნიშვნელობის გენერირების კოდი.

pin = 8;

randomSeed (analogRead (A0)); რიცხვი = შემთხვევითი (8, 12); სორტირება = რიცხვი;

გარდა ამისა, ჩვენ გამოვაკლებთ 7 -ს 8 -დან 12 -მდე. ეს საშუალებას მოგვცემს მივუთითოთ მეხსიერების ბარათზე ჩაწერილი სიმღერების 1 -დან 5 -მდე პოზიციაზე.

ნუმერო = ნუმერო - 7;

ამის შემდეგ, მე გავამყარე ქვემოთ მოცემულ ხაზზე დახატული ხმოვნის ხმა.

sendCommand (0x03, 0, numero);

დაგვიანება (1000);

ახლა დადგა მნიშვნელოვანი დრო: მომენტი, როდესაც ჩვენ ვაპირებთ ბავშვის მიერ დაჭერილი ღილაკის წაკითხვას. კოდის ნაწილი წარმოდგენილია ქვემოთ.

კეთება

{ღილაკი = digitalRead (პინი); Serial.println (ღილაკი); pin ++; if (pin> 13) {pin = 8; } Serial.println ("ვარენდო …"); Serial.println (pin); // დაგვიანება (1000); } while (ღილაკი! = 1);

ეს მარყუჟი შესრულდება მანამ, სანამ მომხმარებელი არ დააჭერს ღილაკებს. მარყუჟი საშუალებას გაძლევთ სკანირება მოახდინოთ 5 ციფრულ პინზე და იმ მომენტში, როდესაც ბავშვი დააჭერს ერთ ღილაკს, ის გამოვა მარყუჟიდან და შეამოწმებს თუ არა ბავშვმა სწორი პასუხი.

თქვენ გადაამოწმებთ ქვემოთ მოცემულ კოდს.

თუ (ღილაკი == 1 && (პინ -1)! = სორტირება)

{sendCommand (0x03, 0, 6); დაგვიანება (3000); } if (ღილაკი == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); დაგვიანება (3000); }

პირველი პირობა შესრულდება, როდესაც მომხმარებელი დაუშვებს შეცდომას, რადგან დააჭირეთ ღილაკს და პინის გამომწვევი მნიშვნელობა განსხვავდება დახატული პინისგან (SortNumber).

ამ ეტაპზე, თქვენ უნდა შეასრულოთ ქვემოთ მოცემული ბრძანება.

sendCommand (0x03, 0, 6);

დაგვიანება (3000);

ეს ბრძანება გამოიყენება არასწორი პასუხის ტონის გასააქტიურებლად. დაბოლოს, ჩვენ გვაქვს მეორე პირობა, რომელიც გამოყენებული იქნება იმის შესამოწმებლად, არის თუ არა ბავშვი მართალი.

if (ღილაკი == 1 && (pin-1) == სორტირება)

{sendCommand (0x03, 0, 7); დაგვიანება (3000); }

ნაბიჯი 11:

გამოსახულება
გამოსახულება

თუ ღილაკზე დაჭერილი იყო და ციფრული პინი, რომელიც დაჭერილი იყო, იგივეა, რაც დახატული პინი, სისტემა გამოიწვევს სწორი პასუხის ხმას.

როგორც აგიხსნით, ეს კოდი ძალიან მარტივია და დაეხმარება ნებისმიერ ბავშვს არდუინოსთან თამაშისას ხმოვანთა ცოდნის განვითარება.

ზემოთ მოცემულ ფიგურაში ხმოვანი ყუთი ასრულებს MP3 მოდულის YX5300 SD ბარათის SD ბარათში შენახულ სიმღერას.

ნაბიჯი 12: დასკვნა

საკლასო განათლება მუდმივად უნდა შეიცვალოს და არდუინო შეიძლება იყოს დიდი მოკავშირე სახალისო ამოცანების შექმნაში.

ამ პროექტის საშუალებით შესაძლებელი გახდა მარტივი აქტივობის შემუშავება, რომელსაც შეუძლია ბავშვების უნარების განვითარება თითოეული ხმოვნის ბგერისა და მართლწერის ცოდნით.

სწავლების ტრადიციული მეთოდებისგან განსხვავებით, ბავშვები ისწავლიან საკლასო თამაშებითა და ელექტრონიკით.

ნაბიჯი 13: აღიარება

ეს პროექტი შემუშავდა კომპანიის JLCPCB მხარდაჭერისა და წახალისების წყალობით. მათ წაახალისეს განათლება და დაგვპატიჟეს განვავითაროთ ხმოვანთა თამაში კლასში ბავშვების სწავლებისათვის.

თუ გსურთ შეიძინოთ ხმოვანთა თამაშის ელექტრონული ფირფიტები, შეგიძლიათ შეხვიდეთ ამ ბმულზე და შეიძინოთ 10 ერთეული 2 დოლარად JLCPCB– ში.

გირჩევთ: