====== «Кнопочные ковбои» ====== ** [[slot-box:start#хочу_собрать|Проекты на Arduino и Slot Shield]] ** Простая электронная игра по мотивам классической Wild Gunman. Кто первым нажмет кнопку по сигналу баззера, тот самый быстрый стрелок. Игру можно собрать и с набором «[[amp>product/matryoshka-z?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Матрёшка]]». {{ :slot-box:wild-gunman:wild-gunman.jpg |}} * Платформы: [[amp>product/arduino-uno?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Arduino Uno]], [[amp>product/arduino-leonardo?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Arduino Leonardo]], [[amp>product/iskra-neo?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Iskra Neo]] * Язык программирования: Arduino (C++) ===== Видеоинструкция ===== {{youtube>OaKbsgk6XPw?large}} ===== Что потребуется ===== [[amp>collection/wild-gunman?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki | Полный сет]] компонентов проекта. В сет входят: * [[amp>product/iskra-neo?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Iskra Neo]] * [[amp>product/arduino-troyka-slot-shield?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Troyka Slot Shield]] * [[amp>product/structor-slot-box?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|#Slot Box]] * красные и синяя [[amp>product/troyka-led-button?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|светодиодные кнопки]] * [[amp>product/troyka-buzzer?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|пьезопищалка]] ===== Как собрать ===== Установите [[amp>product/arduino-troyka-slot-shield?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Troyka Slot Shield]] на [[amp>product/iskra-neo?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|Iskra Neo]] {{ :slot-box:wild-gunman:step1.png |}} Вставьте два модуля [[amp>product/troyka-quad-display?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|светодиодных кнопок]] в нижние угловые слоты, повернув их на 90 градусов по часовой стрелке. {{ :slot-box:wild-gunman:step2.png |}} Вставьте модуль [[amp>product/troyka-led-button?utm_source=proj&utm_campaign=slot-proj-5&utm_medium=wiki|зуммера]] в центральный верхний слот. {{ :slot-box:wild-gunman:step3.png |}} ===== Скетч ===== Прошейте контроллер скетчем через [[../установка-и-настройка-arduino-ide|Arduino IDE]]. // пин с пищалкой #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-box:start#хочу_собрать|списка проектов на Slot Shield]].