USB шутка

Первое апреля не единственный день в году, когда можно разыграть друга, коллегу (да и уже не за горами эта дата), и поэтому сегодня мы попробуем сделать устройство, которое нам может помочь в этом. Товарищам, которым нравится ковыряться во всяком железе может прийти по душе шутка с клавиатурой, которая генерирует случайные нажатия кнопок и иногда их комбинации – получится совместить, так сказать, приятное с приятным, все же полезного, наверно мало, зато может создать забавную ситуацию.

В общем моделирую ситуацию. Паяете «флешку» шутку или как у меня на небольшой отладочной плате, или развести плату для устройства в корпусе реальной флешки. Прошиваем устройство без каких либо дополнительных средств прямо через USB посредством специального софта под названием Flip компании Atmel. Все, теперь готовимся заряжаться смехом на долгую жизнь – незаметно нужно вставить эту «флешку» в компьютер тому, кого хотите разыграть. И далее просто наблюдаем за тем, как у вашего товарища при работе на компьютере творятся аномальные вещи – то открылось окно помощи, то поиска, то просто какие-то буквы начинают появляться. В конце останется лишь показать, в чем было дело и быстро-быстро бежать. Забавно? Правда? Если вы считаете так же, то читаем продолжение статьи о том, как сделать USB шутку. Если же напротив, то прошу прощения за потраченное  время.

Итак, для этого нам понадобится, главным образом, микроконтроллер AT90USB162. Выбор именно в пользу этого микроконтроллера обуславливается тем, что для его программирования не нужен программатор, все происходит при помощи аппаратного USB модуля и bootloader’a, который изначально прошит как заводская настройка. Далее необходимо немного резисторов, конденсаторов и кварцевый резонатор на частоту 16 МГц. Также пара светодиодов опционально для красоты или визуализации – их можно не ставить вообще, если не хотите. Ну, и наконец форм фактор шуточного устройства вы определяете сами – самый скрытный вариант – это USB флешка, но на худой конец можно сделать любу черновую плату или использовать предложенную мной, в таком случае отлично можно замаскировать устройство на задних USB разъемах стационарного компьютера.

Итак, давайте перейдем к схеме устройства:

Как было отмечено, главным элементом схемы является микроконтроллер AT90USB162. Использовать данный микроконтроллер придется в smd корпусе (TQFP32). Для человека с малым опытом в пайке лучше всего попросит припаять его опытных людей, чтобы не испортить микроконтроллер или печатную плату. Расстояние между выводами небольшое и для пайки нужна некоторая сноровка. Пишу для общего круга читателей, поэтому старожилы радиолюбители могут все это пропустить. Далее резисторы (кроме R6), конденсаторы, светодиоды используются также в smd исполнении. С smd светодиодами особенно аккуратно – их сжечь при пайке достаточно просто, особенно если паяльник без стабилизации температуры. Выбор типа разъема зависит от ваших предпочтений, я предлагаю тип USB mini, но можно использовать или USB micro или вовсе тип A или B. Конденсатор C6 является фильтром внутреннего стабилизатора микроконтроллера на 3,3 вольта. Номинал можно увеличить. Конденсаторы C1, C2, C5 – фильтры по общему питанию 5 вольт. Резисторы R2 и R3 подключаются на выводы данных data+ и data- USB интерфейса, номинал можно немного увеличить, если нет таких как в схеме. Даташит рекомендует использовать 22 Ом. Резистор R5 подтягивает плюс питания к выводу reset микроконтроллера, чтобы не происходило самопроизвольного перезапускания устройства, если вдруг этот вывод начнет ловить помехи. Резистор R6 подключается через перемычку к выводу микроконтроллера, который при замыкании на землю в связке с кнопкой reset активирует bootloader. Это необходимо для возможной перепрошивки устройства во что-то более полезное. Перемычка используется для возможности использовать этот вывод для других целей. Резисторы R1 и R4 ограничивают ток, протекающий через светодиоды, чтобы те не вышли из строя. Номинал выбран с избытком, потому что примененные светодиоды сверхъяркие и им достаточно небольшого тока, чтобы они достаточно ярко светились. Такой выбор немного повысит их надежность. Номиналы этих резисторов можно варьировать в разумных пределах. Сами же светодиоды можно выбрать любой формы и способа монтажа, но на моей плате можно использовать лишь для поверхностного монтажа и лишь типоразмеров 1206, как изначально заложено, но на эти площадки может поместится также типоразмер 0805. Ограничительный резистор для красного светодиода имеет больший номинал, потому что падение напряжения на красных светодиодах, как правило, всегда меньше, чем на остальных. Чем больше падение напряжения на светодиоде, тем меньше нужен ограничивающий резистор. Расчет выглядит следующим образом: напряжение питания отнять напряжение падения на светодиоде и это все разделить на ток, протекающий через светодиод, ответом будет сопротивление ограничивающего ток резистора. И последний элемент – это кварцевый резонатор, к его выводам подсоединены конденсаторы C3 и C4 малой емкости для обеспечения работы резонатора. Частота кварца должна быть строго 16 МГц без каких либо отклонений, потому что именно с ним будет работать схема. Фьюз биты прошивать не нужно, поэтому схема тактирования будет работать лишь от него. Применение smd компонентов позволит сделать плату миниатюрной, похожей на стандартную флешку, что не вызовет особых подозрений на ее счет.

