Хотим сделать прибор к датчику которого будет закреплена мышь (без корпуса) для считывания координат этого самого датчика. Как считывать координаты мыши относительно экрана - примеры есть, но хочется сделать как-бы "бесконечные координаты", т.е. привязываться к вручную заданному началу координат и от него рассчитывать расстояния (координаты...) которые могут уходить в неизвестные "дали" .
Спасибо за помощь и советы при подготовке такой программы!
Работа с мышью
-
IvanLis
- guru
- Сообщения: 5464
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Работа с мышью
Мне кажется, что возможности датчика мышки сильно преувеличены.
Лучше использовать связку энкодер -> МК -> RS-232 -> LabVIEW
Если именно с мышкой, то посмотрите функции из библиотеки user32.dll.
Там вроде есть функция, которая возвращает изменение координат относительно предыдущего состояния. Интегрируя данные можно считать положение в пространстве. Только название функции я не помню сейчас и не знаю, позволит ли выйти за пределы экрана.
Лучше использовать связку энкодер -> МК -> RS-232 -> LabVIEW
Если именно с мышкой, то посмотрите функции из библиотеки user32.dll.
Там вроде есть функция, которая возвращает изменение координат относительно предыдущего состояния. Интегрируя данные можно считать положение в пространстве. Только название функции я не помню сейчас и не знаю, позволит ли выйти за пределы экрана.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- Super Star
- adviser
- Сообщения: 228
- Зарегистрирован: 07 фев 2013, 08:37
- Версия LabVIEW: 2011
Re: Работа с мышью
а зачем вылазить за пределы экрана? сдвиг произошел, посмотрели куда, выставили координаты в центр
я люблю свою работу.... Я приду сюда в субботу ...
-
- beginner
- Сообщения: 10
- Зарегистрирован: 22 май 2013, 10:10
- Версия LabVIEW: 2012
- Контактная информация:
Re: Работа с мышью
кстати мысль.., но что делать если это перемещение больше экрана...Super Star писал(а):а зачем вылазить за пределы экрана? сдвиг произошел, посмотрели куда, выставили координаты в центр
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Работа с мышью
Вам надо научиться работать с мышью в RAW режиме, то бишь напрямую. В идеале, кстати, сделать вообще так, чтобы мышь не определялась операционной системой как HID устройство - иначе замучаетесь. Проще может оказаться - взять ардуинку, к ней присоединить мышь, а данные от неё по последовательному порту в компьютер передавать.
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: Работа с мышью
Понимаю, подкупает простота и дешевизна устройства,pirumov писал(а):Хотим сделать прибор к датчику которого будет закреплена мышь (без корпуса) для считывания координат этого самого датчика. Как считывать координаты мыши относительно экрана - примеры есть, но хочется сделать как-бы "бесконечные координаты", т.е. привязываться к вручную заданному началу координат и от него рассчитывать расстояния (координаты...) которые могут уходить в неизвестные "дали" .
Спасибо за помощь и советы при подготовке такой программы!
может также и механическая безконтакность если мышь оптическая.
Смотрите пример в теме:
http://www.labviewportal.org/viewtopic. ... 171#p25144
Может и это будет полезно также:
http://www.labviewportal.org/viewtopic. ... 778#p36772
http://www.labviewportal.org/viewtopic. ... 778#p36778
PS: могу оказать помощь в построении подобных устройства на базе
простейшей дешевой вебкамеры и лазерной указки. Одно из применений
демонстрировалось на конференции в РУДН 2010, смотрите здесь:
http://labviewportal.org/viewtopic.php? ... =90#p23892
- Super Star
- adviser
- Сообщения: 228
- Зарегистрирован: 07 фев 2013, 08:37
- Версия LabVIEW: 2011
Re: Работа с мышью
но как? Поиграйте в любую стрелялку, сколько куда не крутитесь, всегда курсор в центре экрана (перекрестие)pirumov писал(а):кстати мысль.., но что делать если это перемещение больше экрана...Super Star писал(а):а зачем вылазить за пределы экрана? сдвиг произошел, посмотрели куда, выставили координаты в центр
я люблю свою работу.... Я приду сюда в субботу ...
-
- junior
- Сообщения: 52
- Зарегистрирован: 21 дек 2010, 12:11
- Награды: 1
- Версия LabVIEW: 2011
- Контактная информация:
Re: Работа с мышью
Если всё происходит на обычном компе с обычной ОС, не RT-контроллере, то помогут функции User32.dll:GetCursorPos и User32.dll:SetCursorPos, сначала выставить курсор в центр экрана, затем в цикле с достаточно высокой частотой читать координаты, снова выставлять в центр и вычислять изменение прочитанных относительно центра, а их уже использовать для вычисления абсолютных координат.
Только надо не забыть сделать полностью клавиатурное управление программой, иначе будет трудно работать - мышь будет недоступна.
Только надо не забыть сделать полностью клавиатурное управление программой, иначе будет трудно работать - мышь будет недоступна.
- Вложения
-
- Получить позицию
- GetMouseXY.png (13.42 КБ) 4396 просмотров
-
- Установить позицию
- SetMouseXY.png (13.32 КБ) 4396 просмотров
- Super Star
- adviser
- Сообщения: 228
- Зарегистрирован: 07 фев 2013, 08:37
- Версия LabVIEW: 2011
Re: Работа с мышью
можно схитрить и добавить условие, что есть "мышь" на аплекейшене, то ничего не изменять.Dubovitsky писал(а): иначе будет трудно работать - мышь будет недоступна.
соответственно апплекейшен выставлять в центре экрана и сворачивать\разворачивать альт+таб
я люблю свою работу.... Я приду сюда в субботу ...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 16 Ответы
- 3263 Просмотры
-
Последнее сообщение Artem.spb
-
- 4 Ответы
- 220 Просмотры
-
Последнее сообщение Andrew Lunev