как управлять через комп`ютер самодельными устройствами

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

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

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

Для этого как минимум, нужно уметь программировать компьютер!
Реклама
Встал на лапы
Сообщения: 95
Зарегистрирован: Вс авг 22, 2010 09:23:08

Сообщение svs39 »

zwer97 писал(а):как управлять через комп`ютер самодельными устройствами, например роботом без контролеров, или включять и выключять лампочку.
Через электро-сопрягающие усилители путем изменения состояния выходных портов интерфейсов ЛПТ или СОМ или USB. Если изощриться то можно и через аудио-выход.
Мудрый кот
Аватара пользователя
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)

Сообщение РадиоЛоматель »

svs39 писал(а):
zwer97 писал(а):как управлять через комп`ютер самодельными устройствами, например роботом без контролеров, или включять и выключять лампочку.
Через электро-сопрягающие усилители путем изменения состояния выходных портов интерфейсов ЛПТ или СОМ или USB. Если изощриться то можно и через аудио-выход.
Вы забыли Ethernet (сложное но универсальное решение для удаленных устройств) и радиоканал: BlueToth, WiFi, и прочие. Можно сделать плату с PCI и вставить внутрь компютера. И если уж говорить об извращениях-то через сетевой шнур путем измерения потребляемой мощности, а со стороны компа изменять нагрузку на процессор сложными вычислениями.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

можно через ком порт
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

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

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

zwer97 писал(а):можно через ком порт
Отправить данные в COM порт можно так:

Код: Выделить всё

; Открытие 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.
Друг Кота
Аватара пользователя
Сообщения: 6321
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

РадиоЛоматель писал(а): И если уж говорить об извращениях-то через сетевой шнур путем измерения потребляемой мощности, а со стороны компа изменять нагрузку на процессор сложными вычислениями.
Мсье знает толк в извращениях :-) А насчет PCI - сам не пробовал, но гуру предостерегали - этот интерфейс далеко не прст в применении.
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

Сообщение lix »

Мурик писал(а):
zwer97 писал(а):можно через ком порт
Отправить данные в COM порт можно так:

Код: Выделить всё

; Открытие 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) там(в порте) будет делать без контроллера то? :)

пинами порта надо дергать.
Мудрый кот
Аватара пользователя
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)

Сообщение РадиоЛоматель »

Jack_A писал(а):А насчет PCI - сам не пробовал, но гуру предостерегали - этот интерфейс далеко не прст в применении.
Но ведь вопрос не в том, как проще, а как можно :)) Вот я и перечислил больщинство вариантов, общедоступных.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

значит можно просто подключить к com порту и отправить данные на com порт
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

?
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

Сообщение lix »

да. двумя устройствами можно без расширений. можно сдвиговых регистров навесить, дак тогда можно хоть сколько устройств подключить.
Мудрый кот
Аватара пользователя
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)

Сообщение РадиоЛоматель »

Если хотите без контроллеров, то лучше ЛПТ. Но он не везде бывает, как и СОМ. Самый универсальный способ-ЮСБ. Замечательная фирма FTDI выпускает замечательные микросхемы для работы с ЮСБ. Преобразователи USB-UART (FT232RL, например) и USB в паралельный (FT245). Но не ЛПТ. Хотите без МК, лучше паралельный. Почитайте даташиты на эти микросхемы, может что нибудь приглянется.
Но можно и через СОМ-линиями DTR, RTS и прочими.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

lix писал(а):и что оно(число 10) там(в порте) будет делать без контроллера то?
Оно "вытолкнется" через выход TXD со скоростью 9600 бод. :)))
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
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

а на кокой вивод что подключять
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

Сообщение lix »

сколько устройств?
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

для начяла одно
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 340
Зарегистрирован: Сб янв 08, 2011 18:10:22
Откуда: Украина

Сообщение zwer97 »

и сколько можно подключить напрямую
lix
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 17, 2010 15:32:19
Откуда: Курган

Сообщение lix »

мне, честно говоря, лень искать и рисовать схему. в интернетах полно схем рабочих, и найти их не сложно. это просто, ничего хитрого нет. попробуй сам схему найти, это будет полезнее.
zwer97 писал(а):и сколько можно подключить напрямую
3 максимум.
Ответить

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