Упомянув об электрических цепях ранее в статье под названием Что такое Minecraft, я уже не могу не поделиться своей наработкой. Устроив на крыше своего дома лабораторию я принялся за работу. Я преследовал цель разработать алгоритм, который позволил бы по нажатию кнопки передвинуть поршень в положение «включен» и зафиксировать его в таком положении до момента повторного нажатия на эту же самую кнопку, которая переведет его в положение «выключен».
Используя рычаговую технику, с поставленной задачей справился бы и пятилетний ребенок. А все потому, что рычаг всегда фиксируется в положении Вкл. или Выкл. Поведение кнопки несколько иначе – по нажатию она подает электрический импульс в цепь на пару секунд затем прекращает подачу электроэнергии, т.е. ни о какой фиксации речи быть не может. Другими словами, мы не можем постоянно запитывать цепь простым нажатием кнопки. Для этого нужно нечто большее.
Задача не тривиальная, но интересная. Набросав схему цепи на листке бумаги, я приступил к ее реализации. Признаться, получилось далеко не сразу.
Конечная схема в исходном состоянии приведена на следующем рисунке. Я отметил некоторые ключевые узлы цепи для удобства:
Задача: нажать на кнопку справа и зафиксировать поршень слева в верхнем положении.
Далее опишу процесс того, что происходит по нажатию на кнопку поэтапно:
1. По нажатию кнопки, ток начинает распространяться по проводу в направлениях, указанных стрелками 2.1 и 2.2; 2.1. Повторитель настроен так, чтобы задержать ток на несколько долей секунд; 2.2. Пока распространение тока задерживается на этапе 2.1, активируется поршень 3; 3. Поршень под воздействием напряжения двигает блок размыкая цепь в дальнем левом углу. В цепи пока нет напряжения, поэтому это маловажно в данный момент; 4. Подача тока от кнопки прекращается; 5. Поршень возвращается в исходное положение замыкая цепь. Цепь должна замкнуться до того как ток пройдет через этап 2.1! 6. Ток распространяется в по проводу в указанных направлениях; 7. Под воздействием напряжения поршень двигает блок и на мгновение замыкает цепь, успев пропустить ток далее; 8.1. Ток начинает распространяется по замкнутому кольцу. Повторитель, который установлен в кольце обеспечивает работу бесконечного цикла; 8.2. Под воздействием напряжения, поршень переводится в верхнее положение, а так как ток зациклен в кольцевой цепи, он останется в этом положении до тех пор, пока цепь не будет разомкнута и цикл не прекратится; 9. Пока есть электричество в цепи, инвертор прекращает запитывать цепь с двумя повторителями; 10. Отсутствие напряжения переводит поршень в неактивное состояние, тем самым размыкая цепь; 11. Когда поршень 10 разомкнул цепь, поршень 11 вернулся в исходное положение.
Результат показан на рисунке:
Теперь, когда поршень в нужном нам положении, вернем его в исходное состояние путем нажатия на ту же кнопку:
1. Нажатие кнопки; 2. Ток начинает распространяться по проводу в заданном направлении; 3. Поршень отодвигает блок и размыкает зацикленную цепь; 4. Поршень возвращается в исходное положение; 5. Инвертор подает напряжение; 6. Ток удерживается первым повторителем несколько долей секунд; 7.1. Ток удерживается вторым повторителем несколько долей секунд; 7.2. Одновременно с этим, подача тока от кнопки прекращается; 8. Под воздействием напряжения, поршень передвигает блок и замыкает цепь.
Если бы этап 7.2 прошел позже этапа 8, ничего бы не сработало. Хотите узнать почему? Подумайте логически, либо сконструируйте подобную схему сами.
В результате все вернулось в исходное состояние, как показано на рисунке:
В заключение, хочу отметить, что используя данный метод можно реализовать интересные идеи в игре, например секретный проход в скале, природные блоки которого разъезжаются в заданном вам алгоритме по нажатию всего лишь одной кнопки, которая может быть замаскирована где угодно. Данный метод можно применить для орошения полей по требованию, для изготовления ловушек и прочих интересных вещей. Была бы идея, будет и решение!