Добавить в корзинуПозвонить
Найти в Дзене
Паяльник

Имитатор движения мыши на МК CH32X033 (WinChipHead)

Идея создать данное устройство возникла у меня, когда я в очередной раз был вынужден вводить пароль на рабочем компьютере, так как при простое он в течение 5 минут выходит из учётной записи (такая политика безопасности в организации). А так как работать приходится не только днём но и ночью, когда компьютером приходится пользоваться не так часто, как днём, регулярный ввод пароля меня раздражает ещё сильнее. Сначала я посмотрел подобные девайсы на отечественных маркетплейсах -они существуют, но цена на них совсем неадекватная. Затем я прошерстил известный китайский интернет-магазин - цена оказалась не сильно ниже плюс скорость и надёжность доставки оставляет желать лучшего. Тогда я решил, почему бы не попробовать сделать самому, тем более какой-то опыт работы с паяльником у меня имеется. Для начала взял первую попавшуюся под руку отладочную платку с STM32 (black pill на stm32f411), создал проект в CubeMX (благо с таким инструментом это можно сделать в пару кликов), посмотрел примеры рабо

Идея создать данное устройство возникла у меня, когда я в очередной раз был вынужден вводить пароль на рабочем компьютере, так как при простое он в течение 5 минут выходит из учётной записи (такая политика безопасности в организации). А так как работать приходится не только днём но и ночью, когда компьютером приходится пользоваться не так часто, как днём, регулярный ввод пароля меня раздражает ещё сильнее. Сначала я посмотрел подобные девайсы на отечественных маркетплейсах -они существуют, но цена на них совсем неадекватная. Затем я прошерстил известный китайский интернет-магазин - цена оказалась не сильно ниже плюс скорость и надёжность доставки оставляет желать лучшего. Тогда я решил, почему бы не попробовать сделать самому, тем более какой-то опыт работы с паяльником у меня имеется. Для начала взял первую попавшуюся под руку отладочную платку с STM32 (black pill на stm32f411), создал проект в CubeMX (благо с таким инструментом это можно сделать в пару кликов), посмотрел примеры работы с HID устройствами - и мой девайс заработал как надо, курсор двигался на всех возможных устройствах: Windows, Linux и даже на телефоне под Android. Но black pill это достаточно дорогая, громоздкая и излишне нафаршированная платка для девайса с таким ограниченным функционалом.

Тогда я вспомнил, что у меня в загашнике валяются несколько ультрадешёвых RISC-V микроконтроллеров с USB на борту от WCH - ch32x033, а также есть отладочная платка с ch32x035 (что практически одно и тоже). Тем более эти камни в довольно компактном корпусе (TSSOP20) и требуют минимум обвязки. А стоят при партии 5-10 штук приблизительно 0,5$ на известном китайском маркетплейсе.

Для начала я скачал на официальном сайте архив с примерами (CH32X035EWT). Среда разработки MounRiver Studio (совершенно бесплатная на база eclipse) у меня уже была установлена, также как и программатор WCHIspTool (позволяет программировать микроконтроллеры WCH через встроенный USB без всяких программаторов). Распаковал папку с примерами, открыл нужный пример, немного подредактировал его - и вуа-ля! устройство работает также как на stm32.

Осталось дело за малым, оформить всё как готовое устройство. Нарисовал плату в Sprint-Layout, вытравил, спаял. Получился вот такой компактный свисток:

Схема устройства элементарная: сам микроконтроллер, линейный стабилизатор на 3,3 вольта, защитный диод (Шоттки) на VBUS, USB разъём, пара конденсаторов, резистор и светодиод:

-2

Для прошивки устройства: вставляем его в USB, запускаем программу WCHIspTool, выбираем тип микроконтроллеров RISC-V CH32V, открываем в программе файл прошивки и жмём старт. Если микроконтроллер пустой, то он прошьъётся без каких-либо проблем, если он уже с прошивкой, то перед подключением к USB его надо ввести в boot режим, замкнуть boot пин на минус, для этого на плате предусмотрены соответствующие пятаки. Также надо учитывать, что у встроенного бутлоадера есть таймаут, поэтому сначала желательно запустить программу, открыть в ней прошивку, а затем вставлять устройство в USB.

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

Устройство было протестировано в боевых условиях, непрерывно использовалось по 12 и более часов по назначению. Никаких проблем и сбоев не возникло.

Как обычно прикреплю к статье все исходники: проект прошивки (только папка проекта, для сборки надо скачать EVT по ссылке выше и заменить или вставить туда папку с проектом, иначе проект не соберётся из-за отсутствия зависимых файлов), саму прошивку, печатную плату и схему.

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

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

Автор: AndrejChoo