TrashNotes

2025-03-29 20:31:55
Ok: Для создания программы на CircuitPython, которая имитирует мышь с помощью микроконтроллера RP2040-Zero, мы будем использовать библиотеку usb_hid. Эта библиотека позволяет эмулировать USB-устройства, включая мышь.

Image

Ниже приведен пример кода, который реализует требуемое поведение:


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)

----------
← Previous Next →
Back to list