Ambilight для World of Tanks — Новогодняя подсветка

    Для начала видео. (Это не совсем Ambilight — это цветовой индикатор здоровья танка). Видео качается и трясется из за того что одной рукой снимаю, второй пытаюсь играть.


    В изготовлении все вышло очень просто.

    Необходимые ингредиенты:

    1. Arduino — какая есть;
    2. Светодиоды WS2812B (Я использовал кольцо — купил давно, сейчас решил применить);
    3. Мод для танков. Мод для моего проекта написал товарищ Kotyarko_O с форума koreanrandom, за что ему отдельное спасибо. В архиве с модом приложены исходники;
    4. Приложение для ПК. — в архиве исходники и приложение в папке bin.

    Выглядит все это не очень красиво, к монитору приклеил на двухсторонний скотч.

    image

    НО! Деталей минимум. За код прошу строго не судить, он кривой косой :) Я программист копипастер :) Кому сильно не понравится, можете переделать под себя красиво и практично.

    Код ардуино
    #include <Adafruit_NeoPixel.h>
    #ifdef __AVR__
      #include <avr/power.h>
    #endif
    #define PIN            6
    #define NUMPIXELS      8
    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
    String ser;
    int red = 0;
    int green =0;
    void setup() {
      pixels.begin(); // This initializes the NeoPixel library.
        Serial.begin(9600);
        while (!Serial) {
        ; // wait for port to be ready
      }
      Serial.setTimeout(100);
    }
    
    void loop() {
      if (Serial.available() > 0) 
      {
        ser = Serial.readString();
        if (ser != "end")
        {
          green = ser.toInt()*2;
          red = green-100;
          for(int i=0;i<NUMPIXELS;i++)
          {
            pixels.setPixelColor(i, pixels.Color(red,green,0));
          }
          pixels.show();
        }
        else
        {
         for(int i=0;i<NUMPIXELS;i++)
          {
            pixels.setPixelColor(i, pixels.Color(0,0,0));
          }
          pixels.show(); 
        }
      }
    }
    


    Программа для ПК, написана на C#

    private void button1_Click(object sender, EventArgs e)
    {
    timer1.Enabled = true;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    XmlDocument doc = new XmlDocument();
    SerialPort serialPort1 = new SerialPort();
    doc.Load(@«C:\World_of_Tanks\res_mods\0.9.17.0.1\scripts\client\gui\mods\mod_ArduinoHP.xml»);
    string maxHealth = doc.DocumentElement.ChildNodes[0].InnerText;
    string currentHealth = doc.DocumentElement.ChildNodes[1].InnerText;
    string healthProgress = doc.DocumentElement.ChildNodes[2].InnerText;
    serialPort1.PortName = «COM13»; //задаем имя COM-порта, с которым работает Arduino
    serialPort1.Open(); //открываем COM-порт

    if (healthProgress != "")
    {
    serialPort1.Write(healthProgress);
    }
    else
    serialPort1.Write(«end»);
    serialPort1.Close(); //закрываем COM-порт
    }

    Ну вот соответственно и все. Работает простейшим образом. Мод для танков складывает в xml файл всю необходимую информацию, а приложение для ПК в свою очередь читает xml и передает всю информацию ардуине, та в свою очередь управляет цветом.

    P.S. Все это можно доработать, доделать, допилить, улучшить… Но уже хочется спать :)

    P.P.S Всех с наступающим!
    Поделиться публикацией

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 51

      0
      А можно просто подключить комп к телеку philips с ambilight и искомый получать эффект везде и всегда.
        +2
        Для этого надо иметь телек с ambilight, а он ощутимо дороже ардуинки. да и не променяю я сейчас свой монитор со 120гц на телек.
          +2
          В самом начале же написано — это не ambilight, а цветовой healthbar.
          Кроме того, в русском языке уменьшительно-ласкательный суффикс — "-ик". Извините.
            0

            "-ик", говорите? И как же будет уменьшительно-ласкательный "овраг", к примеру?

              0
              овражИК
                +2
                Вы плохо знаете русский язык.

                Чтобы правильно написать суффиксы существительных ЕК и ИК, надо просклонять слова.
                Если гласный выпадает, то надо писать Е, если не выпадает, то надо писать букву И.

                Например:
                овражЕк — овражка,
                сыночЕк — сыночка,
                мячИк — мячИка,
                карандашИк — карандашИка

                Что же касается телЕКа, то дело тут в корне «теле», а не «тел», поэтому именно телЕК.
                  0
                  Таки телик.
                  Суффикса -к в существительных мужского рода в русском языке нет.
          +2
          Мдааа… Мне в итоге высказали про срач на столе, про плохое видео… И слили рейтинг.
            +3
            Не переживайте, это местные питекантропы шалят. А статья отличная, после всякого рекламного кала просто праздник какой-то.
              0

              +1, статья отличная

                0
                Понял, свой стол я здесь показывать не буду…
                Хорошая статья, не переживайте попусту.
                0
                Видео продемонстрировало только два состояния — зеленый и красный. В демках также работает?
                  0
                  На самом деле светодиод использован RGB. Соответственно цвет можно получить почти любой, но в моем случае в коде этого не реализовано
                    0
                    как-то мало информативно. Ожидал, что будет «зеленый-желтый-красный» и погаснет при отправке в ангар.
                      0
                      Видео не полное. Работает именно так как вы говорите. Зеленый — Желтый — Красный, а если выходишь в ангар то гаснет. Просто если снимать полное видео то оно слишком длинное.
                        +1
                        Таймлапс?
                          +1
                          Сделаю красивую коробочку, упакую пучок проводов как продукт и сниму красивое видео как надо :)
                          0
                          Смонтировать. Особенно если реплеи поддерживаются, то выбрать для проигрывания тот, где потеря хп более заметна по цветам.
                    0
                    Вот забацать что-нибудь похожее для Quake, я б сыграл.)
                      0
                      Скорее всего возможно, но я в кваку не играю, поэтому точно не скажу, надо смотреть как можно просто и без особых проблем вытащить информацию из игры. Аппаратно без разницы откуда информацию брать. Можете хоть визуализацию музыки сделать.
                        0
                        В электронике я рукожоп.(
                        Но сделал «светомузыку» на смартфоне, чтобы он микрофоном слушал и в такт музыке подмигивал экраном.
                          0
                          Конкретно в этой реализации знать электронику не надо от слова совсем. Главное паяльник с правильной стороны уметь держать, и осилить спаять 6 проводков, по 3 с каждой стороны. :)
                      +1
                      Можно сделать эмбилайт по рамке монитора, и подсвечивать откуда снаряд прилетел.
                        0
                        Насчет этой реализации у разработчика мода я спросил, пока жду ответа. Да и для полной реализации надо прикупить ленту из таких светодиодов, а не одно колечко как у меня.
                          0
                          О, хочу такую фишку для MWO.
                          Там отображение направления откуда пришел выстрел, показывается узкими полосками.
                          А разве нельзя просто считывать свет пикселей в определенном месте и просто дублировать на светодиоды?
                            0
                            Можно, но это из другой серии
                          –4

                          Я что-то уже ничего не понимаю, уровень статей на гиктаймсе скатился уже до такого уровня — жуть.
                          Народ тупо как живую ленту выплёвывает и всё.
                          Это я не говорю уже о качестве самого материала/идеи.

                            +3
                            Пост был выложен просто чтобы разнообразить гиктаймс. Три месяца что я его читаю с перерывами основная масса статей обзоры и красивые теоретические выкладки. Чего то простого интересно и повторяемого уже мало. да не спорю, есть специализированные ресурсы под такие вещи. Но захотелось сюда. Тем более выложено в хаб Diy или сделай сам, который как бы подразумевает наличие подобных статей, а иначе для чего он нужен?
                              –3

                              Ну для этого есть ЖЖ или просто соц сети.
                              Я вот всё "мучился" не выкладывал, считал надо подготовить, аргументировать, интересно придумать, а оказывается можно вот так просто, что-то накидать из средничка. :D
                              В этом конечно резон есть, не так обидно становится, когда начинают в комментах поливать всякие умники (включая меня).


                              На счет качества: я конечно понимаю, что всё зависит от взятой основы, но и в этом можно было решить ряд задач, более радикально. А так по существу, какое-то вялое, еле заметное изменение цвета относительно картинки и вообще непонятно относительно чего красит. И надо было как-то особо сильно не лениться и сделать хотя бы на 3 стороны по одному WS… а то эффекта никакого.

                                0
                                Чисто из практики игры динамику изменения цвета я и так не замечаю. А вот когда меня подбивают и становится все плохо, тогда переход на красный становится очень видим :) А за счет плавности перехода нет рывков. За ночь игры я два раза только видел желтый цвет :) но и то на него внимания не обращал.
                              +1
                              А насчет качества идеи и реализации… Ну сделаю я красивую коробочку, оформлю это как реальный продукт, а практический толк от этого? Вероятность того что кто то повторит его в таком виде крайне мала, да и большая часть людей сразу начнут думать… 3D принтер… лазер… а у нас нет… и с такими мыслями проходить дальше. Я и сам точно так же читал подобные статьи. У меня не было доступа ни к чему… Хотелось но возможностей не было. ДА сейчас у меня есть почти весь парк техники, и могу сделать все что угодно. Телефон который в моей старой статье делался изначально из фанеры, обзавелся корпусом из цельного дуба и выглядит как премиальная вещь. Но он один и в единственном экземпляре и никто его не повторит. А подобную вещь, которая собрана на коленке повторить сможет даже тот кто в этом абсолютно не разбирается, приложив минимальное количество усилий и знаний.
                                +1
                                Телефон который в моей старой статье делался изначально из фанеры, обзавелся корпусом из цельного дуба и выглядит как премиальная вещь.


                                Фото — в студию!
                                +3
                                Ну да, реклама и бесчисленные новости от Ализара конечно лучше.
                                  0
                                  Хоть, что-то. Идея не плоха.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    С кодером мода я пообщался, сделать можно все что угодно. Плюс варгейминг это не считает запрещенным модом. Теперь осталось дождаться когда придет лента, сегодня заказал с али. И уже с ней делать полный амбилайт с местами выстрелов, и если получится то еще и с подсветкой земли.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        Что такое WN8?
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          Можно даже переключалку для этого забацать =)
                                          Зашёл в бой — индикатор по оставшейся прочности (по-умолчанию); нажал хот-кей (или, например, менюшка в боевом интерфейсе) — всё переключилось на рейтинг (тот же WN8), а ещё лучше — рейтинг текущей цели.
                                          В общем, идей тут можно народить как китайцев.
                                            0
                                            Эммм… сударь если это вы :) то Вы можете и реализовать все как надо ) А код потестить эт мы запросто )
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                0
                                                И WGR можно.
                                            0
                                            Это может быть крутым направлением для игр — скажем, в том же WoW на подобную подсветку можно подвесить множество функций, значительно улучшив HCI. Здоровье, которое Вы уже реализовали, вспышки при готовности ключевых способностей, элемент таймера для таймранов (мигание подсветки при подходе времени к концу), индикатор боя — включаем подсветку только при нахождении в бою, выключаем при выходе.

                                            Нравится подход — ничего лишнего, нравится вау-эффект, нравится полезность, идея и статья.
                                            Спасибо, что написали. Надеюсь, Вы будете развивать концепцию и дальше — забегая вперёд, мне такие штуки кажутся интересными и для аудитории массового пользователя :)
                                          0
                                          Круто! И задумка и простота решения! А что за музон в ролике?
                                            0
                                            лучше сделайте ambilight для настроения жены во время игры в WoT: завелась, закипела(с)
                                              +1
                                              В ноутбуках Alienware это реализовано из коробки, правда не понятно, нужен ли специальный мод, или всю необходимую информацию можно вытащить из игры напрямую. Примерное видео https://www.youtube.com/watch?v=AYPkTo2YIzE
                                                0
                                                Там реализовано через ихнее спец приложение, и в самих танках тоже что то добавлено. НО стоят такие ноутбуки мама не горюй. И именно из за них я и захотел себе такую подсветку )
                                                отличие моей реализации в копеечной стоимости и возможности использовать на компьютере )
                                                  0
                                                  Совершенно верно, только мне так и не удалось откопать способ и протокол, по которому из танков можно информацию получать. Логитековская клавиатура тоже как-то может на экранчике показывать статы, неужели каждый производитель железа свой костыль делает? Может, кто-нибудь знает как это реализовано?
                                                    0
                                                    А для чего это необходимо? основная масса этих экранчиков и подсветок уже вроде бы разобраны чуть ли не до винтиков, на кого то свободное апи и сдк есть.
                                                      0
                                                      Может спросить автора статьи о GUI WoT Dichkovsky https://habrahabr.ru/company/wargaming/blog/229261/

                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                Самое читаемое