USB лампа для ноутбука

Была когда-то лампочка для ноутбука. Стандартная, с 3мя светодиодами и втыкалкой в USB-порт. Втыкаешь, светит на клавиатуру, да отключается кнопочкой. Потом светодиод сдались, видимо от неправильного режима, заданного китайским инженером.

Погоревал, и решил сделать её заново, но немного покруче, с регулируемой яркостью и дополнительными фитчами. В качестве фитч была выбрана дополнительная красная подсветка и сенсорная кнопка, чтобы всё это переключать.

Сделал на тини13, организовал распознавание длинного и короткого нажатий. Плату очень хорошо сделал фоторезистом, очень приятно что под 0805 пролезло по дорожке, и ничего не замыкало. Не одной перетравки, ни одной недотравки, всё красиво чрезвычайно.

Алгоритм следующий — короткое нажатие циклически переключает мощность белой подсветки, длинное включает/выключает красную, скидывая белую в дежурный еле светящийся режим. В недра засунул 2 красненький перемигивающихся светодиодика, чтобы медитировать, а заодно и узнать о неисправностях, если такие возникнут.

Сенсор организован просто на ноге и мегаомном резисторе. Замеряет по таймеру ШИМа.
Одна только проблема, с которой я столкнулся ещё при отладке, и которую предпочёл решить костылём, нежели культурно. А конкретнее, незаземлённый объект не даёт надёжного срабатывания сенсора, особенно на длительное нажатие. Пришлось вывести рядом с сенсором площадку для заземления меня любимого во время переключения.

Вот теперь вопрос — а не случиться ли чего, если успею я накопить заряд неплохой? И как этого дела избежать? По логике вещей земля есть земля, в неё обычно и разряжаются. Да и не помню я ни одного случаю выхода из строя компьютеров и прочей техники от натёртых об ковёр ног, хотя вроде бы разряжался частенько в разные их места и внутренние цепи.
Прилагаю видео работы этой фиговины.


UPD: По просьбам желающих прикрепил исходники и орловые файлы.
Файлы в топике: lamp.zip

Комментарии (48)

RSS свернуть / развернуть
по поводу защиты от статики можно решить при помощи вот datasheet/74lvc1t45.74lvch1t45.pdf">Этого
0
блин… что-то глюкануло. Вот: ics.nxp.com/products/lvc/datasheet/74lvc1t45.74lvch1t45.pdf
0
Не проще TVS поставить? Дёшево и сердито.
0
А зачем нужна красная подсветка? Это как-то связано с ником, чтобы не были ночью все кошки серы? :)
0
  • avatar
  • ACE
  • 10 мая 2012, 20:25
