Как вывести параметры компьютера на стрелочные приборы

Сразу после того, как я выложил пост о компьютере «Феликс», на меня обрушился шквал вопросов о том, как реализовать вывод показаний в аналоговом виде. Я был бы рад ответить коротко, но, увы, одним комментарием тут не ограничиться, поэтому вот вам специальный пост на эту тему.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Честно говоря, я бросал и вновь принимался его писать несколько раз, потому что долго не мог определиться с тем, какова его целевая аудитория. Дело в том, что новичок не сможет повторить использованную в «Феликсе» схему — для этого нужно быть достаточно опытным радиолюбителем. Но если вы — опытный радиолюбитель, вы и сами наверняка представляете, как это сделать! В общем, чтобы пост не получился бесполезным, я решил рассказать не только о том, как всё реализовано у меня в «Феликсе», но и о том, какие более простые решения можно применить взамен, если вы знаете, с какой стороны браться за паяльник, но ваши познания в электронике ограничиваются законом Ома.


Что мы хотим получить


Начать, конечно, нужно с постановки задачи. В идеале было бы неплохо выводить на стрелочные приборы процент занятой памяти, загруженность процессора и видеокарты, скорость закачки из интернета, температуру, активность жёсткого диска и обороты вентиляторов. Поскольку параметров больше, чем измерительных головок, нужно иметь возможность выбирать нужные показания с помощью ручек или тумблеров. Также важна универсальность: схема должна подходить к любому железу и не требовать радикальной переделки в случае апгрейда.


Что для этого понадобится


Прежде всего, конечно, это сами стрелочные приборы. Для наших целей годится далеко не каждый, поэтому нужно обязательно изучить обозначения на шкале. Горизонтальная черта (—) означает, что прибор точно подойдёт, и на второй значок можно уже не смотреть.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Если же вместо черты там нарисована волна (~), символ переменного тока, нужно смотреть на второй значок. В этом случае подойдёт только тот прибор, у которого он имеет вид перевёрнутой буквы U с чёрточкой. Это знак магнитоэлектрической системы отклонения, которая работает с постоянным током. В таком приборе внутри стоит диодный выпрямитель, и его нужно будет убрать. А вот если на шкале прибора нарисован значок электромагнитной системы (катушка вокруг стержня), это значит, что его использовать не получится (ну разве что для измерения напряжения в сети 220 В).

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

На следующей картинке показаны три прибора, которые полностью подойдут для индикации параметров компьютера, и один, который совсем не подойдёт.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Сами приборы могут иметь различное назначение — вольтметры, амперметры, ваттметры, измерители всяких специфических величин... В нашем случае это не важно, потому что конструктивно все они, по сути, являются амперметрами, и отклонение стрелки в них вызывает протекающий по катушке ток. А уж как он туда попадает и что головка в результате показывает, решает разработчик устройства.


Если найденный вами стрелочный прибор в девичестве был вольтметром, внутри него наверняка стоит последовательно включённое добавочное сопротивление. Оно требуется для того, чтобы подобрать предел измерения по шкале: так-то для максимального отклонения стрелки большинству приборов достаточно десятых долей вольта. Для наших целей, как правило, это сопротивление нужно существенно уменьшать.


Если вам достался амперметр, между его выводами, скорее всего, будет распаян шунт (мощный резистор или проволочная спираль с очень малым сопротивлением):

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Его необходимо удалить и вместо него подпаять последовательно некое добавочное сопротивление (по сути, превратив амперметр в вольтметр).


Ну а в случае с милли- либо микроамперметром достаточно лишь подобрать нужный резистор. Собственное сопротивление катушки у них, как правило, составляет несколько сотен Ом.


Если вам нужен большой прибор вроде того, что стоит в «Феликсе» наверху, ищите стрелочные головки серий М24, М903 и аналогичные им. Красивые измерители чуть меньшего размера выпускались в сериях М358 и М494. Также хорошо подходят компактные приборы типа Ц25, М5-2, М4255. Купить их можно на радиорынках или с рук на онлайн-барахолках. Предложений всегда достаточно, стоимость колеблется в диапазоне 50–300 руб. в зависимости от размера и состояния головки.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Ещё вам будут нужны вышеупомянутые постоянные и переменные резисторы (лучше купить несколько штук в диапазоне 1–100 КОм, всегда пригодятся), соединительные провода (можно взять от сломанных блоков питания), электролитические конденсаторы ёмкостью 10–100 мкФ, а также ручки и тумблеры.


Как это сделать


1. По умолчанию компьютер умеет выводить на внешний индикатор только один из интересующих нас параметров — активность жёсткого диска. Вместо штатного светодиода к контактам HDD_LED можно подключить стрелочную головку, рассчитанную на напряжение около 5 В. Чтобы при редких обращениях к диску стрелка не дёргалась слишком резко, между плюсом и минусом прибора стоит поставить конденсатор где-нибудь на 10 мкФ. Это самый простой вариант, с которым справится даже новичок, так что если вам нужно, чтобы стрелочные головки «ожили» и начали хоть что-то показывать, начать можно с этого.


2. Также несложно выводить чисто «электрические» параметры — например, напряжение, подаваемое на вентиляторы, по которому можно косвенно судить о скорости их вращения. Здесь достаточно подобрать такую величину добавочного сопротивления, при которой от 12 В стрелка будет отклоняться до крайнего правого значения на шкале. В этом случае можно будет наблюдать, как стрелка отзывается на вращение ручки регулятора.


Сам регулятор можно собрать по такой схеме:

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Здесь VT1 — это NPN-транзистор средней мощности, например КТ817, R1 — переменный резистор, используемый непосредственно для регулирования (для начала можно взять 4,7 КОм), а R2 — сопротивление, задающее минимальное напряжение (для большинства случаев подойдёт 1 КОм). Есть и другие варианты, ищите по запросу «самодельный реобас». А в самом простом случае, если вам удастся найти мощный переменный резистор на 50–100 Ом, можно просто подключить его последовательно с вентилятором и получить практически тот же результат безо всяких транзисторов.


3. Чуть больше придётся повозиться с «электрическим» измерением нагрузки на процессор. В «Феликсе», который вы видели, этот способ не используется, но я успешно применял его в предыдущей версии подобного корпуса. Как вы знаете, подсистема питания процессора в современных компьютерах подключается к БП по отдельной линии +12 В. По ней течёт ток, величина которого зависит от объёма работы, который сейчас выполняет процессор, и если подключить к этой линии стрелочный прибор в качестве амперметра, можно будет косвенно следить за нагрузкой на ЦП.


При этом вовсе необязательно по школьным правилам подключать амперметр последовательно, в разрыв цепи. Можно поступить хитрее и использовать в качестве шунта сам питающий провод. Протекающий по нему ток достаточно велик, чтобы вызвать падение напряжения, которого хватит для отклонения стрелки чувствительного прибора. Возьмите два провода и подпаяйте их к началу и к концу питающей линии процессора (удобнее всего это сделать в случае с модульным блоком питания), подключите их к микроамперметру и подберите добавочное сопротивление. Недостаток этого решения в том, что при замене процессора или проводов подстройку нужно будет производить снова, ну и нулевые значения на шкале вы вряд ли увидите, потому что процессор потребляет ток и «вхолостую».


4. Ещё одна вещь, которую может сделать даже начинающий, это стрелочный термометр. Для этого нужно купить активный термодатчик, например, MCP9700. По сути, он преобразует температуру в напряжение, причём делает это линейно (см. график зависимости):

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

К одной из его ножек нужно подключить питание (+5 В от красного провода БП), к другой — «землю» (чёрный провод), а с третьей можно отправлять показания на стрелочный прибор. Только обратите внимание, что 0°C не соответствуют нулевому выходному напряжению. Исправить это несоответствие можно двумя способами: если вы больше любите рисовать, сделайте для прибора новую шкалу, где ноль будет располагаться не в самом начале. Заглавная картинка поста, кстати говоря, выбрана не просто так ;) Если же вы больше любите паять, соберите резистивный делитель, который будет выдавать 0,5 В (это выходное напряжение термодатчика при нуле градусов). На стрелочный прибор нужно будет подать разность потенциалов между выходом делителя и выходом термодатчика, и в результате можно будет использовать без переделки шкалу, размеченную от 0 до 100, только теперь это будут не миллиамперы или вольты, а градусы Цельсия.


5. И напоследок — кое-что, имеющее отношение не к измерению, а к управлению. Раз уж на передней панели имеется выход на наушники, неплохо было бы добавить к нему аналоговую регулировку громкости. Существует множество более сложных и правильных способов её реализации (скажем, с тонкомпенсацией в области нижних частот), но самый простой и притом вполне рабочий — это установка сдвоенного переменного резистора. Его необходимо включить в разрыв провода, идущего к разъёму для наушников на передней панели:

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Номинал резистора — 1 кОм или немного ниже. Используйте только новые и современные резисторы, поскольку детали из советских запасов обычно имеют скачок сопротивления в начале и в конце хода, а иногда ещё и добавляют треск при регулировке.


Следующий график объясняет, почему нужно выбирать резистор сопротивлением 1 кОм или ниже. На нём отражена зависимость тока через наушники (ось Y) от процента поворота резистора (ось X).

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Человеческое ухо имеет нелинейную чувствительность к громкости звука (небольшие изменения при низкой громкости ощущаются так же сильно, как и большие изменения при высокой), и синий график (1 кОм) достаточно близок к такой зависимости. При повороте ручки такого резистора кажется, что громкость меняется линейно. Ещё лучше будет, если вам удастся найти резистор сопротивлением около 300 Ом, но такие встречаются редко. Если же взять резистор с большим сопротивлением (красный график), регулировка получится неравномерной. Поворот ручки в начале и в конце сектора не будет оказывать почти никакого влияния на громкость, зато в середине даже небольшое прикосновение к регулятору будет менять громкость очень резко.


На вход регулятора подаётся сигнал с контактов 2 (GND), 6 (OUT R) и 10 (OUT L) внутреннего разъёма F_AUDIO на материнской плате или аудиокарте. Соответственно, выход регулятора нужно будет подпаять к проводам, которые ранее шли от этих контактов к передней панели. Типичная распиновка F_AUDIO:

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Если на вашей плате разъём F_AUDIO выглядит по-другому, ищите его распиновку в руководстве пользователя. В любом случае, линейный выход там будет всегда.


На этом я заканчиваю описание вещей, которые начинающий радиолюбитель может сделать самостоятельно, и перехожу к тем, для реализации которых потребуется помощь более опытных товарищей. Как я уже говорил раньше, плату, отвечающую за вывод параметров в «Феликсе», я делал не сам. Её разработал и изготовил мой друг, скрывающийся под ником ALS. Он профессиональный инженер-электронщик, к помощи которого в разное время прибегали многие российские моддеры.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Придуманная им схема довольно затейлива: программа-монитор AIDA записывает показания встроенных датчиков в реестр, оттуда их читает самописная программка и отправляет в COM-порт (через адаптер USB-COM). К порту подключён ЦАП на микроконтроллере, после которого данные в виде напряжения идут на подстроечные резисторы, ну а затем — на стрелочные головки.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

На первый взгляд это решение может показаться излишне сложным, но у ALS'а были причины выбрать именно его. Не буду углубляться в чужие для меня дебри и просто предоставлю слово автору:


