как управлять через комп`ютер самодельными устройствами
как управлять через комп`ютер самодельными устройствами, например роботом без контролеров, или включять и выключять лампочку.
- Реклама
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Для этого как минимум, нужно уметь программировать компьютер!
- Сообщения: 95
- Зарегистрирован: Вс авг 22, 2010 09:23:08
Через электро-сопрягающие усилители путем изменения состояния выходных портов интерфейсов ЛПТ или СОМ или USB. Если изощриться то можно и через аудио-выход.zwer97 писал(а):как управлять через комп`ютер самодельными устройствами, например роботом без контролеров, или включять и выключять лампочку.
Вы забыли Ethernet (сложное но универсальное решение для удаленных устройств) и радиоканал: BlueToth, WiFi, и прочие. Можно сделать плату с PCI и вставить внутрь компютера. И если уж говорить об извращениях-то через сетевой шнур путем измерения потребляемой мощности, а со стороны компа изменять нагрузку на процессор сложными вычислениями.svs39 писал(а):Через электро-сопрягающие усилители путем изменения состояния выходных портов интерфейсов ЛПТ или СОМ или USB. Если изощриться то можно и через аудио-выход.zwer97 писал(а):как управлять через комп`ютер самодельными устройствами, например роботом без контролеров, или включять и выключять лампочку.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Люблю Си...
- Реклама
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Отправить данные в COM порт можно так:zwer97 писал(а):можно через ком порт
Код: Выделить всё
; Открытие COM1 порта, со скоростью обмена - 9600 бод.
If OpenSerialPort(0,"COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256,256)
Send.a=10
WriteSerialPortData(0, @Send, 1) ; Посылаем данные (число 10) в COM порт.
CloseSerialPort(0) ; Закрываем порт.
EndIfКод будет работать в Windows, Linux и MacOS.
Мсье знает толк в извращенияхРадиоЛоматель писал(а): И если уж говорить об извращениях-то через сетевой шнур путем измерения потребляемой мощности, а со стороны компа изменять нагрузку на процессор сложными вычислениями.
и что оно(число 10) там(в порте) будет делать без контроллера то?Мурик писал(а):Отправить данные в COM порт можно так:zwer97 писал(а):можно через ком портКод: Выделить всё
; Открытие COM1 порта, со скоростью обмена - 9600 бод. If OpenSerialPort(0,"COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256,256) Send.a=10 WriteSerialPortData(0, @Send, 1) ; Посылаем данные (число 10) в COM порт. CloseSerialPort(0) ; Закрываем порт. EndIf
Код будет работать в Windows, Linux и MacOS.
пинами порта надо дергать.
Но ведь вопрос не в том, как проще, а как можноJack_A писал(а):А насчет PCI - сам не пробовал, но гуру предостерегали - этот интерфейс далеко не прст в применении.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Люблю Си...
значит можно просто подключить к com порту и отправить данные на com порт
да. двумя устройствами можно без расширений. можно сдвиговых регистров навесить, дак тогда можно хоть сколько устройств подключить.
Если хотите без контроллеров, то лучше ЛПТ. Но он не везде бывает, как и СОМ. Самый универсальный способ-ЮСБ. Замечательная фирма FTDI выпускает замечательные микросхемы для работы с ЮСБ. Преобразователи USB-UART (FT232RL, например) и USB в паралельный (FT245). Но не ЛПТ. Хотите без МК, лучше паралельный. Почитайте даташиты на эти микросхемы, может что нибудь приглянется.
Но можно и через СОМ-линиями DTR, RTS и прочими.
Но можно и через СОМ-линиями DTR, RTS и прочими.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Люблю Си...
- Сообщения: 3385
- Зарегистрирован: Пн окт 11, 2010 19:00:08
Оно "вытолкнется" через выход TXD со скоростью 9600 бод.lix писал(а):и что оно(число 10) там(в порте) будет делать без контроллера то?
Ну можно и пинами.lix писал(а):пинами порта надо дергать
Код: Выделить всё
If OpenSerialPort(0,"COM1", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256,256)
SetSerialPortStatus(0, #PB_SerialPort_DTR, 1) ; 1 на DTR.
SetSerialPortStatus(0, #PB_SerialPort_RTS, 1) ; 1 на RTS.
SetSerialPortStatus(0, #PB_SerialPort_TXD, 1) ; 1 на TXD.
Delay(10) ; Ждем 10 миллисекунд.
SetSerialPortStatus(0, #PB_SerialPort_DTR, 0) ; 0 на DTR.
SetSerialPortStatus(0, #PB_SerialPort_RTS, 0) ; 0 на RTS.
SetSerialPortStatus(0, #PB_SerialPort_TXD, 0) ; 0 на TXD.
CloseSerialPort(0) ; Закрываем порт.
EndIfмне, честно говоря, лень искать и рисовать схему. в интернетах полно схем рабочих, и найти их не сложно. это просто, ничего хитрого нет. попробуй сам схему найти, это будет полезнее.
3 максимум.zwer97 писал(а):и сколько можно подключить напрямую


