» » » Игра «перетягивание каната» на Arduino

Игра «перетягивание каната» на Arduino

Доброго времени суток, уважаемый читатель моей статьи , сегодня в этой статье мне хотелось бы рассказать тебе, как собрать игру "перетягивание каната" на ардуино

ВОТ ЧТО ТЕБЕ ПОНАДОБИТСЯ:
1. Arduino Unо
2. 2 конденсатора на 0.1 микрофарады
3. 14 резисторов по 220 ом
4. Светодиодная шкала или 10 светодиодов на 3 вольта
5. Breadboard
6. 2 тактовых кнопки
7. пьезопищалка
8. инвертирующий триггер Шмитта
9. провода-перемычки

Итак для начала запрограммируем ардуину


ВОТ СКЕТЧ:

#define BUZZER_PIN     0
#define FIRST_BAR_PIN  4
#define BAR_COUNT      10
#define MAX_SCORE      20
// глобальные переменные, используемые в прерываниях (см. далее)
// должны быть отмечены как нестабильные (англ. volatile)
volatile int score = 0;
 
void setup()
{
  for (int i = 0; i < BAR_COUNT; ++i)
    pinMode(i + FIRST_BAR_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  // Прерывание (англ. interrupt) приостанавливает основную
  // программу, выполняет заданную функцию, а затем возобновляет
  // основную программу. Нам нужно прерывание на нажатие кнопки,
  // т.е. при смене сигнала с высокого на низкий, т.е. на
  // нисходящем (англ. falling) фронте
  attachInterrupt(INT1, pushP1, FALLING); // INT1 — это 3-й пин
  attachInterrupt(INT0, pushP2, FALLING); // INT0 — это 2-й пин
}
 
void pushP1() { ++score; } // функция-прерывание 1-го игрока
void pushP2() { --score; } // функция-прерывание 2-го игрока
void loop()
{
  tone(BUZZER_PIN, 2000, 1000); // даём сигнал к старту.
  // пока никто из игроков не выиграл, обновляем «канат»
  while (abs(score) < MAX_SCORE) {
    int bound = map(score, -MAX_SCORE, MAX_SCORE, 0, BAR_COUNT);
    int left = min(bound, BAR_COUNT / 2 - 1);
    int right = max(bound, BAR_COUNT / 2);
    for (int i = 0; i < BAR_COUNT; ++i)
      digitalWrite(i + FIRST_BAR_PIN, i >= left && i <= right);
  }
  tone(BUZZER_PIN, 4000, 1000); // даём сигнал победы
  while (true) {} // «подвешиваем» плату до перезагрузки
}


Далее собираем все по этой схеме:


Игра «перетягивание каната» на Arduino


у вас должно получится примерно так:



после того как "канат" перешел на сторону 1 из игроков игра заканчивается, перезагрузить ее можно нажав кнопку на самой ардуине




Надеюсь вам понравился этот проект а с вами бал DeNiS Geek pro100, на этом у меня все ПОКА!
Вопрос\тема автоматически публикуется в соц. сети сайта - следите и там за ответами:
у вас получилось повторить?
вы повторили?
Всего проголосовало: 5

Ночник с регулировкой яркости

Трехсекционный составной воблер «Щурёнок»

Добавить комментарий

    • smilesmilesxaxaokdontknowyahoonea
      bossscratchfoolyesyes-yesaggressivesecret
      sorrydancedance2dance3pardonhelpdrinks
      stopfriendsgoodgoodgoodwhistleswoontongue
      smokeclappingcraydeclarederisivedon-t_mentiondownload
      heatirefullaugh1mdameetingmoskingnegative
      not_ipopcornpunishreadscarescaressearch
      tauntthank_youthisto_clueumnikacuteagree
      badbeeeblack_eyeblum3blushboastboredom
      censoredpleasantrysecret2threatenvictoryyusun_bespectacled
      shokrespektlolprevedwelcomekrutoyya_za
      ya_dobryihelperne_huliganne_othodifludbanclose

Привет, Гость!


Зарегистрируйтесь

Или войдите на сайт, если уже зарегистрированы...

Войти

Добавьте самоделку

Добавьте тему

Онлайн чат

Опрос
А Вы знаете, что на сайте оплачиваются отчеты о создании самоделок?

Последние комментарии

Все комментарии
Новые самоделки на почту

Введите электронную почту и получайте письма с новыми самоделками. Не более одного письма в день.