Эмуляция движения мыши на digispark

Digispark — маленький USB-монстр, который умеет двигать мышью

Digispark на базе микроконтроллера ATTiny85 — это очень популярное и доступное устройство для эмуляции клавиатуры и мыши, благодаря его низкой цене и простоте программирования. Эмуляция мыши на Digispark открывает множество практических применений, начиная от полезной автоматизации и заканчивая пентестом.

1. Необходимые компоненты и программное обеспечение

  1. Плата Digispark (или ее клон).
  2. USB-кабель для подключения к компьютеру (если плата требует кабель).
  3. Arduino IDE (версия 1.8.x или новее).
  4. Пакет поддержки Digispark (содержит все необходимые библиотеки и ядро).

2. Настройка среды Arduino IDE

Установливаем Arduino IDE, если он еще не установлен. Переходим «Файл» — «Параметры...»:

В окне «Параметры» в пункте «Дополнительные ссылки для Менеджера плат» вставляем ссылку:

https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json

Нажимаем кнопку «ОК»:

Далее переходим в «Инструменты» — «Плата» — «Менеджер плат...»:

В поле поиска «МЕНЕДЖЕР ПЛАТ» вводим «digistump» и устанавливаем «Digistump AVR Boards»:

Снова переходим в «Инструменты» — «Плата» — «Менеджер плат...» и выбираем «Digispark (Default - 16.5mhz)»:

Все готово для работы. Теперь остается залить скетч на плату.

3. Базовый скетч для эмуляции мыши

Вставляем следующий скетч:

// Подключаем библиотеку DigiMouse
#include <digimouse.h>

void setup() {
  // Инициализируем эмуляцию мыши
  DigiMouse.begin();
  // Можно добавить небольшую задержку после подключения, чтобы ОС успела определить устройство
  DigiMouse.delay(1000);
}

void loop() {
  // Движемся вправо и вниз
  DigiMouse.moveX(10);  // Переместить курсор на 10 пикселей вправо
  DigiMouse.moveY(10);  // Переместить курсор на 10 пикселей вниз
  DigiMouse.delay(20);  // Небольшая задержка для плавности

  // Движемся влево и вниз
  DigiMouse.moveX(-10); // Переместить курсор на 10 пикселей влево
  DigiMouse.moveY(10);  // Переместить курсор на 10 пикселей вниз
  DigiMouse.delay(20);

  // Движемся влево и вверх
  DigiMouse.moveX(-10);
  DigiMouse.moveY(-10);
  DigiMouse.delay(20);

  // Движемся вправо и вверх
  DigiMouse.moveX(10);
  DigiMouse.moveY(-10);
  DigiMouse.delay(20);
  
  // Цикл повторяется, и курсор рисует круги.
}

Для заливки нажимаем на кнопку «Загрузить на плату» (круглая со стрелкой), но плата не должна быть изначально подключена! Когда появится сообщение в консоле «Running Digispark Uploader... Plug in device now... (will timeout in 60 seconds)» — вставляем плату в USB, начнется заливка скетча.

После сообщения «Micronucleus done. Thank you!» плата готова к работе.

Добавлено: 14 сентября в 19:50
Поддержать автора

Коментарии