Страница 1 из 1
датчик движения
Добавлено: Ср мар 13, 2013 21:00:06
Jen4ik
Подскажите пожалуйста, как можно подключить ИК датчик движения к персональному компьютеру
Re: датчик движения
Добавлено: Ср мар 13, 2013 21:12:03
mikbur
Проще всего на LPT порт
Если я правильно понял, то датчик от охранной сигнализации и он имеет релейный выход
Более подробно здесь:
http://www.xserver.ru/computer/langprogr/basic/14/
Re: датчик движения
Добавлено: Пт мар 15, 2013 14:06:17
Alexeyslav
Ога, и статикой спалить порт...
для таких вещей надо использовать гальваноразвязку, а учитывая что LPT портов нет и переходники в большинстве своем с такими целями не работают - проще использовать RS-232, по крайней мере есть широкий выбор переходников USB-UART с удобным подключением сигналов и наличием программной поддержки(хоть с командной строки общайся с устройством).
Re: датчик движения
Добавлено: Пн апр 01, 2013 20:33:51
Jen4ik
Добрый день, помогите пожалуйста! подключил геркон через LPT порт к компьютеру, дайте пожалуйста программки в С++, паскаль, или командной строке для исследования его работы! нужны простенькие программки типа: подносишь магнит, появляется надпись ГЕРКОН ЗАМКНУТ, РАЗОМКНУТ
Re: датчик движения
Добавлено: Пн апр 01, 2013 21:48:19
Alexeyslav
такое возможно под чистым ДОС-ом, в винде такие прожки не будут простыми.
Re: датчик движения
Добавлено: Вт апр 02, 2013 06:49:10
TripleKill
Берём PortTalk (
http://retired.beyondlogic.org/porttalk/porttalk.htm) и пишем в паскале/дельфи/си/бейсике на асме.
Минус в том, что этот PortTalk придётся таскать вместе со своей программой.
Ещё вариант:
http://lessonradio.narod.ru/LPT_Port/LPT_Port_3.htm.
Re: датчик движения
Добавлено: Вт апр 02, 2013 06:57:44
Alexeyslav
Этот тот самый драйвер, который является огромной дырой в безопасности системы.
Re: датчик движения
Добавлено: Вт апр 02, 2013 11:24:20
Мурик
Для доступа к LPT порту, нужен драйвер,
например, такой.
Но ИМХО лучше подключать устройство через USB.
В инете есть много готовых устройств, которые подойдут вам,
скажем, это.
В нем достаточно заменить кнопку на геркон и будет то, что вам нужно.
Alexeyslav писал(а):такое возможно под чистым ДОС-ом, в винде такие прожки не будут простыми.
Ну почему же?
Относительно простая прога под винду.
Код: Выделить всё
CompilerIf Defined(PBIO_OK, #PB_Constant)=0
Enumeration
#PBIO_OK
#PBIO_ErrCopyDriver
#PBIO_ErrInstallDriver
#PBIO_ErrAccess
EndEnumeration
CompilerEndIf
If OpenLibrary(2, "PB_IO.dll")=0
MessageRequester("", "Нет PB_IO.dll.", #MB_OK|#MB_ICONERROR)
End
EndIf
Prototype Inp(PortAddress.u)
Prototype Out(PortAddress.u, Byte.a)
Prototype Status()
Prototype.f Version()
Inp.Inp = GetFunction(2, "Inp")
Out.Out = GetFunction(2, "Out")
Status.Status = GetFunction(2, "Status")
Version.Version =GetFunction(2, "Version")
Err = Status()
If Err<>#PBIO_OK
MessageRequester("", "Ошибка драйвера "+Str(Err))
EndIf
OpenConsole()
Repeat
Byte.b = Inp($378)
If Byte & 1
PrintN("Геркон разомкнут")
Else
PrintN("Геркон замкнут")
EndIf
Delay(1000)
Until Inkey()=Chr(27) ; Выход по нажатию ESC.
Re: датчик движения
Добавлено: Вт апр 02, 2013 18:52:15
Alexeyslav
Да уж, очень простая прога... у вас просто с опытом атрофировалось чувство простоты
Да еще драйвер используется, потенциально опасный. Нельзя это назвать ни простым ни лучшим способом.
Re: датчик движения
Добавлено: Вт апр 02, 2013 19:16:33
Мурик
Alexeyslav писал(а):Да уж, очень простая прога
По факту вот код программы работающий с портом.
Разве его можно назвать слишком сложным?
Код: Выделить всё
OpenConsole()
Repeat
Byte.b = Inp($378)
If Byte & 1
PrintN("Геркон разомкнут")
Else
PrintN("Геркон замкнут")
EndIf
Delay(1000)
Until Inkey()=Chr(27) ; Выход по нажатию ESC.
То что выше, это загрузка dll и подключение ее функций. Это стандартный код в его можно вынести в подключаемый файл.
Alexeyslav писал(а):а еще драйвер используется, потенциально опасный.
Драйвер и его оболочка (PB_IO.dll) с открытыми исходниками и их можно изучить и собрать файлы из них, раз сомневаетесь в порядочности разработчика.
Re: датчик движения
Добавлено: Вт апр 02, 2013 20:56:02
Alexeyslav
Проблема как раз не со стороны драйвера и его разработчиков, а со стороны программ его использующих. Такой драйвер будучи прописанным в системе даст доступ любому приложению к системе в обход всех механизмов контроля. Надо винчестер испортить - пожалуйста, ни один антивирус и даже виндовс ничего против не сможет сказать и даже зарегистрировать факт несанкционированного доступа. Даже свое приложение... запросто можно ошибиться - последствия непредсказуемы. Этот драйвер надо как можно быстрее забыть и не использовать.
Ведь есть решения гораздо лучше в этом плане - есть чипы FTDI для последовательного FT232 и параллельного интерфейса, драйвер для них не имеет таких широких полномочий и позволяет приложению работать только с конкретным устройством.
Re: датчик движения
Добавлено: Ср апр 03, 2013 07:01:30
TripleKill
По идее PortTalk натравливают на нужную прогу с помощью *.cmd-скрипта. Не помню такого, чтоб открывался доступ сразу ко всем портам из любых прог.
Кстати, ТС не оговаривал вопросы безопасности, может ему и не важно, куда и как будет доступ.
Re: датчик движения
Добавлено: Вт апр 09, 2013 11:41:44
metan
Alexeyslav писал(а):Такой драйвер будучи прописанным в системе даст доступ любому приложению к системе в обход всех механизмов контроля. Надо винчестер испортить - пожалуйста, ни один антивирус и даже виндовс ничего против не сможет сказать и даже зарегистрировать факт несанкционированного доступа.
Сам работал с драйвером LPTWDMIO, рекомендую. Доступна куча качественных примеров. Никакую брешь в системе безопасности он я думаю не пробьёт, т.к. он позволяет работать ТОЛЬКО с регистрами LPT порта.
Re: датчик движения
Добавлено: Вс апр 21, 2013 19:12:30
YS
Есть еще отличный драйвер - GiveIO. Он проще всего перечисленного.
http://lpt-port.narod.ru/3.html
http://www.cs.ucr.edu/~eblock/pages/pic ... iveio.html
Просто открываем handle на него и-и-и... Пишем куда угодно, как угодно. Хоть инлайновым асмом через out (таки я пробовал, все ОК).
Такой драйвер будучи прописанным в системе даст доступ любому приложению к системе
Не даст. Только тем приложениям, что его явно вызовут. А тот, кто пишет приложения, должен думать головой, прежде чем что-то куда-то писать.
Вы много видели современных вирусов, имеющих дело с железом, да еще и напрямую?
Это все лишняя паранойя. Тем более, если автору вируса понадобится прямой доступ, он сам его организует, не полагаясь на сторонние драйвера.
Ведь есть решения гораздо лучше в этом плане - есть чипы FTDI для последовательного FT232 ...
Таки да, они лучше. Но не по причине драйвера, а просто потому, что LPT и классический COM, увы, уже практически не встречаются. Все захватил USB. Хотя в плане программирования он не особо приятен что со стороны хоста, что со стороны устройства. Продукты FTDI отчасти решают эту проблему.
Re: датчик движения
Добавлено: Вс апр 21, 2013 19:35:30
Alexeyslav
Пока вирусы получают доступ к системе через человека, на такие дырки как GiveIO обращать не будут. Но по мере закручивания гаек, такой драйвер будет "находкой для шпиона".
Сегодня ты балуешься таким драйвером дома, а завтра где-то на предприятии установишь, ну оно же работает... к такому подходу лучше даже не привыкать.
Re: датчик движения
Добавлено: Вс апр 21, 2013 20:57:37
YS
Сегодня ты балуешься таким драйвером дома ...
Я уже давно не использую LPT даже для себя - несовместимо, неповторяемо.

И уж тем более я не буду его использовать в актуальном продукте. Типовое решение для меня - USB->UART->MCU, командный интерфейс. Да и, в общем, формировать тайминги из под Windows невозможно по причине многозадачности, так что для чего-то серьезного надо подключать внешний контроллер по указанной выше схеме или напрямую через USB.
такой драйвер будет "находкой для шпиона"
Такой драйвер не стоит на машинах рядовых пользователей - он им не нужен. Потому и вирусописатели ориентироваться на него не будут. Если сильно припечет - они сами обойдут защиту, но тут драйвер уже не при чем.
Re: датчик движения
Добавлено: Вс апр 21, 2013 21:25:44
Alexeyslav
Это вовсе не означает что это невозможно. Вон, Delphi тоже не для рядовых пользователей, однако и для него вирус написали. Самая благородная среда для вирусов, обычно для таких вещей антивирусники отключают...
Кто знает... может уже и гуляет троян для этого драйвера, но в виду малочисленности его никто еще не поймал живьем.