*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
Giver: flip/flop  (2014-10-21 21:27:23)

На самом деле можно сделать многие дома значительно удобнее причем для этого не нужно дорогостоящих деталей, сложных схем и микроконтроллеров. Выход программ в реальный мир отлично реализуется через двенадцативольтовое реле. Просто пример. Подключаем катушку реле напрямую к блоку питания компьютера (например, в наверняка гуляющий разъем флопика) и врезаем его в сетевой пилот. После чего этот пилот будет включен только при включенном компьютере, а значит ночью больше не будет толпы мигающих мониторов и гудящих колонок.

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

В интернете очень много разных вариантов как подключить периферию через COM и LPT порты, но, что интересно, кроме реле в них участвует набор самых разнообразных деталей, пара-тройка резисторов, конденсатор, тройка диодов, пара транзисторов. Я не совсем понимаю зачем это все и почему нет такой вот простой схемы на просторах. Паяется и собирается из любого подножного мусора, единственно транзистор нужен NPN типа, как видно из схемы. Диод можно и не свето-, естественно. На один COM-порт можно навесить минимум 2 такие схемы, на DTR (пин 4) и RTS (пин 7).

Под этим вашим линуксом управляется еще проще чем паяется. Пример для DTR(прим К.O.: чтобы управлять RTS, нужно DTR заменить на RTS)

#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
 
int main(void) {
    int status = 0, fd;
    if((fd = open("/dev/ttyS0", O_RDWR)) < 0) exit(1); // открываем последовательный порт.
    do {
        ioctl(fd, TIOCMGET, &status); // читаем текущее состояние
        printf("DTR is %dn", (status & TIOCM_DTR)); // выводим на экран
        status ^= TIOCM_DTR; // инвертируем значение линии 
        sleep(1); // ждем секунду
        ioctl(fd, TIOCMSET, &status); // записываем инвертированное значение
    } while(1); // смыть, повторить.
}


Имя:
Комментарий: