Делаем индикатор загрузки процессора под Linux из… батарейки!

Делаем индикатор загрузки процессора под Linux из… батарейки!

Возможно, вы хоть раз держали в руках батарейки Duracell или Energizer со встроенным индикатором заряда. Чтобы определить, сколько энергии осталось в батарее, вы нажимаете на две точки, напечатанные на этикетке, и, вуаля, значение оставшегося заряда отображается желтым индикатором. Нет никакой нужды в отдельном тестере — все необходимое встроено в саму батарею. Хоть это и не очень точно, но хоть какое-то представление о том, свежая ли это батарея, или же она доживает свои последние минуты, вы получите.

Эти одноразовые тестеры обладают достаточно оригинальной конструкцией: они имеют слой чернил, который нагревается под действием протекающего электрического тока. Вместе с этим слоем нанесен также слой, меняющий свою прозрачность в зависимости от температуры. Чем выше температура, тем прозрачней он становится, открывая тем самым еще один, третий слой из цветных чернил. Так как слои отпечатаны с изменяющейся плотностью от 0% до 100%, часть индикатора становится желтой раньше другой, создавая эффект столбца гистограммы, меняющего свою высоту в зависимости от протекающего через него тока. Дальше речь пойдет о том, как сделать из подобного тестера индикатор загрузки процессора (да-да, вы не ослышались;)).
После прочтения данной статьи вы сможете собрать два варианта индикаторов: простой вариант с индикатором прямо на плате с управляющей электроникой или же более сложный, но точный и красивый вариант с индикатором, смонтированным на радиаторе.

Что вам понадобится:
— батарея Duracell формата АА со встроенным описанным выше тестером заряда. По идее, подойдут и батарейки Energizer, но я лично не пробовал. Свои опыты я проводил на батареях Duracell Ultra M3, код продукта: LR6-MN1500;
— 1 3 V источник;
— 1 резистор на 2 КОм;
— 1 резистор на 4,7 КОм;
— 1 резистор на 10 КОм;
— 1 оптопара 4N25 или же CNY17;
— 1 транзистор BC574A или 2N2222A;
— 1 транзистор TIP41C;
— 2 диода 1N4004;
— 3 обычных выключателя;
— 1 разъем DB9 типа "мама";
— макетная плата (возьмите ее побольше, если хотите разместить на ней индикатор);
— кусочек чистого оргстекла от CD-коробки;
— 1 радиатор от процессора под Socket-7 (если вы собрались сооружать второй вариант индикатора);
— 4 шурупа 10*3 мм (для второй версии индикатора);

— терпение.
Итак, после того, как вы соберете все вышеперечисленное, можно приступать к делу. Рассмотрим самый простой вариант.

Инструкция по созданию простого варианта
Для начала аккуратно снимите этикетку с тестером с батареи. При этом будьте очень осторожны, чтобы не повредить края этикетки, так как, если вы это все же сделаете, вам будет очень сложно подключиться к индикатору. Я, например, делал так: очень аккуратно отгибал края примерно на 3/4 мм и затем довершал дело с помощью ножа. На рис. 1 показано то, что должно у вас получиться сразу после снятия этикетки.
Ну, а теперь самый сложный этап — подключение к индикатору. Для начала положите развернутую этикетку на макетную плату и очень точно отметьте места, над которыми находятся указанные стрелками на рис. 2 точки. Особое внимание обратите на выравнивание правой белой точки ("минус" индикатора), так как участок из проводящих чернил там имеет очень маленькую площадь и располагается на самом краю тестера. Точка слева ("плюс" индикатора) намного проще в подключении.

Для того чтобы изготовить контакты, возьмите кусочки многожильного провода (это в котором каждый провод сплетен из множества тонких медных проволочек) и впаяйте их в те отверстия, которые вы отметили на предыдущем этапе, оставив торчать из платы эдакую "кисточку" проволочек. Это поможет нам получить надежный электрический контакт с проводящими чернилами индикатора. Теперь аккуратно вырежьте кусочек оргстекла из коробки от CD, зафиксируйте одну сторону на верхней стороне макетной платы с помощью скотча и проделайте снизу небольшое отверстие, чтобы прикрепить получившееся окно к плате. Эту конструкцию мы будем использовать для закрепления индикатора и прижима его контактов к контактам, впаянным в плату. Конечный результат вы можете наблюдать на рис. 4.

Теперь приступайте к монтажу деталей. Расположите их внизу платы под окном.
На рис. 3 приведена принципиальная схема нашего девайса.
Обратите внимание на два параллельных диодам 1N4004 переключателя. Диоды нужны для того, чтобы снизить напряжение, подаваемое на индикатор, но в зависимости от индивидуальных особенностей вашего индикатора и качества контакта с проводящими чернилами вам может понадобиться немного перегрузить индикатор, чтобы заставить его доходить до 100% или же быть более реактивным. Таким образом, с помощью переключателей вы можете замыкать один или оба диода, добавляя 0,6 В на каждый закороченный диод.

Как только вы соберете схему, подайте на нее 3 вольта и замкните все переключатели. Затем положите на контакты индикатор и закройте стекло. Теперь замкните контакты 4 и 5 оптопары: если с контактами у индикатора все в порядке, то он должен очень быстро пожелтеть. Если это произошло, немедленно размыкайте выводы оптопары, иначе вы рискуете поджарить свой индикатор. Выравнивание индикатора на контактах — дело нелегкое, и не удивляйтесь, если оно отберет у вас много времени. Будьте аккуратны и не прорвите проводящие чернила. После того, как вы добьетесь хорошего соединения, окончательно закрепляйте окно на плате с помощью проволочки, вставленной в заранее проделанное отверстие, которую следует перекрутить с другой стороны платы. Результат должен выглядеть примерно так, как показано на рис. 4.
Теперь разомкните оба переключателя на диодах и замкните вышеописанные выводы оптопары еще раз: если индикатор доходит до 100% за небольшое время (меньше 10 секунд), то все отлично. Если же нет — поэкспериментируйте с замыканием диодов.
Итак, железная часть завершена. Теперь отключите питание и подключите полученную конструкцию к порту RS-232 вашего компьютера. Ни в коем случае не включайте питание до тех пор, пока не запустите управляющую программу, так как линия RTS в RS-232 по умолчанию находится в высоком уровне, т.е. ваш тестер все время будет работать в предельном режиме и может ненароком сломаться.

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

Для того чтобы решить эту проблему, нам необходимо отводить куда-нибудь тепло, вырабатываемое токопроводящими чернилами. Это будет предотвращать накопление дисплеем тепла и тем самым сделает его более стабильным. Это также позволит желтой полоске уменьшаться намного быстрее, так как температура будет падать быстрее при снижении протекающего через индикатор тока. В данной версии индикатора тестер монтируется на радиаторе от Socket-7, который вы можете найти в какой-нибудь древней машине на базе Pentium 1.
Сначала, как и в предыдущем случае, вам потребуется аккуратно отделить индикатор от батарейки. После этого подрежьте его так, чтобы он уместился на радиаторе и осталось еще немного места под шурупы.
Просверлите 3 мм отверстия по углам радиатора. При этом ориентируйте их так, чтобы шурупы попадали между ребрами. Теперь проделайте 3 мм отверстия в тех местах, где должны располагаться контакты. Перед установкой контактов используйте радиатор, чтобы вырезать по его размеру кусочек оргстекла и просверлить в нем отверстия, точно совпадающие с отверстиями в радиаторе. У вас должно получиться что-то похожее на рис. 5.
Теперь вам необходимо разместить на радиаторе контакты, избежав короткого замыкания с ним. Чтобы сделать это, нанесите на поверхность вокруг отверстий с двух сторон несколько слоев лака для ногтей. Проделайте это также и для внутренних частей отверстий. Когда лак высохнет, просуньте в отверстия 3-миллиметровые провода (они должны идти достаточно туго, иначе возьмите провод потолще) и с помощью ножа или специального инструмента зачистите кончики проводов. Идея заключается в том, чтобы изготовить некое подобие кисточки из проводов таким образом, чтобы она торчала вверх, но не дотрагивалась своими проводниками до металла радиатора.


После того, как вы установите провода в оба отверстия и убедитесь в отсутствии короткого замыкания, капните несколько капель "суперклея" в места, где провода проходят через радиатор, между ребер и с другой стороны, чтобы надежно их закрепить. Напоследок для пущей надежности пропустите провода между ребрами. Подстригите кисточки до длины 5 мм или даже меньше. Получившаяся конструкция показана на рис. 6.
Теперь аккуратно приложите к контактам индикатор, выровняйте его таким образом, чтобы его контакты совпали с установленными на радиаторе, накройте его заготовленным оргстеклом и закрепите все шурупами, не затягивая их сильно. Проверьте соединение с тестером с помощью омметра: если сопротивление между проводами меньше 6 Ом (а в идеале — 3/4 Ом), можете окончательно закручивать шурупы (смотрите только не переусердствуйте и не сломайте крышку из оргстекла). После чего еще раз прозвоните индикатор. В идеале ваш индикатор должен полностью распластаться по поверхности радиатора. Наконец, проведите последний тест: подключите провода от индикатора к батарейке АА и посмотрите, как себя ведет дисплей. Если все работает нормально — поздравьте себя, так как вы только что прошли самую сложную часть. Если же при закручивании шурупов контакт ведет себя странно, развинтите все обратно, выровняйте проводки в "кисточку" и повторите процедуру сначала. Полученный индикатор должен выглядеть примерно так, как показано на рис. 7.
Таким образом, на данном этапе вы изготовили работающую головку индикатора. Теперь спаяйте такую же схему управления, как и для первого варианта (разумеется, без окошка с индикатором на плате), и подключите индикатор между диодами 1N4004 и транзисторами. Точно так же, как и в случае с простым индикатором, отрегулируйте напряжение путем замыкания/размыкания диодов. Не забудьте, что эту схему также нельзя включать до загрузки программы.

Запуск монитора загрузки процессора
Сначала скачайте программу отсюда: http://webperso.easyconnect.fr/om.the/web/duracell_cpumon/download/duracell_cpumon-0.0.2.tar.gz . Затем разархивируйте и пишите "make" — это должно запустить программу "duracell_ cpumon". В случае необходимости сконфигурируйте /dev/rtc как описано в исходном коде.

Теперь вам необходимо настроить программу, чтобы она знала, какая ширина импульсов соответствует загрузкам от 0% до 100%. Для этого запустите ./duracell_cpumon/dev/
ttySx -c (замените "/dev/ttySx" вашим портом, т.е. ttyS0, ttyS1 и т.д.). Не забудьте отключить индикатор сразу же после выхода из программы!
Наконец, после того как дисплей откалиброван (программа должна создать файл "duracell.cal"), запустите монитор загрузки процессора: ./duracell_cpumon/dev/ttySx и включите дисплей. Индикатор должен показывать среднюю загрузку процессора, правда, он довольно инерционен, и, если загрузка вашего процессора не слишком большая, загрузите процессор хотя бы до 10/15, чтобы индикатор прогрелся и стал работать, как положено. Для этих целей можно, например, запустить Open Office или Mozilla.
На рис. 8 вы можете увидеть мой индикатор в работе.

Также по адресу http://webperso.easyconnect.fr/om.the/web/duracell_cpumon/download/duracell_cpu_load.avi вы можете скачать видео, на котором заснят индикатор, когда я загрузил процессор на 50%, а потом снял задачу. Обратите внимание на показания программного индикатора KDEload, а также на то, как показания моего самопального индикатора совпадают с показаниями kcpuload (правда, с небольшими опозданиями, вызванными задержками из-за разогрева чернил).
Теперь у вас есть самый неточный, медленный, чугунно-уродский, сильно кушающий электричество, изощренно-извращенский индикатор загрузки процессора в мире! Вы правда счастливы;)?

Отказ от гарантий
Не подумайте плохого, я не являюсь владельцем магазина по продаже батареек Duracell или Energizer, я также никак не связан с этими компаниями. Так уж получилось, что я использовал эти батарейки в данном проекте, а заодно и в его названии.
Это был всего лишь эксперимент. Перед его повторением вы должны точно уяснить, что вы делаете. Я, разумеется, не несу никакой ответственности за тот возможный ущерб, который вы причините своему компьютеру, или же за пожар, который устроите в доме, или же если софт испортит ваш жесткий диск и т.д. Делайте все на свой собственный риск.

Пьер-Филипп Купар, http://webperso.easyconnect.fr/om.the/web/duracell_cpumon/

Перевод Дмитрия Герусса



Компьютерная газета. Статья была опубликована в номере 12 за 2004 год в рубрике hard :: моддинг

©1997-2024 Компьютерная газета