Підлітки 90-х прекрасно пам’ятають такі ігрові приставки, як dendy і sega. Як правило, в комплекті з приставками були два ігрових джойстика, і цього було достатньо для більшості ігор. Але були ігри, для яких було потрібно особливе обладнання, зокрема-пістолет. З цього пістолета потрібно було стріляти по, наприклад, качках на екрані телевізора. При попаданні в качку зараховувалося очко. Саме подібний пістолет і вирішив зробити майстер .

Інструменти та матеріали: – arduino uno;-фотоелемент;-мікроперемикач;-два резистора по 10 ком;-дроти;-картон;-соломка для коктейлю;-чорна ізолента;-невеликий шматочок пластиліну; – клей;

Крок перший: принцип работитогда мало хто розумів, як працює цей пристрій. Деякі говорили, що пістолет стріляє лазером, інші – світлом, були і такі, хто стверджував, що від пістолета “поламається екран”.

Насправді, все було набагато простіше. На пістолеті був встановлений фотоелемент і він не випускав світло, а навпаки, приймав.у момент натискання на курок екран на частку секунди ставав чорним (оку такий перехід непомітний). Наступний кадр показував на екрані білий квадрат саме в тому місці, де була качка в момент пострілу. Якщо пістолет був наведений точно в ціль, то фотоелемент фіксував перехід від чорного до білого і зараховував попадання.

Саме за таким принципом і буде реалізована дана саморобка. Правда майстер буде використовувати ардуіно, і пристрій адаптовано для рк-монітора комп’ютера.

Крок другий: стволсначала майстер виготовляє ствол пістолета. Для стовбура він використовує соломинку для коктейлю. Світло не повинен проникати крізь стінки соломинки, і він обертає її чорною ізоляційною стрічкою. Соломинка для пиття повинна бути довгою і вузькою, але достатньою для розміщення всередині фотоелемента.

До ніжок фотоелемента потрібно припаяти дроти, а сам фотоелемент закріпити всередині соломинки за допомогою пластиліну. Підключається він до аналоговому вході a2 arduino. Чим довше дріт – тим краще, легше буде протестувати настройку.кнопка підключається до цифрового входу 2 arduino. Це буде спускова скоба пістолета.

Крок третій: коддальше потрібно завантажити код в arduino:

Показати / приховати текст

У цьому коді є дві константи:фрагмент round_delay, не так вже й важливий. Він відповідає за затримку між натисканням кнопки і реакцією гри. Також, якщо значення досить великі, – може повністю пропустити натискання.

Фрагмент bam_delay – важливий. Вона дає грі час для перемикання між призначеним для користувача видом гри з деревами, кущами і качками і режимом виявлення пострілу з повністю чорним фоном і одним білим прямокутником.

Настройкадля настройки відкриваємо serial monitor (ctrl + shift + m) і встановлюємо швидкість передачі даних 115200. При натисканні на кнопку на моніторі має відобразитися

bam!2

Далі наводимо пістолет на білу ділянку екрану і знову натискаємо кнопку. Тепер має відобразитися щось на зразок:

bam!56

В останньому тесті наводимо пістолет на чорний ділянку екрану і натискаємо курок. Має відобразитися:

bam!0

Ці тести дозволяють переконатися, що кнопка працює нормально, а фотоелемент може розрізняти білі і чорні ділянки на екрані. Якщо у білого недостатньо високе значення – можна спробувати збільшити яскравість монітора.

Крок четвертий: іграігру можна використовувати ту, яку створив майстер або написати свою.при створенні гри потрібно враховувати наступні фактори: – фонове зображення, яке повинно бути намальовано за переднім планом і качками-зображення переднього плану повинно бути намальовано над качками. У нього повинен бути альфа-канал (порожній простір, прозорість), щоб можна було бачити качок за деревами.- повинна бути жива качка, в яку гравцеві доведеться стріляти – повинна бути мертва качка, якщо гравець домігся успіху-повинна бути собака без качки-повинна бути собака з качкою

Далі потрібно встановити бібліотеки pyserial і pygame

ps>pip install pyserialps>pip install pygame

Збережіть код нижче у файлі game.py:

Показати / приховати текст

При необхідності потрібно замінити рядок “com3” на ім’я послідовного інтерфейсу, використовуваного arduino на платформі користувача.далі можна запустити гру, використовуючи:

python game.руце проста гра, яка буде показувати по одній качці за раз, і реагувати на введення з послідовного порту. Коли він отримає якийсь сигнал від пістолета – він відобразить чорний фон з білим прямокутником в тому місці, де знаходилася качка. З попереднього сеансу настройки потрібно переконатися, що константа 20 підходить для фотоелемента.на цьому кроці можна переконатися, що все працює добре і в гру можна грати.для реалістичності і зручності потрібен пістолет. Його можна зробити самостійно, як майстер, або пристосувати іграшковий для цих цілей.крок шостий: остаточний результатпо словами майстра, гра цілком робоча, хоча є і відмінності від оригіналу. В оригінальній грі був режим одночасної стрільби по двох птахах. Цього можна домогтися декількома способами-можна спробувати запустити кілька раундів з відображенням білих прямокутників, по одному для кожного птаха. Або це можуть бути два фотоелементи, покриті кольоровими фільтрами, або більш складний датчик освітленості. У цьому випадку можна відобразити червоний прямокутник для одного птаха і синій прямокутник для іншого. Один пістолет можна використовувати для різних ігор за схожим принципом. Звичайно, форми самих пістолетів можуть посилити відчуття від гри. Зброю також можна оснастити тактильним відгуком, щоб зробити досвід стрілянину більш правдоподібною.також можна встановити датчик нахилу, який можна було використовувати для «перезарядки» гармати. Наприклад, можна обмежити кількість пострілів до 8. Щоб перезарядити пістолет, гравець повинен направити його вниз (датчик нахилу зафіксує цю подію), а потім вистрілити знову.на відео можна подивитися невеликий фрагмент гри. Джерело (source)