Ну не совсем. Красный свет намного меньше сбивает световую адаптацию глаз, поэтому очень часто используется в дежурном освещении и ночном освещении кабин. Да и все хорошие военные фонари обязательно имеют красный фильтр, чтобы ночью карты/документы смотреть, и снова не адаптироваться к темноте.
0
Случаев, когда от статики сдыхали материнки — полно. У меня брат зимой сел за комп, прикоснулся к мышке и комп вырубился. Навсегда вырубился. Пришлось новую материнку покупать.
По поводу подсветки. Глупая идея для подсветки клавиатуры регулировку яркости делать. Она — не текст, и абсолютно пофигу как она подсвечивается, лишь бы клавиши были видны. Моей китайской подсветке уже лет 10, там стоят 2 белых светодиода и выключатель. И нормально светят, не слепят, клавиатуру видно.
0
Китайцы экономят на защите потому и дохнет.
0
На резисторе они экономят токоограничительном. Я бы его защитой не назвал.
0
Я про правильную защиту — варистор или tvs, во многих мобилах стоят.
0
А, ты про USB. Сорри, я подумал про светодиод. Да, на мамках нормальных должна защита стоять. Обычно сборки на основе диодов и сапрессоров. Хотя, вроде контроллеры в чипсетах ICH4/ICH5 и это не спасало.
0
Пятые сами дохли, даже если USB не пользовались. Всё ещё попадаются.
0
Да, и я как раз про USB и дальнейшее приложение к нему в виде компьютера.
0
Глупая идея для подсветки клавиатуры регулировку яркости делать.
Глупая идея — это штаны через голову надевать. Или съев их. :)
Клавиши должны быть видны, никого не нужно ослеплять, будить или мешать.
0
Если и регулировать яркость, то исключительно как опция. А основное использование: настроил яркость как надо, а потом только включаешь и выключаешь. Подъем до установленной яркости при включение можно сделать плавным (это так, для тег кто не любит резкого включения). А тут основным действием выбрано «заставлять пльзователя тыкать 10 раз» и выключать через максимальную яркость. Не нужно слепить говорите?
0
Да, не суперудобно, это в момент настройки надо другой рукой прикрывать. Альтернативы — добавить ещё кнопок + — яркость, или сделать как в старых сенсорных лампах: короткое нажатие — вкл-выкл, удержание — плавная регулировка, со сменой направления.
0
Ну исходя из своего опыта, обычно как раз нужно включить и настроить на то что необходимо. А дальше вниманием к компьютеру надо обращаться, а не лампой заниматься. Так что неудобств не вижу.
А регулировка всегда полезна, разные условия бывают, разная яркость нужна соответственно.
0
а может, чтобы не маяться с защитами, сделать емкостной сенсор?
0
По этой рекомендации и делал, но сам, видимо, ёмкостью не вышел, не хватает меня, незаземлённого, для надёжного срабатывания сенсора :) Вот и пришлось заземлять самого себя :)
0
Вы хоть сенсорную кнопку заизолировали чем нибудь? или в кусок меди пальцем тычите?
0
Вот как раз я и про это. Сенсор из 2х частей, сам сенсор изолирован, а вот земля голая, чтобы ёмкость, нужную для срабатывания обеспечить.
0
а файлики проекта может выложишь? давно думаю замутить подсветку для своего покетбука. вот только лень все…
0
  • avatar
  • xar
  • 11 мая 2012, 12:17
Прикрепил, попробуй, вопросы задавай, если что непонятно будет.
0
благодарю. просто всегда пугалоколичество рамки в 13 тиньке )
0
Я вот убедился, что она очень даже. Вроде бы всего 1к, но оптимизация творит чудеса :) Короче, не стоит пугаться, она способна на многое, хотя невозможного тоже требовать от неё не стоит. Предыдущий проект на ней же по 1-wire работает с термометром, отображает через сдвиговые регистры температуру и регулирует ШИМом обороты куллера, включает толкачём, гистерезис и кнопка ещё. И это всего за 75% памяти, место подо что-нибудь ещё оставалось, но просто не смог придумать, что сделать.
0
а посмотреть на это чудо можно? )
0
У меня описано где-то в начале блога.
Вот тут.
0
под мелкой рамкой я, конечно же, подразумевал 64 байта оперативы
0
На каком языке писал, кстати?
0
gcc там
0
avrgcc конечно же
0
Он же вроде не очень дружит с МК без ОЗУ? Или я путаю и у тини13 таки есть ОЗУ, а не только регистровый файл?
0
64 байта аж :)
0
Да и не помню я ни одного случаю выхода из строя компьютеров и прочей техники от натёртых об ковёр ног, хотя вроде бы разряжался частенько в разные их места и внутренние цепи.
Плохо что не помните, еще не так давно материнки от статики в USB вылетали только в путь (южный мост). Сейчас вроде как там защита есть, но я бы супрессор бы, к примеру, поставил…
0
ICH5 не от статики дохли. IBM это ещё в 2005 признала.
0
А от чего именно? И как с этим дела обстоят у ICH7/ICH8?
0
Что в них происходит не знаю. Часто — пробой USB на минус(далеко не всегда) и замыкание внутреннего источника 1,5V туда же. Мосты недорогие, можно и поменять, только кому сейчас socket478 нужен… После 5х с дохлыми USB не попадались(статистика около 100 шт). Хотя иногда эти мосты и дохнут. Сам иногда разряжался на материнку в разные места. Максимум, что было- перезагрузка. Оно вобщем-то неудивительно — там же диоды стоят, на питание и корпус.
0
Раз уж от УСБ питаеться, то чего не прикрутить бы софт усб??? Можно былобы из трея включать(выключать) по щелчку, а скролом яркость бы регулировал. Ну или както так =)
0
иногда проще все таки нажать одну кнопочку, чем лезть в менюхи. это как про количество используемых мышц при улыбке и демонстрации среднего пальца.
а в целом если буков несколько — ради разнообразия можно бы сохранять настройки на буке )
0
Я не прошу лезть в меню. Иконка в трее (возле часиков), нажал — свет врубился, нажал — вырубился… Покрутил скролом — порегулировал яркость.=)
0
по-моему проще сделать кнопку на девайсе, чем писать трей-иконку.

Самый интересный вариант — увеличивать яркость при быстром мотании мышкой. а при отсутствии нажатий на клаву — гасить подсвет.
0
Да ненамного. Открыл дельфи, кинул на форму компоненты меню, трей-иконки и HID'а (последние два правда придется слить — например, из JCL), увязал обработчики — половина дела сделана. Остается только немного простенького кода написать.
Хотя на самом деле API HID и трей-иконок достаточно простое, но про него придется доки почитать. А с компонентами можно интуитивно работать — там обычно все ясно по названиям методов и параметров.
0
В лампе проводов нету сигнальных, это раз, а раскурочивать вилку не хочется, это раз. Тиня не потянет USB, а под большее там места нету, это два. И три, писать на комп пока так и не научился, да и УСБ на контроллерах тоже не раскурил :)
0
Первое — кабель можно заменить, но это так, лирика. Я понипаю, что в 13 стек USB вроде не засунешь, но я так, на будущее, мот замешишь на другой MCU, вот и намекнул. Со стороны хоста ничего сложного нет, но это я опять про себя говорю=) Будет желание, стучи, запили вместе ради интереса...=))
0
*запилим
0
Я бы вообще выступил с предложением запилить несколько статей насчёт написания программ на комп. Да и желательно кроссплатформнных. Я, например, слабо смыслю в программировании вообще, на контроллерах спасает только близость к железу, с которым как раз отношения вполне ничего. А вот написать что-то, что будет хотя бы числа в COM слать, это выше моих сил. Вот тут как раз думаю, что-бы начать изучать такого, чтобы не очень сложно, и полезно (да и опять же кроссплатформенно, на ноуте линух, на десктопе винда).
0
Про кроссплатформенное программирование — имхо не тут надо писать, все же сайт не о прикладном прог-ии( по сабжу: как вариант взять qt или какой-нибудь фреймвёрк и на нем пилить)

Начните с малого: UART + ft232(или аналоги) и прогу работающую с com портом на стороне ПК. хотя бы просто Terminal с управлением «руками»(посылая символьные команды).
0
Уж чего-чего, а сайтов о прикладном программировании — как собак нерезаных.
И ничего сложного там нет. Чуть другая идеология и совсем другие ограничения по требованиям (2ГБ ОЗУ и столько же гигагерц к вашим услугам, ага).
Были некоторые проблемы с программированием гуев (ничего принципиально сложного, но много писанины) — это давно решено гуи-фреймворками (VCL, Qt, WPF). Да и все остальное с нынешними фреймворками довольно просто.
Так что если есть способная к программированию вообще соображалка (а она, насколько я вижу, есть) — особо проблем не будет. Разве что потребуется прилично опыта, чтобы программы писать не только вроде работающие, но и красивые.
Проблема кроссплатформенности обычно решается кроссплатформенными фреймворками и отказом от работы с ОС напрямую. Правда, тут уже требуется чтобы нужные куски API (тот же HID API) имели обертку в фреймворке (либо писать свою обертку — по сути по обертке на каждую ОС). Кроме Qt или wxWidgets здесь еще можно порекомендовать .net и Java.
0
Тини45 потянет, размер тот же. Правда чуть дороже, но в целом в числе самых дешевых авр.
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.