Я видел в комментариях заявления, что всё это можно сделать на Ардуине за вечер. Прежде чем так говорить, нужно действительно взять и сделать. Потому что нередки ситуации, когда схема работает «на столе», но напрочь отказывается это делать в готовом устройстве.
Есть такое понятие, как разумная достаточность. И с данной задачей вполне справляется именно 8-ногий микроконтроллер типа PIC12F1822, а не какой другой, более быстрый и/или расфуфыренный. И дело тут совсем не в цене железа, стоят-то они почти одинаково. Но если, опять же, вернуться к модулям Arduino, то среди них нет таких, которые имели бы встроенный USB-интерфейс (точнее, есть, но это самые дорогие и большие по размерам модели). А в остальных случаях используется тот же самый мост USB-UART в виде отдельной микросхемы. И нет таких модулей, у которых бы на каждом канале ШИМа находился бы «железный» подстроечный резистор. Это значит, что к ардуино-платке по-любому потребовалась бы какая-то плата-прокладка, на которой, как минимум, находились бы эти самые резисторы. Что увеличивает и время разработки, и трудозатраты.
Теперь что касается того, почему лучше получать данные из AIDA, а не через виндовый API. Да, он встроенный, но здесь барин дал — барин взял: кто-то может гарантировать, что программа, использующая только стандартный API, будет одинаково корректно работать и на XP, и на десятке, и на всех промежуточных? Действительно ли у всех этих осей точно-преточно одинаковый API при работе со всем тем железом, которое было изобретено за все эти годы? Не знаю. И поскольку сам я не программер ни разу, я просто использую дополнительные возможности АИДы, которые её авторы предусмотрели для общения с железом. А значит, не имею головной боли с выходом новых чипсетов, интерфейсов, камней или памяти.Ну и насчёт того, чтобы «научить». Весь код писался на микрочиповском ассемблере. Если кому-то не нравится ассемблер, можно писать на Си. Для написания прошивок для PIC-контроллеров на этих двух языках стоит сходить сюда: http://www.microchip.com/mplab/mplab-x-ide.
Там уйма информации, всевозможные примеры и даже заготовки для типовых задач. К сожалению, работа с AIDA к типовым задачам не относится. Поэтому ещё нужно поиметь хотя бы базовое знание английского, сжать волю в кулак и просто потратить какое-то время на эксперименты и изучение программирования.
А напоследок — моя любимая фраза: кому шашечки, а кому — ехать. По большому счету, не важно, на чём оно написано и на чём собрано. Главное — адекватная работа, быстрая победа над глюками, возможность оперативной разработки «такого же, но с автопилотом и турбонаддувом». Если мне потребуется не 4 канала, а 16, я просто возьму другой МК, который стоит на 50 рублей дороже. Разумеется, нужно будет дорабатывать код, но это делается всегда.


Ну что ж, после небольшой отповеди от инженера вернёмся к особенностям схемы. В настройках AIDA нужно указать, какие параметры будут записываться в реестр.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Затем в программе, которую написал ALS, нужно выбрать перечень отображаемых параметров, назначить им выходные разъёмы и указать максимальные значения (чтобы плата понимала, до какого предела отклонять стрелку).

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

С помощью подстроечных резисторов нужно отрегулировать уровень выходного напряжения под конкретную стрелочную головку. Для удобства в программе предусмотрена галочка, при установке которой на все каналы выдаётся максимальное значение.


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


Вторая интересная схема, разработанная ALS'ом — это аналого-цифровой регулятор громкости. Он гораздо совершеннее простой схемы на резисторе, поскольку меняет выходную громкость в самой операционной системе. Для этого используется тот же механизм, что и в мультимедийных клавиатурах с кнопками регулировки громкости, только вместо кнопок в данном случае используется поворотная ручка резистора. По сути, он выступает в качестве энкодера, и для человека регулировка выглядит не ступенчатой, а плавной.

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Единственный минус схемы — необходимость наличия порта PS/2 на материнской плате.


Для меня разработать что-то подобное — это всё равно что построить космический корабль. Поэтому я сосредоточился на том, что могу сделать сам, а эти схемы просто заказал у ALS'а. Он продаёт их по вполне разумным ценам, отправляет почтой по всей России. Уж не сочтите за рекламу, хотя я и рад бы его прорекламировать, потому что он много раз меня выручал и никогда не отказывал в совете.


Если вы тоже хотите выводить самые разные параметры компьютера в аналоговом формате, напишите в его тему «Разная мелкая электроника» на сайте modding.ru или свяжитесь с ним через ВКонтакте.


Результат объединения его и моих разработок напоминает кадр из фильма «Железное небо», где безумный учёный встроил современный планшет в примитивный ламповый компьютер, но тем не менее это работает)

Как вывести параметры компьютера на стрелочные приборы Моддинг, Самоделки, Ретро, Гайд, Своими руками, Компьютер, Длиннопост

Я постараюсь ответить на ваши вопросы в комментариях, а если не смогу, то призову ALS'а на помощь. Спасибо за внимание!