Пользователь
0,0
рейтинг
16 декабря 2013 в 01:49

Вторая жизнь старых стрелочных индикаторов

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

image

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

Первым делом я заменил оригинальные шкалы с децибелами на свои собственные, для этого пришлось ломать корпус.

image

image

Затем на скорую руку я развёл плату:

image

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

Подключать устройство к компьютеру было решено через USB, для этого используется микросхема FT232. Да, можно обойтись и без неё, используя программный USB, но я ему не доверяю — работает весьма нестабильно на некоторых контроллерах. Через FT232 же устройство видится как виртуальный COM-порт, в который мы будем писать данные.

Первым делом в микроконтроллер был зашит бутлоадер, после чего программатор был убран в ящик — прошивку стало легко обновлять прямо по USB. Настал этот сладкий момент, когда устройство готово, и остаётся только написать софт.

Прошивка же предельно проста:
// Ноги, которые подключены к индикаторам, настраиваем на вывод
DDRB |= (1<<1) | (1<<2);

// Включаем таймер и ШИМ:
TCCR1A |= (1<<COM1A1) | (1<<COM1B1) | (1<WGM10);
TCCR1B |= CS10;

После этого просто пишем в регистры OCR1A и OCR1B значения, которые нужно показать, а именно — то, что получаем по USART. Опытным путём было установлено, что стрелка стоит на максимальном значении, когда в регистрах число более 90. Дальше дело было за простой математикой.
Приложение для PC тоже не отличается особой сложностью — нужно просто получать процент загрузки процессора с памятью и посылать эти данные в виртуальный COM порт.

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

image

Стрелочки очень красиво подёргиваются. Получилось весьма удобно.

upd:
Попытался снять небольшое видео.
Cluster @ClusterM
карма
226,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

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

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

