1 апта
Мақсат
- Қысқа мерзімді жадты арттыруға көмектесетін ойын жасау.
- Логикасын жазып оны ардуиномен іске асыру
- Корпусын жасау (3D, ағаштан немесе картоннан)
Күтілетін нәтижелер
Жобаны жасап болған соң оқушылар
- Arduino мен жұмыс жасап үйренеді
- Ойын жасаудың логикасын түсінеді
- 3D модельдеу
- ағашпен немесе картонмен жұмыс жасап үйренеді
- Бағдарламалауды үйренеді
Пәнаралық байланыс
- Информатика
- Физика
- Технология
Мұғалімге нұсқаулық
- Оқушыларды 5 топқа бөлу керек
- Термоклейді қолданарда мұқият болуын қадағалау керек
- Кеңсе пышағы немесе қайшыны қолданарда мұқият болуын қадағалау керек
- Электронды құрылғыларды жалғаған және токқа қосқан сәттерде абай болуын қадағалау
- Сымдардың дұрыс жалғануын тексеру және оқушыларға сымдардың жалғану схемасын ұсыну
Кіріспе
Қысқа мерзімді жад қиын сұрақтарға дайындықсыз жауап беруге, импровизациялауға және жағдайды жылдам бағалауға мүмкіндік береді. Бұрын әр адамның белгілі бір қысқа мерзімді есте сақтау қабілеті бар деп есептелетін, бірақ когнитивтік ғылым мен психология саласындағы соңғы зерттеулер оны жаттықтыра алатынымызды дәлелдеді.
Қысқа мерзімді жад дегеніміз не және ол неге маңызды?
Бұл ойлар мен идеяларды қысқа мерзімді сақтауға арналған «резервуар» болып табылады, біз оны кез келген уақытта кез келген шешім қабылдау үшін шығарып, қолдана аламыз.Сұраққа дайындықсыз жауап беру қажет болғанда, қысқа мерзімді есте сақтау бір уақытта сөйлеуге және келесі мәлімдемелерді ойша жоспарлауға мүмкіндік береді. Ол біз оқығанда да қолданылады. Материалдың мәнін түсіну үшін біз бұрын оқығанымызды еске түсіріп, оны келесі оқитын нәрселермен байланыстыруымыз керек. Сонымен қатар, қысқа мерзімді есте сақтау қажет емес ақпаратты, соның ішінде бізді алаңдататын барлық нәрсені елемеуге көмектеседі. Әсіресе біздің уақытта тапсырмаға толыққанды назар аудару қабілеті өте маңызды болып табылады.
Қазір бәріміз ақпараттың, әлеуметтік желілердің және әртүрлі ескертулердің шамадан тыс көптігінен зардап шегеміз, күндіз-түні назар аударуды қажет етеді. Қандай ақпаратты есте сақтау керектігін және нені есте сақтау керектігін анықтау үшін ми көп күш салуы керек. Мұның бәрі алаңдаушылық пен стрессті тудырады және есте сақтау қабілетін одан әрі төмендетеді.
Қысқа мерзімді жадты толық қуатта қалай жұмыс істетуге болады?
Екі жолы бар.
Біріншіден, алаңдататын нәрселердің санын азайтыңыз және осылайша стресс деңгейін төмендетіңіз. Бұл жадқа ғана емес, өмірдің барлық салаларына да оң әсер етеді.
Бірақ кейде бұл мүмкін емес. Бастық бізден шұғыл есеп беруді талап ететінін немесе жақын адамымыз қашан ауыратынын болжай алмаймыз. Шынымды айтсам, біз әдетте қазір желіде ұсынылатын ақпараттың әртүрлілігін ұнатамыз.
Сонымен, екінші нұсқа қалады – қысқа мерзімді жадты дамыту және нығайту.
Қысқа мерзімді есте сақтауды қалай күшейтуге болады?
Ми жаттығулары
Атап айтқанда, «қос тапсырмалы n-артқа» деп аталады. Бұл жаттығу кезінде сіз қысқа мерзімді жадыңызды бірқатар суреттерді бақылап, белгілі бір кескіннің бұрын пайда болғанын анықтау арқылы жаттықтырасыз.
Зерттеулер мұндай жаттығулардың қысқа мерзімді жадты нығайтуға көмектесетінін растады, атап айтқанда Джеки Ау, Эллен Шихан, Нэнси Цай сынды ғалымдар. Бірақ барлық жаттығулар тұрақсыз орын алса көмегі болмайды. Қысқа мерзімді есте сақтау, біздің бұлшықеттер сияқты, тұрақты жаттығуларды қажет етеді. Зерттеушілер бұл үшін күніне 25 минут бөлуді ұсынады.
Бұл жазбалар шет елдік ғалымдардың мақаласынан алынды
Тағы басқада факторлар жазылған, қысқаша айтып өтсек біздің ұйқымыз, спортпен айналысуымыз, дұрыс тамақтануымыз бәрі әсер етеді. Бізге бұл жобада жасайтын ойынымызға сәйкес келетіні мына жаттығу ғана, сондықтан әрі қарай осы жаттығуға мән береміз.
Сонымен бізде төрт әртүрлі түсте жарықдиодтар бар және сондай түстерде кнопкалар бар
Бірінші ойын басталғанда жарықдиодты шамдар төрт мәрте жануы тиіс, барлығы да жануы маңызды емес. Содан соң дәл сондай түстердегі кнопкаларды басып қайталап шығуымыз керек. Егер дұрыс тапсақ белсенді зуммер арқылы келесі деңгейге өткендігін білдіретін дыбыс шығарамыз, ал егер дұрыс таппаған жағдайда жеңілгендігін білдіретін дыбыс шығарамыз. Әр дұрыс тапқан сайын жану саны арта береді, яғни төрт рет жанса одан кейін бес рет жанады одан соң алты рет тағы солай жалғаса береді.
Енді ойынымызды іске асырып бастайық
Төмендегі сызбада біз кнопкалар мен жарықдиодты шамдарды ардуино платасына жалғадық
Дәл осылай жалғап шығыңыз
Кедергілердің барлығы 150 Ом

