Arduino є дуже популярним для створення хобі проектів та ігор, і ми раніше використовували Arduino побудувати гру Snake, пінг - понг, Космічна гонка гри і т.д. Сьогодні ми будуємо ще одну популярну гру, використовуючи Arduino- дроти гри Базз або Steady гру рукою.
Для цього проекту ми використовуватимемо Arduino Uno, зуммер та два алюмінієві дроти. РК-дисплей 16x2 також підключений для відображення стану гри. Обидва кінці дроту лабіринту будуть підключені до цифрових штифтів 2 і 3 Arduino, а провід ручки - до заземлювального штифта Arduino. Цифрові штифти визначаються як INPUT_PULLUP штифти. Отже, коли дріт ручки торкається дроту лабіринту, він змінює стан цифрових штифтів на низький, і зумер видає звуковий сигнал.
На кінці дроту лабіринту підключений діод, тому, коли ви пройдете повз цей діод і торкнетесь дроту лабіринту круглим дротом рукоятки, низьким буде лише один штифт (контакт 3) У такому стані на РК-дисплеї відображатиметься текст привітання (Молодці).
Потрібні компоненти
- Arduino Uno
- Алюмінієвий дріт
- РК-дисплей 16x2
- Модуль I 2 C
- Макет
- Зумер
- Діод
Кругова діаграма
Принципова схема для Arduino Buzz Wire Game наведена вище. Виводи SCL та SDA модуля I2C підключені до висновків A5 і A4 Arduino, а висновки V CC та GND модуля I2C - до висновків 5V та GND Arduino. Позитивна шина зумера підключена до цифрового висновку 4 Arduino, а негативна - до GND. Виріжте алюмінієвий дріт і зігніть його у формі Зіг-Заг. Припаяти діод на одному кінці дроту. Потім виріжте ще один дріт, щоб вийшла ручка, і зігніть один кінець у петлю.
РК-дисплей 16x2 також може бути пов'язаний з Arduino без використання модуля I2C.
Підключіть шпильки D2 і D3 Arduino до обох кінців дроту Zig-Zag і підключіть провід ручки до штифта GND Arduino.
Пояснення коду
Повний код цієї гри Arduino Buzz Wire наведено в кінці документа.
Почніть свій код, включивши файл бібліотеки для РК-модуля. Бібліотека LiquidCrystal_I2C.h використовується для зв'язку I2C між модулями Arduino та РК.
#включати
Після цього визначте штифти Arduino для зумера, початкову точку дроту та кінцеву точку дроту.
const int startPin = 2; const int endPin = 3; const int зумер = 4;
Потім визначте дві змінні start & end_. Ці змінні будуть використані для збереження показань дроту.
int початок, кінець_;
Тепер визначте штифт зуммера як вихідний, а штирі дроту як INPUT_PULLUP . Arduino має внутрішні підтягувальні резистори зі значенням близько 20 кОм. Ці резистори можуть бути підключені внутрішньо за допомогою INPUT_PULLUP . Визначення INPUT_PULLUP функціонально те саме, що підключення резистора ~ 20 кОм між виводом і + 5 В.
pinMode (зумер, ВИХІД); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Всередині петлі порожнеч прочитайте стан дротових штифтів.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Тепер порівняйте показання дротяних штифтів. Якщо обидва штифти низькі, це означає, що ви торкнулися дроту, так що зумер видасть звук, а якщо початковий штифт дроту високий, а кінцевий низький, це означає, що ви досягли кінцевої точки.
if (start == LOW && end _ == LOW) {digitalWrite (зумер, HIGH); затримка (1000); digitalWrite (зумер, LOW); lcd.setCursor (0,0); lcd.print ("Повторити спробу"); Serial.print ("Повторити спробу"); } ще якщо (початок == ВИСОКИЙ && кінець _ == НИЗЬКИЙ) {lcd.setCursor (0,0); lcd.print ("Молодець"); Serial.print ("Молодець"); }
Тестування гри Buzz Wire
Після підключення апаратного забезпечення та завантаження заданого коду ви можете розпочати гру. Тож тримайте дріт із колом у руці і намагайтеся прокласти дріт із колом повз повз діод, припаяний зигзагоподібним дротом, не дозволяючи круглому дроту десь торкатися. Якщо торкнутися проводів, зуммер видасть звук, і на РК-дисплеї з’явиться повідомлення « Повторіть спробу ». І якщо ви закінчите гру, не торкаючись дроту, тоді на ньому з’явиться повідомлення « Молодці ».
Ось як ви можете створити гру з джгутом на Arduino. Робоче відео та повний код наведені нижче.