Мазмуну:

Дүйнөнүн эң оор оюнун Arduinoдо кайра жаратуу: 7 кадам
Дүйнөнүн эң оор оюнун Arduinoдо кайра жаратуу: 7 кадам

Video: Дүйнөнүн эң оор оюнун Arduinoдо кайра жаратуу: 7 кадам

Video: Дүйнөнүн эң оор оюнун Arduinoдо кайра жаратуу: 7 кадам
Video: NOOBS PLAY CLASH ROYALE FROM START LIVE 2024, Декабрь
Anonim
Image
Image

Бул долбоор интернеттен таба турган компьютердик оюнга негизделген. Анын аты "Дүйнөдөгү эң оор оюн". Мен аны Arduinoдо LED модулунун төрт модулун колдонуп кайра түзө алдым. Бул нускамада мен аны кантип курууну үйрөтөм. Биз өтө көп деталдарга киришүүдөн мурун, мен бул оюнду түзүү үчүн баскан кадамдарым жөнүндө кыскача маалымат бергим келет.

  1. Мен керектүү бардык тетиктерди чогулттум.
  2. Мен бөлүктөрдү бириктирдим.
  3. Мен оюнчуларды бардык модулдар боюнча жылдыруу үчүн джойстикти колдонгон эскиз жаздым.
  4. Мен биринчи тоскоолдуктарды иштеп чыгып, аларды эскизге коштум, алар Дүйнөнүн Эң Оюнун туурашты.
  5. Андан кийин тоскоолдуктар менен кагылышууну аныктоо үчүн кодду коштум, ал оюнду кайра баштайт.
  6. Анан мен дагы эки деңгээлдеги тоскоолдуктарды ойлоп таптым.

1 -кадам: Бардык бөлүктөр

Бардык бөлүктөр
Бардык бөлүктөр
Бардык бөлүктөр
Бардык бөлүктөр

Бул жерде сизге керектүү бардык бөлүктөрдүн тизмеси келтирилген:

  1. An Arduino UNO жана USB туташтыргычы: https://www.banggood.com/Wh Wholesale-Arduino-Compati.
  2. Төрт модуль 8x8: LED матрицасы
  3. Джойстик:
  4. 10 эркек-аял зымдары:

2 -кадам: Бөлүктөрдү Arduino менен кантип туташтыруу керек

Бөлүктөрдү Arduino менен кантип туташтыруу керек
Бөлүктөрдү Arduino менен кантип туташтыруу керек

LED матрицасын Arduino менен кантип туташтыруу керек

  1. GND GNDге барат
  2. VCC 5Vга өтөт
  3. DataIn санарип пин 12ге барат
  4. CLK санарип пинге 11 барат
  5. CS же LOAD санарип пин 10го барат

Джойстикти кантип туташтыруу керек

  1. GND GNDге барат
  2. 5V 5Vга барат
  3. VRx аналогдук пин A0 барат
  4. VRy аналогдук пин A1ге барат
  5. SW колдонулбайт

Батарея Arduino кубатын берүү үчүн 9v уячасына туташат

3 -кадам: Программанын агымы диаграммасы

Программанын агымы диаграммасы
Программанын агымы диаграммасы

Овал программанын башталышын билдирет.

Биринчи кадам - бардык тоскоолдуктарды аныктоо.

Кийинки эки кадам өзгөрмөлөрдү орнотууну жана модулдардын бардыгын иштетүүнү көрсөтөт.

Кийинки кадам, LEDди биринчи деңгээлге жана башка өзгөрмөлөргө коюу.

Кийинки, оюнчу учурда турган деңгээлди көрсөтөт.

Ромб Джойстикти кайсы багытка сүрүлүп жатканын көрүү үчүн окуп жатканын көрсөтөт.

Андан кийин оюнчуну джойстик кайсы жакка түртсө, ошол жакка жылдырыңыз.

Оюнчу тоскоолдук менен сүзүшкөнүн текшерип көрүңүз.

Эгерде оюнчу тоскоолдукка учураса, биринчи деңгээлге кайтыңыз. Эгерде оюнчу деңгээлдин аягына жеткенин текшербесе.

Эгерде оюнчу деңгээлдин аягында болсо, кийинки деңгээлге коюңуз, андан кийин "Учурдагы деңгээлди көрсөтүү" бөлүмүнө кайтыңыз. Эгерде алар аягында болбосо, тоскоолдуктарды жылдырып, кайра "Джойстикти окуңуз".

4 -кадам: Джойстикти программалоо

Албетте, оюнчу болгон кичинекей чекитти жылдыруу үчүн бизге джойстик керек. жана джойстикке оюнчуну чындап жылдырууга уруксат берүү үчүн, биз аны Arduino IDEге коддошубуз керек. Сиз эскиз менюсу> Китепканаларды кошуу> китепканаларды башкаруу жана LedControlду издөө аркылуу таба турган LedControl китепканасын кошушуңуз керек. Бул жерде джойстиктин коду кандай көрүнөт.

#"LedControl.h" кошуу

int DataIn = 12; int CLK = 11; int DIN = 10; LedControl lc = LedControl (DataIn, CLK, DIN, 4); // Объектти төрт модуль үчүн жаратат int delaytime = 50; // оюндун иштөө ылдамдыгы int joystick_RtLt, joystick_UpDn; int players_x = 0; // оюнчулар горизонталдык абалда 0дон 31ге чейин int players_y = 3; // оюнчулар вертикалдуу позициясы 0 ден 7 ге чейин катар, мамыча, модуль; void setup () {initialize_modules (); // күйгүзүү жана төрт LED модулун коюу} void loop () {move_player (); // оюнчу кечигүүнү (кечигүү) жылдырарын текшерүү менен циклди баштоо; } void initialize_modules () {lc.shutdown (0, false); // 0 lc.setIntensity модулун иштетет (0, 1); lc.shutdown (1, жалган); // 1 lc.setIntensity модулун иштетет (1, 1); lc.shutdown (2, false); // 2 lc.setIntensity модулун баштайт (2, 1); lc.shutdown (3, false); // 3 lc.setIntensity модулун иштетет (3, 1); lc.clearDisplay (0); // модулду тазалайт 0} void move_player () {module = players_x/8; // оюнчу кайсы модулда экенин аныктайт = player_x%8; // оюнчу модулдун катарында турган мамычаны аныктайт = players_y; lc.setLed (модуль, сап, мамыча, жалган); // оюнчунун учурдагы абалында алып баруучуну өчүрүү joystick_RtLt = analogRead (A0)/204 - 2; // окуу X -джойстик жана картанын диапазону 2ден -2ге чейин болсо (joystick_RtLt> 0) // джойстик туура оюнчуларга келгенде_x ++; // эгер оңго кетсе, эгерде (joystick_RtLt 0) // эгер джойстик сол жагында болсо жана оюнчулар башында эмес_x--; // солго жылдыруу joystick_UpDn = analogRead (A1)/204 - 2; // окуу Y-джойстик жана картанын диапазону 2ден -2ге чейин болсо (joystick_UpDn 0) // эгер джойстик ылдый болсо жана оюнчу түбүндө болбосо оюнчулар_y--; // эгер ылдый жылсаңыз (joystick_UpDn> 0 && player_y <7) // эгер джойстик өйдө болсо жана оюнчу жогорку оюнчулар_y ++ ичинде болбосо; // жогорулоо модулу = players_x/8; // модулду оюнчуларга коюңуз жаңы позиция мамыча = players_x%8; // оюнчуларга мамычаны коюңуз жаңы позиция катар = players_y; // оюнчуларга катарды коюңуз lc.setLed жаңы абалы (модуль, катар, мамыча, чыныгы); // оюнчунун жаңы позициясын алып келүү}

Эми джойстикти кошкондон кийин, биринчи тоскоолдуктун үстүндө иштейли!

5 -кадам: Биринчи деңгээл

Жарайт, андыктан азыр программанын негизги бөлүгүнө, тоскоолдуктарга кирүүгө убакыт келди! Тоскоолдуктар муну чындап эле "Дүйнөнүн Эң Оюну" кылат. Демек, эгер сиз оюнду чындап ойногуңуз келсе, анда муну кодуңузга кошушуңуз керек:

