https://usamodelkina.ru/14300-igra-peretjagivanie-kanata-na-arduino.html Доброго времени суток, уважаемый читатель моей статьи , сегодня в этой статье мне хотелось бы рассказать тебе, как собрать игру "перетягивание каната" на ардуино
ВОТ ЧТО ТЕБЕ ПОНАДОБИТСЯ:
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) {} // «подвешиваем» плату до перезагрузки}
Далее собираем все по этой схеме:
у вас должно получится примерно так:
после того как "канат" перешел на сторону 1 из игроков игра заканчивается, перезагрузить ее можно нажав кнопку на самой ардуине
Надеюсь вам понравился этот проект а с вами бал DeNiS Geek pro100, на этом у меня все ПОКА!
Автор: DeNiS GeeK PRO100
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев