Բովանդակություն:
- Պարագաներ
- Քայլ 1. Ձայնավորների խաղի զարգացում Arduino- ի հետ
- Քայլ 2:
- Քայլ 3:
- Քայլ 4. Նախագծի գաղափարը
- Քայլ 5:
- Քայլ 6. Խաղի ծրագրավորման տրամաբանության կառուցում
- Քայլ 7:
- Քայլ 8:
- Քայլ 9: The Void Setup () գործառույթը
- Քայլ 10. Հիմնական գործառույթի դատարկ օղակը ()
- Քայլ 11:
- Քայլ 12: Եզրակացություն
- Քայլ 13: cknowանաչում
Video: Ձայնավորների խաղ Arduino- ով և YX5300 MP3 մոդուլով Catalex: 13 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Կարո՞ղ եք կարդալ այս հարցը: Դա տարօրինակ է: Ես այս հարցը դիտմամբ տվեցի: Եթե կարող եք կարդալ այս տեքստը, դա այն պատճառով է, որ դուք տիրապետում եք ամբողջ այբուբենին և, իհարկե, սովորել եք բոլոր ձայնավորների մասին:
Բոլոր բառերում առկա են ձայնավորները: Նրանցից յուրաքանչյուրից անհնար է փախչել: Հիմա, թույլ տվեք ձեզ մի հարց տալ. Արդյո՞ք ձեր մանկությունը սովորելը զվարճալի էր և ներառում էր տեխնոլոգիական ռեսուրսներ:
Համոզված եմ, որ ուսուցման ռեսուրսները քիչ էին, և դուք օգտագործել եք ավանդական մեթոդներ `ձայնավորներն ու այբուբենը սովորելու համար:
Ի վերջո, հնարավո՞ր է որոշ տեխնոլոգիական ռեսուրսներ օգտագործել ձայնավորներ սովորելու համար:
Այս հոդվածում ես կսովորեցնեմ ձեզ, թե ինչպես սովորեցնել ձեր աշակերտներին և երեխաներին ձայնավորներ խաղի միջոցով:
Ես ձեզ կսովորեցնեմ, թե ինչպես ստեղծել ձայնով համակարգ, որտեղ ձեր երեխան/աշակերտը կլսի տառի ձայնը և պետք է սեղմել կոճակը `ճիշտ տառը նշելու համար:
Այսպիսով, նրանք կսովորեն խաղալու ընթացքում և միշտ մոտիվացիա կունենան սովորելու:
Այժմ ես ձեզ ցույց կտամ ձեր սեփական խաղը ստեղծելու քայլ առ քայլ գործընթացը և երեխաներին սովորեցնելու ձայնավորները:
Պարագաներ
JLCPCB տպագիր տպատախտակ
Արդուինո Ունո
Pushbutton անջատիչ
10kR դիմադրություն
Արական վերնագիր 2, 54 մմ 1x7
Քայլ 1. Ձայնավորների խաղի զարգացում Arduino- ի հետ
Խաղի սիրտը ձայնավորների JLCPCB տպագիր տպատախտակն է: Կարող եք մուտք գործել այս հղումը և ներբեռնել ծրագրի ֆայլերը: Այն ունի 5 կոճակ: Յուրաքանչյուր կոճակ կօգտագործեք ձայնավորը ներկայացնելու և այն ձեր Arduino- ին միացնելու համար:
Տպագիր տպատախտակը ներկայացված է Նկար 1 -ում:
Քայլ 2:
Այս PCB նախագծով դուք կարող եք այն կապել Arduino- ի հետ և ստեղծել ձեր խաղը: Հաջորդը, ես ձեզ կառաջարկեմ էլեկտրոնային սխեմա ՝ նախագիծը հավաքելու կամ կառուցելու ձեր նախատախտակի վրա:
Քայլ 3:
Այս սխեմատիկայից մենք ստեղծեցինք էլեկտրոնային տախտակի դասավորությունը: Այն ցուցադրվում է Նկար 2 -ում և կարող եք ներբեռնել ֆայլերը և կազմել ձեր նախագիծը:
Ընտրեք 5 կապում Arduino- ից և միացրեք տախտակի վրա թռչկոտողները Arduino- ի հետ: Կամ այլ կերպ, կարող եք հավաքել հետևյալ էլեկտրոնային դիագրամը:
Քայլ 4. Նախագծի գաղափարը
Ես ձեզ կսովորեցնեմ, թե ինչպես կարելի է Arduino- ով MP3 ձայնային համակարգ հավաքել: Այս համակարգը պատասխանատու կլինի տառով խոսող ձայնի վերարտադրման համար: Յուրաքանչյուր տառի ձայնը գծվելու է 1 -ից 5 -ի արժեքով, որտեղ 1 -ը ներկայացնում է A- ն, իսկ 5 -ը `U- ն:
Այսպիսով, երբ երեխան լսում է ձայնը, նա պետք է նայի ստեղնաշարին, ճանաչի ձայնավորի ուղղագրությունը և սեղմի ճիշտ ստեղնը:
Եթե այն ձախողվի, համակարգը 3 անգամ կթարթի Կարմիր LED- ը: Հակառակ դեպքում համակարգը 5 վայրկյան կակտիվացնի ազդանշանը և կքաշի նոր ձայնավոր:
Դա անելու համար դուք պետք է հավաքեք հետևյալ սխեման:
Այս շրջագծում դուք կկապեք MP3 մոդուլը և ձայնավոր տախտակը Arduino- ին: Bluetooth մոդուլն օգտագործվել է Catalex MP3 մոդուլը ներկայացնելու համար:
Arduino- ն պատասխանատու կլինի 5 համարները տեսակավորելու և այնուհետև ուղարկելու հրահանգը ՝ ակտիվացված ձայնավորը ակտիվացնելու համար:
Քայլ 5:
Դրանից հետո մենք կսպասենք, մինչև երեխան լսի և սեղմի կոճակը, ինչպես ցույց է տրված վերևում նկարում:
Վերը նշված յուրաքանչյուր կոճակ ներկայացնում է այբուբենի ձայնավորը: Հաջորդը, ես ձեզ ցույց կտամ, թե ինչպես եք կառուցելու ծրագրավորման տրամաբանությունը այս նախագծի համար:
Քայլ 6. Խաղի ծրագրավորման տրամաբանության կառուցում
Ձայնային խաղերի համակարգը հիմնված է YX5300 մոդուլի աշխատանքի վրա: Այս մոդուլն ունի որոշ գործառույթներ, այնուամենայնիվ, մենք կկենտրոնանանք խաղի աշխատանքային կառուցվածքը YX5300 մոդուլի հիմնական գործառույթների միջոցով ներկայացնելու վրա:
Ստորև ձեզ եմ ներկայացնում նախագծի ծրագրավորման ամբողջ տրամաբանությունը:
Քայլ 7:
Հետևյալում ես քայլ առ քայլ կբացատրեմ երեխաների համար այս զվարճալի խաղի տրամաբանությունը կառուցելու համար:
#ներառում
#սահմանեք ARDUINO_RX 5 // պետք է միանա Serial MP3 Player մոդուլի TX- ին #սահմանեք ARDUINO_TX 6 // միացեք SoftwareSerial մոդուլի RX- ին (ARDUINO_RX, ARDUINO_TX); ստատիկ int8_t Send_buf [8] = {0}; // Բուֆեր ՝ ուղարկվող հրամանների համար: // ԱՎԵԼԻ ՏԵOCԱԿԱՆ ստատիկ uint8_t ansbuf [10] = {0}; // Պատասխանների բուֆեր: // ԱՎԵԼԻ ՏԵOCԱԿԱՆ Լարային 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_PL #սահմանել CMD_SEL_DEV 0X09 #սահմանել CMD_SLEEP_MODE 0X0A #սահմանել CMD_WAKE_UP 0X0B #սահմանել CMD_RESET 0X0C #սահմանել CMD_PLAY 0X0D #define CMD_PAUSE 0X0 #սահմանել CMD_FOLDER_CYCLE 0X17 #սահմանել CMD_SHUFFLE_PLAY 0x18 // #սահմանել 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 ************************ / #սահմանել DEV_TF 0X02 / ************** *********************************************** *****/ int numero; բայթ էստադո; բայթ ազդանշան = 2; բայթ քորոց = 0; բայթ SortNumber = 0; bool կոճակ = 0; void setup () {Serial.begin (9600); mp3. սկիզբ (9600); ուշացում (500); for (pin = 8; pin 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (քորոց); // ուշացում (1000); } while (կոճակ! = 1); Serial.println ("Saiu …"); if (button == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); ուշացում (3000); } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); ուշացում (3000); } // Ստուգեք պատասխանը: if (mp3.available ()) {Serial.println (decodeMP3Answer ()); } ուշացում (100); //Serial.println("Tocando musica … "); } /******************************************** ******************************* / /*Function sendMP3Command. Փնտրեք «c» հրաման և ուղարկեք այն MP3 * / /*Պարամետր ՝ ք. Կոդ ՝ MP3 հրամանի համար, «h» ՝ օգնության համար: *// *Վերադարձ. Անվավեր */ 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 ՝ վերծանված MP3Answer + = " -> Ավարտված նվագարկումը num" + Լար (ansbuf [6], DEC); // sendCommand (CMD_NEXT_SONG); // sendCommand (CMD_PLAYING_N); // հարցնել, թե որ ֆայլն է խաղում ընդմիջում; գործ 0x40: decodedMP3Answer += " -> Սխալ"; ընդմիջում; գործ 0x41: decodedMP3Answer += " -> Տվյալները ճիշտ են հավաքված:"; ընդմիջում; գործ 0x42: ապակոդավորված MP3Answer += " -> Կարգավիճակի նվագարկում." +Լար (ansbuf [6], DEC); ընդմիջում; դեպք 0x48: վերծանված MP3Answer + = " -> Ֆայլերի քանակ." + Լար (ansbuf [6], DEC); ընդմիջում; գործ 0x4C: decodedMP3Answer + = " -> Նվագարկում." + Լար (ansbuf [6], DEC); ընդմիջում; գործ 0x4E: վերծանված MP3Answer + = " -> Թղթապանակի ֆայլերի քանակ." + Լար (ansbuf [6], DEC); ընդմիջում; գործ 0x4F: վերծանված MP3Answer + = " -> Թղթապանակների քանակ` " + Լար (ansbuf [6], DEC); ընդմիջում;} վերադարձնել վերծանված MP3 Պատասխան;} /********************************* ************ ******************************** / /*Գործառույթ. Հրաման ուղարկեք MP3- ին* / /*Պարամետր ՝ բայթ հրաման *// *Պարամետր. բայթ dat1 պարամետր հրամանի համար *// *Պարամետր. բայթ dat2 պարամետր հրամանի համար */ void sendCommand (բայթ հրաման) {sendCommand (հրաման, 0, 0); } void sendCommand (բայթ հրաման, բայթ dat1, բայթ dat2) {հետաձգում (20); Send_buf [0] = 0x7E; // Send_buf [1] = 0xFF; // Send_buf [2] = 0x06; // Len Send_buf [3] = հրաման; // Send_buf [4] = 0x01; // 0x00 ՈՉ, 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. գրել (Send_buf ); Serial.print (sbyte2hex (Send_buf )); } Serial.println (); } /******************************************** ******************************* / /*Ֆունկցիա ՝ sbyte2hex: Վերադարձնում է բայթ տվյալները HEX ձևաչափով: * / /*Պարամետր.- uint8_t բ. Բայթ `HEX- ին փոխարկելու համար: *// *Վերադարձ ՝ լարային */ լարային sbyte2hex (uint8_t բ) {լարային շեքս; շեքս = "0X"; եթե (b <16) շեքս += "0"; shex += լարային (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; } /******************************************** ******************************* / /*Գործառույթ. Վերադարձնում է լարային պատասխան mp3 UART մոդուլից: * / /*Պարամետր.- uint8_t բ. դատարկ * / /*Վերադարձ ՝ լարային: Եթե պատասխանը լավ ձևավորված է, պատասխանը: */ String sanswer (void) {uint8_t i = 0; Լարային mp3answer = ""; // Ստացեք ընդամենը 10 Բայթ մինչ (mp3.հասանելի () && (i <10)) {uint8_t b = mp3.read (); ansbuf = b; i ++; mp3answer += sbyte2hex (բ); } // եթե պատասխանի ձևաչափը ճիշտ է: if ((ansbuf [0] == 0x7E) && (ansbuf [9] == 0xEF)) {վերադարձ mp3answer; } վերադարձ "???:" + mp3answer; }
Նախ, մենք սահմանում ենք ծրագրի բոլոր փոփոխականները և YX5300 մոդուլի մուտքի գրանցամատյանի հասցեները:
#ներառում
#սահմանեք ARDUINO_RX 5 // պետք է միանա Serial MP3 Player մոդուլի TX- ին #սահմանեք ARDUINO_TX 6 // միացեք SoftwareSerial մոդուլի RX- ին (ARDUINO_RX, ARDUINO_TX); ստատիկ int8_t Send_buf [8] = {0}; // Բուֆեր ՝ ուղարկվող հրամանների համար: // ԱՎԵԼԻ ՏԵOCԱԿԱՆ ստատիկ uint8_t ansbuf [10] = {0}; // Պատասխանների բուֆեր: // ԱՎԵԼԻ ՏԵOCԱԿԱՆ Լարային 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_PL #սահմանել CMD_SEL_DEV 0X09 #սահմանել CMD_SLEEP_MODE 0X0A #սահմանել CMD_WAKE_UP 0X0B #սահմանել CMD_RESET 0X0C #սահմանել CMD_PLAY 0X0D #define CMD_PAUSE 0X0 #սահմանել CMD_FOLDER_CYCLE 0X17 #սահմանել CMD_SHUFFLE_PLAY 0x18 // #սահմանել 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 ************************ / #սահմանել DEV_TF 0X02 / ************** *********************************************** *****/ int numero; բայթ էստադո; բայթ ազդանշան = 2; բայթ քորոց = 0; բայթ SortNumber = 0; bool կոճակ = 0;
Քայլ 8:
Այս գրանցամատյանների հասցեները օգտագործվում են մոդուլի աշխատանքը կարգավորելու համար: Օրինակ, տես ստորև գրանցման այս հասցեն:
#սահմանի CMD_PLAY_W_INDEX 0X03
0x03 հասցեն սահմանվում է CMD_PLAY_W_INDEX անունով: Այն օգտագործվում է երգը իր համարից սկսելու համար, այսինքն ՝ մուտքագրում ես ձայնի համարը և այն կհնչի:
Այս արժեքներով մենք դրանք կօգտագործենք և կկարգավորենք մեր նախագծի աշխատանքը:
Այն բանից հետո, երբ դուք կսահմանեք տարբեր հասցեներ, որոնք կօգտագործվեն, մենք կմտնենք կարգավորման գործառույթը և կկարգավորենք մեր նախագծի կապերն ու սերիական հաղորդակցությունը:
Քայլ 9: The 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 օբյեկտի միջոցով:
Serial.begin (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);
Կազմաձևումը կատարելուց հետո մենք պետք է անցնենք դատարկ հանգույց գործառույթի հիմնական տրամաբանությանը:
Քայլ 10. Հիմնական գործառույթի դատարկ օղակը ()
Կոդը շատ պարզ է, և ամբողջ տրամաբանական կառուցվածքը ներկայացված է ստորև: Հետագայում ես ձեզ կբացատրեմ հիմնական գործառույթի ամբողջական տրամաբանությունը:
դատարկ շրջան ()
{քորոց = 8; randomSeed (analogRead (A0)); numero = պատահական (8, 12); Տեսակավորում = թիվ; թվեր = թվերո - 7; Serial.println (numero); sendCommand (0x03, 0, numero); ուշացում (1000); անել {կոճակ = digitalRead (քորոց); Serial.println (կոճակ); քորոց ++; if (pin> 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (քորոց); // ուշացում (1000); } while (կոճակ! = 1); Serial.println ("Saiu …"); if (button == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); ուշացում (3000); } if (button == 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); Տեսակավորում = թիվ;
Բացի այդ, մենք 8 -ից 12 -ը հանած գումարից հանում ենք 7 -ը: Սա թույլ կտա մեզ մատնանշել հիշողության քարտի վրա ձայնագրված երգերից 1 -ից 5 -ի դիրքերը:
թվեր = թվերո - 7;
Դրանից հետո ես վերարտադրեցի ներքևի գծի վրա գծված ձայնավորի ձայնը:
sendCommand (0x03, 0, numero);
ուշացում (1000);
Այժմ եկել է կարևոր ժամանակը. Այն պահը, երբ մենք պատրաստվում ենք կարդալ երեխայի սեղմած կոճակը: Կոդի հատվածը ներկայացված է ստորև:
անել
{կոճակ = digitalRead (քորոց); Serial.println (կոճակ); քորոց ++; if (pin> 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (քորոց); // ուշացում (1000); } while (կոճակ! = 1);
Այս հանգույցը կկատարվի այնքան ժամանակ, քանի դեռ օգտվողը չի սեղմել կոճակները: Օղակը թույլ է տալիս սկանավորել թվային 5 կապում, և այն պահին, երբ երեխան սեղմում է կոճակներից մեկը, այն դուրս կգա օղակից և կստուգի, արդյոք երեխան ճիշտ է արձագանքել:
Դուք կկատարեք ստուգումը ՝ օգտագործելով ստորև նշված ծածկագիրը:
եթե (կոճակ == 1 && (փին -1)! = Տեսակավորման համար)
{sendCommand (0x03, 0, 6); ուշացում (3000); } if (button == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); ուշացում (3000); }
Առաջին պայմանը կկատարվի, երբ օգտվողը սխալվի, քանի որ կոճակը սեղմված էր, և քորոցի հարուցված արժեքը տարբերվում էր գծված քորոցից (SortNumber):
Այս պահին դուք պետք է կատարեք ստորև բերված հրամանը:
sendCommand (0x03, 0, 6);
ուշացում (3000);
Այս հրամանը օգտագործվում է պատասխանի սխալ տոնը առաջացնելու համար: Ի վերջո, մենք ունենք երկրորդ պայմանը, որը կօգտագործվի երեխայի ճիշտ լինելու ստուգման համար:
եթե (կոճակ == 1 && (փին -1) == Տեսակավորել)
{sendCommand (0x03, 0, 7); ուշացում (3000); }
Քայլ 11:
Եթե կոճակը սեղմված է, և սեղմված թվային քորոցը նույնն է, ինչ գծված քորոցը, համակարգը կհանգեցնի ճիշտ պատասխանի ձայնի:
Ինչպես բացատրում եմ ձեզ, այս ծածկագիրը շատ պարզ է և կօգնի ցանկացած երեխայի զարգացնել ձայնավորների մասին գիտելիքները Arduino- ի հետ խաղի միջոցով:
Վերևի նկարում ձայնային արկղը կատարում է MP3 մոդուլի YX5300 SD քարտում պահված երգը:
Քայլ 12: Եզրակացություն
Դասարանական կրթությունը պետք է անընդհատ փոխվի, և Arduino- ն կարող է հիանալի դաշնակից լինել զվարճալի առաջադրանքներ ստեղծելու գործում:
Այս նախագծի միջոցով հնարավոր դարձավ զարգացնել մի պարզ գործունեություն, որը կարող է զարգացնել երեխաների հմտությունները յուրաքանչյուր ձայնավորի ձայնի և ուղղագրության իմացության միջոցով:
Ի տարբերություն դասավանդման ավանդական մեթոդների, երեխաները կսովորեն դասարանում խաղերի և էլեկտրոնիկայի միջոցով:
Քայլ 13: cknowանաչում
Այս նախագիծը մշակվել է JLCPCB ընկերության աջակցության և խրախուսման շնորհիվ: Նրանք խրախուսեցին կրթությունը և մեզ հրավիրեցին զարգացնել դասարանում երեխաներին ուսուցանելու ձայնավորների խաղը:
Եթե ցանկանում եք գնել Ձայնավորների խաղի էլեկտրոնային թիթեղները, կարող եք մուտք գործել այս հղում և JLCPCB- ում գնել 2 միավոր 2 դոլարով:
Խորհուրդ ենք տալիս:
Ինտերֆեյս Arduino Mega GPS մոդուլով (Neo-6M) ՝ 8 քայլ
Ինտերֆեյս Arduino Mega GPS մոդուլով (Neo-6M). Այս նախագծում ես ցույց տվեցի, թե ինչպես միացնել GPS մոդուլը (Neo-6M) Arduino Mega- ի հետ: TinyGPS գրադարանը օգտագործվում է Երկայնության և լայնության տվյալները ցուցադրելու համար, իսկ TinyGPS ++ - ը ՝ լայնության, երկայնության, բարձրության, արագության և արբանյակների քանակի ցուցադրման համար
Էլեկտրոնային խաղ Tic-Tac-Toe խաղ փայտե տուփի մեջ. 5 քայլ
Էլեկտրոնային խաղ Tic-Tac-Toe- ը փայտե տուփի մեջ
Aruduino LED խաղ Արագ կտտացնելով երկու խաղացողի խաղ. 8 քայլ
Aruduino LED խաղ Արագ սեղմում երկու խաղացողի խաղ. Այս նախագիծը ոգեշնչված է @HassonAlkeim- ից: Եթե պատրաստ եք խորը հայացք նետել, այստեղ կա մի հղում, որը կարող եք ստուգել https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/: Այս խաղը Alkeim's- ի կատարելագործված տարբերակն է: Դա է
Ինչպես պատրաստել փուլային տուփ MP3 ձայնային մոդուլով `4 քայլ
Ինչպես պատրաստել փուլային տուփ MP3 ձայնային մոդուլով. Ես ունեմ մի բյուրեղյա էպոքսիդային խեժ, որը հիշեցվել է իմ վերջին DIY նախագծից, և ես չեմ ուզում վատնել այն: Խնայողության սկզբունքների համաձայն, ես որոշում եմ օգտագործել էպոքսիդը ՝ մի փոքր իրեր պատրաստելու համար: Երբեմն, երբ ընկճվում ես, պարզապես չես ուզում խոսել: Ես պարզապես
Arduino- ի կառավարում HC-06 Bluetooth մոդուլով ՝ 4 քայլ
Arduino- ի կառավարում HC-06 Bluetooth մոդուլով. Բարև բոլորին, սա իմ առաջին պաշտոնական ձեռնարկն է Instructable.com- ում, ես շատ ոգևորված եմ իմ առաջին նախագծով: Այսօր ես ձեզ ցույց կտամ, թե ինչպես միացնել Arduino- ն և Bluetooth մոդուլը: Arduino- ն կապ կհաստատի HC-06 Bluetooth մոդուլային տախտակի հետ ՝ օգտագործելով