«Кнопочные ковбои»

Проекты на Arduino и Slot Shield

Простая электронная игра по мотивам классической Wild Gunman. Кто первым нажмет кнопку по сигналу баззера, тот самый быстрый стрелок.

Игру можно собрать и с набором «Матрёшка».

Видеоинструкция

Что потребуется

Полный сет компонентов проекта. В сет входят:

Как собрать

Установите Troyka Slot Shield на Iskra Neo

Вставьте два модуля светодиодных кнопок в нижние угловые слоты, повернув их на 90 градусов по часовой стрелке.

Вставьте модуль зуммера в центральный верхний слот.

Скетч

Прошейте контроллер скетчем через Arduino IDE.

Wild-Gunman.ino
// пин с пищалкой
#define BUZZER_PIN   3
// количество игроков-ковбоев
#define PLAYER_COUNT 2
// вместо перечисления всех пинов по-одному, мы объявляем пару списков:
// один с номерами пинов с кнопками, другой — со светодиодами
int buttonPins[PLAYER_COUNT] = {A3, A0};
int ledPins[PLAYER_COUNT] = {11, 13};
 
void setup()
{
  pinMode(BUZZER_PIN, OUTPUT);
  for (int player = 0; player < PLAYER_COUNT; ++player) {
    // при помощи квадратных скобок получают значение в массиве
    // под указанным в них номером. Нумерация начинается с нуля
    pinMode(ledPins[player], OUTPUT);
    pinMode(buttonPins[player], INPUT_PULLUP);
  }
}
 
void loop()
{
  // даём сигнал «пли!», выждав случайное время от 2 до 7 сек
  delay(random(2000, 7000));
  tone(BUZZER_PIN, 3000, 250); // 3 килогерца, 250 миллисекунд
 
  for (int player = 0; ; player = (player+1) % PLAYER_COUNT) {
    // если игрок номер «player» нажал кнопку...
    if (!digitalRead(buttonPins[player])) {
      // ...включаем его светодиод и сигнал победы на 1 сек
      digitalWrite(ledPins[player], HIGH);
      tone(BUZZER_PIN, 4000, 1000);
      delay(1000);
      digitalWrite(ledPins[player], LOW);
      // есть победитель! Выходим из цикла
      break; 
    }
  }
}

Что дальше?

Хотите собрать другой девайс? Выберите своё будущее устройство из списка проектов на Slot Shield.