Главная » Статьи » Проекты |
USB розетка для ноутбука
Устройство будет полезно владельцам ноутбуков, нетбуков и, возможно, планшетов и принадлежит к классу USB-HID (Human Interface Device). "USB-розетка" "следит" за уровнем заряда АКБ и включает/выключает зарядное устройство (ЗУ) по заранее выставленным порогам. Если по каким либо причинам ЗУ не включится, то управляющая программа об этом сообщит. Об истории создания. Наблюдая за женой, как она "судорожно" пытается успеть подключить ЗУ к ноутбуку, пока он не перешел в "спящий режим" или после полного заряда АКБ забывает ее отключить (как известно, по-стоянное подключение ЗУ негативно влияет на АКБ), в голову пришла мысль: "А возможно ли про-граммно "вытащить" значение заряда АКБ из системы? " Как оказалось, возможно. О функционале. Так уж сложилось, что к моменту создания девайса WINDOWS XP осталась только на "большом" ПК. На нетбуке стоит WINDOWS 8, а на ноутбуке - WINDOWS 7. По этой причине программа в пол-ном объеме тестировалась только на этих системах. Но, использовав маленькие хитрости, скриншоты привожу именно с WINDOWS XP. Вот так выглядит окно программы: Если говорить честно, то эта уже вторая версия программы и устройства, но об этом чуть позже. "USB-розетка" "следит" за уровнем заряда АКБ и включает/выключает зарядное устройство (ЗУ) по заранее выставленным порогам. Если по каким либо причинам ЗУ не включится, то управляющая программа об этом сообщит: Вывод окна сопровождается звуковым сигналом. Он повторяется каждые 15 секунд. При устранении неисправности, окно само закроется. Все кнопки и выпадающие списки имеют всплывающие подсказки. При запуске программы, она сразу сворачивается в системный трей. Если программа уже запущенна и ее пытаются запустить еще раз, то выводится такое сообщение: Изначально программа запускалась и была поверх всех открытых окон, но при тестировании жена несколько раз машинально закрывала окно, нажав на "крестик". Программа постоянно проверяет на-личие девайса, и при его отсутствии выводит соответствующее сообщение: Так же идет постоянное считывание из системы уровня заряда АКБ в процентах. Если батарея не обнаружена, то программа так и "напишет": Экранный светодиод дублирует основные режимы работы: ЗУ выключено, ЗУ включено (зеленый), ошибка ЗУ (красный). Имеются кнопки добавления/удаления автостарта программы после старта операционной системы. Иконка в трее имеет меню, вызывается нажатием правой кнопки мыши: Развернуть - Развернуть окно программы из трея. Свернуть - Свернуть программу в трей. Язык/Language - Выбор языка интерфейса. Выход - Выход из программы, при этом все настройки сохраняются. Как видно языка пока только три. Добавить новый язык просто. В папке Files/Language копируем и вставляем любой язык, например Русский. Переименовываем его в соответствии с названием нового языка. Открываем новый язык в любом текстовом редакторе с возможностью выбора кодировки со-хранения файла, например AkelPad. Заменяем в каждой строчке после равно слова из нового языка. Обязательно сохраняем файл в кодировке Юникод (UNICODE). О конструкции. За основу был взят Demo – device Петра, опубликованный на http://bascom.at.ua Были убраны кнопки, лишние светодиоды и переделана питающая часть. В итоге получилась такая схема: Перечень элементов: Все электролитические танталовые чип-конденсаторы типоразмера B, керамические чип-конденсаторы и чип-резисторы типоразмера 0805. C1, C5 = 47µ, 10В. C2, C3, C6, C9, C10 = 0,1 мкФ, 50В. C4 = 1 мкФ, 50В. C7, C8 = 22 пФ, 50В. DA1 = 1117S33 FU1 = 250mA, предохранитель интегральный N05. FU2 = 1A*, держатель предохранителя ZH266 5x20 на плату с предохранителем. HL1 = L-937EGW, светодиод с держателем Corpus 9004 с заманенным на L-937EGW или LC-03. K1 = 845HN-2A-C-05VDC R1 = 1,5 кОм. R2 = 1 МОм. R3, R4 = 68 Ом. R5 = 0 Ом. R6, R8 = 10 кОм. R7 = 470 Ом. R9 = 330 Ом. VD1 = LL4148 VT1 = IRLML2502 ZQ1 = 12,000 МГц, резонатор кварцевый HC-49S или 3852. IC1 = ATMEGA8A или ATMEGA48-20PU (эти МК проверялись). XS1 = Кабель USB2.0 A (вилка). Не жалейте денег, купите хороший. XP1 = DG306-5.0-2P Как я уже говорил, эта уже вторая версия устройства. Придя с работы, я услышал, что моя "штуко-вина" не включила ЗУ и не видно работает она или нет. Изначально, при подключении, устройство мигало три раза светодиодом, показывая, что контроллер стартовал, а программа запускалась и была поверх всех открытых окон, но при тестировании мой самый главный тестер машинально закрыл окно, нажав на "крестик". Было принято решение о модернизации устройства. В результате программу можно закрыть либо через ALT+F4, либо через меню в трее, появилась индикация основных режимов, как в программе, так и в устройстве. Была разработана плата: В качестве корпуса была использована плинтусная розетка серии "Прима" - RA16-003-2M-B. Правильно собранное устройство начинает сразу работать. Несколько фото готового устройства: Вот так выглядит наклейка на корпус:
Изменил прием данных, дескриптор продукта. При первом подключении к компьютеру систе-ма обнаружит новое устройство - "USB-розетка для ноутбука", и сама установит для него стандартные драйверы HID. Вот небольшая программка для создания строковых дескрипторов в формате юникода. http://pure-basic.narod.ru/miscfiles/Bascom_USB.rar Просто вводим текст и нажимаем на кнопку "Преобразовать". Программа преобразует текст в формат юникода и создаст код для BASCOM'а. Спасибо говорим Петру. Фьюзы Фьюзы выставляются на тактирование микроконтроллера от внешнего высокочастотного кварцевого резонатора Программа для ПК написана на языке PUREBASIC 4.61. Для компиляции потребуются библиотеки Droopy Library и HID_Lib. Код программы занимает 563 строки, поэтому достаточно demo-версии. В итоге цель достигнута, жена спокойно работает за ноутбуком. Полезные ссылки: http://www.purebasic.com — сайт разработчика PUREBASIC. http://pure-basic.narod.ru — русскоязычный сайт о PUREBASIC. http://www.mcselec.com/ — сайт разработчика BASCOM AVR. http://bascomavr.3bb.ru/ — русскоязычный форум о BASCOM AVR. http://pure-basic.narod.ru/libs.html — библиотеки Droopy Library и HID_Lib. Устройство разработано по принципу «КАК ЕСТЬ» и автор не несёт ответственности за явный или не явный ущерб, причинённый в результате повторения девайса! Выражаю огромную благодарность: Петру за перевод программы на украинский язык и помощь в написании программы; Mrshilov за перевод программы на английский язык; админу портала за возможность опубликовать статью. автор: Илюшкин Максим (max), Барнаул, 2012г. | |
Просмотров: 20277 | Комментарии: 19 | Рейтинг: 4.7/11 |
Всего комментариев: 19 | |||||||||||||||||||
| |||||||||||||||||||
авторизация
рубрики
Проекты [46] |
Как подключить [32] |
Инструменты [3] |
Полезная информация [18] |
Объявления [3] |
метки