Arduino общается с ПК?

Я почти уверен, что это правильный форум, чтобы задать этот вопрос, но если это не просто lmk.

Я пытаюсь создать автоматический кликер, который будет как можно более скрыт для проекта HID unit компьютерной инженерии.

То, что я создал до сих пор (это работает), - это Arduino, посылающий последовательные данные через приложение C++, которое при получении символа " @ "запускает код автоматического кликера и"#", чтобы остановить щелчок. Я показал это своему учителю, и он сказал, что это слишком просто, так как это просто приложение для последовательной отправки данных, но ему нравится идея автокликинга.

У меня было несколько идей, но я не знаю, как их воплотить. Все, что я пытаюсь сделать, - это пока клавиатура или кнопка мыши arduino посылает щелчки мыши.

TLDR; Есть ли способ, которым я могу передавать события клавиатуры или мыши от мыши/клавиатуры непосредственно к Arduino, все еще нормально работая на самом компьютере, или, может быть, даже что-то менее дискретное, например создание драйвера устройства?

Кстати, я плохо разбираюсь в кодировании, так что мне, скорее всего, понадобится кто-то, кого я знаю, чтобы помочь мне его закодировать.

, 👍0

Обсуждение

Используйте плату на основе ATmega౩2u4, как Леонардо., @Majenko

внутри одного приложения или веб-сайта это не проблема, но я не думаю, что есть простой способ собрать общесистемные нажатия клавиш, по крайней мере, в Windows. это проблема безопасности, поэтому было бы интересно, если бы приложения получили такую большую силу. вы можете заглянуть в autohotkey: вы можете использовать его для установки ловушек для определенных ключей/комбо и действий огня, когда они происходят. затем вам понадобится автономное действие, которое разговаривает с arduino, например, файл bat или скрипт оболочки, который эхом отдается по последовательному каналу. или используйте Wi-Fi, и вы можете пропинговать URL, чтобы отправить материал MCU., @dandavis

Это, похоже, проблема программного обеспечения хоста, а не проблема Arduino., @Chris Stratton

@Majenko - ATmega32U4 может *эмулировать* USB-мышь, но не получать данные от той, о которой на самом деле идет речь. Это поможет только в том случае, если вы начнете с мыши ps/2 и подключите ее к ПК, как если бы она была USB., @Chris Stratton

@ChrisStratton Эмуляция мыши-это то, что он хочет. Контроль над ним должен исходить от компьютера, и это вне компетенции этого сайта (программирование Windows). Там нет ничего о том, что Arduino получает информацию от мыши, а только реагирует на инструкции от ПК, чтобы эмулировать мышь., @Majenko

Вам нужно перечитывать вопрос, так как он прямо противоречит вашему утверждению: **"Есть ли способ, которым я могу передавать события клавиатуры или мыши из мыши/клавиатуры непосредственно в Arduino"**-это задача *приема* для Arduino, а не *отправки*. Возможно, Arduino также может быть предназначен для *отправки* щелчков мыши, но вопрос ясен, что **выходная часть уже работает.**, @Chris Stratton

@ChrisStratton Я не согласен. Вопрос в 2 раза: 1. эмулировать мышь (автокликер)-нужен 32U4. 2. Управлять ею с помощью мыши, подключенной к другому устройству**, а не к Arduino**., @Majenko

Ваши утверждения прямо противоречат фактическому тексту вопроса., @Chris Stratton

Ты это имеешь в виду? "Все, что я пытаюсь сделать, это в то время как клавиатура или кнопка мыши arduino посылает щелчки мыши.", @Majenko

Для Arduino для отправки щелчков мыши он *должен эмулировать мышь*., @Majenko

В этом случае, если вас не волнует эта часть проблемы, только "как получить материал с устройства, подключенного к моему компьютеру", то это не вопрос для этого сайта в любом случае и должен быть закрыт. Или, еще лучше, удалил. Единственная часть, на которую мы можем ответить относительно проекта, - это часть эмуляции мыши. Все остальное не имеет значения., @Majenko


2 ответа


0

Я думаю, что хочу, чтобы вы посмотрели на эту функцию SetWindowsHookEx в Windows. Это позволяет вам захватить любую мышь для ввода с клавиатуры и что-то сделать, ввод по-прежнему выполняется по обычному маршруту, вы просто получаете уведомление об этом.

Я использовал эту функцию, чтобы подключить 4-ю и 5-ю кнопки мыши для запуска и остановки медиаплеера, чтобы, когда люди приставали ко мне на работе, я мог приостанавливать свои мелодии.

MSDN - функция SetWindowsHookEx

StackOverflow - Пример, который может сработать

,

0

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

Однако эмуляция мыши, чтобы Arduino отправлял события щелчка мыши, с которыми мы можем помочь.

Для этого вам нужно будет приобрести Arduino, основанный на чипе, который может напрямую подключаться к USB - это означает плату на базе ATmega32U4, такую как Arduino Leonardo.

На этих платах по умолчанию есть объект мыши, который вы можете использовать для отправки кликов:

void setup() {
    Mouse.begin();
}

void loop() {
    Mouse.click(MOUSE_LEFT);
    delay(100);
}

Как вы начнете и остановите щелчок, зависит от вас - возможно, самым простым способом будет отправить простую инструкцию через последовательный. Вам понадобится приложение в Windows, которое фиксирует необходимые события с клавиатуры или мыши и отправляет любой сигнал, который вы решите, на Arduino.

,

Плакат уже решил эту часть: **"То, что я создал до сих пор (это работает), - это Arduino, отправляющий последовательные данные через приложение C++, которое при получении символа" @ "запускает код автоматического клик"**. Задаваемый вопрос касается получения входных событий, которые вы, похоже, хотите игнорировать., @Chris Stratton

@ChrisStratton В вопросе нет *ничего*, что говорит о том, что Arduino генерирует отчеты о скрытых мышах. Только то, что он запускает код щелчка мыши. Насколько нам известно (особенно учитывая, что он помечен как "серийный"), он просто отправляет инструкции обратно в свою программу Windows, чтобы сказать "щелкните мышью сейчас"., @Majenko