Заставить ардуино считывать данные с ПК

Я буду краток. Существует как ПК с Windows, на котором запущена программа. В этой программе есть данные о текущем обновлении. Без модификации ПК или добавления каких-либо программ на ПК, можно ли запрограммировать Arduino на считывание определенных данных из этой программы. Другими словами, Arduino будет подключен к ПК через USB-порт, и ему потребуется активно считывать определенные данные из этой программы без необходимости изменять КОМПЬЮТЕР каким-либо образом, программным или иным образом. У меня есть доступ к компьютеру, и я могу узнать практически все, что мне нужно о программе во время разработки этой системы, однако на практике мне нужно, чтобы Arduino просто был подключен к этому компьютеру и начал считывать его данные. Возможно ли это? Я не прошу об обучении, однако, если бы вы могли указать мне правильное направление, это было бы здорово. Спасибо

, 👍0

Обсуждение

Нет. Это невозможно. Arduino может получать последовательные данные от ПК только через USB. Если нет какой-либо программы, отправляющей информацию через последовательный порт, Arduino не имеет к ней доступа., @Delta_G

зачем кому-то хотеть использовать компьютер, который настолько небезопасен, что его даже не нужно взламывать, чтобы слить его данные?, @jsotola

Добавьте камеру в Arduino, наведите ее на экран и сделайте снимок. Затем используйте OCR для преобразования частей изображения в текст. О, и обновите свой Arduino до Raspberry Pi, чтобы он физически был способен на такие действия., @Majenko

Изучите стек USB вашего компьютера с Windows. Поиск уязвимостей. Как только вы найдете дыру в безопасности, запрограммируйте эксплойт, который позволит Arduino проникнуть в нее., @Edgar Bonet

Спасибо за информацию, @Vantiken000

@Majenko♦ подал мне идею ... запрограммировать Arduino для эмуляции последовательного порта и клавиатуры ... при подключении к ПК Arduino отправляет необходимые нажатия клавиш для сброса данных на последовательный порт ПК ... конечно, сложность заключается в том, чтобы передать данные запущенной программы в последовательный порт на стороне ПК ... возможно, скопировать и вставить, @jsotola

Хаха это не плохая идея, @Vantiken000


1 ответ


1

Как уже говорилось в комментариях: Нет, это невозможно. По нескольким причинам:

  • USB - это протокол master/slave. Ведомое устройство (здесь Arduino) ничего не может сделать без ведущего. Он может просто предоставлять свои конечные точки данных и хранить данные, готовые к чтению в этих конечных точках для ведущего устройства, или ждать данных от ведущего устройства на этих конечных точках. Если приложение на ПК не запрограммировано на передачу данных по USB, вы не сможете получить данные по USB.

  • Даже непосредственно на ПК вы не можете просто извлечь данные из другой программы. Это было бы очень большим риском для безопасности. Даже больше, когда он только что запущен через USB-устройство. Существуют USB-устройства, которые используют определенное поведение некоторых ОС (например, автоматическое выполнение определенных типов) для установки вируса на ПК. Но даже тогда вы не можете "просто прочитать" данные. Это было бы намного сложнее и невозможно с простым Arduino, поэтому здесь не по теме. (И вы можете неодобрительно отнестись к взлому вашего собственного компьютера таким образом)

С нашей точки зрения (означает, что взлом запрещен), я бы согласился с Majenko в комментариях. Использование визуального вывода - наиболее жизнеспособное и простое решение, хотя ваши результаты могут отличаться.

Для этого вам понадобится камера, направленная на экран (проверьте, получаете ли вы хорошее изображение. Он может быть искажен из-за медленного обновления ...) и используйте Raspberry Pi или что-то подобное для его подключения. Затем на Pi вы можете сделать снимки экрана и использовать инструмент распознавания текста, который будет считывать текст с изображения. Затем вам нужно извлечь и структурировать соответствующую информацию. (Возможно, будет проще создать подизображения в вашей программе и позволить инструменту распознавания работать над ними, чтобы различать различные части данных). Результаты вряд ли будут зависеть от качества изображения. Если вы можете работать с дополнительной программой, работающей на ПК, вы могли бы вместо этого сделать изображения экрана в виде скриншотов, которые будут намного лучшего качества. Хотя в этот момент вы также можете поместить остальную логику на компьютер и просто удалить Pi.

Этот способ все равно будет труден для новичка, но возможен.

,

Спасибо за ответ, @Vantiken000

OCR кажется очень громоздким, гораздо проще просто написать программу для ПК, которая подключается по сети к вашему Arduino или даже отправлять файлы по вашему индивидуальному последовательному протоколу., @Ananas_hoi

@Ananashoi Хотя это все еще не включает, как получить данные из программы. Часто такие программы не имеют опции «потоковой передачи всех данных в это место». Иногда они могут экспортировать фиксированный набор данных, хотя этот экспорт необходимо снова активировать. Эта часть действительно зависит от программы, и в настоящее время мы ничего о ней не знаем., @chrisl