2025-03-29 20:31:55
Ok: Для создания программы на CircuitPython, которая имитирует мышь с помощью микроконтроллера RP2040-Zero, мы будем использовать библиотеку usb_hid. Эта библиотека позволяет эмулировать USB-устройства, включая мышь.
Ниже приведен пример кода, который реализует требуемое поведение:
import time
import board
import usb_hid
from adafruit_hid.mouse import Mouse
# Инициализация мыши
mouse = Mouse(usb_hid.devices)
# Параметры движения
steps = 5
delay_between_steps = 0.1 # Задержка между шагами (в секундах)
long_delay = 3 # Длинная задержка между движениями (в секундах)
# Функция для выполнения шагов в указанном направлении
def move_mouse(direction, steps):
for _ in range(steps):
mouse.move(x=direction, y=0)
time.sleep(delay_between_steps)
# Основной цикл программы
while True:
# Двигаем мышь вправо
move_mouse(5, steps) # 5 - значение для движения вправо
time.sleep(long_delay)
# Двигаем мышь влево
move_mouse(-5, steps) # -5 - значение для движения влево
time.sleep(long_delay)
Объяснение кода:
Импорт библиотек:
time: Для управления задержками.
board: Для работы с аппаратными ресурсами (не используется в этом примере, но часто требуется в других проектах).
usb_hid: Для работы с USB HID-устройствами.
adafruit_hid.mouse: Для управления мышью.
Инициализация мыши:
mouse = Mouse(usb_hid.devices): Создает объект мыши, который будет использоваться для отправки команд.
Параметры движения:
steps: Количество шагов, которые мышь будет делать в одном направлении.
delay_between_steps: Задержка между каждым шагом.
long_delay: Длинная задержка между движениями в разные стороны.
Функция move_mouse:
Принимает направление (direction) и количество шагов (steps).
Двигает мышь в указанном направлении на заданное количество шагов с задержкой между шагами.
Основной цикл:
Мышь двигается вправо на 5 шагов, затем ждет 3 секунды.
После этого мышь двигается влево на 5 шагов и снова ждет 3 секунды.
Цикл повторяется бесконечно.
Установка и запуск:
Установка CircuitPython:
Загрузите и установите последнюю версию CircuitPython для RP2040-Zero на вашу плату.
Загрузка библиотек:
Скопируйте библиотеки adafruit_hid и usb_hid в каталог lib на вашей плате.
Загрузка кода:
Сохраните код в файл code.py на вашей плате.
Подключение к компьютеру:
Подключите RP2040-Zero к компьютеру через USB.
Компьютер должен распознать устройство как мышь, и экран не будет "усыпать" из-за периодической активности мыши.
Этот код должен удовлетворить вашим требованиям, имитируя мышь, которая периодически двигается вправо и влево, предотвращая "усыпание" экрана.
!!!!!!!!!!!!!!!!! Обратно только через terminal: import os ; os.rename('boot.py','boot.p') !!!!!!!!!!!!
Для того чтобы отключить представление CircuitPython как USB-накопителя, можно воспользоваться функцией storage.disable_usb_drive(), добавив соответствующий код в файл boot.py. Это позволит вашему микроконтроллеру иметь эксклюзивный доступ к файловой системе, что может быть полезно для записи данных или обновления файлов без вмешательства компьютера.
Шаги для отключения USB-накопителя
Создайте файл boot.py с следующим содержимым:
----------
import storage
import usb_cdc
# Отключаем USB-накопитель
storage.disable_usb_drive()
# Включаем USB REPL для доступа к консоли
usb_cdc.enable(console=True, data=True)
# Перемонтируем файловую систему для записи
storage.remount("/", readonly=False)
----------
Back to list