Përmbajtje:
- Furnizimet
- Hapi 1: Zhvillimi i lojës së zanoreve me Arduino
- Hapi 2:
- Hapi 3:
- Hapi 4: Ideja e projektit
- Hapi 5:
- Hapi 6: Ndërtimi i Logjikës së Programimit të Lojërave
- Hapi 7:
- Hapi 8:
- Hapi 9: Funksioni Void Setup ()
- Hapi 10: Funksioni kryesor Laku i zbrazët ()
- Hapi 11:
- Hapi 12: Përfundim
- Hapi 13: Mirënjohje
Video: Lojë zanore Me Arduino dhe YX5300 MP3 Modul Catalex: 13 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
A jeni në gjendje ta lexoni këtë pyetje? Kjo është e çuditshme! Këtë pyetje e bëra me qëllim. Nëse mund ta lexoni këtë tekst, kjo ndodh sepse e dini të gjithë alfabetin dhe, natyrisht, keni mësuar për të gjitha zanoret.
Zanoret janë të pranishme në të gjitha fjalët. Eachshtë e pamundur të shpëtosh nga secila prej tyre. Tani, më lejoni t'ju bëj një pyetje. A ishte mësimi i fëmijërisë tuaj argëtuese dhe përfshinte burime teknologjike?
Jam i sigurt se burimet mësimore ishin të pakta dhe ju keni përdorur metoda tradicionale për të mësuar zanoret dhe alfabetin.
Në fund të fundit, a është e mundur të përdoren disa burime teknologjike për të mësuar zanoret?
Në këtë artikull, unë do t'ju mësoj se si t'i mësoni studentët dhe fëmijët tuaj zanoret përmes një loje.
Unë do t'ju mësoj se si të krijoni një sistem me një zë, ku fëmija/studenti juaj do të dëgjojë tingullin e shkronjës dhe duhet të shtypë një buton për të treguar shkronjën e saktë.
Kështu, ata do të mësojnë gjatë lojës dhe gjithmonë do të jenë të motivuar për të studiuar.
Tani, unë do t'ju tregoj procesin hap pas hapi që ju të krijoni lojën tuaj dhe t'u mësoni zanoret fëmijëve.
Furnizimet
Bordi i Qarkut të Shtypur JLCPCB
Arduino Uno
Ndërprerës i butonit
Rezistencë 10kR
Koka e meshkujve 2, 54mm 1x7
Hapi 1: Zhvillimi i lojës së zanoreve me Arduino
Zemra e lojës është tabela e qarkut të printuar JLCPCB e Zanoreve. Mund të hyni në këtë lidhje dhe të shkarkoni skedarët e projektit. Ka 5 butona. Do të përdorni çdo buton për të përfaqësuar një zanore dhe për ta lidhur atë me Arduino -n tuaj.
Bordi i qarkut të shtypur është treguar në Figurën 1.
Hapi 2:
Me këtë Projekt PCB, ju mund ta lidhni atë me Arduino dhe të krijoni lojën tuaj. Tjetra, unë do t'ju ofroj një skemë elektronike për të mbledhur ose ndërtuar projektin në protoboardin tuaj.
Hapi 3:
Nga kjo skematike, ne vendosëm paraqitjen e tabelës elektronike. Shtë treguar në Figurën 2 dhe ju mund të shkarkoni skedarët dhe të bëni projektin tuaj.
Zgjidhni 5 kunja nga Arduino dhe lidhni kërcyesit në tabelë me Arduino. Ose përndryshe, mund të mblidhni diagramin elektronik të mëposhtëm.
Hapi 4: Ideja e projektit
Unë do t'ju mësoj se si të montoni një sistem zanor MP3 me Arduino. Ky sistem do të jetë përgjegjës për riprodhimin e zërit që flet shkronjën. Tingulli i secilës shkronjë do të vizatohet duke përdorur një vlerë nga 1 në 5, ku 1 përfaqëson A dhe 5 përfaqëson U.
Kështu, kur fëmija dëgjon zërin, ai duhet të shikojë tastierën, të njohë drejtshkrimin e zanores dhe të shtypë butonin e duhur.
Nëse dështon, sistemi do të ndizet LED i Kuq 3 herë. Përndryshe, sistemi do të aktivizojë një zile për 5 sekonda dhe do të nxjerrë një zanore të re.
Për ta bërë këtë, duhet të mblidhni qarkun e mëposhtëm.
Në këtë qark, ju do të lidhni Modulin MP3 dhe tabelën e zanoreve në Arduino. Moduli Bluetooth u përdor për të përfaqësuar Modulin Catalex MP3.
Arduino do të jetë përgjegjës për renditjen e 5 numrave dhe më pas dërgimin e komandës për të aktivizuar zanoren e tërhequr
Hapi 5:
Pas kësaj, ne do të presim derisa fëmija të dëgjojë dhe të shtypë një buton, siç tregohet në Figurën e mësipërme.
Çdo buton më sipër përfaqëson një zanore të alfabetit. Tjetra, unë do t'ju tregoj se si do të ndërtoni logjikën e programimit për këtë projekt.
Hapi 6: Ndërtimi i Logjikës së Programimit të Lojërave
Sistemi i lojës zanore bazohet në funksionimin e modulit YX5300. Ky modul ka disa funksione, megjithatë, ne do të përqendrohemi në paraqitjen e strukturës së punës së lojës përmes funksioneve kryesore të modulit YX5300.
Më poshtë po ju ofroj të gjithë logjikën programuese të projektit.
Hapi 7:
Në vijim, unë do të shpjegoj hap pas hapi për të ndërtuar logjikën e kësaj loje argëtuese për fëmijët.
#përfshi
#define ARDUINO_RX 5 // duhet të lidhet me TX të modulit Serial MP3 Player #define ARDUINO_TX 6 // lidheni me RX të modulit SoftwareSerial mp3 (ARDUINO_RX, ARDUINO_TX); statike int8_t Send_buf [8] = {0}; // Tampon për dërgimin e komandave. // MET MIR L LOKALisht statike uint8_t ansbuf [10] = {0}; // Tampon për përgjigjet. // MET MIR L LOKALisht Vargu mp3Answer; // Përgjigje nga MP3. Përgjigje për vargun (e pavlefshme); Varg sbyte2hex (uint8_t b); / ************ Bajt komandues ************************* ##përcakto CMD_NEXT_SONG 0X01 // Luaj tjetrën kenge. #përcaktoni CMD_PREV_SONG 0X02 // Luani këngën e mëparshme. #përcakto CMD_PLAY_W_INDEX 0X03 #përcakto CMD_VOLUME_UP 0X04 #përcakto CMD_VOLUME_DOWN 0X05 #përcakto CMD_SET_VOLUME 0X06 #përcakto CMD_SNG_CYCL_PL #përcakto CMD_SEL_DEV 0X09 #përcakto CMD_SLEEP_MODE 0X0A #përcakto CMD_WAKE_UP 0X0B #përcakto CMD_RESET 0X0C #përcakto CMD_PLAY 0X0D #define CMD_PAUSE 0X0 #përcaktoni CMD_FOLDER_CYCLE 0X17 #përcaktoni CMD_SHUFFLE_PLAY 0x18 // #përcaktoni CMD_SET_SNGL_CYCL 0X19 // Cikli i vetëm. #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 zile = 2; pin byte = 0; byte SortNumber = 0; butoni bool = 0; void setup () {Serial.begin (9600); mp3.fillo (9600); vonesë (500); për (pin = 8; pin 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (pin); // vonesa (1000); } ndërsa (butoni! = 1); Serial.println ("Saiu …"); if (butoni == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); vonesë (3000); } if (butoni == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); vonesë (3000); } // Kontrolloni për përgjigjen. nëse (mp3.disponueshme ()) {Serial.println (deshifro MP3Answer ()); } vonesë (100); //Serial.println("Tocando musica … "); } /******************************************** ******************************* / /*Funksioni sendMP3 Komandë: kërkoni një komandë 'c' dhe dërgojeni në MP3 * / /*Parametri: c. Kodi për Komandën MP3, 'h' për ndihmë. *// *Kthimi: void */ void sendMP3Command (char c) {switch (c) {case '?': Case 'h': Serial.println ("HELP"); Serial.println ("p = Luaj"); Serial.println ("P = Pauzë"); Serial.println ("> = Tjetra"); Serial.println ("': Serial.println (" Tjetra "); sendCommand (CMD_NEXT_SONG); sendCommand (CMD_PLAYING_N); // kërkoni numrin e skedarit që po luan pushim; rastin" Kartë memorie e futur. "; Pushim; rast 0x3D: deshifruarMP3Answer + = " -> Numri i përfunduar i lojës" + String (ansbuf [6], DEC); // sendCommand (CMD_NEXT_SONG); // sendCommand (CMD_PLAYING_N); // kërkoni numrin e skedarit që po luan pushim; rasti 0x40: deshifruarMP3Answer += " -> Gabim"; pushim; rasti 0x41: deshifruarMP3Answer += " -> Të dhënat e marra në mënyrë korrekte."; pushim; rasti 0x42: i dekoduarMP3Answer += " -> Luajtja e statusit:" +String (ansbuf [6], DEC); thyerje; rasti 0x48: dekoduarMP3Answer + = " -> Numri i skedarëve:" + Vargu (ansbuf [6], DEC); pushim; kuti 0x4C: e deshifruarMP3Answer + = " -> Luajtja:" + String (ansbuf [6], DEC); thyerje; rasti 0x4E: i deshifruarMP3Answer + = " -> Numri i skedarëve të dosjeve:" + String (ansbuf [6], DEC); pushim; rasti 0x4F: i dekoduarMP3Answer + = " -> Numri i dosjeve:" + String (ansbuf [6], DEC); thyerje;} kthim i dekoduarMP3Answer;} /******************************** ************ ******************************* / /*Funksioni: Dërgo komandën në MP3* / /*Parametri: byte komanda *// *Parametri: parametri byte dat1 për komandën *// *Parametri: parametri byte dat2 për komandën */ void sendCommand (komanda byte) {sendCommand (komanda, 0, 0); } void sendCommand (komanda byte, byte dat1, byte dat2) {vonesë (20); Send_buf [0] = 0x7E; // Send_buf [1] = 0xFF; // Send_buf [2] = 0x06; // Len Send_buf [3] = komandë; // Send_buf [4] = 0x01; // 0x00 JO, 0x01 reagime Send_buf [5] = dat1; // datah Send_buf [6] = dat2; // datal Send_buf [7] = 0xEF; // Serial.print ("Dërgimi:"); për (uint8_t i = 0; i <8; i ++) {mp3.shkruaj (Send_buf ); Serial.print (sbyte2hex (Send_buf )); } Serial.println (); } /******************************************** ******************************* / /*Funksioni: sbyte2hex. Kthen një të dhënë byte në formatin HEX. * / /*Parametri:- uint8_t b. Bajt për t'u kthyer në HEX. *// *Kthimi: String */ String sbyte2hex (uint8_t b) {Shex vargu; shex = "0X"; nëse (b <16) shex += "0"; shex += String (b, HEX); shex += ""; sheks kthyes; } /******************************************** ******************************* / /*Funksioni: shex2int. Kthen një int nga një varg HEX. * / /*Parametri: s. char *s për t'u kthyer në HEX. * / /*Parametri: n. gjatësia e karbonit * *// *Kthimi: int */ int shex2int (char *s, int n) {int r = 0; për (int i = 0; i = '0' && s = 'A' && s <= 'F') {r *= 16; r + = (s - 'A') + 10; }} kthehu r; } /******************************************** ******************************* / /*Funksioni: pa përgjigje. Kthen një përgjigje String nga moduli mp3 UART. * / /*Parametri:- uint8_t b. i pavlefshëm * / /*Kthimi: String. Nëse përgjigja është formuar mirë përgjigje. */ Përgjigja e vargut (e pavlefshme) {uint8_t i = 0; String mp3answer = ""; // Merrni vetëm 10 Bajt ndërsa (mp3.disponueshme () && (i <10)) {uint8_t b = mp3.read (); ansbuf = b; i ++; mp3answer += sbyte2hex (b); } // nëse formati i përgjigjes është i saktë. nëse ((ansbuf [0] == 0x7E) && (ansbuf [9] == 0xEF)) {kthehu përgjigjen mp3; } kthehu "???:" + mp3answer; }
Së pari, ne përcaktojmë të gjitha variablat e programit dhe adresat e regjistrit të aksesit të modulit YX5300.
#përfshi
#define ARDUINO_RX 5 // duhet të lidhet me TX të modulit Serial MP3 Player #define ARDUINO_TX 6 // lidheni me RX të modulit SoftwareSerial mp3 (ARDUINO_RX, ARDUINO_TX); statike int8_t Send_buf [8] = {0}; // Tampon për dërgimin e komandave. // MET MIRTER LOKALISHT statike uint8_t ansbuf [10] = {0}; // Tampon për përgjigjet. // MET MIRTER LOKALisht Vargu mp3Answer; // Përgjigje nga MP3. Përgjigje për vargun (e pavlefshme); Varg sbyte2hex (uint8_t b); / ************ Byte komandimi ************************* ##përcakto CMD_NEXT_SONG 0X01 // Luaj tjetrën kenge. #përcaktoni CMD_PREV_SONG 0X02 // Luani këngën e mëparshme. #përcakto CMD_PLAY_W_INDEX 0X03 #përcakto CMD_VOLUME_UP 0X04 #përcakto CMD_VOLUME_DOWN 0X05 #përcakto CMD_SET_VOLUME 0X06 #përcakto CMD_SNG_CYCL_PL #përcakto CMD_SEL_DEV 0X09 #përcakto CMD_SLEEP_MODE 0X0A #përcakto CMD_WAKE_UP 0X0B #përcakto CMD_RESET 0X0C #përcakto CMD_PLAY 0X0D #define CMD_PAPUSE 0X0 #përcaktoni CMD_FOLDER_CYCLE 0X17 #përcaktoni CMD_SHUFFLE_PLAY 0x18 // #përcaktoni CMD_SET_SNGL_CYCL 0X19 // Cikli i vetëm. #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 zile = 2; pin byte = 0; byte SortNumber = 0; butoni bool = 0;
Hapi 8:
Këto adresa regjistri përdoren për të konfiguruar funksionimin e modulit. Për shembull, shihni këtë adresë regjistrimi më poshtë.
#përcaktoni CMD_PLAY_W_INDEX 0X03
Adresa 0x03 përcaktohet me emrin CMD_PLAY_W_INDEX. Përdoret për të shkaktuar një këngë nga numri i saj, domethënë, futni numrin e zërit dhe ai do të luhet.
Me këto vlera do t'i përdorim ato dhe do të konfigurojmë funksionimin e projektit tonë.
Pasi të keni përcaktuar adresat e ndryshme që do të përdoren, ne do të hyjmë në funksionin e konfigurimit dhe do të konfigurojmë kunjat dhe komunikimin serik për projektin tonë.
Hapi 9: Funksioni Void Setup ()
Tjetra, shihni funksionin e konfigurimit të zbrazëtisë. Kam bërë të gjitha cilësimet e kunjave të butonave, komunikimin serik të modulit MP3 dhe fillimin e modulit të kartës në MP3.
void setup ()
{Serial.fillo (9600); mp3.fillo (9600); vonesë (500); për (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); vonesë (500); }
Fillova komunikimin serik për të printuar të dhëna në serialin e kompjuterit dhe më pas filluam komunikimin serik përmes objektit mp3.
Serial.filloj (9600);
mp3.fillo (9600); vonesë (500);
Moduli mp3 kontrollohet përmes komandave të marra nga seriali Arduino. Në këtë proces, ne përdorëm bibliotekën SoftwareSerial dhe imituam një serial në kunjat dixhitale Arduino.
Kështu, do të jeni në gjendje të përdorni Arduino për të kontrolluar modulin MP3 përmes komandave të dërguara atij.
Përveç kësaj, ne bëmë konfigurimin e kunjave digjitalë dhe fillimin e modulit të Kartës MP3
për (pin = 8; pin <13; pin ++) {pinMode (pin, INPUT); } sendCommand (CMD_SEL_DEV, 0, DEV_TF); vonesë (500);
Pasi të bëjmë konfigurimin, duhet të kalojmë në logjikën kryesore në funksionin e void loop.
Hapi 10: Funksioni kryesor Laku i zbrazët ()
Kodi është shumë i thjeshtë dhe e gjithë struktura logjike po paraqitet më poshtë. Në vijim, unë do t'ju shpjegoj logjikën e plotë të funksionit kryesor.
lak void ()
{pin = 8; randomSeed (analogRead (A0)); numero = rastësor (8, 12); Rendit Numri = numër; numero = numero - 7; Serial.println (numero); sendCommand (0x03, 0, numero); vonesa (1000); bëj {button = digitalRead (pin); Serial.println (butoni); pin ++; if (pin> 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (pin); // vonesa (1000); } ndërsa (butoni! = 1); Serial.println ("Saiu …"); if (butoni == 1 && (pin-1)! = SortNumber) {sendCommand (0x03, 0, 6); vonesë (3000); } if (butoni == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); vonesë (3000); } // Kontrolloni për përgjigjen. nëse (mp3.disponueshme ()) {Serial.println (deshifro MP3Answer ()); } vonesë (100); //Serial.println("Tocando musica … "); }
Në çdo fillim të ciklit të funksionit të lakut, ne do të gjenerojmë një vlerë të re midis 8 dhe 12 për të gjeneruar tingullin e një zanoreje. Vlera nga 8 në 12 i referohet pinit dixhital të zanores.
Kodi për gjenerimin e vlerës së rastësishme është treguar më poshtë.
pin = 8;
randomSeed (analogRead (A0)); numero = rastësor (8, 12); Rendit Numri = numër;
Përveç kësaj, ne zbresim 7 nga shuma e tërhequr midis 8 dhe 12. Kjo do të na lejojë të tregojmë pozicionet e 1 deri në 5 të këngëve të regjistruara në kartën e kujtesës.
numero = numero - 7;
Pas kësaj, unë riprodhova tingullin e zanores të tërhequr në vijën më poshtë.
sendCommand (0x03, 0, numero);
vonesa (1000);
Tani ka ardhur koha e rëndësishme: momenti kur do të lexojmë butonin e shtypur nga fëmija. Pjesa e kodit po paraqitet më poshtë.
bëj
{button = digitalRead (pin); Serial.println (butoni); pin ++; if (pin> 13) {pin = 8; } Serial.println ("Varrendo …"); Serial.println (pin); // vonesa (1000); } ndërsa (butoni! = 1);
Ky lak do të ekzekutohet derisa përdoruesi të shtypë butonat. Lak ju lejon të skanoni 5 kunjat dixhitale dhe në momentin që fëmija shtyp një nga butonat, do të dalë nga lak dhe do të kontrollojë nëse fëmija është përgjigjur saktë.
Ju do të bëni verifikimin duke përdorur kodin më poshtë.
nëse (butoni == 1 && (pin-1)! = SortNumber)
{sendCommand (0x03, 0, 6); vonesë (3000); } if (butoni == 1 && (pin-1) == SortNumber) {sendCommand (0x03, 0, 7); vonesë (3000); }
Kushti i parë do të ekzekutohet kur përdoruesi bën një gabim sepse një buton është shtypur dhe vlera e shkaktuar e kunjit ishte e ndryshme nga kunja e tërhequr (SortNumber).
Në këtë pikë, duhet të ekzekutoni komandën më poshtë.
sendCommand (0x03, 0, 6);
vonesë (3000);
Ky komandë përdoret për të shkaktuar tonin e gabuar të përgjigjes. Së fundi, ne kemi kushtin e dytë që do të përdoret për të kontrolluar nëse fëmija ka të drejtë.
nëse (butoni == 1 && (pin-1) == SortNumber)
{sendCommand (0x03, 0, 7); vonesë (3000); }
Hapi 11:
Nëse një buton është shtypur dhe kunja dixhitale që është shtypur është e njëjtë me kunjin e tërhequr, sistemi do të shkaktojë një tingull të përgjigjes së saktë.
Siç ju shpjegoj, ky kod është shumë i thjeshtë dhe do të ndihmojë çdo fëmijë të zhvillojë njohuritë e tij për zanoret përmes një loje me Arduino.
Në figurën e mësipërme kutia zanore po ekzekuton këngën e ruajtur në Kartën SD të Modulit MP3 YX5300.
Hapi 12: Përfundim
Edukimi në klasë duhet të ndryshohet vazhdimisht dhe Arduino mund të jetë një aleat i madh në krijimin e detyrave argëtuese.
Përmes këtij projekti, ishte e mundur të zhvillohej një aktivitet i thjeshtë që mund të zhvillojë aftësitë e fëmijëve përmes njohjes së tingullit dhe drejtshkrimit të secilës zanore.
Ndryshe nga metodat tradicionale të mësimdhënies, fëmijët do të mësojnë përmes argëtimit në klasë përmes lojërave dhe elektronikës.
Hapi 13: Mirënjohje
Ky projekt u zhvillua falë mbështetjes dhe inkurajimit të kompanisë JLCPCB. Ata inkurajuan arsimin dhe na ftuan të zhvillojmë lojën e zanoreve për mësimin e fëmijëve në klasë.
Nëse dëshironi të blini pllakat elektronike të lojës së zanoreve, mund të hyni në këtë lidhje dhe të blini 10 njësi për 2 dollarë në JLCPCB.
Recommended:
Ndërtoni kutinë tuaj zanore MP3: 7 hapa
Ndërtoni kutinë tuaj zanore MP3: A keni imagjinuar ndonjëherë të ndërtoni altoparlantin tuaj MP3 për panairin shkencor të shkollës tuaj? Në këtë projekt, ne do t'ju mësojmë hap pas hapi që ju të ndërtoni altoparlantin tuaj dhe të përdorni pak burime dhe të argëtoheni me miqtë tuaj. Prandaj, në këtë projekt ju
Mini lojë "Guess the Number" Lojë me mikro: bit: 10 hapa
Mini Makina e lojës "Guess the Number" me Micro: bit: A keni luajtur ndonjëherë " Guess the Number "? Kjo është një makinë lojërash shumë e thjeshtë për t’u ndërtuar që luan " Guess the Number " me ty Ne e projektuam këtë projekt DIY për të inkurajuar lojën fizike dhe për t'i ndihmuar fëmijët të mësojnë programim. Ai përdor një MU
Lojë Microbit Tic Tac Toe Lojë: 4 hapa (me fotografi)
Microbit Tic Tac Toe Lojë: Për këtë projekt, bashkëpunëtori im - @descartez dhe unë krijuam një lojë të mrekullueshme tic tac toe duke përdorur radio funksionalitetin e mikrobitëve. Nëse nuk keni dëgjuar më parë për mikrobit, ata janë një mikrokontrollues i mrekullueshëm i krijuar për t'u mësuar fëmijëve programimin. Ata
Mbërthimi automatik duke përdorur një sensor lazer dhe komandat zanore: 5 hapa (me fotografi)
Mbërthimi automatik duke përdorur një sensor lazer dhe komandat zanore: Kapja e objekteve që na duket gjë e thjeshtë dhe e natyrshme për të bërë është në fakt një detyrë komplekse. Njeriu përdor shqisën e shikimit për të përcaktuar distancën nga objekti që dëshiron të kapë. Dora hapet automatikisht kur është në afërsi të
Kutia zanore e Rastit të Mp3 Player: 5 hapa
Mp3 Player Case Sound Box: ky është udhëzimi im i parë, kështu që mos e kuptoni. materialet: 1. kuti MP3 (rasti që merrni kur blini mp3 nëse nuk e dini se çfarë dua të them shihni foton 2) 2. thikë ekzakto 3. altoparlanti i bërë tashmë me fole audio shikoni hapin që ju nevojitet