Комментарии (48)

  • +8
    Хороший hardware вечер сегодня, спасибо!)
  • +49
    Сделайте это все в простенький корпус, plug and play и продавайте. Оторвут с руками.
    • +17
      Отличная идея, но я бы купил другое устройство, нужно просто ваше предложение дополнить вот так:

      Сделайте это все в небольшой корпус, и добавьте USB порты, чтобы функционал был расширен до USB хаба (у меня ноутбук) + Ваши индикаторы загрузки.
      Вот USB хаб с индикаторами бы точно купил, чёрный ))
    • +5
      Я бы точно купил. По инэту пару раз встречал такой вот не хитрый но очень очень моддинг, и все самопальное, чтобы купить, ни-ни. И я как человек который далековат от паяльника с радостью купил бы, может даже взялся бы помогать с ПО частью к USB.
    • +1
      А разве plug and play тут возможен?
      • +7
        Сделать по аналогии с 3G модемами, которые поднимают виртуальный сидюк, на котором лежит всё необходимое ПО, устанавливаемое при первом подключении.
  • +2
    Шикарное дополнение для любителей таких штук
  • +23
    А сделайте видео, интересно будет посмотреть в действии. Интересная статья, спасибо!
    • 0
      Я попытался:
  • +1
    Еще бы оформить плату по компактнее, и можно встроить в корпус ПК
    • +2
      Сначала я хотел встроить эти индикаторы прямо в пятидюймовый отсек на системном блоке, но он стоит под столом, поэтому устройство было вынесено отдельно.
      © Автор
      • +1
        аа, просто у меня они не большие, вполне влазят.
  • +9
    Красота! Вот такие штуки должны быть в steam machine, чтобы больше соответствовала названию.
  • +4
    Очень тепло и лампово! Спасибо!
  • +4
    Надо будте такую штуку сделать, только не на индикаторах с магнитофона, а на стрелочных амперметрах… или вольтметрах. Черных таких, маленьких. И добавить немного инерционности, чтобы не дергались.
    • +7
      Инерционностью убьете весь кайф.
  • +1
    Очень круто. Вопрос, если вы решительно памяти добавить — опять корпус ломать?
    • +2
      Да :( Уже думал об этом и даже заготовил рисунок заранее. Но не в процентах же её отображать.
      • +2
        А почему-бы нет?
        • +2
          Хотя бы потому что объём используемой памяти вместе с файлом подкачки может варьироваться.
          • +1
            Так интересна же только физическая память.
            • +1
              То, что Windows называет памятью в диспетчере задач, на самом деле физическая память + файл подкачки, а файл подкачки винда использует всегда, даже если физическая не закончилась. Под *nix системами такая информация действительно была бы актуальна.
              • 0
                Проходя мимо, справедливости ради, отмечу:
                Не знаю в каком диспетчере задач так (может в старых виндах), но то что вы называете это виртуальная память (физическая+подкачка), а там ещё есть физическая, где нет никакого добавления файла подкачки. Вообще в качестве диспетчера советую использовать или Process Explorer или Process Hacker гораздо удобнее и подробнее. В 8.1 диспетчер стал лучше, но всё равно не дотягивает.
                Думаю даже если косяк диспетчера на старых, то там через WinAPI вполне можно получить размер занятой физической памяти.
                А ещё можно глянуть через WMIC физическую так:
                wmic OS GET TotalVisibleMemorySize или wmic ComputerSystem get TotalPhysicalMemory
                wmic OS GET FreePhysicalMemory
                А виртуальную так:
                wmic OS GET TotalVirtualMemorySize
                wmic OS GET FreeVirtualMemory

                У меня на 8.1 совпадает с физическим размером, при том файл подкачки не маленький и не выключен.
    • +1
      На этих индикаторах можно было подклеить сзади бумагу, а не вставлять внутрь и все. Задняя стенка благо прозрачная.
      • +2
        Не прозрачная :( Очень мутная.
        • +1
          Прошу прощения, не обратил внимания. Тогда прорезь сбоку дремелем — шкалы на более плотной бумаге и можно сделать сменными ;)
  • +2
    Клуб «Оч. умелые ручки» :) Доставай, автор, зачётку. Я проникся.

    Кстати, такие специалисты, как вы, похоже, очень нужны компании Marshal:
    Глава местного планирования Marshal Такеоми Маруяма поделился своими мыслями об этом продукте: «Инженеров, которые разрабатывают способы конвертации аналогового в цифровое, просто пруд пруди, но те, кто знает как преобразовать цифру в аналог, очень редки. По этой причине, подготовка к выпуску данного продукта с оригинальным дизайном заняла много времени».

    Оригинальный текст:
    Takeomi Maruyama, MARSHAL's head of domestic planning, had connoted his thoughts about the kinky meter product.
    «Engineers who develop ways to convert analog to digital are a dime a dozen, but those who know how to convert digital to analog are few and far between. For this reason, it took a long time for this product to be realized from its original design.»

    — See more at: techipacs.blogspot.ru/2012/11/analog-meter-balls-that-detect-pc-status.html#sthash.mk5cJGva.dpuf
    • 0
      Ой, на тему этих преобразований я ща поделюсь одной историей.
      Почти всем известно — подобные стрелочные индикаторы стоят на приборных панелях автомобилей.

      До проникновения цифровых систем в автопром на такой указатель тупо выводился провод от датчика, меняющего сопротивление в зависимости от измеряемого параметра (давление масла, температура двигателя, уровень бензина и т.п.) — и стрелка смещалась пропорционально току.

      Так вот. Один автозавод стал ставить в свои автомобили новые современные двигатели. Из этого двигателя уже никаких выводов датчиков не торчит — вместо этого его ЭБУ сам измеряет сигналы датчиков, оцифровывает их и выдает наружу по цифровому интерфейсу.
      Тут бы по-хорошему заменить и приборную панель, чтобы указатели этой цифрой управлялись (тут есть два варианта — либо ЦАП, формирующий ток для подобного индикатора, либо стрелку двигает серва или шаговик). Но по некоторым причинам (например, отсутствие таких приборных сборок в нужном форм-факторе плюс нежелание перепроектировать нафиг пол-панели) блоки указателей оставили старые, решив между ними и двигателем вставить отдельный блок — ЦАП (Собственно, в разработке которого я участвовал), формирующий ток для указателей.

      И всё бы ничего. Но тут в комплектации появились блоки указателей попродвинутее. С шаговыми двигателями. Но при этом предназначенные для прямой замены старых приборов, и рассчитанные на подключение к токовым выводам датчиков.

      Чуете, в чём веселье?

      Получается вот такая цепочка преобразований:
      1 Аналоговый сигнал датчика цифруется в ЭБУ двигателя
      2 Результат берётся с интерфейса нашим блоком и преобразуется в ток, имитируя датчик
      3 Электронная схема указателя цифрует этот ток, преобразуя в нужное положение стрелки
      4 Шаговый двигатель поворачивает стрелку на нужный угол, что для пользователя является аналоговой индикацией.

      Там еще много всяких разных приколов и факапов было, но это уже не в тему.

  • +2
    Обычно подсветку таких приборов делают снизу-чтобы подсветка не засвечивала шкалу и стрелку. а вообще симпатично-особенно если шкалу покрасивее оформить)
    • +4
      В этом случае надо левый светодиодик сделать зеленым, средний — желтым, а правый — красным. И по уровню их зажигать. Будет красиво двигаться стрелка и подсвечиваться. В темноте будет хорошо виден уровень загрузки невооруженным глазом.
      • +4
        Эстеты
      • +4
        А мне нравится эта идея. Быть может, потом сделаю вторую ревизию.
  • –3
    Все становится лучше с bluetooth) Но и так шикарно!
  • +4
    Всегда было интересно, сколько проца и памяти отъедают программные части индикаторов проца и памяти.

    Как с электроном: фактом замера его параметров сами же их и меняем.
  • +2
    Кому нужны стрелочные индикаторы как в посте — обращайтесь.
    • +1
      Продаёте? Дарите? Обращаться куда?
      • +1
        На Митино на развалах полно продают такого добра, за копейки. Есть миллиамперметры и милливольтметры — покрупнее, но в более советском стиле, молотковая эмаль итд. ))
    • 0
      Я так понял обращатся в личку. Мне надо, хочу попробовать у себя такое сделать. Но после вашего коментария закрались смутные сомнения, а не рекламный ли это пост был :D Шучу конеш, но как то уж очень все быстренько подобралось, отличный пост, аж слюньки потекли, и тут на тебе — «кому надо стрелочные индикаторы». А ведь первое о чем я задумался когда захотел такое у себя сделать, а есть ли у меня старые магнитофоны? И если нет, где я нарою эти индикаторы. Маркетинг :)
      • 0
        Ребята, спокойно :)
        Если бы вы посмотрели мой профиль, то увидели бы чем я занимаюсь, и вопросы бы отпали…
        Пишите в личку.
  • +2
    Требуем подобное, но с перламутровыми пуговицами «зеленым глазом»!
    • +2
      Да эт не сложно, заменяешь индикаторы глазом и всё.
      • +3
        А здесь схема включения с формирователем высокого напряжения для индикатора есть.
        • 0
          Думается, по дизайну лучше 6Е5С подходит, чем 6Е1П.
  • +2
    Хорошим дополнением будет красный светодиод в области максимального значения (процентов 80-90) под стрелкой, который будет загораться при отклонении стрелки на эту величину. Кажется это называлось «индикатор пика». И даже были такие индикаторы со стрелкой и светодиодом в каком-то советском магнитофоне…
    А уж реализовать не сложно будет, раз микроконтроллер есть.
  • +1
    А если добавить дешевый Bluetooth модуль в него — то данный девайс можно сделать автономным
  • 0
    Показания датчиков температуры проца и видюхи полезно бы добавить.
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Кстати, у меня (Киев) валяется ящик всяко-разных пейджеров, как минимум экранчики и вибродвижки оттуда вполне юзабельны на всякий паяльниковый хендмейд.
    я сам с паяльником не дружу, но могу подкинуть желающим.

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