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

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

    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:
    Попытался снять небольшое видео.
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

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

          Сделайте это все в небольшой корпус, и добавьте USB порты, чтобы функционал был расширен до USB хаба (у меня ноутбук) + Ваши индикаторы загрузки.
          Вот USB хаб с индикаторами бы точно купил, чёрный ))
          • +5
            Я бы точно купил. По инэту пару раз встречал такой вот не хитрый но очень очень моддинг, и все самопальное, чтобы купить, ни-ни. И я как человек который далековат от паяльника с радостью купил бы, может даже взялся бы помогать с ПО частью к USB.
            • +1
              А разве plug and play тут возможен?
              • +7
                Сделать по аналогии с 3G модемами, которые поднимают виртуальный сидюк, на котором лежит всё необходимое ПО, устанавливаемое при первом подключении.
            • +2
              Шикарное дополнение для любителей таких штук
              • +23
                А сделайте видео, интересно будет посмотреть в действии. Интересная статья, спасибо!
              • +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
                                                  Кстати, у меня (Киев) валяется ящик всяко-разных пейджеров, как минимум экранчики и вибродвижки оттуда вполне юзабельны на всякий паяльниковый хендмейд.
                                                  я сам с паяльником не дружу, но могу подкинуть желающим.

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

                                                  Интересные публикации