байт тоскоол [ДЕҢГЭЭЛДЕР] [ЭКЕНДЕР] [КОЛОННАЛАР] [КАТАРЛАР] = {// үч деңгээл, 8 көрүнүш, 8 колум, 8 катар

{{{1, 1, 1, 1, 1, 1, 0, 0}, // биринчи деңгээл, биринчи көрүнүш {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1}, { 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // биринчи деңгээл, экинчи көрүнүш {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 1, 1, 1, 1 }, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // биринчи деңгээл, үчүнчү сахна {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // биринчи деңгээл, төртүнчү көрүнүш {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // биринчи деңгээл, бешинчи көрүнүш {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 0, 0, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // биринчи деңгээл, алтынчы көрүнүш {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, { 1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 1, 1, 1, 1, 1, 1}, // биринчи деңгээл, жетинчи көрүнүш {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 }, {1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 1, 1, 1, 1, 1, 1, 1}, // биринчи деңгээл, сегизинчи сахна {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}}, void setup () {initialize_modules (); // күйгүзүү жана бардык төрт жетектөөчү модулду жөндөө start_level (0); void loop () {move_player (); // оюнчу кыймылдаганын текшерүү менен циклди баштоо (кагылышуу ()) {// кагылышуу деңгээлин текшерүү = 0; // эгерде кагылышуу чын болсо, баштапкы деңгээлди баштапкы абалга келтирүү (деңгээл); // оюнду кайра баштоо} else if if (delay_count == obstacle_delay) {// эгер эч кандай кагылышуу тоскоолдук кылбаса, ар бир кечигүү moveobstacle (); delay_count = 0; } else delay_count ++; кечигүү (кечигүү убактысы); // оюндун ылдамдыгы менен кечигүү}

Жана бул биринчи тоскоолдук! Эгерде сиз муну биринчи деңгээл катары тажатып алсаңыз, анда байтты дайыма өзгөртө аласыз, эсиңизде болсун, сизде сегиз башка көрүнүш болушу керек! Келгиле, кийинки кадамга өтөлү, кагылышууну аныктоо!

6 -кадам: Кагылышууну аныктоо

Бул кадам оюндун дагы бир маанилүү бөлүгү, ансыз деле анча деле кыйынчылык болбойт! сиз эч кандай кесепети жок тоскоолдуктарды жеңе аласыз! бул абдан кызыктуу болмок эмес, туурабы? программанын бул бөлүмүн кошуп, оюнду татаалдаштыралы (жана дагы бир топ кызыктуу!):

void loop () {

move_player (); // оюнчу кыймылдаганын текшерүү менен циклди баштоо (кагылышуу ()) {// кагылышуу деңгээлин текшерүү = 0; // эгерде кагылышуу чын болсо, баштапкы деңгээлди баштапкы абалга келтирүү (деңгээл); // оюнду кайра баштоо} else if if (delay_count == manea_delay) {// эгер эч кандай кагылышуу тоскоолдук кылбаса, ар бир кечигүү moveobstacle (); delay_count = 0; } else delay_count ++; кечигүү (кечигүү убактысы); // оюндун ылдамдыгы менен кечигүү} int кагылышуу () {// оюнчу сахна модулунда тоскоолдукка кабылганын текшерүү = players_x/8; колонка = оюнчулар_х%8; катар = оюнчулар_ж; if (модуль> 0) if (тоскоолдук [деңгээл] [сахна] [мамыча] [катар] == 1) // эгерде оюнчунун позициясы тоскоолдукту кайтаруу менен бирдей болсо (1); // кагылышуу аныкталды кайтаруу чыныгы кайтаруу (0); // кагылышуу жок жалган}

Ал эми сен бар! азыр сиз оюндан көбүрөөк ырахат ала аласыз! Эми мен сизге оюндун акыркы эки деңгээлин кантип программалоону көрсөтөм! Сиз бул көрсөтмөнү дээрлик аткардыңыз, жана мен аны сынап көрүүгө даяр экениңе ишенем!

7 -кадам: Акыркы эки деңгээл

Көрсөтмөнүн аягына чейин келе жаткан болсок, бул акыркы эки деңгээл бул оюнду бүтүрүү үчүн керек. Анан муну өзүңүз сынап көрсөңүз болот! бул жерде код:

байт тоскоол [ДЕҢГЭЭЛДЕР] [ЭКЕНДЕР] [КОЛОННАЛАР] [КАТАРЛАР] = {// экинчи жана үчүнчү деңгээл, 8 көрүнүш, 8 мамыча, 8 катар

{{{1, 0, 0, 0, 0, 0, 0, 1}, // экинчи деңгээл, биринчи көрүнүш {0, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, { 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 0, 0, 1}}, {{1, 1, 0, 0, 0, 0, 0, 1}, // экинчи деңгээл, экинчи көрүнүш {0, 0, 1, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0 }, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 1}}, {{0, 1, 0, 0, 0, 0, 0, 0}, // экинчи деңгээл, үчүнчү көрүнүш {0, 0, 1, 1, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 0}}, {{0, 0, 1, 0, 0, 0, 0, 0}, // экинчи деңгээл төртүнчү көрүнүш {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {0, 1, 1, 1, 1, 0, 1, 0}, {0, 1, 0, 1, 1, 1, 1, 0}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}}, {{0, 0, 0, 1, 0, 0, 0, 0}, // экинчи деңгээл, беш чи сахна {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 1, 1, 0, 0, 1}, {1, 0, 0, 1, 1, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // экинчи деңгээл, алтынчы көрүнүш {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 1, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1}, {0, 0, 1, 0, 0, 1, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 1, 0, 0}, // экинчи деңгээл, жетинчи көрүнүш {0, 0, 0, 0, 0, 1, 0, 0}, {1, 1, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 1, 1}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 1, 0}, // экинчи деңгээл сегизинчи көрүнүш {1, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 1}, {0, 1, 0, 0, 0, 0, 0, 0, 0}}}, {{{0, 1, 0, 0, 0, 0, 0, 1}, // үчүнчү деңгээл, биринчи көрүнүш {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 0} }, {{0, 0, 0, 0, 1, 0, 0, 1}, // үчүнчү деңгээл, экинчи көрүнүш {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // үчүнчү деңгээл, үчүнчү көрүнүш {0, 0, 0, 1, 0, 0, 1, 0}, { 0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // үчүнчү деңгээл, төртүнчү көрүнүш {1, 0, 0, 1, 0, 0, 1, 0 }, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // үчүнчү деңгээл, бешинчи көрүнүш {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // үчүнчү деңгээл, алтынчы көрүнүш {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // үчүнчү деңгээл, жетинчи көрүнүш {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // үчүнчү деңгээл, сегизинчи көрүнүш { 1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}}};

Жана бул! Сиз Дүйнөнүн Эң Оюнун бүтүрүүгө аракет кылып жатасыз. Ошондой эле толук Arduino коду төмөндө тиркелет.

Сунушталууда: