Зміст
ВСТУП 2
1 РОЗРОБКА СТРУКТУРНОЇ СХЕМИ ІГРОВОГО ТРЕНАЖЕРА УВАГИ 3
1.1 Огляд існуючих рішень для реалізації тренажера уваги 3
1.2 Завдання на курсову роботу 4
2 ВИБІР ЕЛЕМЕНТНОЇ БАЗИ ДЛЯ СИСТЕМИ ІГРОВОГО ТРЕНАЖЕРА УВАГИ 5
2.1 Керуючий елемент 5
2.2 Матрична клавіатура 8
2.3 Резистор 9
2.3 РК-дисплей 11
3 АЛГОРИТМ ФУНКЦІОНУВАННЯ ІГРОВОГО ТРЕНАЖЕРА УВАГИ 14
3.1 Розробка алгоритму 14
3.2 Програмування керуючого елементу 15
4 РОЗРОБКА СХЕМИ ЕЛЕКТРИЧНОЇ ПРИНЦИПОВОЇ ТА ДІАГНОСТИКА ЇЇ РОБОТИ 17
4.1 Опис основних взаємозв’язків між елементами схеми 17
4.2 Емуляція роботи тренажера 18
ВИСНОВКИ 20
ПЕРЕЛІК ПОСИЛАНЬ 21
ВСТУП
Розвиток комп’ютерної схемотехніки є основою удосконалення архітектури комп’ютерів, якісного підвищення їхньої продуктивності та надійності, істотного зменшення масових та габаритних показників. Комп'ютерна схемотехніка — це науково-технічний напрям, що охоплює проблеми проектування і дослідження схем електронних пристроїв радіотехніки і зв'язку, обчислювальної техніки, автоматики і інших областей техніки.
Технічні засоби комп'ютерної схемотехніки залежно від функцій, які вони виконують, поділяють на елементи, функціональні вузли і пристрої, а також мікропроцесори та комп'ютери. Вони призначені для оброблення дискретної інформації і тому називаються цифровими. Технічні засоби комп'ютерної схемотехніки в даний час основані на інтегральних мікросхемах (IMC) різного ступеня складності.
Arduino Uno — відмінний варіант плати для створення своїх перших проектів і розумних пристроїв. Унікальність Ардуіно полягає в тому, що навіть недосвідчений користувач зможе створювати різні складні цифрові пристрої, при цьому особливо не вдаючись в теорію. Раніше, наприклад, для цього були потрібні програматори, глибокі знання цифрової електроніки, програмування.
Звичайно, плідна робота вимагає деяких знань: схемотехніки, електроніки, і навіть основ програмування на мові С++. Однак це нескладно, якщо все докладно розглянути і вивчити. Показана вище плата не є єдиною платою в цьому сімействі.
Місця використання Arduino можна перераховувати довго, так як можливості її нічим не обмежені. За допомогою цього пристрою можна спроектувати безліч різних систем, які будуть допомагати людині в побутових ситуаціях, а також в промисловому виробництві, медицині та інших сферах нашого життя.
Моїм завданням курсової роботи є розробка ігрового тренажера уваги. Ця тема має несподівано багато можливостей для застосування. Наприклад, окрім банального використання в розважальних цілях, можна тестувати вміння концентрувати свою увагу під час прийому на роботу, яка вимагає бути довгий час в зосередженому стані (наприклад диспетчер авіаперевезень). Ще, як варіант, запровадити обов’язкове проходження водіїв громадського транспорту хвилинного тесту на тренажері перед початком рейсу — для запобігання водіння в неадекватному/втомленому стані.
В процесі розробки курсової роботи буду користуватися комп’ютером, на базі ОС Windows 10 Pro. Розробляти схему ігрового тренажера уваги та перевіряти його працездатність буду в середовищі Tincercad, писати код для мікроконтролера буду на мові C. Для оформлення даної роботи буду використовувати MS Word 2019.
1 РОЗРОБКА СТРУКТУРНОЇ СХЕМИ ІГРОВОГО ТРЕНАЖЕРА УВАГИ
1.1 Огляд існуючих рішень для реалізації тренажера уваги
Тренажери в сучасному розумінні з’явилися, коли виникла необхідність масової підготовки фахівців для роботи або на однотипному обладнанні, або з схожими робочими діями. У зв'язку з швидкою комп'ютеризацією світової спільноти, зі створенням найскладнішої техніки, експлуатація якої пов'язана з ризиком для життя не тільки однієї людини, але і людства в цілому, виникла ціла індустрія - тренажерні технології.
Тренажерні технології - це складні комплекси, системи моделювання та симуляції, комп'ютерні програми та фізичні моделі, спеціальні методики, створювані для того, щоб підготувати особистість до прийняття якісних і швидких рішень. Тренажерні технології виникли і отримали найбільший розвиток там, де помилки при навчанні на реальних об'єктах можуть призвести до надзвичайних наслідків, а їх усунення - до великих фінансових затрат: атомній енергетиці, у військовій справі, медицині, авіації та космосі.
Імітаційна модель - програмна модель, використовувана в імітаційному комп’ютері, реалістично відображає взаємодію компонентів і систем модельованого процесу. Це найбільш важлива частина тренажерної системи, від ступеня наближеності імітаційної моделі до реального об'єкту або ситуації залежить якість одержуваних навичок.
Окремо слід зазначити клас тренажерів, що не використовують спеціальну апаратну частину інтерфейсу. Це чисто комп'ютерні тренажери. Роль інтерфейсу в них виконують стандартні пристрої введення-виведення комп'ютера: клавіатура, миша, монітор. Застосування таких тренажерів доцільно у випадках, коли в модельованих об'єктах і ситуаціях немає необхідності у використанні спеціального обладнання. Прикладом можуть бути тренажери щодо прийняття рішень і вироблення навичок поведінки, не пов'язані безпосередньо з управлінням якимись пристроями. В даний час все більше число компаній починає впроваджувати в якості технічних засобів автоматизації програмнотехнічні комплекси (ПТК), виконані на базі засобів обчислювальної техніки.
Повномасштабний тренажер - це комплексний тренажер, в якому з високим ступенем подібності відтворюються реальні робочі місця групи тренованих фахівців. Комплексний тренажер - це тренажер, призначений для спільної підготовки групи фахівців в повному обсязі алгоритмів їх діяльності або одного фахівця, діяльність якого здійснюється за кількома спеціальностями.
Тренажерна підготовка на сучасному рівні не може розглядатися інакше як важлива складова інформаційних технологій навчання персоналу (IT-підготовка) і включає наступні компоненти:
організаційну структуру;
нормативну базу;
навчально-методичне забезпечення;
технічні засоби навчання.
Для примітивного і швидкого тестування базових навичок, таких як концентрація уваги, швидкість реакції та прийняття рішень, тощо виникає попит на прості і дешеві тренажери. Задовільнити цей попит здатні вироби, створені на базі Arduino. Вони є відносно дешевими, їх легко розробляти і пристосовувати до потреб. Ці якості вигідно виділяють їх на фоні інших, так само дешевих, але дуже спеціалізованих виробів на базі примітивних мікроконтроллерів.
1.2 Завдання на курсову роботу
Метою цієї курсової роботи є створення і розробка ігрового тренажера уваги на базі мікроконтролера Arduino UNO R3. Схема буде спроектована та проемульована в середовищі Tinkercad. ГВЧ складається з 1 резистора, 1 матричної клавіатури і 1 РК-екрану. .
На рис. 1.2 представлена структурна схема ігрового тренажера уваги:
/
Рисунок 1.2: - Структурна схема ігрового тренажера уваги
Принцип роботи такий: тренажер виводить на екран символ, який переміщається по екрану зліва направо. Якщо натиснути клавішу з символом, який співпадає з символом на екрані, то екран очиститься і з’явиться новий символ. Якщо нічого не робити, або натискати неправильні клавіши, то символ продовжить переміщатися, а коли досягне кінця екрана, з’явиться новий.
2 ВИБІР ЕЛЕМЕНТНОЇ БАЗИ ДЛЯ СИСТЕМИ ІГРОВОГО ТРЕНАЖЕРА УВАГИ
2.1 Керуючий елемент
Центральним вузлом схеми буде мікроконтролер Arduino UNO R3 – пристрій на основі мікроконтролера ATmega328. У його склад входить все необхідне для зручної роботи з мікроконтролером: 14 цифрових входів/виходів (з них 6 можуть використовуватися в якості ШІМ-виходів), 6 аналогових входів, кварцовий резонатор на 16 МГц, роз'єм USB, роз'єм живлення, роз'єм для внутрисхемного програмування (ICSP) і кнопка скидання. Для початку роботи з пристроєм досить просто подати живлення від AC/DC-адаптера або батарейки, або підключити його до комп'ютера за допомогою USB-кабелю.
Обсяг флеш-пам'яті ATmega328 становить 32 КБ (з яких 0.5 КБ використовуються загрузчиком). Мікроконтролер також має 2 КБ пам'яті SRAM і 1 КБ EEPROM (з якої можна зчитувати або записувати інформацію за допомогою бібліотеки EEPROM).
Щоб кожен раз перед завантаженням програми не було потрібно натискати кнопку скидання, Arduino Uno спроектований таким чином, що дозволяє здійснювати його скидання програмно з підключеного комп'ютера. Один з виходів ATmega16U2, який бере участь в управлінні потоком даних (DTR), з'єднаний з висновком RESET мікроконтролера ATmega328 через конденсатор номіналом 100 нФ. Коли на лінії DTR з'являється нуль, вихід RESET також переходить в низький рівень на час, достатній для перезавантаження мікроконтролера. Дана особливість використовується для того, щоб можна було прошивати мікроконтролер всього одним натисненням кнопки в середовищі програмування Ардуіно. Така архітектура дозволяє зменшити таймаут завантажувача, оскільки процес прошивки завжди синхронізований зі спадом сигналу на лінії DTR.
В Arduino Uno є відновлювані запобіжники, що захищають USB-порт комп'ютера від коротких замикань і перевантажень. Незважаючи на те, що більшість комп'ютерів мають власний захист, такі запобіжники забезпечують додатковий рівень захисту. Якщо від USB-порту споживається струм більше 500 мА, запобіжник автоматично розірве з'єднання до усунення причин короткого замикання або перевантаження.
На відміну від всіх попередніх плат Ардуіно, Uno в якості перетворювача інтерфейсів USB-UART використовує мікроконтролер ATmega16U2 замість мікросхеми FTDI. На рис. 2.1 зображена внутрішня архітектура Arduino UNO R3.
/
Рисунок 2.1 - Внутрішня архітектура Arduino UNO R3
(https://voltiq.ru/wiki/arduino-uno-review/)
Arduino Uno може живитися від USB або від зовнішнього джерела живлення — тип джерела вибирається автоматично.
В якості зовнішнього джерела живлення (НЕ USB) може використовуватися мережевий AC/DC-адаптер або акумулятор/батарея. Штекер адаптера необхідно вставити у відповідний роз'єм живлення на платі. У разі живлення від акумулятора / батареї, її проводу необхідно під'єднати до виходів Gnd і Vin роз'єму POWER.
Напруга зовнішнього джерела живлення може бути в межах від 6 до 20В. Однак, зменшення напруги живлення нижче 7В призводить до зменшення напруги на виході 5V, що може стати причиною нестабільної роботи пристрою. Використання напруги більше 12 В може призводити до перегріву стабілізатора напруги і виходу плати з ладу. З огляду на це, рекомендується використовувати джерело живлення з напругою в діапазоні від 7 до 12 В.
З використанням функцій pinMode(), digitalWrite() і digitalRead() кожен з 14 цифрових виводів може працювати в якості входу або виходу. Рівень напруги на виводах обмежений 5В. Максимальний струм, який може віддавати або споживати один вивід, становить 40 мА. Всі виводи пов'язані з внутрішніми підлаштовними резисторами (за замовчуванням відключеними) номіналом 20-50 кОм. Крім цього, деякі виводи Ардуіно можуть виконувати додаткові функції. На рис. 2.2 зображена діаграма виводів Arduino UNO.
/
Рисунок 2.2 - Діаграма виводів Arduino UNO
(https://arduinomaster.ru/platy-arduino/plata-arduino-uno/)
У плати Arduino UNO є 6 аналогових входів, позначених A0-A5 . Роздільна здатність аналогового цифрового перетворення 10 розрядів. За замовчуванням, вхідна напруга вимірюється щодо землі в діапазоні 0-5 В, але може бути змінена за допомогою виведення AREF і програмних установок. В табл. 2.1 наведений опис решти його виводів:
Таблиця 2.1 - Опис виводів Arduino UNO R3
VCC
«Цифрова» напруга живлення
GND
«Земля»
0 (RX) і 1 (TX)
Використовуються для отримання (RX) і передачі (TX) даних по послідовному інтерфейсу. Ці виходи з'єднані з відповідними виходами мікросхеми ATmega8U2, яка виконує роль перетворювача USB-UART.
2 і 3.
Можуть служити джерелами переривань, що виникають при фронті, спаді або при низькому рівні сигналу на цих виходах.
ШІМ: виходи 3, 5, 6, 9, 10 і 11
За допомогою функції analogWrite() можуть виводити 8-бітові аналогові значення в вигляді ШІМ-сигналу.
Інтерфейс SPI: виходи 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
Із застосуванням бібліотеки SPI дані виходи можуть здійснювати зв'язок по інтерфейсу SPI.
AREF
Опорна напруга для аналогових входів. Може бути задіяна функцією analogReference ().
Світлодіод: 13.
Вбудований світлодіод, приєднаний до виходу 13. При відправці значення HIGH світлодіод включається, при відправці LOW - вимикається.
RESET
Вивід скидання контролера. Низький рівень на цьому виході триває довше ніж мінімальна тривалість імпульсу генерує скидання, навіть якщо ЦПУ не запущено. Більш короткі імпульси не генерують скидання в більшості випадків.
2.2 Матрична клавіатура
Об'єднання в один модуль декількох тактових кнопок спрощує конструкцію панелі управління приладу і економить порти Arduino або мікроконтролера. Клавіатура виконана у вигляді матриці 4×4, кожна кнопка є областю повітряного зазору між двома діелектричними шарами з нанесеним на них струмопровідним п++окриттям. Доріжки покриття одного шару нанесені горизонтально (виходи 1-4), а іншого вертикально (виходи 5-8). Натискання на кнопку призводить до з'єднання доріжки одного шару з доріжкою іншого і замикання одного з виходів 1-4 з одним з виходів 5-8. Нумерація виходів матричної клавіатури зображена на рис. 2.3.
/
Рисунок 2.3 – Нумерація виходів матричної клавіатури
(http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:keypad-4x4)
Матрична 16-кнопкова клавіатура знайде застосування в кодових замках, пультах дистанційного управління і в інших цікавих проектах. В табл. 2.2 наведені основні характеристики матричної клавіатури:
Таблиця 2.2 - Основні характеристики матричної клавіатури
Габарити
68×77×0,8 мм
Робоча напруга
до 12 В
Максимальний струм
100 мА
Опір ізоляції
>100 МОм
Опір контактів
<200 Ом
Вага
10 г
2.3 Резистор
Резистор — пасивний елемент електричного кола, призначений для використання його електричного опору. Основною характеристикою резистора є величина його електричного опору. Зовнішній вигляд типового резистора зображено на рис. 2.4.
/
Рисунок 2.4 – Зовнішній вигляд типового резистора
(https://uk.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80)
Резистори належать до електронних компонентів, що застосовуються в схемах електротехніки та електроніки для обмеження сили струму та розподілу напруги. Резистори — найпоширеніші пасивні компоненти електронної апаратури, що використовуються як навантаження, споживачі та подільники в колах живлення, як елементи фільтрів, шунти, в колах формування імпульсів тощо.
Резистори характеризують номінальним значенням електричного опору, прийнятним відхиленням від нього, максимальною потужністю розсіювання, граничною електричною напругою та температурним коефіцієнтом електричного опору.
Номінальна потужність розсіювання перетворюється на тепло, яке повинно розсіюватися корпусом резистора до того, як його температура підвищиться до критичної. Дискретні резистори в електронних системах зазвичай мають потужність 1/10, 1/8 або 1/4 Вт. Зазвичай, вони поглинають набагато менше, ніж 1Ватт. Резистори, необхідні для розсіювання значної кількості енергії, особливо, що використовується в джерелах живлення, схемах перетворення потужності та підсилювачах потужності, як правило, називають резисторами живлення; це означення не застосовується для резисторів з номінальною потужністю менше 1 Вт. Якщо середня потужність, що розсіюється резистором, перевищує його потужність, може виникнути пошкодження резистора, постійно змінюючи його опір. Надмірне розсіювання потужності може підвищити температуру резистора до точки, де він може спалити друковану плату або сусідні компоненти, або навіть викликати пожежу. Є вогнестійкі резистори, які виходять з ладу перш, ніж вони небезпечно перегріваються.
Залежно від призначення, резистори діляться на дві групи: резистори загального призначення та резистори спеціального призначення, до яких належать: високоомні резистори, високовольтні резистори, високочастотні резистори та прецизійні резистори. За технологією монтажу резистори поділяють на вивідні і SMD.
Вивідні резистори призначені для монтажу крізь друковану плату. Виходи можуть розташовуватися аксіально і радіально. Такі деталі використовувалися в старій аудіо- та відеоапаратурі. Зараз вони застосовуються в простих апаратах і в тих випадках, коли використання SMD-резисторів з яких-небудь причин неможливо. Вивідні резистори по конструкції бувають дротяними, металоплівковими і композитними.
SMD-резистори розраховані на поверхневий монтаж і виходів не мають. Ці мініатюрні деталі малої товщини виготовляються прямокутної або овальної форми. Мають невеликі контакти, впаяні в поверхню. Їх переваги - економія місця на платі, спрощення і прискорення процесу складання плати, можливість використання для автоматизованого монтажу.
SMD-резистори виготовляють за плівковою технологією. Вони можуть бути тонко- і товстоплівковими. Резистивну товсту або тонку плівку наносять на ізоляційну підкладку. Підкладка виконує дві функції: основи та тепловідводної компонента.
В схемах з Arduino резистори використовуються у випадках, коли напруга, яку за замовчуванням видає пін Arduino (5В), занадто велика для приладу або деталі і може призвести до небажаних наслідків. Наприклад, світлодіоду потрібно всього 3В. Якщо резистор не ставити, то світлодіод буде споживати набагато більше струму ніж йому необхідно. Це призведе до більш швидкої розрядки акумулятора (якщо ваша Ардуіно живлення від нього), до неправильного кольору світіння (якщо світлодіод кольоровий) і до швидкого перегорання світлодіода. Для того що б розрахувати номінал резистора треба знати напругу і силу струму, необхідну для конкретного приладу.
2.3 РК-дисплей
Рідкокристалічний дисплей (LCD) – це електронний пристрій візуального відображення інформації, принцип дії якого ґрунтується на явищі електричного переходу Фредерікса в рідких кристалах. Дисплей складається з довільної кількості кольорових або монохромних точок (пікселів), і джерела світла або відбивача. Зовнішній вигляд РК-індикатора на прикладі MT-12232A-2FLB зображено рис. 2.5.
/
Рисунок 2.5 – Зовнішній вигляд РК-індикатора на прикладі MT-12232A-2FLB
(http://www.melt.com.ru/en/shop/mt-12232a-2flb-2.html)
Кожна з кольорових точок рідкокристалічного дисплея складається з кількох комірок, попереду яких встановлюються світлові фільтри (найчастіше – червоний, синій і зелений). Тобто колір певної точки і її яскравість визначається інтенсивностями світіння комірок, з яких вона складається. Керування кожною рідкокристалічною коміркою здійснюється з допомогою напруги, яку подає на комірку один з транзисторів тонкої підкладки.
Рідкокристалічні дисплеї мають низьке енергоспоживання, тому вони знайшли широке застосування, як в кишенькових пристроях (годинниках, мобільних телефонах, кишенькових комп'ютерах), так і в комп'ютерних моніторах, телевізорах тощо. Будову рідкокристалічної матриці зображено на рис. 2.6.
/
Рисунок 2.6 – Будова рідкокристалічної матриці
(https://uk.wikipedia.org/wiki/%D0%A0%D1%96%D0%B4%D0%BA%D0%BE%D0%BA%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BB%D1%96%D1%87%D0%BD%D0%B8%D0%B9_%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B9)
Екран LCD є масивом маленьких сегментів (пікселів), котрими можна маніпулювати для відображення інформації. LCD має кілька шарів, де ключову роль грають дві панелі, зроблені з вільного від натрію і дуже чистого скляного матеріалу, який називають субстратом або підкладкою. Проміжок між шарами заповнений тонким шаром рідкого кристалу. На панелях є борозенки, що надають їм спеціальної орієнтації. Борозенки розташовані паралельно між собою в межах кожної панелі, але борозенки однієї панелі перпендикулярні до борозенок іншої. Поздовжні борозенки утворюються внаслідок нанесення на скляну поверхню тонких плівок прозорого пластику, що потім спеціальним чином обробляється.
Борозенки орієнтують молекули рідкого кристалу однаково у всіх комірках. Молекули одного з типів рідких кристалів (нематиків) при відсутності напруги повертають вектори електричного (і магнітного) полів світлової хвилі на деякий кут у площині, перпендикулярній до напрямку поширення світлового променя. Нанесення борозенок на поверхню скла дозволяє забезпечити однаковий кут повороту площини поляризації для всіх комірок. Проміжок між панелями дуже тонкий.
Рідкокристалічні дисплеї класифікуються на три типи: статичний привід, пасивний матричний привід та активний матричний привід. Серед них тип пасивної матриці можна далі розділити на кручені нематичні (TN), суперкручені нематичні (STN) та інші дисплеї з рідкокристалічним приводом з пасивною матрицею; в той час як тип активної матриці можна приблизно розділити на тонкоплівковий транзистор (тонкоплівковий транзистор; TFT) і двоконечний діод (метал / ізолятор / метал; MIM).
Рідкокристалічні дисплеї типу TN, STN та TFT відрізняються за кутом огляду, кольором, контрастом та анімацією, завдяки різниці в принципі скручування молекул рідкокристалічного типу, завдяки чому вони чітко розрізняються в асортименті продуктів. Що стосується сучасного діапазону застосувань та рівня технології рідкокристалічного відображення, то технологія активного матричного приводу в основному базується на тонкоплівковому транзисторі (TFT) і в основному використовується в портативних комп'ютерах та продуктах анімації та обробки зображень. В даний час технологія чистого матричного приводу в основному базується на реверсивній нематиці (TN) та надкрученій нематиці (STN). Поточні програми – це в основному текстові процесори та споживчі товари. Серед них рідкокристалічний дисплей TFT вимагає високих капіталовкладень та технічних вимог, тоді як технічні та фінансові вимоги TN та STN відносно низькі.
3 АЛГОРИТМ ФУНКЦІОНУВАННЯ ІГРОВОГО ТРЕНАЖЕРА УВАГИ
3.1 Розробка алгоритму
Суть алгоритму полягає в тому, що при підключенні живлення, тренажер виводить на екран символ, який переміщається по екрану зліва направо. Якщо натиснути клавішу з символом, який співпадає з символом на екрані, то екран очиститься і з’явиться новий символ. Якщо нічого не робити, або натискати неправильні клавіши, то символ продовжить переміщатися, а коли досягне кінця екрана, з’явиться новий. Припинити роботу тренажера можна в будь-яку мить шляхом вимкнення живлення. На рис. 3.1 представлено алгоритм роботи тренажера.
/
Рисунок 3.1 - Алгоритм роботи ігрового тренажера уваги
3.2 Програмування керуючого елементу
Бібліотека LiquidCrystal дозволяє Ардуіно управляти різними РК-дисплеями (LCD), побудованими на базі чіпсета Hitachi HD44780 (або сумісного з ним). У бібліотеці реалізований як 4-х, так і 8-бітний режими роботи (тобто є можливість використовувати 4 або 8 ліній даних, спільно з керуючими лініями RS, Enable і RW).
Бібліотека Keypad служить для використання спільно з Arduino клавіатур матричного типу. Дана бібліотека була розроблена для створення рівня абстракції для апаратного забезпечення. Вона покращує читаність коду, приховуючи від користувача виклики функцій pinMode і digitalRead.
Весь цикл клавіатура перевіряється на наявність сигналів. Коли сигнал приніс клавішу, то її символ записується в змінну «key», а її номер в змінну «а». Потім змінна «b» (в якій знаходиться випадковий символ, який виводиться на екран) порівнюється зі змінною «а». Якщо вони співпадають – екран очищається, генерується новий випадковий символ і цикл починається з початку. Якщо номер клавіші неправильний або нічого не натиснуто взагалі, то символ «b» переміщається по екрану поки не дійде до кінця, після чого екран очищається, генерується новий випадковий символ і цикл починається з початку.
Код для мікроконтролера написав на мові C в середовищі Tincercad. Повний лістинг коду програми наведено у Додатку А даної курсової роботи.
4 РОЗРОБКА СХЕМИ ЕЛЕКТРИЧНОЇ ПРИНЦИПОВОЇ ТА ДІАГНОСТИКА ЇЇ РОБОТИ
4.1 Опис основних взаємозв’язків між елементами схеми
На рис. 4.1 представлена схема тренажера, яка складається з Arduino UNO R3, матричної клавіатури, РК-екрана і резистора, з допомогою якого екран підключається до керуючого елемента.
/
Рисунок 4.1: - Схема тренажера уваги
Підключати клавіатуру до плати слід 8 виводами, кожен з них зчитує значення з певних рядків і стовпців. Підключати їх слід до виводів на панелі Digital. РК-дисплей підключений до плати Arduino в 4-бітному режимі, тобто використовуються 4 його контакти даних.
4.2 Емуляція роботи тренажера
Після запуску емуляції відразу на РК-екран виведеться випадково згенерований символ. На рис. 4.2 зображено увімкнений тренажер уваги. На рис. 4.3 зображено увімкнений тренажер уваги, коли натиснута неправильна клавіша.
/
Рисунок 4.2 - Увімкнений тренажер уваги
/
Рисунок 4.3 - Увімкнений тренажер уваги, коли натиснута неправильна клавіша
ВИСНОВКИ
Під час виконання цієї курсової роботи я розробив схему ігрового тренажера уваги. Прочитав та вивчив багато нового матеріалу пов’язаного з галуззю комп’ютерної схемотехніки. Розібрав технічну документацію різних мікроконтролерів, зупинився на Arduino UNO, так як його характеристики підходять для побудови моєї схеми. Поглибив знання та розвинув навички роботи з Arduino. Дізнався про різні входи і виходи на платах Arduino.
Схему будував в середовищі Tincercad. На схемі окрім МК також використав в своїй роботі такі елементи як: резистор, РК-екран та матричну клавіатуру. МК Arduino UNO R3 підтримує мову «С» на якій я написав код для правильної роботи ігрового тренажера уваги. Під час перевірки роботи схеми впевнився в правильності її роботи, а саме: при підключенні живлення, тренажер виводить на екран символ, який переміщається по екрану зліва направо. Якщо натиснути клавішу з символом, який співпадає з символом на екрані, то екран очиститься і з’явиться новий символ. Якщо нічого не робити, або натискати неправильні клавіши, то символ продовжить переміщатися, а коли досягне кінця екрана, з’явиться новий.
Мою схему можна покращити створивши можливість налаштовувати швидкість переміщення символа по екарну, або додавши таймер, по закінченню відліка якого буде виводитися на екран середня швидкість реакції на символ, кількість правильних символів та іншу статистику за відведений час.
ПЕРЕЛІК ПОСИЛАНЬ
Біжучий рядок в Arduino [Електронний ресурс] – Режим доступу до ресурсу: https://xn--18-6kcdusowgbt1a4b.xn--p1ai/lcd-1602-%D0%B1%D0%B5%D0%B3%D1%83%D1%89%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0/#2
Керівництво по Arduino для початківців [Електронний ресурс] – Режим доступу до ресурсу: https://radioprog.ru/post/108
Підключення матричної клавіатури до Arduino [Електронний ресурс] – Режим доступу до ресурсу: http://edurobots.ru/2017/03/arduino-keypad/
Конструктивні особливості Аrduino Uno [Електронний ресурс] – Режим доступу до ресурсу: https://electrosam.ru/glavnaja/slabotochnye-seti/oborudovanie/arduino-uno/
Загальні відомості про Arduino Uno [Електронний ресурс] – Режим доступу до ресурсу: https://doc.arduino.ua/ru/hardware/Uno
Сторінка на Вікіпедії про Arduino Uno [Електронний ресурс] – Режим доступу до ресурсу: https://uk.wikipedia.org/wiki/Arduino_Uno
Призначення і принцип роботи матричної клавіатури [Електронний ресурс] – Режим доступу до ресурсу: https://3d-diy.ru/wiki/arduino-moduli/elastichnaya-matrichnaya-klaviatura-4x4/
Проект гри на реакцію на Arduino [Електронний ресурс] – Режим доступу до ресурсу: https://github.com/voltnik/ReactGame#chapter-4
Наукова робота на тему: «Підвищення надійності при прийнятті рішень оперативним персоналом АЕС в нештатних аварійних ситуаціях» [Електронний ресурс] – Режим доступу до ресурсу: https://events.pstu.edu/konkurs-energy/wp-content/uploads/sites/2/2019/03/%D0%A2%D1%80%D0%B5%D0%BD%D0%B0%D0%B6%D0%B5%D1%80.pdf
Діаграма виводів Arduino UNO [Електронний ресурс] – Режим доступу до ресурсу: https://andriy1024.github.io/home-protector/menu/elementbase.html
Інструкція з монтажу, приклади використання матричної клавіатури [Електронний ресурс] – Режим доступу до ресурсу: http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:keypad-4x4
Сторінка на Вікіпедії про резистори [Електронний ресурс] – Режим доступу до ресурсу: https://uk.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80
Стаття з радіоелектроніки на тему: «Що таке резистор» [Електронний ресурс] – Режим доступу до ресурсу: https://www.radioelementy.ru/articles/chto-takoe-rezistor/
Для чого потрібно використовувати резистори в схемах з Arduino [Електронний ресурс] – Режим доступу до ресурсу: https://all-arduino.ru/arduino-dlya-nachinayushhih-urok-7-osnovy-shemotehniki/
Сторінка на Вікіпедії про рідкокристалічний дисплей [Електронний ресурс] – Режим доступу до ресурсу: https://uk.wikipedia.org/wiki/%D0%A0%D1%96%D0%B4%D0%BA%D0%BE%D0%BA%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BB%D1%96%D1%87%D0%BD%D0%B8%D0%B9_%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B9
Додаток А (окремий файл)
#include <LiquidCrystal.h>
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char key;
long a, b;
int positionCounter;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
byte rowPins[ROWS] = {7,6,5,4};
byte colPins[COLS] = {3,2,1,0};
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
void setup() {
lcd.begin(16, 2);
randomSeed(analogRead(0));
b = random(16);
}
void loop() {
key = kpd.getKey();
lcd.setCursor(0,1);
switch(key)
{
case '0' ... '9':
a = key - '0';
lcd.print(a);
break;
case 'A':
a = 10;
lcd.print('A');
break;
case 'B':
a = 11;
lcd.print('B');
break;
case 'C':
a = 12;
lcd.print('C');
break;
case 'D':
a = 13;
lcd.print('D');
break;
case '#':
a = 14;
lcd.print('#');
break;
case '*':
a = 15;
lcd.print('*');
break;
}
lcd.setCursor(0,0);
if (b >= 0 && b <= 9) lcd.print(b);
else if (b == 10) lcd.print("A");
else if (b == 11) lcd.print("B");
else if (b == 12) lcd.print("C");
else if (b == 13) lcd.print("D");
else if (b == 14) lcd.print("#");
else if (b == 15) lcd.print("*");
delay(300);
positionCounter++;
if (a == b) positionCounter = 16;
if (positionCounter == 16)
{
lcd.clear();
b = random(16);
positionCounter = 0;
}
lcd.scrollDisplayRight();
delay(200);
}