Енді кнопкаларды басқан кезде соған сәйкес жарықдиодты шамды жағайық.
Алдымен ардуино IDE ашамыз, егер орнатылмаған болса мына сілтеме арқылы орнатыңыз(сілтеме)
код жазу платформасы ашылғаннан соң жоғары бөлігіндегі құралдар батырмасын басыңыз
Содан соң портты таңдаңыз
Порт таңдалынбаса код ардуиноға жіберілмейді
Ардуино кабель арқылы компьютерге жалғанып туруы керек
Енді төмендегі кодты іске қосу керек
мына кодты жазыңыз және ардуиноға жіберіңіз, ол үшін мына батырманы басыңыз
Код
#define redbtn 3
#define yellowbtn 4
#define bluebtn 5
#define whitebtn 6
#define redled 9
#define yellowled 10
#define blueled 11
#define whiteled 12
void setup(){
Serial.begin(9600);
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(blueled,OUTPUT);
pinMode(whiteled,OUTPUT);
pinMode(whitebtn,INPUT_PULLUP);
pinMode(bluebtn,INPUT_PULLUP);
pinMode(yellowbtn,INPUT_PULLUP);
pinMode(redbtn,INPUT_PULLUP);
}
void loop(){
if(!digitalRead(redbtn)){
digitalWrite(redled,HIGH);
delay(150);}
else digitalWrite(redled,LOW);
if(!digitalRead(yellowbtn)){
digitalWrite(yellowled,HIGH);
delay(150);}
else digitalWrite(yellowled,LOW);
if(!digitalRead(bluebtn)){
digitalWrite(blueled,HIGH);
delay(150);}
else digitalWrite(blueled,LOW);
if(!digitalRead(whitebtn)){
digitalWrite(whiteled,HIGH);
delay(150);}
else digitalWrite(whiteled,LOW);
}
Бұл код арқылы біз жарықдиодты шамдарды батырмалар арқылы басқара аламыз.
Ендігі кезекте шамдарды кездейсоқ реттілікте жағуды қарастырайық
Төмендегі кодқа назар аударыңыз
#define redled 9
#define yellowled 10
#define blueled 11
#define whiteled 12
int leds[] = {redled,yellowled, blueled, whiteled};
void setup(){
Serial.begin(9600);
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(blueled,OUTPUT);
pinMode(whiteled,OUTPUT);
randomSeed(analogRead(0));
flashLed();
}
void loop(){
}
void flashLed(){
for (int i = 0; i < 4; i++) {
int shoosen_led = random(4);
flash(leds[shoosen_led]);
}
}
void flash(int led){
delay(200);
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
}
Осы кодты іске қосатын болсақ жарықдиодты шамдардың арасынан төрт мәрте кездейсоқ шамдар жанады
Ендігі кезекте белсенді зуммерді және экранды схемамызға қосайық
Төменде көрсетілген сызбадағыдай қосып шығыңыз

