Metadata-Version: 2.1
Name: arduino-hid-emulator
Version: 0.2.0
Summary: A Python library for controlling Arduino HID devices
Home-page: https://github.com/mvandrew/arduino-hid-emulator
Author: Andrey Mishchenko
Author-email: msav@msav.ru
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyserial
Requires-Dist: pyautogui

# Arduino HID Emulator

`arduino-hid-emulator` — это Python-библиотека, предназначенная для управления HID-устройствами (клавиатурой и мышью), эмулированными на базе Arduino. Библиотека позволяет отправлять команды для управления движением мыши, нажатиями клавиш и кнопок мыши, а также выполнять калибровку для точного перемещения.

## Возможности

- **Управление мышью**:
  - Прямолинейное перемещение на заданное смещение.
  - Плавное движение мыши с использованием кривой Безье.
  - Нажатие, отпускание и клик кнопок мыши.

- **Управление клавиатурой**:
  - Нажатие и отпускание клавиш.
  - Симуляция комбинаций клавиш (например, `Ctrl + C`).

- **Калибровка**:
  - Автоматическая калибровка коэффициентов перемещения мыши для обеспечения точного позиционирования.

- **Гибкость**:
  - Возможность настройки минимальной и максимальной длительности перемещения мыши.
  - Лёгкое подключение и управление через последовательный порт.

## Установка

Убедитесь, что Python 3.x установлен в вашей системе, а также установите библиотеку с помощью `pip`:

```bash
pip install arduino-hid-emulator
```

## Требования

- Arduino с поддержкой HID (например, Arduino Pro Micro или Leonardo).
- Загрузка программы для Arduino (`hid_emulator.ino`), которая находится в папке `arduino/hid_emulator`.
- Библиотеки Python:
  - `pyserial`
  - `pyautogui`

## Быстрый старт

1. **Подключите Arduino**:
   Загрузите скетч `hid_emulator.ino` на вашу плату Arduino, подключите её к компьютеру через USB.

2. **Создайте объект подключения**:
   ```python
   from arduino_hid_emulator.arduino import ArduinoConnection
   from arduino_hid_emulator.mouse import MouseController

   arduino = ArduinoConnection()
   mouse = MouseController(arduino)
   ```

3. **Пример использования**:
   ```python
   # Перемещение мыши на заданное смещение
   mouse.move_direct(100, 100)

   # Плавное перемещение мыши к указанной точке
   mouse.mouse_move(500, 500, duration_min=1000, duration_max=2000)

   # Клик левой кнопкой мыши
   mouse.click("left")
   ```

4. **Закройте соединение**:
   ```python
   arduino.close()
   ```

## Калибровка

Для точного перемещения рекомендуется выполнить калибровку:
```python
mouse.calibrate()
```
Калибровка выполняется автоматически, настраивая коэффициенты перемещения мыши.

## Структура проекта

- `arduino_hid_emulator/` — исходный код библиотеки.
- `arduino/hid_emulator/` — скетч для загрузки в Arduino.
- `examples/` — примеры использования.

## Лицензия

Проект распространяется под лицензией [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.html). Вы можете свободно использовать, модифицировать и распространять библиотеку в соответствии с её условиями.

## Вклад в проект

Если вы хотите предложить улучшения, сообщить об ошибках или внести свой вклад, создайте pull request или откройте issue в [репозитории проекта](https://github.com/mvandrew/arduino-hid-emulator).

---
**Примечание**: Убедитесь, что скетч для Arduino загружен и устройство поддерживает HID.
