Arduino общается с ПК?
Я почти уверен, что это правильный форум, чтобы задать этот вопрос, но если это не просто lmk.
Я пытаюсь создать автоматический кликер, который будет как можно более скрыт для проекта HID unit компьютерной инженерии.
То, что я создал до сих пор (это работает), - это Arduino, посылающий последовательные данные через приложение C++, которое при получении символа " @ "запускает код автоматического кликера и"#", чтобы остановить щелчок. Я показал это своему учителю, и он сказал, что это слишком просто, так как это просто приложение для последовательной отправки данных, но ему нравится идея автокликинга.
У меня было несколько идей, но я не знаю, как их воплотить. Все, что я пытаюсь сделать, - это пока клавиатура или кнопка мыши arduino посылает щелчки мыши.
TLDR; Есть ли способ, которым я могу передавать события клавиатуры или мыши от мыши/клавиатуры непосредственно к Arduino, все еще нормально работая на самом компьютере, или, может быть, даже что-то менее дискретное, например создание драйвера устройства?
Кстати, я плохо разбираюсь в кодировании, так что мне, скорее всего, понадобится кто-то, кого я знаю, чтобы помочь мне его закодировать.
@ironstinger19, 👍0
Обсуждение2 ответа
Я думаю, что хочу, чтобы вы посмотрели на эту функцию SetWindowsHookEx
в Windows. Это позволяет вам захватить любую мышь для ввода с клавиатуры и что-то сделать, ввод по-прежнему выполняется по обычному маршруту, вы просто получаете уведомление об этом.
Я использовал эту функцию, чтобы подключить 4-ю и 5-ю кнопки мыши для запуска и остановки медиаплеера, чтобы, когда люди приставали ко мне на работе, я мог приостанавливать свои мелодии.
MSDN - функция SetWindowsHookEx
StackOverflow - Пример, который может сработать
Мы не можем помочь вам с получением состояния кнопки мыши или кнопки клавиатуры в 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
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- В чем разница между Serial.write и Serial.print? И когда они используются?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Программы построения последовательных данных
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Очистить существующий массив при получении новой последовательной команды
Используйте плату на основе 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