датчик движения

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Родился
Сообщения: 2
Зарегистрирован: Ср мар 13, 2013 20:50:42

Сообщение Jen4ik »

Подскажите пожалуйста, как можно подключить ИК датчик движения к персональному компьютеру
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 167
Зарегистрирован: Вт ноя 23, 2010 04:18:10
Откуда: Bratsk Russia UIBB

Сообщение mikbur »

Проще всего на LPT порт
Если я правильно понял, то датчик от охранной сигнализации и он имеет релейный выход

Более подробно здесь:
http://www.xserver.ru/computer/langprogr/basic/14/
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Ога, и статикой спалить порт...

для таких вещей надо использовать гальваноразвязку, а учитывая что LPT портов нет и переходники в большинстве своем с такими целями не работают - проще использовать RS-232, по крайней мере есть широкий выбор переходников USB-UART с удобным подключением сигналов и наличием программной поддержки(хоть с командной строки общайся с устройством).
Контактная информация:
Родился
Сообщения: 2
Зарегистрирован: Ср мар 13, 2013 20:50:42

Сообщение Jen4ik »

Добрый день, помогите пожалуйста! подключил геркон через LPT порт к компьютеру, дайте пожалуйста программки в С++, паскаль, или командной строке для исследования его работы! нужны простенькие программки типа: подносишь магнит, появляется надпись ГЕРКОН ЗАМКНУТ, РАЗОМКНУТ
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

такое возможно под чистым ДОС-ом, в винде такие прожки не будут простыми.
Контактная информация:
Реклама
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Сообщение TripleKill »

Берём PortTalk (http://retired.beyondlogic.org/porttalk/porttalk.htm) и пишем в паскале/дельфи/си/бейсике на асме.
Минус в том, что этот PortTalk придётся таскать вместе со своей программой.

Ещё вариант: http://lessonradio.narod.ru/LPT_Port/LPT_Port_3.htm.
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Этот тот самый драйвер, который является огромной дырой в безопасности системы.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Для доступа к 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.
Вложения
LPT_Геркон.zip
(9.05 КБ) 202 скачивания
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Да уж, очень простая прога... у вас просто с опытом атрофировалось чувство простоты :)

Да еще драйвер используется, потенциально опасный. Нельзя это назвать ни простым ни лучшим способом.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

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) с открытыми исходниками и их можно изучить и собрать файлы из них, раз сомневаетесь в порядочности разработчика.
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Проблема как раз не со стороны драйвера и его разработчиков, а со стороны программ его использующих. Такой драйвер будучи прописанным в системе даст доступ любому приложению к системе в обход всех механизмов контроля. Надо винчестер испортить - пожалуйста, ни один антивирус и даже виндовс ничего против не сможет сказать и даже зарегистрировать факт несанкционированного доступа. Даже свое приложение... запросто можно ошибиться - последствия непредсказуемы. Этот драйвер надо как можно быстрее забыть и не использовать.
Ведь есть решения гораздо лучше в этом плане - есть чипы FTDI для последовательного FT232 и параллельного интерфейса, драйвер для них не имеет таких широких полномочий и позволяет приложению работать только с конкретным устройством.
Контактная информация:
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Сообщение TripleKill »

По идее PortTalk натравливают на нужную прогу с помощью *.cmd-скрипта. Не помню такого, чтоб открывался доступ сразу ко всем портам из любых прог.
Кстати, ТС не оговаривал вопросы безопасности, может ему и не важно, куда и как будет доступ.
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Ср янв 06, 2010 10:01:46

Сообщение metan »

Alexeyslav писал(а):Такой драйвер будучи прописанным в системе даст доступ любому приложению к системе в обход всех механизмов контроля. Надо винчестер испортить - пожалуйста, ни один антивирус и даже виндовс ничего против не сможет сказать и даже зарегистрировать факт несанкционированного доступа.
Сам работал с драйвером LPTWDMIO, рекомендую. Доступна куча качественных примеров. Никакую брешь в системе безопасности он я думаю не пробьёт, т.к. он позволяет работать ТОЛЬКО с регистрами LPT порта.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение 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 отчасти решают эту проблему.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Пока вирусы получают доступ к системе через человека, на такие дырки как GiveIO обращать не будут. Но по мере закручивания гаек, такой драйвер будет "находкой для шпиона".

Сегодня ты балуешься таким драйвером дома, а завтра где-то на предприятии установишь, ну оно же работает... к такому подходу лучше даже не привыкать.
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Сегодня ты балуешься таким драйвером дома ...
Я уже давно не использую LPT даже для себя - несовместимо, неповторяемо. :( И уж тем более я не буду его использовать в актуальном продукте. Типовое решение для меня - USB->UART->MCU, командный интерфейс. Да и, в общем, формировать тайминги из под Windows невозможно по причине многозадачности, так что для чего-то серьезного надо подключать внешний контроллер по указанной выше схеме или напрямую через USB.
такой драйвер будет "находкой для шпиона"
Такой драйвер не стоит на машинах рядовых пользователей - он им не нужен. Потому и вирусописатели ориентироваться на него не будут. Если сильно припечет - они сами обойдут защиту, но тут драйвер уже не при чем.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Это вовсе не означает что это невозможно. Вон, Delphi тоже не для рядовых пользователей, однако и для него вирус написали. Самая благородная среда для вирусов, обычно для таких вещей антивирусники отключают...

Кто знает... может уже и гуляет троян для этого драйвера, но в виду малочисленности его никто еще не поймал живьем.
Контактная информация:
Ответить

Вернуться в «Интеграция с ПК»