Как получать и обрабатывать информацию с экрана ПК?
- Войдите на сайт для отправки комментариев
Вс, 29/05/2022 - 18:51
Каким образом можно считывать информацию с экрана ПК и на основе полученных данных выполнять определенные действия через ардуино?
Например, на мониторе раз в N секунд появляется красный круг небольшого радиуса. Как при появлении этого круга - отправлять сигнал в Arduino (хотя бы цифрой, вида 0 - 1)?
Рассматривал вариант с датчиком цвета, но хотелось бы дешевле, да и явно можно как-то программными средствами определять цвет в определенной точке экрана...
Ну как вариант - программно делать скриншот экрана и смотреть цвет пикселей в определенной области... )))))
Ага. Но какими средствами тогда это делать, чтобы потом можно было отправить на Ардуинку через COM порт?
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc
Например, на мониторе раз в N секунд появляется красный круг небольшого радиуса. Как при появлении этого круга - отправлять сигнал в Arduino (хотя бы цифрой, вида 0 - 1)?
Рассматривал вариант с датчиком цвета, но хотелось бы дешевле, да и явно можно как-то программными средствами определять цвет в определенной точке экрана...
Всё это решается программой в самом ПК. Arduino ни к чему.
Можно определить появление красного круга в ПК и отправить "1" в Arduino через COM-port. И что вы с этой единицей будете делать? Можно отправить весь круг в виде битмапа, но он просто не влезет в память Arduino.
Как-то непонятен смысл задачи. Сформулируйте иначе.
да и явно можно как-то программными средствами определять цвет в определенной точке экрана...
можно, но если речь об играх с защитой типа какого нибудь gameguard'а, то простые способы не работают
Каким образом можно считывать информацию с экрана ПК и на основе полученных данных выполнять определенные действия через ардуино?
У самого был подобный вопрос. Решение отложил на неопред.время, т.к. пока общий уровень подготовки слабооват))
Нашёл только, что вроде-бы (сам не пробовал) можно обратится к ПК через биос, прерывание 10Н стандартного видеосервиса ROM- BIOS. Там можно вызвать нужную функцию и считать пиксель.
Возможно на новых компах не прокатит.
P.S.Вернее пробовал в эмуляторе 8086, через 10h выводить символы на экран., т.е. самые азы.
Так надо то наверное под виндой, а не в эмуляторе ДОСа ? Ничего общего. Там совершенно ничего хитрого нет пока речь не об играх - гуглится легко на каком нибудь vb или c#.
Так надо то наверное под виндой, а не в эмуляторе ДОСа ? Ничего общего.
Я имел ввиду не DOS, а напрямую к железу, если через винду нельзя. 10h и на моём компе поддерживается, но только в низком разрешении(CGA/Mono). А на высоком - если есть VESA BIOS Extensions для VGA.(на моём нет, к сожалению)
Повторю, я сам только начал этим заниматься, могу ошибаться, что всё правильно понял. Но тема интересная))
Лениво было, да и невозможно вмешаться в научный прибор с рэдхэтом от царя гороха на борту. Просто придепил на скрин присоску с фоторезистором и развязанную оптроном леонарду ака мышьЭмулятор. Теперь это всё изображает оператора.
Повторю, я сам только начал этим заниматься, могу ошибаться, что всё правильно понял.
Ага, про ДОСы или какие то там БИОСы забудьте, а винда вам просто так глубоко в себя копать не даст ) Вполне возможно, что вариант с камерой, направленной на экран, будет и в итоге проще и надежней, смотря что там разглядывать нужно и с какой точностью.
Вопщем, если ты хочешь иметь прерывания - забудь про Винду, если хочешь иметь винду - забудь про прерывания. Подсистема BIOS - 16 битный реальный режим процессора, никто тебя в него не пустит из защищенного режима, BIOS нужен только чтоб проверить и проинициализировать железо и стартануть ОС.
Ага, про ДОСы или какие то там БИОСы забудьте, а винда вам просто так глубоко в себя копать не даст )
Вопщем, если ты хочешь иметь прерывания - забудь про Винду, если хочешь иметь винду - забудь про прерывания.
Пошёл ка я учиться дальше...
пк=скада-- модбас -- ардуино
вопрос в управлении железом от ПК и обратной связи от датчиков
я использую российскую программу simplight скада в ознакомительной/обрезанной/бесплатной версии
на их сайте есть руководство для подключения ардуинки
к ардуине цепляем плату за 50руб rs-485 на пины rx tx и добавляем библиотеку модбас (адрес скорость протокол регистры)
на компьютере делаем микро проектик(адрес скорость протокол регистры) , там можно и скрипты (я вот на паскале) писать
даже всю логику можно на пк убрать, конечно же она будет работать пока пк включен и программа запущена.
скада всё пишет с нужной периодичностью, либо по изменению в установленных пределах температуры/ датчиков вкл/откл
я с нуля освоил за пару вечеров, теперь при случае пользуюсь
подключал модбас через usb адаптер485 к смартфону USB-OTG = tesla scada2
также нажимаешь на экране смартфона на мнемосхеме кнопочки и обратно меняется их цвет к примеру
Так надо то наверное под виндой, а не в эмуляторе ДОСа ? Ничего общего.
Я имел ввиду не DOS, а напрямую к железу, если через винду нельзя. 10h и на моём компе поддерживается, но только в низком разрешении(CGA/Mono). А на высоком - если есть VESA BIOS Extensions для VGA.(на моём нет, к сожалению)
Повторю, я сам только начал этим заниматься, могу ошибаться, что всё правильно понял. Но тема интересная))
Замучаешься "напрямую к железу" - слишком уж оно все разное и каждый год появляется новое.
Собственно, универсально (т.е. под любое железо) можно сделать лишь системными функциями. В сообщении №1 указан метод - как. Хотя, конечно, не обязательно делать скриншот всего экрана, если нужен его небольшой фрагмент.
Замучаешься "напрямую к железу" - слишком уж оно все разное и каждый год появляется новое.
Собственно, универсально (т.е. под любое железо) можно сделать лишь системными функциями. В сообщении №1 указан метод - как. Хотя, конечно, не обязательно делать скриншот всего экрана, если нужен его небольшой фрагмент.
В методе из #1 не сомневаюсь, но
уж больно похожа задача ТС на попытку создать помощника в прохождении игры))(см#6)
P.S. Кстати , LPT порт тоже может быть удобен для связи ПК с ардуино
P.S. Кстати , LPT порт тоже может быть удобен для связи ПК с ардуино
1. Где в современном ПК взять LPT порт?
2. Чем именно он может быть удобен?
уж больно похожа задача ТС на попытку создать помощника в прохождении игры))(см#6)
ТС до сих пор не сформулировал задачу. Если ему надо организовать ловушку для игры, то это делается на самом ПК. У Arduino слишком мало памяти, чтобы впихнуть в неё функции, аналогичные GDI, GDI+ и их обёртки WIC и WIA.
1. Где в современном ПК взять LPT порт?
2. Чем именно он может быть удобен?
1. У меня есть. ПК правда не очень современный, но мне хватает. (AMD Athlon 64 X2 4200+,DDR2).
Именно из-за LPT и берегу, конденсаторы меняю))
Есть ещё переходники, LPT>USB если что 300-400р
2. Было дело, делал простенькие программаторы, и использовал LPT. Для работы с ним находил много софта,
можно проверить работу, выставляя логические уровни на пинах в програмке , и просто смотря мультиметром. Уже готовая 5В логика. Можно использовать , как надо, хочешь - отдельно пины дёргай, хочешь байт целиком отправляй
ТС до сих пор не сформулировал задачу.
Конечно, Вы правы. Даже неизвестно, что за ПК и что за ОС. Пару лет назад, заходил мужик, и спрашивал флоппик.
У него станок до сих пор из под ДОСа работал.
Пару лет назад, заходил мужик, и спрашивал флоппик.
У него станок до сих пор из под ДОСа работал.
Ничего удивительного. У самого японская машина работает под DOS. Вынули батарейку и комп сбрендил. Оказалось, что DOS записана в два УФ ПЗУ, а диск D: сделан на статическом ОЗУ. Пока не соображу, как его отформатировать. К счастью, комп нужен для "рюшечек". На работу машины не повлияло. Мышь с разъёмом похожим на DIN-5 нашёл в одном месте.
Жду окончательной формулировки ТС. Были похожие вопросы. Решались на стареньком VB 6.0.
Нуууу... Если нужен иксперд по MSDOS/DRDOS 3.3 - 7.0, пишы.
Нуууу... Если нужен иксперд по MSDOS/DRDOS 3.3 - 7.0, пишы.
Напомните как отформатировать диск D:, при условии, что он выполнен на статическом ОЗУ.
Если какая-то DOS записана в ПЗУ, это не MS и не DR DOS, это не ко мне.
1. У меня есть. ПК правда не очень современный, но мне хватает. (AMD Athlon 64 X2 4200+,DDR2).
Именно из-за LPT и берегу, конденсаторы меняю))
Ну да, и очень здорово спалить раритет какими=-нибудь экспериментами.
2. Было дело, делал простенькие программаторы, и использовал LPT. Для работы с ним находил много софта,
можно проверить работу, выставляя логические уровни на пинах в програмке , и просто смотря мультиметром. Уже готовая 5В логика. Можно использовать , как надо, хочешь - отдельно пины дёргай, хочешь байт целиком отправляй
"Отправляй" - это хорошо, что делать, если надо "принимай"?
В общем, и с точки зрения сохранности компа, и с точки зрения удобства работы с внешними пинами Ардуина даст 100 очков вперед любому LPT.
Я, помню, тоже устройства на LPT вешал - приходилось тянуть два кабеля: один, собственно, LPT, а другой - USB для питания. Сейчас, когда есть Ардуина, можгно забыть это как страшный сон.
Напомните как отформатировать диск D:, при условии, что он выполнен на статическом ОЗУ.
format d: /fs:FAT v:LABEL /q /a:512
" что делать, если надо "принимай"?
Все программаторы умеют как "шить", так и читать дамп. Вы , наверно имели ввиду изначальный порт принтера? У меня комп поддерживает , кроме SPP mode ,ещё двунаправленные ECP и EPP.
P.S. И, даже в SPP mode работают в обе стороны, если используют последовательное программирование, т.е. CLOK и DATA
Т.е. я не противопоставляю LPT и Arduino, я наоборот, за Ардуино!))
P.S. Кстати , LPT порт тоже может быть удобен для связи ПК с ардуино