Төменде толық код жазылған осы кодты қосып көріңіз
Код
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define redbtn 3
#define yellowbtn 4
#define bluebtn 5
#define whitebtn 6
#define redled 9
#define yellowled 10
#define blueled 11
#define whiteled 12
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
int melody[] = {
NOTE_G4, 0, NOTE_G4, NOTE_D5,
NOTE_C5, 0, NOTE_AS4, 0,
NOTE_A4, 0, NOTE_A4, NOTE_A4,
NOTE_C5, 0, NOTE_AS4, NOTE_A4,
NOTE_G4,0, NOTE_G4, NOTE_AS5,
NOTE_A5, NOTE_AS5, NOTE_A5, NOTE_AS5,
NOTE_G4,0, NOTE_G4, NOTE_AS5,
NOTE_A5, NOTE_AS5, NOTE_A5, NOTE_AS5,
NOTE_G4, 0, NOTE_G4, NOTE_D5,
NOTE_C5, 0, NOTE_AS4, 0,
NOTE_A4, 0, NOTE_A4, NOTE_A4,
NOTE_C5, 0, NOTE_AS4, NOTE_A4,
NOTE_G4,0, NOTE_G4, NOTE_AS5,
NOTE_A5, NOTE_AS5, NOTE_A5, NOTE_AS5,
NOTE_G4,0, NOTE_G4, NOTE_AS5,
NOTE_A5, NOTE_AS5, NOTE_A5, NOTE_AS5
};
int noteDurations[] = {
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
4,4,4,4,
};
int current_level = 4;
int leds[] = {redled,yellowled, blueled, whiteled};
int output_leds[30]={};
int input_leds[30]={};
int mill = 0;
int speed_of_flashing = 500;
int index = 0;
bool waitforpress = false;
unsigned long timer = 0;
int deadline = 59;
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(blueled,OUTPUT);
pinMode(whiteled,OUTPUT);
pinMode(whitebtn,INPUT_PULLUP);
pinMode(bluebtn,INPUT_PULLUP);
pinMode(yellowbtn,INPUT_PULLUP);
pinMode(redbtn,INPUT_PULLUP);
randomSeed(analogRead(0));
flashLed();
//test();
}
void loop() {
delay(100);
if(waitforpress){
if(!digitalRead(bluebtn) and millis()-mill>200){
digitalWrite(blueled,HIGH);
delay(150);
Serial.println("blue");
mill = millis();
if(output_leds[index]==blueled){
index += 1;
if(index==current_level){
nextlevel();
}
}
else {
test();
Serial.println("Game Over");
waitforpress = false;
}
}
else digitalWrite(blueled,LOW);
if(!digitalRead(yellowbtn) and millis()-mill>200){
digitalWrite(yellowled,HIGH);
delay(150);
Serial.println("yellow");
mill = millis();
if(output_leds[index]==yellowled){
index += 1;
if(index==current_level){
nextlevel();
}
}
else {
test();
Serial.println("Game Over");
waitforpress = false;
}
}
else digitalWrite(yellowled,LOW);
if(!digitalRead(redbtn) and millis()-mill>200){
digitalWrite(redled,HIGH);
delay(150);
Serial.println("red");
mill = millis();
if(output_leds[index]==redled){
index += 1;
if(index==current_level){
nextlevel();
}
}
else {
test();
Serial.println("Game Over");
waitforpress = false;
}
}
else digitalWrite(redled,LOW);
if(!digitalRead(whitebtn) and millis()-mill>200){
digitalWrite(whiteled,HIGH);
delay(150);
Serial.println("white");
mill = millis();
if(output_leds[index]==whiteled){
index += 1;
if(index==current_level){
nextlevel();
}
}
else {
test();
Serial.println("Game Over");
waitforpress = false;
}
}
else digitalWrite(whiteled,LOW);
}
lcd.setCursor(1,0);
lcd.print("you are Genius");
lcd.setCursor(0,1);
lcd.print("lvl:");
lcd.setCursor(4,1);
lcd.print(current_level-3);
lcd.setCursor(6,1);
lcd.print("time 0:");
if(millis()-timer>1000 and deadline>0){
lcd.clear();
lcd.setCursor(13,1);
lcd.print(deadline);
deadline -= 1;
timer = millis();
}
if(deadline==0){
lcd.clear();
lcd.setCursor(1,1);
lcd.print("GAME OVER!!!");
current_level = 3;
test();
nextlevel();
}
}
void flashLed(){
for (int i = 0; i < current_level; i++) {
int shoosen_led = random(4);
flash(leds[shoosen_led]);
output_leds[i] = leds[shoosen_led];
}
waitforpress = true;
}
void flash(int led){
delay(200);
digitalWrite(led,HIGH);
delay(speed_of_flashing);
digitalWrite(led,LOW);
}
void nextlevel(){
for (int i = 0; i < 4; i++) {
digitalWrite(leds[i],LOW);
}
lcd.clear();
delay(1000);
deadline = 59-(current_level-4)*5;
current_level += 1;
index = 0;
flashLed();
}
void test(){
for (int thisNote = 0; thisNote < 64; thisNote++) {
int noteDuration = 750 / noteDurations[thisNote];
tone(13, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(13);
}
}
