Arduino

Неопиксельное кольцо отображающее «здоровье» в компьютерной игре + вибродатчик при каждом ранении

Если сказать проще, то это светодиодное кольцо с вибромотором, которое реагирует на каждое попадания в персонажа игрока. Т.е. если вас в игре на компьютере «подстрелили», то светодиоды поменяют цвет свечения, а вибромотор кратковременно начнет работать.
Для изготовления такого устройства мастер использовал следующие

Инструменты и материалы:
-Esp-12E;
-Вибрационный двигатель 4 мм x 8 мм;
-Регулятор AMS1117 3,3 В;
-Аккумулятор 3,3 В 800 мАч (1 А);
-Лента-липучка;
-Штыревой разъем;
-Угловой штыревой разъем;
-Провода;
-Плата USB — TTL;
-Печатная плата;
-Паяльные принадлежности;
-Винтовая клемма;
-Резистор;
-Модуль зарядки Tp4056;
-Повышающий модуль MT3608;
-Неопиксельная светодиодная лента;
-Неопиксельное кольцо RGB;
-Модуль MCU;
-Макетная плата + блок питания;
-Регулятор напряжения 7805;
-Разъем постоянного тока;

Шаг первый: приложение Python Gamer Assist
Это приложение, которое считывает данные из игры и отправляет их на микроконтроллер.

Для запуска программы потребуется файл конфигурации csv, который будет содержать расположение полосы здоровья в игре и другую информацию для обработки данных. Итак, первый шаг — создать файл конфигурации.

Программа удобна в использовании с графическим интерфейсом, и можно настроить для любой игры.

Сначала нужно сделать снимок экрана игры, когда игра находится в полноэкранном режиме и значение здоровья четко видно. Нажимаем сочетание клавиш Alt + tab, и переходим к приложению python. Затем нажимаем Edit config. Делаем захват (прямоугольник) вокруг значения здоровья. Сохраняем файл. Это однократная операция, которую, возможно, придется проделывать для каждой игры.

Теперь нужно вернуться на домашнюю страницу и загрузить файл конфигурации. Просто нужно нажать кнопку запуска, и программа должен прочитать данные на экране и отправить их на устройство.

Шаг второй: адресный светодиод RGB
Основная часть этого проекта — управление светодиодами RGB. В отличие от обычных светодиодов, RGB можно управлять каждым светодиодом индивидуально.

Для управления светодиодами мастер собирает следующую схему.

Светодиодная лента работает от источника питания 12 В. Регулятор 7805 понижает это напряжение до 5 В и отправляет на NodeMCU.
Для программирования этих адресуемых светодиодов можно использовать несколько библиотек, наиболее популярными из которых являются FastLED и библиотека adafurit_Neopixel. Мастер использует библиотеку FastLED для светодиодной ленты.

Чтобы проверить работу, нужно открыть пример скетча FastLED. Вот два важных момента, о которых следует помнить. Во-первых, нужно знать, какие драйверы светодиодов используются в ленте и сколько светодиодов в ленте. В данном случае их 5. Эти данные указываются в коде.

Шаг третий: код для светодиодов
Для беспроводной передачи данных используется протокол esp-now.
Чтобы получить код, нужно перейти репозиторий и загрузить проект «gamer assist». Затем открыть папку с кодом arduino и загрузите скетч find_MAC_address. После загрузки кода нужно открыть монитор последовательного порта и записать MAC-адрес NodeMCU, он пригодится в дальнейшем. Получив MAC-адрес, нужно загрузить эскиз health_value_ambient, который будет управлять цветом светодиодов в зависимости от значения здоровья. Перед загрузкой нужно убедитесь, что имя драйвера IC и количество светодиодов установлены правильно. В данном случае это GS1903, а количество светодиодов равно 5.
Find_MAC_address.ino
Health_Value_Ambient.ino

Чтобы проверить, работу неопиксельного кольца, нужен еще один NodeMCU, который может получать последовательные данные из приложения python и передавать данные через протокол esp now.

Открываем файл Serial в esp_now.ino. В этом файле вводим MAC-адрес, который был записан ранее и затем просто компилируем и загружаем код. Теперь мы можем запустить приложение Python. Если пользователь играете в игру, светодиодная полоса должна менять свой цвет с зеленого на красный, в зависимости от показателя здоровья в игре.
Serial_to_ESPNOW.ino

Шаг четвертый: вибромотор
Для тактильного отзыва о состоянии здоровья мастер решил установить два вибромотора.
Сначала нужно припаять к светодиодному RGB-кольцу провода. Затем кольцо монтируется на плату. Согласно схеме монтирует esp12E, вибромотор и драйвер. Затем припаивает повышающий преобразователь и схему зарядки TP4056 на обратной стороне печатной платы. Наконец, монтирует стабилизатор 3,3 В.

Устанавливает батарею.

Шаг пятый: код для вибродатчиков
Теперь можно загрузить код в esp12E. Мастер подключается через модуль FTDI. Как только соединение будет установлено, нужно загрузить код MAC-адреса для поиска.

Затем нужно отсоединить заземляющий провод от GPIO-0 и перезапустите esp12E. Дальше нужно открыть серийный код для esp now и измените MAC-адрес на адрес устройства, а затем загрузить код в NodeMCU.
Ring_code.ino
Find_MAC_address.ino

Шаг шестой: использование устройства
Откройте файл конфигурации игры в приложении Python, а затем просто нажмите «Пуск».
Можно также попробовать игры, в которых вместо значения здоровья отображается полоса здоровья, просто выбрав соответствующий параметр в окне редактора. Просто нужно установить, что при обработке изображения видна только одна белая линия. Белая линия показывает разделение между потерянным и оставшимся здоровьем. Затем приложение python использует эту информацию в строке для определения оставшегося здоровья.

Теперь осталось только закрепить на устройстве ленту-липучку и одеть его на руку.

Источник

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть