Увидев несколько устройств в сети, которые управляют светодиодами в зависимости от нагрузки на процессор, я решил создать свою собственную схему, так как другие выглядят не очень совершенно. Изначально планировал чтобы девайс общался с ПК по шине USB при помощи TTL последовательного преобразователя, но вскоре я узнал о библиотеке V-USB, которая устраняет необходимость в преобразователе и поддерживает контроллеры ATtiny25/45/85!

Выбор пал на ATtiny45 который достаточно прост в использовании и имеет необходимое количество портов ввода/вывода, не используется только вывод сброса (2- питание, 2- шина USB, 3- RGB светодиоды). В качестве источника света использовал RGB светодиодную ленту, которая подключена через транзисторы ZVN4306A. Первоначально в схеме не использовались стабилитроны на 12V, но вскоре один из полевых транзисторов перестал работать, я полагаю что это случилось из-за статического электричества, исходя из этого в новой версии печатной платы предусмотрены места под такие стабилитроны.

Программное обеспечение

Таймеры 0 и 1 микроконтроллера используются для генерации ШИМ сигналов, частота которых 500 Гц. Таймер 0 также используется для обновления переменной с интервалом в миллисекунду, которая используется для ожидания тайм-аута, чтобы помочь увеличить срок службы EEPROM и для расчета времени перехода цвета, тайм-аут простоя нужен тогда, когда он не получает никаких данных в течение 5 секунд устройство начнет переход цветов - синий, зеленый, красный и обратно, пока устройство не начинает получать данные по USB снова.

Будучи в состоянии изменения цвета в зависимости от загрузки процессора в программе может быть установлен один статический цвет, возможно, если цвет покажется немного темным, можно установить его на белый. Настройки сохраняются в EEPROM, поэтому при следующей загрузке компьютера цвет будет таким который был ранее установлен.

Альтернативные компоненты

Если использовать обычные транзисторы вместо MOSFET транзисторов, сопротивление R1, R2 и R3 должен быть в пределах 1K - 2.2K, а стабилитроны D3, D4 и D5 не используются. D3, D4 и D5 также могут быть удалены, если вы используете MOSFET с внутренними диодами Зенера или если вы просто не нуждаетесь в защите от электростатического разряда. C1 конденсатор фильтра может быть любой емкости со значением от 100nF к 1uF и предпочтительно керамический.

Управляющая программа

Программа управления написана на С и доступна для Windows, и Linux, хотя программа Linux является немного функционально ограниченной на данный момент, реализована только основная функция отправки текущей нагрузки на процессор или читайте здесь о Windows Phone.

RGB индикатор загрузки процессора компьютера на ATtiny45 - схема

Быстрый старт:
1. Соберите схему;
2. Загрузите фьюз-биты и прошивку в Attiny45/85(см ниже команду);
3. Подключите устройство к порту USB, компьютер должен определить его как "CPUUsageLEDs";
4. Установите драйвер libusb
- Перейдите в диспетчер устройств;
- Щелкните правой кнопкой мыши на "CPUUsageLEDs";
- Нажмите "Обновить драйвер";
- Нажмите кнопку "Обзор", перейдите в каталог драйверов /driver, нажмите кнопку "ОК", а затем "Далее";
- Если появляется сообщение о невозможности проверить издателя драйвера, то нажмите на "Установить программное обеспечение этого драйвера";
5. Запустите программу cpuUsageLeds.exe в каталоге /host/win/.

Установка фьюз битов

avrdude.exe -B 16 -c usbasp -p attiny45 -U lfuse:w:0xf1:m -U hfuse:w:0xdc:m -U efuse:w:0xff:m -U flash:w:cpuUsageLed.hex -U eeprom:w:cpuUsageLed.eep

Автор: Zak Kemble


Архив для статьи "RGB индикатор загрузки процессора компьютера на Attiny45"
Описание: Весь проект
Размер файла: 898.18 KB Количество загрузок: 890 Скачать

Комментарии  

0 #1 Тёма 20.10.2015 14:16
Здравствуйте! Очень понравилась идея! И ваша статья вдохновила меня на проект, который давно хотел сделать.
Хочу реализовать управление устройством на AVR через USB. До этого делал управление через COM порты (переходники USB/UART), писал простенькую консольную программку которая отправляет на COM порт определенную команду, а устройство в свою очередь ее принимает и делает то что нужно. Но очень хочется отвязаться от этих портов, чтобы устройство было полноценным USB устройством, которое определяется в диспетчере устройств. Для начала хотя бы включить светодиод :sigh:
Подскажите с чего начать? Заранее спасибо ;-)
Сообщить модератору
0 #3 Uksivt 22.10.2016 21:24
Есть готовая схема для травления? Буду благодарен, если скинете :-)
Сообщить модератору
0 #4 AleksCrauser 05.02.2018 13:39
Знаю, что проект был выложен давно, только недавно руки дошли. Столкнулся с проблемой: при подключении к компьютеру Windows определяет как неизвестное устройство, драйвера не обновляются
Сообщить модератору