Реклама ⓘ
Главная » Компьютерная электроника
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Мониторинг параметров ПК на PIC

comp128-1.jpg

Данный проект представляет собой USB-устройство с LCD-дисплеем, на котором отображаются параметры компьютера в реальном времени.

Прошивка PIC-контроллера: Прошивка использует USB стек микроконтроллеров. Файлы, расположенные в USB папке, взяты из библиотеки "Microchip Libraries of Applications". Я использовал версию v2012-08-22 этой библиотеки. Файлы main.c, usb_descriptors.c, и usb_config.h были сформированы после "Device - HID - Custom Demos" файлов. Микропрограммное обеспечение обрабатывает команды в функции ProcessIO function в коде main.c. Прошивка PIC поддерживает следующие команды, передаваемые через USB HID:

0x10 - Очистить дисплей
0x11 - Перейти на строку 1, распечатать строковый параметр
0x12 - Перейти на строку 2, распечатать строковый параметр
0x13 - Перейти на строку 3, распечатать строковый параметр
0x14 - Перейти на строку 4, распечатать строковый параметр
0x20 - Выключить подсветку
0x21 - Включить подсветку
0x22 - Переключить подсветку
0x23 - Запросить состояние подсветки
0x30 - Обновить пользовательский параметр

Поддержка приложения ПК: приложение было написано на C#. Некоторые примечания... файл HIDInterface.cs представляет собой скрытую форму. Я создал это как форму, чтобы я мог получить указатель окна, используемого для вызовов функции RegisterDeviceNotification. Это позволяет мне определять, когда USB устройства подключены и не подключены. Это файл общего типа; специальные команды отображения находятся в файле HIDInterface_LcdDisplay.cs. Этот файл расширяет файл HIDInterface.cs и позволяет мне легко отправлять команды на дисплей. В LineOptionControl.cs вы найдете следующую функцию...

public string graphText(int percent)
{
    string returnStr = "";
    for (int i = 0; i < percent; i += 5)
    {
        // Check to see if we need a fraction of a full block (0x10 -> 0x14)
        if (i + 5 > percent)
        {
            returnStr += (char)(0x10 + (percent - i));
        }
        else
        {
            // Use a full block. (0x15)
            returnStr += (char)0x15;
        }
    }

    // Pad the graph out with empty blocks.
    returnStr = returnStr.PadRight(20, (char)0x10);

    return returnStr;
}

Эта функция определяет, как приложение отображает графы. Она требует целочисленный ввод в диапазоне 0 -> 100 и возвращает 20 символьную строку, представляющую целое число. Каждый символ представляет 5% графа. PIC интерпретирует символы 0x10 -> 0x15 в обычные символы, представляющие 0% -> 5%.

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

Командная строка: Если вы выберите значение "min" либо "minimize" для программы в качестве аргумента, то она запустится в свернутом виде в системный трей. Это удобно выполнить путем изменения ярлыка, как показано далее ...

"\UCSD Application 1.0.exe" min
 
Example:
"C:\Users\andrew\Desktop\UCSD Application 1.0.exe" min

Принципиальная схема:

Принципиальная схема устройства для мониторинга параметров ПК

Список используемых радиоэлементов:

  • LCD дисплей:
    • 1x NHD-0440WH-ATFH-JT [P1] - Модель не критичная. У меня используется 4x40 управляемый 2x SPLC780D микросхемами.
    • 1x 20KΩ потенциометр [R3] - Подстройка контрастности дисплея
    • 1x NPN FET [Q1] - Модель не критичная, я использовал MPSA42_D26Z FET.
    • 1x 1KΩ резистор [R5] - Ограничитель тока затвора.
    • 1x 22Ω резистор [R6] - Токоограничительный резистор подсветки LCD.
  • Микроконтроллер и обвязка:
    • 1x PIC18F2550 [U2] - PIC18F с поддержкой USB
    • 1x 10KΩ резистор [R4] - Для подтяжки MCLR
    • 1x SPST кнопка [S1] - Сброс. SKRGARD010.
    • 1x 20MHz кварц [Y1] - Я использовал ABL-20.000MHZ-B2.
    • 2x 18pF конденсаторы [C1] [C2] - Для 20МГц кварцевого резонатора
    • 1x 220nF конденсатор [C3] - Фильтрующий конденсатор для 3.3В USB порта МК
    • 1x 6 штыревой разъем [P2] - для программирования ICSP
    • 1x USB кабель [P3] - Питание устройства

Фото устройства:

comp128-2.jpg

comp128-3.jpg

comp128-4.jpg

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

UCSD_Software_1_4.png

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U2 МК PIC 8-бит
PIC18F2550
1 Поиск в магазине ОтронВ блокнот
Q1 Биполярный транзистор
MPSA42
1 Поиск в магазине ОтронВ блокнот
С1, С2 Конденсатор18 пФ2 Поиск в магазине ОтронВ блокнот
С3 Конденсатор220 нФ1 Поиск в магазине ОтронВ блокнот
R3 Переменный резистор20 кОм1 Поиск в магазине ОтронВ блокнот
R4 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R5 Резистор
1 кОм
1 Поиск в магазине ОтронВ блокнот
R6 Резистор22 Oм1 Поиск в магазине ОтронВ блокнот
Y1 Кварцевый резонатор20 МГц1 Поиск в магазине ОтронВ блокнот
Р1 Разъем1 Поиск в магазине ОтронВ блокнот
P2 Панелька6 штырьков1 Поиск в магазине ОтронВ блокнот
P3 USB вход1 Поиск в магазине ОтронВ блокнот
S1 Кнопка1 Поиск в магазине ОтронВ блокнот
ИндикаторNHD-0440WH-ATFH-JT1 4x40Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 3
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.7 Проголосовало: 3 чел.

Комментарии (3) | Я собрал (0) | Подписаться

0
Владислав #
Кто-нибудь собирал данную схему? А то у меня микроконтроллер прошить не получается.
Ответить
0
Illusion of control #
Собрал, всё работает. Но возникли проблемы с выводом на дисплей (крякозябры), решил увеличением задержки обновления дисплея в прошивке. Может накосячил с конфигурацией, выяснять полностью не стал.
Ответить
0
Drakador #
Это проблема с LCD, он должен понимать кириллицу.
Когда то делал для LPT порта несколько вариантов тоже сталкивался с "крякозябрами".
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

МиниПК MK809V - 4 ядра, Android 4.4.2
МиниПК MK809V - 4 ядра, Android 4.4.2
Конструктор для сборки: предусилитель на лампе 6N3 Arduino UNO
вверх