>>1413484 думаю, что и на rs232, и на usb сработает, если у тебя диод подключен через соответствующую схему и ему достаточно напруги, которую выдают и тот, и другой порты.
Но умеешь ли ты писать в рс232 то, что надо (да и есть ли он у тебя?)? А в юсб?
1. Качай среду программирования любых контроллеров платформы Arduino : https://all-arduino.ru/arduino-ide/ 2. Покупай плату Arduino Nano(она на рисунке) за 200-500 рублей, не дороже. Самая дешёвая и самая маленькая плата "Arduino Pro Mini". стоит 100 руб. но она программируется не через USB, а через UART порт, поэтому придётся приобрести RS232 - TTL конвертер. Этот конвертер должен быть посередине между "Arduino Pro Mini" и ПК. 3. Скачай и установи драйвер для той платы, которую найдёшь в продаже. 4. Подключи плату через "хвостик" USB - USB-мини к твоему ПК, проверь в "Система - Устройства", что плата опознана компом и драйвер, значит, тот. 5. Открой Среду Программирования и там есть самые базовые примеры уже готовых, простейших прошивок. Мигать будешь, сперва, тем светодиодом, что уже установлен на плате Arduino Nano - разницы нет, он там просто уже стоит на 13, кажется, pin-е. А пинов(выводов там много, около 16) Всеми можно управлять или считывать состояние(высокий-низкий уровень), мерить величину аналогового напряжения(есть, кажется, шесть АЦП).
Это простейший из всех путей, но он далеко идёт - можно будет делать всякую периферию для ПК и сопрягать её с твоим софтом через эту или любые аналогичные платы платформы Arduino(среда поддерживает их все).
6. В среде разработки для Arduino есть "Монитор порта" - для начала будешь им вручную подавать команды на включение, отключение, измерение напряжения и т.д. А потом и пиши собственный софт, чтобы управлять периферией уже без помощи среды.
Пардон. для "Arduino Pro Mini" нужен конвертер не "RS232-TTL", а "USB-TTL". На современных компах нет физических COM портов, а если на твоём, всё же есть, можно, в порядке эксперимента, и "поморгать" им без никаких вовсе контроллеров.
Только, с практической стороны, делать девайсы намного проще, и даже дешевле, на базе именно контроллеров. Разве что, если ты хочешь ограничится чем-то уж совсем простым.
Однако, поверь, если уж ты этим займёшься, тебе этого будет мало, а тогда зачем один физический COM порт ? - когда USB может эмулировать любое количество виртуальных COM портов, работающих по тому же самому протоколу RS232.
>>1414037 по моину на материнке нет com порта возможно я ошибаюсь пищалка не подойдет тк. нужно подключить 2 оптрона ltp=хорошо но я не кодер и вообще не близко к тому же надо писать под линукс и еще програмку на телеон чтобы можно было этим делом управлять через интернет куда всунутся чтоб понятно
фишка в чем вообще у меня стоят 2 компа первый держит сервер второй на случай если первый ЗАВИС я допустим в другом городе мне нужно его релоднуть физического доступа к компу нет а соседям не доверяю
>>1414189 > хорошо но я не кодер > куда всунутся чтоб понятно Никуда. Чем ты мигать-то собрался, программу для этого так и так надо писать. > к тому же надо писать под линукс Под линух наоборот проще, порты там - файлы, можно хоть из баш-скриптов в них писать. > и еще програмку на телеон чтобы можно было этим делом управлять через интернет Это сложнее, чем просто управлять портом.
>>1414192 Для похожего случая, я делал простенький watchdog на микросхеме к176ие12 работающий от спикера. Суть была такова: на серваке постоянно крутится программа, которая пищит в спикер через определённые промежутки времени. Вместо динамика подключена плата watchdog. Если очередного сигнала не поступит (сервер завис), то эта плата сделает серверу reset. Схема из журнала Хакер №53 за 2005 год, страница 118: http://ftpserver.org.ru/fileecho/PROGRAMM/XS_053.PDF
>>1414192 1) Присобачь хуитуку типа болтика на выдвигающийся трей DVD-драйва второго компа.
2) выставь по высоте второй комп так, чтобы выезжающий ДВД-драйв приклеенной хуиткой щаезжал в ресет-кнопку первого компв.
3) вуаля! Первый комп - баивой. На втором компе крутится простейший линукс какой хочешь и ничего более. Если баивой комп жоско висит, заходишь терминалом на второй комп, дергаешь двд-драйв стобы открылся и закрылся.
У меня такая система с 2002 г. работает в ДС.. Компутеры были тогда "замурованы" в секретной комнате, про которую знали ровно 2 человека : я и гендир. Потом компанию обанкротили; гендира вскоре грохнули прям возле офиса на парковке. Я в асашайку сьебал. А сервер до сих пор крутится. На нём видео с камер пишется, в режиме шедоу. Я на них раз в год захожу - чисто из интереса. Всё работает. Даже видос, где гендира мочканули, заснялся. Перегружал за 17 лет вышеописаным образомну может раза три четыре
>>1414321 >первый держит сервер >второй на случай если первый ЗАВИС
1. На основном должна быть программа в автозагрузке, которая раз в полсекунды будет плевать запрос на второй по домашней локальной сети. Для этого надо будет маршрутизатором раздать сеть на второй комп тоже. 2. На втором компе должна быть прога-простой последовательный сервер, которая будет получать запросы. Если через две секунды после запроса, очередного запроса она так и не дождалась, то выставит на физический COM1 порт, например, на линию RTS высокий уровень на четверть секунды, тем самым инициировав перезагрузку первого компа. Я правильно понял ?
Для начала изучи документацию по COM порту компьютера. Минимум - цоколёвку порта, где там какие линии. Прикупи хвост с вилкой и на RTS конец хвостика припаяй светодиод через резистор, номиналом 1 кОм. Я тебе утилиту могу набросать, если хочешь, которая при запуске передёрнет состояние любой из линии COM порта и завершится до следующего запуска. Но раз ты припаяешь светодиод к RTS, то его.
>>1414446 я в этих вашик компутактерах не разбираюсь вовсе надо запилить прогу которая будет подавать коротенький импульс на какой нибуть вывод шоб я смог его пришпендюрить к мат платесамо собой не на прямую а лучше если этот импульс будет подаваться с моей команды которую я дам с телефона
>>1414668 >надо запилить прогу которая будет подавать коротенький импульс на какой нибуть вывод шоб я смог его пришпендюрить к мат плате...
Как обещал, вот утилита для моргания светодиодом(оптопарой) : '----------------------------- Ниже код ------------------------------
'Длительность передачи(кол-во секунд умножить на 125) Const Dlit = 1250 '---------------------- 125 это пачка длиной 1 секунду -------- Dim port, fso: Const ForAppending = 8 Set fso = CreateObject("Scripting.FileSystemObject") Set port = fso.OpenTextFile("COM1:9600,N,8,1", ForAppending) Call port.Write(String(Dlit, Chr(170))) port.Close: Set port = Nothing: Set fso = Nothing
'----------------------------- Выше код ------------------------------ 1. Этот код впиши в текстовый файл. 2. назови его "COM_port.vbs" или иначе, расширение важно. Тестирование : 3. Открой диспетчер задач на вкладке "процессы" - сколько процессов пашет ? 4. Запусти этот файл - должен появится ещё один процесс на одну секунду и опять исчезнуть. 5. Прозвонка :
Чтобы предварительно убедиться в работе порта и утилиты, понадобится активная колонка и кусочек провода, длиной = 5-10 см. Слухай сюды : 1. колонку включи, а хвост колонки с вилкой входа звука возьми в левую руку и пальцами прижми один кончик зачищенного от изоляции проводка к самому кончику вилки(это вход левого или правого канала). 2. подойди к системнику и взяв в правую руку другой кончик зачищенного проводка дотронься им до вывода "TX" ком порта - должен появится ровный громкий звук из колонки. Звук будет продолжаться, пока утилита не отработает.
Обращаю внимание, что к выводу порта надо коснуться только центральным проводом колонки. Оплётку(земля) никуда присоединять не надо. Не знаещь, где вывод "TX" ? - протыкай проводком колокни все выводы порта - где звучит, тот и есть. Естественно, звучать будет только пока утилита работает. Я пробовал, совпадает с рисунком.
Поэтому ! : Прежде чем "прозванивать", временно назначь константу "Dlit" на значение побольше, скажем 1200 - звучать будет примерно 10 секунд. --------------------------------------------------------------------------------- При запуске "COM_port.vbs" появляется процесс "wscript.exe"(в списке приложений появляться не будет). При этом скрипт подключится и выдаст на физический порт COM1(номер порта можно поменять в коде) прямоугольную последовательность импульсов частотой несколько кГц. Длительность пачки можно регулировать значением констванты "Dlit" от 1 и больше(хоть сколько) ----------------------------------- при 1 длительность около 0.08 сек. при 125 около 1 сек. при 1250 соответственно, 10 сек. ----------------------------------- Спустя этот интервал, процесс завершится и освободит порт.(всё это можно проконтроллировать в системном диспетчере задач).
На порте на выводе "TX" (передача) при работе скрипта будет переменный ток(не высокий или низкий уровень, а переменное напряжение) - поэтому схема, которую ты подключишь к порту должна представлять собой выпрямительный мостик(любой, можно интегральный или на точечных диодах спаять), подключенный к порту через конденсатор(конденсатор нужен для отделения постоянной составляющей от переменной). Его номинал, ориентировочно = 5-10 мкФ на напряжение не менее 16 в.(лучше всего керамический, они, в отличие от электролитических, не полярны и бесконечно более надёжны, не сохнут.)
Для чего разделять составляющие ? - для чёткости срабатывания. При перезагрузке вспомогательного компа на выходах порта могут возникать не нужные изменения постоянного напряжения. Если схема управляется постоянным напряжением, она может ложно сработать.
А если отделить конденсатором постоянную составляющую, то схема не будет срабатывать от изменений постоянного напряжения, а только, чисто от переменной последовательности повышенной частоты.
Ещё нужен резистор, ограничивающий ток порта(чтобы не спалить) номиналом, ориентировочно, 5 кОм. Желательно, так же и ещё один, блокировочный конденсатор, такой же, как первый, этот можно и электролитический. Он будет сглаживать переменный ток от порта после выпрямления, чтобы светодиод в оптопаре не мигал(хотя это высокая частота моргания, чтобы увидеть), а ровно горел. Во вторых этот конденсатор, совместно с ограничительным резистором создадут интегратор, который будет поглощать всплески напрядения при перезагрузке вспомогательного компа. -------------------------------------------- Ещё одна прога понадобится - серверок, который создаст формочку сайта с кнопочкой "Перезагрузить". Этот сайт будет на вспомогательном компе. Ты его страничку откроешь в браузере, например, на телефоне : ткнёшь на кнопочку - основной комп и Выключится. Ткнёшь ещё раз - он и Включится. То есть, тупо, продублирует кнопку на системном блоке.
Эта вторая прога должна будет пинать этот "COM_port.vbs" то есть, скрипт. То бишь, из двух компонентов проект.
Схему набросал на картинке. Но имей в виду, что я её не тестировал. Так чта всё это на уровне домыслов. Есть вероятность, что заработает.
>>1414752 0) спасибо 1) со схемой все ясно с проверкой тоже а с кодом проблема он не выполняется 2) с сайтом как нибудь разберусь если нет создам еще тред ))))
----------------------------- Выше код ------------------------------ В файл "COM_port.sh" Длительность пачки импульсов зависит от количества символов "Є" и скорости порта. Здесь 125 символов. При скорости 9600 бод (может и в Линуксе эта скорость по умолчанию, в Виндоусе это так) длительность составит 1 сек.
Это bash скрипт, который должен(но я не пробовал, не на чем) вывести в файл "/dev/ttyS0" (это файл устройств с последовательным портом в Unix) строку из следующих друг за другом символов "Є". Asc код этого символа = 170. ------------------------------------ Почему именно этот символ ?
Если в твоей Системе есть инженерный калькулятор : 1. Введи число 170 в обычной десятичной системе счисления. 2. А затем переведи его в "bin" как на картинке, то получится "1010 1010" - COM порт выдаст 4 импульса равной длительностью с одинаковым интервалами между ними.
К примеру, RU символ "р" (Asc код 240) в бинарном представлении "1111 0000" - один импульс. Но 4 импульса лучше, чем 1 (частота переменного тока в четыре раза выше) - разделительный конденсатор может иметь в четыре раза меньший номинал, а значит и миниатюрнее. Либо при одной и той же ёмкости конденсатора, на большей частоте будет иметь реактивное сопротивление переменному току в четыре раза меньшее.
Опять же, сгладить блокировочным конденсатором ток более высокой частоты проще - нужна меньшая ёмкость, либо при той же ёмкости светодиод оптопары будет меньше успевать затухать в паузах между импульсами.
Правда COM порт выдаст впереди ещё и стартовый импульс, поэтому, скорее всего, правильным символом будет не "Є", а аналогично подходящий, но инверсный "U" с Asc кодом = 85 (Chr(85) "0101 0101"). Кажется, синхроимпульс имеет "1", а не "0" Это можно на осциллографе проверить. Если выбрать верный из двух символов, к каждому из четырёх импульсов символа добавится ещё один. ------------------------------------
В "/dev/ttyS0" на конце "0", ведать, означает номер порта, начиная с нуля, а может быть и 1, 2... Ещё может потребоваться разрешение на этот файл.
прикручиваешь светодиод к пинам usb куришь документацию winusb api (или аналоги если на линуксе) чуть-чуть напрягаешь мозг, высираешь код ?????????????????????????????????????? PROFIT
>>1415048 я разобрался короче схему >>1414752 можно выкинутьоптрон подключается на прямую(если он на 5в иначе через резистор соответствующего сопротивления) а в коде '----------------------------- Ниже код ------------------------------ Const Dlit = 62 Dim port, fso: Const ForAppending = 8 Set fso = CreateObject("Scripting.FileSystemObject") Set port = fso.OpenTextFile("COM1:9600,N,8,1", ForAppending) Call port.Write(String(Dlit, Chr(170))) port.Close: Set port = Nothing: Set fso = Nothing '----------------------------- Выше код ------------------------------- в место Call port.Write(String(Dlit, Chr(170))) надо Call port.Write(String(Dlit, Chr(255))) соответственно за место 0101 0101 он выдаст 1111 1111 и никаких колебаний
>>1416559 >оптрон подключается на прямую(если он на 5в иначе через резистор соответствующего сопротивления. >Chr(255) Пробуй. Но имей в виду, что у порта по умолчанию на линии "TX" +12 в. Это уровень "0"
Потому что у COM порта другой по величине и инверсный формат уровней, чем стандартный TTL : "0" = +12 в. А уровень "1" = -12 в. То есть, не 0 в и +5 в, как у TTL а +12 и -12 в.
Поэтому, согласно твоей схеме, к линии "TX" надо подключать Катод светодиода, а к линии GND - Анод.
Насчёт включения светодиода - не советовал бы напрямую, включи последовательно со светодиодом резистор, хотя бы 3к.
Вот здесь рекомендуется сопротивление нагрузки порта от 3к до 7к. http://www.softelectro.ru/rs232.html Хотя на форумах пишется о гораздо большей нагрузочной способности порта, дескать 20ма(с какого потолка они эту цифру взяли, никто не сознался).
Не надо злоупотреблять. Будет нужда если(не замкнётся кнопка на материнке), снизишь сопротивление резистора, а избыточно грузить порт и светодиод зачем ? - сбережёшь ресурс даже самой оптопары.
как это гуглить