Это ответ на пост habrahabr.ru/post/241407 «Система для «Своей Игры»» (в коммент он не влез) — схема включения только одного из нескольких каналов нагрузки с блокирокой остальных при однократном нажатии на соответствующую каналу кнопку.

Вот моя версия того же самого, но без компьютера с виндой, ардуины, и даже без микроконтроллера. И вообще без микросхем. И даже без транзисторов. Количество каналов неограниченно. 5 простых дешёвых деталей на канал.
а-а-АП
(Схему сюда рисовал дольше, чем паял)

На каждый канал: реле 1шт. + кнопка + два [свето]диода. И + конденсатор, если игра ответственная – всё работает и без них, но иногда нечётко. Кнопки нефиксируемые «тактовые».

Один канал выделен зелёным прямоугольником, одновременно срабатывающие контакты одного реле в этом канале – обозначены зелёной линией меж катушкой и контактами.

Каналов (игроков) – сколько угодно, потребления при ожидании – НОЛЬ, на входе кнопка «сброс», она же «вкл», если она тумблер. Её же логично доделать до «фальстарта» кучей способов.

Напряжение питания и детали подбираем друг другу– у меня есть «в железе» как вариант с 12-вольтовыми реле TTI, так и с 3.3-вольтовыми полярными axicom (у них диод сразу встроен – кольцует ток размыкания индуктивности).

Описание работы:

В режиме ожидания все реле выключены, диоды не горят, кнопки разомкнуты, потребления тока нет. При нажатии на одну из кнопок – включается соответствующее реле, которое включает само себя к питанию напрямую, отключая вторым своим контактом от питания всех остальных. В том числе и «свою» кнопку – именно для этого нужен кондёр – если индуктивной и механической инерции соленоида и ярма с контактами не хватит доподключить нижний на схеме контакт после того как отключится верхний. Обычно хватает, но реле могут быть всякие – поэтому если не будет устойчивого включения – то добавить конденсатор, с RC=~полсекунды плюс-минус лапоть, (Rреле и время его срабатывания смотреть даташит). Я воткнул наугад по 50мкф за 3р/шт, благодаря их длинным ногам обойдясь без проводов при навесном монтаже. Цена вопроса получилась порядка ста рублей на канал ±146% в зависимости от вычурности кнопок и цен в местных е-бутиках.

Спаяно всё прямо на ногах реле, фото не покажу, ибо выглядит ужасно неприлично.

Верхними светодиодами условно показана полезная нагрузка основной функции всей схемы, но, как и нижние, – нужны именно диоды – для невозможности обратного тока через нажатую кнопку одного игрока на реле другого, если нажали почти одновременно оба. «Окно одновременности» примерно равно времени срабатывания реле – смотреть даташиты или мерить по факту, ибо я питал напр. 12-вольтовые реле 3-мя пальчиковыми батарейками и они переключались ощутимо дольше, чем от родных 12-ти вольт. При одновременном нажатии приоритет получается у того, кто слева на схеме, одновременное включение двух каналов невозможно.

Основным недостатком схемы является большое количество соединительных проводов, если кнопочные посты/пульты разнесены пространственно, и — неисправность любого приводит к неработоспособности всего.

Изначально примерно такая же:
демо-стенд колонок

Схема была сделана для селектора аудиовходов (или выходов) какого-то демо-стенда вместо зубодробительно контроллерного ужаса, выданного «на гора» молодым электронщиком (то ли он накосячил, то ли ему не заплатили и срабатывала закладка – но схема не могла без глюков проработать и пары часов и к тому же давала в линии помеху). В ней алгоритм наоборот: «тапки — последнему» — каждая кнопка подключала соответствующий канал, отключая все остальные, и он оставался подключенным пока есть питание и не нажмут другую кнопку.

И ещё у меня есть примерно такая же «схема» сразу на силовых пускателях и их кнопках — переключает зоны нагрева в некоем производстве. Увы красивых фоток нет — просто электроящик с пускателями, проводами, кнопками.

Подозреваю, что в доэлектронную эпоху примерно таким образом работали лифты и, глядя как мучаются наладчики в моём доме с новым умным щербинским лифтом, сильно сожалею о принудительной, ввиду 30-летия, замене им нашего исправного старого.