Если вы ранее собирали отладочную плату для микроконтроллера AT90USB162, то дополнительно ничего паять не придется, лишь прошить микроконтроллер и все. Я так и поступил. Схема опробована на железе отладочной платы:

При включении устройства в USB несколько раз моргнет зеленый светодиод, типа как «настоящая» флешка. Красный светодиод горит постоянно и выполняет функцию индикации напряжения на плате. Случайная кнопка наживается примерно раз в секунду, интервал можно увеличить до любого вам желаемого. Процесс выбора случайной кнопки осуществляется функцией rand(). Может быть вы скажете, что это не самый лучший рандомайзер, но главное он работает и выполняет свои функции как надо.

Для прошивки микроконтроллера используется программа Flip, скачать ее последнюю версию можно с официального сайта Atmel. Подробно процесс программирования рассмотрен в статью про отладочную плату на базе микроконтроллера AT90USB162. Напомню, что никаких фьюз-бит прошивать не нужно, лишь саму прошивку во флэш память и все.

К статье прилагается прошивка для микроконтроллера AT90USB162, исходный код в программе CodeVisionAVR, файл печатной платы, на которой была изготовлена данная схема, а также небольшое видео, демонстрирующее пакости, которые творит эта схема. Надеюсь было интересно, спасибо за внимание и до новых встреч!


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

IC1
МК AVR 8-битAT90USB1621
C1, C6
Конденсатор1 мкФ2
1206C2
Конденсатор0.1 мкФ1
1206C3, C4
Конденсатор22 пФ2
1206C5
Конденсатор10 мкФ1
1206R1
Резистор1.5 кОм1
1206R2, R3
Резистор22 Ом2
1206R4
Резистор1 кОм1
1206R5, R6
Резистор10 кОм2
1 — 0805, 1 — выводнойLED1
СветодиодКрасный1
1206LED2
СветодиодЗеленый1
1206Z1
Кварцевый резонатор16 МГц1
S1, S2
Тактовая кнопкаIT-1127-5-160G-G2
smdX1
РазъемminiUSB1
smdJmp1, Jmp2
ПеремычкаДжемпер2

Штыревое соединениеPLS-41
для версии на отладочной плате
Штыревое соединениеPLS-21
для версии на отладочной плате
Штыревое соединениеPLS-141
для версии на отладочной плате
Штыревое соединениеPLS-81
для версии на отладочной плате
Штыревое соединениеPLS-2 угловой2
Добавить все

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

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

Добавить комментарий

Ваш адрес email не будет опубликован.