Это не «статья», а лишь небольшая иллюстрация возможностей простых схем на простых деталях – для её реализации не нужны ни компьютер, ни текстолит, ни утюг, ни среда разработки — только карандаш-бумага, горсть деталей и паяльник. Ну и пара часов в транспорте на придумывание. Написно после того как увидел, что студенты- электронщики смотрят на это как на умклайдет — «кнопки вижу, выходные реле вижу, плата-то с логикой где?». И хотя сами микроконтроллеры я считаю для человечества шагом, сравнимым с моторами-двигателями, иногда всё же хочется воскликнуть: «Господа, не переусложняйте мир понапрасну!»

— upd:
добавил сюда из коммента более симметричный и более наглядный вариант:
симметричный вариант
— upd2:
и ещё упростил — тут игра на том, что у реле как правило ток удержания меньше тока переключения:
совсем простой

Комментарии (39)


  1. Alexeyslav
    15.01.2016 15:34

    У вас получилась схема с приоритетом — при одновременном нажатии нескольких кнопок приоритет отдаётся кнопке которая ближе всех к источнику питания.
    Да и в подобных решениях нет главного — гибкости решения и возможности решения вероятных косяков в алгоритме работы без перепаивания.


    1. amartology
      15.01.2016 15:40
      +5

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


    1. majorpronin
      15.01.2016 16:39
      +2

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


    1. impetus
      17.01.2016 00:00

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

      с прочим согласен
      (эххх пришлось поставить более современный браузер, печаль)


      1. diller61
        17.01.2016 01:58

        круто, если самая левая кнопка например уже нажата до замыкания контакта, малейшее прикосновение к кнопкам правее в период до полного срабатывания реле приведет к отмене срабатывания


  1. Hellsy22
    15.01.2016 16:43
    +13

    Нужно, чтобы нажатие кнопок отслеживала Raspberry Pi с помощью программы на Java и через 4G-модем передавала в облако XML-запрос к скрипту на питоне, являющемуся прокладкой для обращения к базе данных в другом облаке, где на PLSQL и была бы реализована вся логика.

    Для разработки понадобится профессиональный микроэлектронщик, специалист по Java, Питону, специалист по базам данных, тимлид и датаинженер. Это по минимуму. Через полгода прототип с урезанным функционалом будет готов и нужно будет переходить ко второй части — писать приложение для мобильных устройств, что потребует еще одну команду и менеджера для коммуникации с первой.


  1. diller61
    15.01.2016 16:55
    +1

    недостаток этой схемы в том, что если в момент включения несколько кнопок уже будут нажаты — включится реле с меньшим током срабатывания, а он у всех разный так как мы живем в реальном мире

    более «умная» схема могла бы отслеживать этот момент и не стартовать пока кнопки не будут отпущены

    еще возможна ситуация когда одно из реле перейдет в режим генерации, или даже несколько одновременно

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


    1. amartology
      15.01.2016 17:09
      +1

      Насколько быстрее? Будет ли эта погрешность сравнима по порядку величины со временем реакции человека?


      1. diller61
        15.01.2016 17:14

        я о ситуации когда кнопки уже были нажаты в момент включения питания, или несколько человек практически одновременно нажали кнопку, ну совпало так.

        насколько быстрее? нужно проводить эксперимент


        1. compdemon
          15.01.2016 17:35
          +1

          Разница может быть разве что в скорости срабатывания реле. Скорость распространения электрического поля в проводниках равна скорости света. Если сечение достаточное, то даже с длинами проводников не нужно особо мудрить. Главное чтобы напряжение до релюхи вовремя дошло.

          «Практически одновременно» — это не одновременно. Типичная скорость срабатывания реле быстрее реакции человека.
          Быстродействие такое «примитивной» аналоговой схемы будет в любом случае выше, чем программная обработка: задержки на прерывания от кнопок и из обработка или циклический опрос кнопок плюс реакция на это (зажечь светодиод или лампу и т.п.) И это без обработки дребезга контактов (в данном случае оно не нужно, но если вдруг нужно, то задержка еще больше увеличивается.). При этом использование цифровой схемы вопрос обработки «практически одновременного нажатия» не решает никак: в случае работы по прерываниям — смотря от какой кнопки прерывание пройдет быстрее, если с циклическим опросом кнопок — приоритет у той, которая находится в списке обхода выше — больше.


          1. diller61
            15.01.2016 18:00

            не минусовал, но отвечу: скорость срабатывания реле зависит от напряжения, напряжение в свою очередь от сопротивления линии до обмотки реле и тока потребления


            1. compdemon
              15.01.2016 19:06
              +3

              Я не зря написал «если сечение достаточное» — если не коммутировать самыми дешевыми и тонкими в сечении проводами то сопротивление там мизерное. К примеру ШВВП 0.75мм при 20 градусах С имеет номинальное сопротивление не более 26 Ом на _километр_, или 0,026 Ом/м. Витая пара cat 5e — не больше 19 Ом на 100м. Сопротивление обмотки катушки реле в десятки и сотни (если не тысячи) раз больше.
              У реле тоже есть минимальное напряжение срабатывания. Например 12В — это номинальное напряжение обмотки, а «подхват» срабатывания может начинаться с 7-8 В, нужно сомтреть даташиты.
              Понятно, что и б/п тоже стоит взять с запасом по току и на напряжение по номиналу обмоток реле. Можно еще один большой конденсатор параллельно б/п поставить, который будет давать достаточный импульс для срабатывания схемы обеспечивая достаточный «стартовый ток» (актуально для слаботочных источников). А после запирания одного реле остальные обесточиваются и на потребляемый схемой ток не влияют.

              Хотя на самом деле суть статьи не в этом.
              Просто нужно чаще пользоваться «бритвой Оккама».


          1. Alexeyslav
            15.01.2016 23:39

            Какой обход? они все фиксируются разом. Можно даже с частотой в 10кГц.
            Тогда можно момент нажатия зафиксировать с точностью в 0.1мс
            но не в этом проблема, а в том что кнопки МОГУТ быть нажаты практически одновременно и в схеме непременно возникает race condition и чем медленней быстродействие схемы тем сложнее последствия таких гонок.
            Это мы не берём в расчёт вероятный дребезг контактов.
            Попробуйте проанализировать схему в микросекундном масштабе времени — ход кнопки от верхнего контакта до нижнего ощутимо долог, а срабатывание реле — практически вечность!
            На предоставленной схеме, реле зашунтированы электролитами и коммутируются через светодиод — такой набор элементов с огромным технологическим разбросом параметров ещё поискать… в итоге, у какой-то кнопки всё же будет преимущество!


            1. compdemon
              16.01.2016 12:29
              +1

              >Какой обход? они все фиксируются разом. Можно даже с частотой в 10кГц.
              Я про цифровую схему в плане масштабирования. Либо нужно цеплять на отдельные ноги и делать через прерывания контроллеров либо циклический «обход» через сдвиговые регистры. С прерываниями временами тоже может быть не все просто, зависит от схемы и МК.

              >Тогда можно момент нажатия зафиксировать с точностью в 0.1мс
              Ну так с этого в первую очередь нужно и начинать — с какой точностью и быстродействием нужно фиксировать нажатие кнопки. И надо ли. Электромагнитные реле да, срабатывание до 5-6 мс. Но можно взять твердотельные — там спокойно до 0.5мс можно получить.

              >но не в этом проблема, а в том что кнопки МОГУТ быть нажаты практически одновременно и в схеме непременно возникает race condition и чем медленней быстродействие схемы тем сложнее последствия таких гонок.
              Могут. И что? Опять же — смотря какое быстродействие нужно. Если брать пределы наносекунд так цифровая схема тоже не всегда вариант или нужно делать навороченную схемотехнику, оптимизировать выполнение кода, задержки, следить за стеком и прерываниями и т.д. (ваш код будет готов к дребезгу контактов, или что шутники-команды нажмут несколько раз вподряд кнопку, вызвав множественные прерывания?) Что, тем не менее, не избавляет от просчета и электрической части. Причем для цифровых схем там даже «наворотов» больше — нужно учитывать гальваническую развязку, если хотим посветить чем-то мощнее светодиода, к примеру (впрочем, «гальванику» лучше в любом случае делать и развязывать цифровую и исполнительную аналоговую часть), в любом случае нужна исполнительная схема, так как включать светодиод напрямую от ноги МК просто опасно для самого МК, и т.д.

              >Это мы не берём в расчёт вероятный дребезг контактов.
              А программная обработка дребезга быстродействия не добавляет. Ибо самое типичное решение — двойное измерение состояния с задержкой. Вопрос в выборе задержки, когда кнопка таки будет считаться однозначно нажатой.

              >Попробуйте проанализировать схему в микросекундном масштабе времени — ход кнопки от верхнего контакта до нижнего ощутимо долог, а срабатывание реле — практически вечность!
              Ход кнопки никуда не девается и в цифровой схеме. Срабатывание исполнительного механизма — нужно сравнивать РЕАЛЬНОЕ быстродействие цифровой схемы и аналоговой. Ну и в конце концов — у нужны ли «брейн-рингу» микросекунды?

              >На предоставленной схеме, реле зашунтированы электролитами и коммутируются через светодиод — такой набор элементов с огромным технологическим разбросом параметров ещё поискать… в итоге, у какой-то кнопки всё же будет преимущество!

              На сколько? Race condition, опять же, не исключен полностью и в цифровой схеме. Ибо в решении со сдвиговым регистром и последовательным сканированием кнопок тоже будет порядок обхода. Плюс задержки в коде, обработка дребезга контактов, плюс задержки в линиях сопряжения… Да, собственно, и на прерываниях тоже могут быть нюансы.

              Еще раз — статья на самом деле не об этом. В аналоговой схеме тоже могут есть нюансы, но они есть и в цифровой. Так же как есть и пути их решения. Штука в том, что для достаточно простой задачи — зажечь индикатор по нажатию кнопки — городить ардуину или «малинку» часто излишество.
              Там где в аналоговой схеме размышления на полчаса плюс еще столько же или час на пайку с минимальным количеством деталей, в цифровой схеме:
              — развязка цифровой и аналоговой, исполнительной части (электрическую часть с кнопками и лампочками никто не отменял, да)
              — нужно знать программирование
              — написать код, отладить его
              — для написания и отладки нужен компьютер, IDE, программатор; если это не готовая какая-то отладочная плата то еще и плату развести под все это, тогда как релюхи можно спокойно распаять навесным монтажом они заработает «сходу».
              и т.д.

              На эту же тему недавно на ГТ была замечательная статья о подогреве ручек велосипеда: http://geektimes.ru/post/268802/
              «Это самая идиотская дискуссия, которую я когда-либо читал… ну точнее за последние несколько дней, перед которыми вы обсуждали архитектуру UND компонента.
              Причина, по которой «система подогрева рук» еще никем не разработана, заключается в том, что большинство нормальных людей просто купили себе пару перчаток. Перчатки весьма эффективно сохраняют тепло рук.»

              В наиболее общем случае решение задачи о «кнопке для брейн-ринга» на аналоговых компонентах будет проще, быстрее и дешевле. Причем вариантов масса:
              — не нравятся электромагнитные реле — возьмите герконовые; не люите «аналог» совсем — ну возьмите твердотельные
              — не нравится релейная логика — можно на транзисторах в ключевых режимах собрать
              — или на базовой логике малой интеграции — на каких-нибудь D- или T-триггерах.
              Правда если захочется скоммутировать лампочку побольше, чем маломощный светодиод все равно придется задействовать… та-дам! РЕЛЕ. Либо опять же наворачивать схему — транзисторы (полевики) которые будут либо сами управлять лампочкой либо тем же реле. Или оптрон. Или твердотельное реле.
              Преимущества «тупой» релейно логики: достаточная дешевизна, простота разработки и отладки (в случае если что-то не заработает достаточно обычным тестером цепи прозвонить), изначально как плюс имеется возможность коммутации достаточно мощных исполнительных нагрузок (при использовании релюх с двумя группами контактов одна будет работать как триггер-защелка, на вторую можно поставить коммутацию хоть прожектора с ревуном, если по коммутируемому току запаса хватит.

              РЕШЕНИЕ задачи должно исходить из ПОСТАВЛЕННОГО ТЗ.
              В самом общем случае релейная схема абсолютно спокойно решает поставленную задачу. И быстродействия в несколько миллисекунд в сравнении с реакцией человека вполне достаточно.

              Вот когда начинаются навороты в ТЗ — вести статистику нажатий командами, плюс (зачем-то) измерять скорость реакции и нажатий и т.п., то есть там где потребуется интеграция с некой компьютерной системой и БД, разработка изначально цифровой схемы таки имеет смысл.
              Если же речь будет идти не о брейн-ринге, а о чем-то вроде фиксации пересечения финиша бегунов в профессиональном спорте где таки микросекунды могут играть роль, то просто цифровой схемой все равно не обойтись, так как нужно получить величину гарантированного быстродействия. В таких задачах все равно, как правило, используются разного рода аналоговые датчики, которые через ADC поступают на обработку в цифровые схемы.

              «Сделайте глубокий вдох-выход и скажите „Перчатки“


              1. Hellsy22
                16.01.2016 15:39

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

                Что же до сложности, то, как мне кажется, это проекция вашего опыта. Вариант с Ардуино проще по исполнению в силу своей очевидности и меньшего количества компонентов. Но главное его преимущество — расширяемость. Например, чуть-чуть поменяв скетч можно добавить режим с лимитом времени на нажатие кнопки и сигналами о том, что прошла половина времени, 3/4, и на каждую секунду последние 10 сек. А можно записывать все результаты нажатий на SD-карточку, чтобы потом, долгими зимними вечерами строить бессмысленные но захватывающие таблицы со статистикой по игрокам.


                1. compdemon
                  16.01.2016 18:01

                  Я опять возвращаюсь к ТЗ.
                  Если таки нужен таймер и его нужно увязать с кнопками, собирать статистику и т.д. — это одно дело. Если нужно просто зафиксировать факт нажатия — релейной логики более чем достаточно. (Кстати сделать в будущем релейную схему исполнительной частью цифровой будет весьма просто).
                  Мало 5-6 мс срабатывания электромагнитного реле? Возьмите герконовое — 1 мс. Тоже мало? Твердотельные до 0,5 мс.

                  В аналоговой схеме «фиксацию факта нажатия кнопки и раздачу команд светодиодам в одном событии» можно считать «фишкой» by design. Обработка события и одновременная реакция на него в пределах одного блока это «очень ОК».

                  И зачем этот упор в микросекунды? Да, релюхи сработают в пределах миллисекунд, но и не нужно плодить сущности более необходимых. Для фиксации факта нажатия кнопки этого хватит. Мы ж не за атомными реакциями следим. Иначе можно и до наносекунд допроектироваться.
                  Кстати возвращаясь к обработке дребезга контактов — среднестатистически дребезг контактов программно обрабатывается путем введения задержки в 25-50 мс что уже больше быстродействия даже электромагнитного реле.

                  >Вариант с Ардуино проще по исполнению в силу своей очевидности и меньшего количества компонентов.

                  Чем проще? Реализовать цифровую часть без аналоговой (кнопок и индикаторов) — никак. Релейный или триггерный (на низкоуровневой логике и/или транзисторах) вариант при этом выходит самодостаточным и без МК (естественно без таймеров и наворотов, но это опять вопрос к ТЗ). А Ардуиной или AVR-кой можно потом просто считывать состояние аналоговой части и управлять ее активностью (включать/отключать питание аналоговой исполнительной схемы).
                  И деталей меньше не будет. Будет «аналоговая часть „+ “ардуина».


                  1. Alexeyslav
                    16.01.2016 22:52

                    Тут нам как раз дребезг отрабатывать не нужно, мы ведь ловим любое ПЕРВОЕ нажатие.
                    Проблема схемы на реле в том что пока контакты реле в полёте от одного положения до другого возникает неопределённое состояние, за время которого несколько других каналов тоже могут начать процесс срабатывания в итоге могут возникать такие моменты когда схема нам выдаст несколько сигналов вместо одного самого первого.

                    Простота схемы на реле оборачивается кошмаром когда надо слегка переделать алгоритм. Для контроллера исправить одну строчку, а для схемы на реле сидеть с паяльником и перепаивать связи, может даже для половины схемы. А через пару дней ты уже запутаешься куда какой проводок идёт и зачем он там нужен. С текстом программы как-то попроще, всегда можно сконцентрироваться только на определённом уровне абстракции.

                    Я вот так и не понял, что же произойдёт в схеме если нажать одновременно(с разницей не более времени срабатывания реле) две кнопки? Да… эти цепи обе сработают и зафиксируются.


                    1. compdemon
                      17.01.2016 13:09

                      >Да… эти цепи обе сработают и зафиксируются.

                      Каждый из каналов при срабатывании разрывает цепь питания остальных. Одновременно включеных не будет.


                      1. Alexeyslav
                        17.01.2016 13:24

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


                        1. compdemon
                          17.01.2016 13:35

                          Реле при активации разрывает цепи питания ОСТАЛЬНЫХ. Если сработают два одновременно они ОДНОВРЕМЕННО обесточат и соседей-конкурентов, то есть произойдет «взаимная аннигиляция». И емкость параллельная катушке только заставить сработать отключению наверняка.


                          1. Alexeyslav
                            17.01.2016 15:46

                            Когда процесс уже пошёл, остановить его трудно.
                            реле — прибор инерционный, и если хватило напряжения чтобы оторвать контакт от верхней части, то до нижней он уж точно дойдёт — напряжение отпускания реле ниже напряжения срабатывания, конденсатор за время переключения обеспечит реле достаточным количеством энергии чтобы перекинуться, а там уже и полноценное напряжение подоспеет.


                            1. compdemon
                              17.01.2016 18:17

                              Откуда? Релюха замыкает общую шину питания на себя, отключая конкурентов. Если в миллисекунды переключения сработает сосед он отрубил и эту релюху от общей шины. Так что питание катушка будет получать ровно столько времени сколько шунтирующий конденсатор смог энергии запасти и самозащелкивания не произойдет, так как не будет постоянной подпитки от общей шины (кто-то из соседей постарался).


                              1. Alexeyslav
                                17.01.2016 20:45

                                А зачем ей подпитка? Порог срабатывания пройден, реле дойдет до конца пока напряжение на нём будет больше напряжения удержания, конденсатор будет этому способствовать. Еще сам якорь не может размагнитится мгновенно, он тоже будет работать на продолжение процесса.


                  1. Hellsy22
                    17.01.2016 06:25

                    Про дребезг уже написали.

                    Проще в плане реализации. Там вообще думать не о чем — вот сюда кнопки, вот отсюда светодиоды (или сигналы на полевые транзисторы/реле). Десять минут и готово. И никаких подводных камней с реакцией или запуском при нескольких нажатых кнопках. Ваш вариант мне нравится, как красивое интеллектуальное упражнение.

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


        1. amartology
          15.01.2016 17:44
          +2

          Ситуация, когда кнопки нажаты при включении системы, является нештатной.
          А вот ситуация, когда кнопки нажаты почти одновременно в процессе работы — и есть основное применение, и прежде чем ставить любую систему, что такую, что на микроконтроллере, нужно убедиться, что ее погрешность как минимум на порядок меньше времени реакции человека, иначе вся затея теряет смысл. Но при этом также надо понимать, что идеальной точности добиться тоже в принципе нельзя. Разумеется, надо моделировать, а потом измерять, но опыт подсказывает мне, что у такой системы время обработки сигнала и разброс между каналами будут вполне достаточными для того, чтобы не влиять на ход игры.


          1. diller61
            15.01.2016 18:03

            время реакции это не главное о чем нужно думать в данном случае, человек с временем реакции в два раза большим чем у другого человека может нажать кнопку в тот же момент времени или даже раньше, зависит от расстояния от руки до кнопки техники нажатия и тд, при этом чем больше людей тем больше вероятность практически одновременного нажатия на кнопки


            1. amartology
              15.01.2016 23:19
              +1

              Определите «тот же момент времени». Какая точность вам нужна? Одна миллисекунда? Одна наносекунда? Одна ыемтосекунда? Какими критериями вы будете руководствоваться, задавая нужную точность?


              1. diller61
                16.01.2016 15:27

                для данной схемы тот же момент времени это 5-6мс время срабатывания реле


                1. compdemon
                  16.01.2016 18:07
                  -2

                  Обработка дребезга контактов сколько задержки даст? Так чтобы наверняка зафиксировать нажатие кнопки, а не дребезг?


                  1. diller61
                    16.01.2016 20:55
                    +1

                    Здесь вообще не нужна обработка дребезга, нужно регистрировать самый первый фронт, а дальше хоть трава не расти


      1. impetus
        19.01.2016 17:29
        +1

        Посмотрел даташит — реле серии IM Axicom — 1мс размыкание, 3 мс включение. Считаю такую одновременность недостижимой живыми людьми, и _достаточной_ для наколенной домашней поделки.

        Всем спасибо, мне сама эта тема не очень интересна, я лишь «добавил вариант в библиотеку (готовых) решений», пусть лежит.


    1. impetus
      17.01.2016 00:12
      +1

      Было время — я был весь из себя спортсмен — пловец. Там в правилах явно постулировано:
      «если результат отличается менее чем на одну сотую секунды — результаты считаются одинаковыми»
      (соотв. на вершине пьедестала теоретически могут оказаться все восемь финалистов.)
      с тех пор мне все состязания, где играют роль меньшие цифры — кажутся несколько завуалированной лотереей.
      Если игроки сознательно на неё идут — можно всегда решить вопрос организационно — напр регулярно меняться местами/пультами.

      в поправленной схеме (см. ответ выше ) — мигнёт светодиод «фальстарт» (опять же — если он мигнул незаметно для глаз — считаем что фальстарта не было)

      принципиально что именно по нажатию срабатывает — бить ладошкой наотмашь, а далее — хоть наступи на неё.


      1. Alexeyslav
        17.01.2016 14:34

        Насколько я понимаю, в плавании речь идёт о минутных интервалах, и на этом фоне одна сотая секунды кажется исчезающе малой величиной.
        Реакция же человека — это сотня миллисекунд, если говорить об аналогичной точности то разрешающая способность должна быть порядка 100мкс чтобы говорить об одновременности.
        Я давно уже заметил, что у лучших спортсменов результаты отличаются не так уж сильно — речь идёт буквально о десятых долях секунд на интервалах в несколько минут. Поэтому, система регистрации времени должна иметь хотябы на порядок больше возможности — т.е. до сотых долей секунд. Что бы вы сказали на счет секундомера, измеряющего время с точностью порядка 1%? Да это будет просто генератор случайных чисел.
        Та же ситуация у нас возникает с реле — измеряем время реакции порядка 100мс с точностью 5мс… да это погрешность в 5% просто никуда не годится! В итоге победа между тренированными игроками будет распределяться как случайные числа.


  1. Muzzy0
    15.01.2016 22:40
    +1

    Может, я чего и не понимаю… Но на мой взгляд, самое то для подобных поделок — логические микросхемы малой степени интеграции. 155 серия, если не ошибаюсь. Во всяком случае, реле здесь — явный перебор. Достаточно ключей на тех же полевиках.

    PS Если что, я и релейные схемы делать умею, и программировать :)


  1. beliashou
    16.01.2016 11:11
    -3

    Какой смысл в устройстве без имперского марша?


  1. WebConn
    16.01.2016 23:35
    +1

    На самом деле, идея с релешками забавная и даже вполне имеет право на жизнь. Конечно, это специфика опыта того, кто изготавливает схему.

    От себя скажу, что если бы меня послали делать такую штуку на коленке, без раздумий бы достал восьмую атмегу из загашников и вооружился любимым программатором. Есть свои «зоны интересов», в терминах которых мозг уже автоматически генерит решение задачи.

    Автору респект! В копилку ценных статей ;)


  1. impetus
    17.01.2016 00:32
    +1

    не-не, я это всё не холиваров ради и не про эту конкретную «свою игру» —
    а про расширения пространства решений —
    типа: «если у вас всё равно в схеме будут кнопки и реле — то, может быть, вариант <<вообще обойтись без всего остального>> (это не столь сложно) стоит хоть чуть рассмотреть, прежде, чем отбросить?»

    Особенно если коммутируемый выходной сигнал не лампочки, а какой-нибудь сигнал, (звук например) или высокие вольты.

    Кроме того в таких схемах полегче с помехами, статикой, плохим питанием, перегревом, поиском-заменой деталей и т.п.

    Большой минус — «в готовой собранной схеме найти косяк — вилы, поэтому надо проверять по мере сборки поканально.»


  1. Vendict
    19.01.2016 08:52

    Да Вы изобрели логику на электромагнитных реле. Вам должно быть понравится вот это.

    Особенно картинка оттуда.
    image


    1. igormu
      20.01.2016 09:31
      +1

      А потом посмотреть на получившееся количество корпусов и заменить их все на один МК.