Четырёхбитный калькулятор из картона и шариков


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

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

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


    Логическая операция AND в компьютере из 10 000 костяшек домино

    Для изготовления механического калькулятора отлично подходит конструктор Lego. На YouTube можно найти немало примеров таких калькуляторов.

    Калькулятор из компьютера Lego



    Вдохновлённый примером компьютера из домино и механических калькуляторов из конструктора Lego, программист C++ под ником lapinozz вместе со своими младшими сестричками решил соорудить в домашних условиях нечто подобное для школьного научного проекта одной из сестёр. Он задумал и реализовал полностью функциональный четырёхбитный калькулятор LOGIC (Logic cardbOard Gates Inpredictable Calculator). Для изготовления этой вычислительной машины не требуется ничего кроме картона и клея, а работает она не на электричестве, а на шариках и земной гравитации. Калькулятор умеет складывать числа от 0 до 15 с максимальной суммой 30.

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

    Цель проекта


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

    Внешний вид калькулятора


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



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

    Например, так выглядит исходное положение шариков для операции 7+5 (0111 + 0101).



    Устройство калькулятора


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

    Схематически логические вентили для всех логических операций показаны на схеме.



    То есть логический вентиль «И» (AND) означает, что при поступлении 0 шариков на входе получается 0 на выходе. При поступлении 1 шарика на входе получается 0 на выходе. При поступлении 2 шариков на входе получается 1 на выходе.

    1 на входе, 0 на выходе


    2 на входе, 1 на выходе


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

    Логический вентиль XOR


    Чтобы оптимизировать систему и не городить массу логических вентилей AND и XOR, автор реализовал полусумматор — комбинационную логическую схему, имеющую два входа и два выхода. Полусумматор позволяет вычислять сумму A + B, при этом результатом будут два бита S и C, где S — это бит суммы по модулю 2, а C — бит переноса. В нашей картонной конструкции это означает, что если на входе у нас 1 шарик, то он попадает на выход C, а если на входе 2 шарика, то 1 шарик попадает на выход S, а второй никуда не попадает.

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

    Один шарик на входе полусумматора


    Два шарика на входе полусумматора


    Наконец, настоящим шедевром является сумматор. Обычно его делают из двух полусумматоров и логического вентиля «ИЛИ», но автор реализовал другую конструкцию, которая фактически является небольшой модификацией полусумматора.

    Один шарик на входе — один шарик по пути 1


    Два шарика на входе — один шарик по пути 2


    Три шарика на входе — один шарик по пути 1, а другой по пути 2


    Весь калькулятор целиком состоит из одного полусумматора и трёх сумматоров.



    Калькулятор выдаёт корректный результат вычислений в случае, если шарики падают с правильной скоростью, не слишком быстро и не слишком медленно, и не отскакивают друг от друга. Сама логика безупречна, но на практике калькулятор иногда глючит.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 44

      +1
      Пачинко же!
        +7
        Вот Вам ещё компьютер из домино, если любите подобное:

          +1
          Да, прошу прощения, это я глупый и невнимательный, не заметил ссылку в статье. Можете заслуженно поминусить ;)
            0
            Для таких целей хорошо бы придумать платформу, которая сама могла расставлять костяшки выполняя шаблон из программы и случайных падений можно так избежать.
              0
              Я больше размышлял о электромагнитной доске с костяшками. Но почему-то мне кажется, что будут проблемы с магнитным полем и стоять нормально они после выключения доски не смогут.
                0
                Какие проблемы? Плиту сверху сделать, поле плавно уменьшать.
                0
                Костяшки можно снизу привязать к грузикам, чтобы под их весом костяшки ставали на место (по типу игрушек-зверушек, где снизу нажимаешь на кнопку и она падает, отпускаешь — встает). В рабочем режиме второй пол будет поддерживать грузики, а для сброса — убираться ниже.
              +2
              А ведь такой же почти полноценный компьютер (ну ладно — калькулятор) могли изобрести и растиражировать еще в Древней Греции, если не в Древнем Египте. И история пошла бы по значительно другой траектории.
              Это к мысли о влиянии абсолютно абстрактного знания (в данном случае — бинарной логики) на повседневную жизнь.
              Интересно, через пару тысяч лет не выяснится ли, что нечто такое же простое, объясняемое практически на пальцах, не было известно в наше время?
                0
                Ну, в те времена (ну, не совсем не, но не суть), тоже были определенные устройства для вычислений. https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D1%82%D0%B8%D0%BA%D0%B8%D1%82%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%B7%D0%BC тот же.
                  0
                  Например, что ИИ можно реализовать на костяшках домино)
                  0
                  Возможно квантовые вычисления можно провести и на апельсинах. Просто мы не знаем как.)
                  +1
                  грекам подобные механизмы вполне были известны (ссылку уже привели)
                  Собственно, сама формальная логика как таковая — греческое изобретение.
                  Также грекам был известен еще и паровой двигатель, например. Да и вообще уровень античной науки вполне соответствовал веку эдак XV, а местами так чуть-ли не XVIII. Но что-бы история пошла по значительно другой траектории — античному миру не хватало совсем других вещей (и эти вещи — совсем не вещи). В первую очередь возможности стремительного развития подрывал рабский труд лежащий в основе античной экономики.
                    +1

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


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


                    • Паровой двигатель вроде бы и был, но котел с выбросом пара в атмосферу несколько далёк от реального применения.


                    • Они вполне бы могли использовать фьючерсы и другие финансовые инструменты, но почему-то не додумались до них. (Я хотел упомянуть акции, но не смог найти, когда они были изобретены). Наличие финансовых инструментов потребовало бы быстрой и эффективной передачи информации, что привело бы к улучшению телеграфа и развитию шифрования.
                      0
                      да, это действительно очень интересно — вещи, которые можно сделать и на техноогиях античности, но до которых додумались гораздо, гораздно позднее… ну там косой парус, (а там и летающий планер недалеко) «резинопупырчатые перчатки», морзянка, глаза на задницах коров, блочный лук, каменные своды, гигиена, водка опять же… И прочая, и прочая, и прочая…
                      Что показывает с одной стороны — отсутствие «вмешательсвта извне»/«прогрессорства» в историю Человечества, а с другой стороны — в принципе саму такую возможность, (напр, географическую) — огромное количество современных очень сложных знаний, типа позиционной записи числа или формы профиля крыла, (не гjворя уже о Е=mc2) — легко уносятся в одной голове или записываются на простом носителе
                        0

                        По поводу первых акции. Если источники вики не врут — была такая Голландская Ост-Индская компания в XVII веке. Занимательный кейс.

                          0
                          котел с выбросом пара в атмосферу несколько далёк от реального применения.
                          — а как же паровозы? Что касается финансовых «инструментов», то они прямое следствие спорной идеи брать проценты на проценты, то есть дифференциального исчисления.
                        0
                        В какой-то книжке давно читал про фонограф. Что в принципе материалы и технологии, необходимые для его изготовления, были уже в Древнем Риме. Но не было запроса, что ли, на такое устройство. А так бы Цицерона могли бы послушать.
                          0
                          Изобрести калькулятор вообще не проблема. Сложно сделать его достаточно надёжным и дешёвым, чтобы он пошёл в массы.
                          Собственно, экспериментальные образцы механических калькуляторов (арифмометры Лейбница) появились ещё в XVII веке — а в быт они вошли только в начале XX.
                        • UFO just landed and posted this here
                            +15
                            Вот более аккуратно сделанная вещь:

                            Там у автора ещё несколько устройств.
                              0
                              Эта статья просто открытие для человека не понимающего в логике процессора. Спасибо. Но все-таки не понял, поясните пожалуйста кто может: по какой логике «021 и 2» превратились в 0111 и 0101? Сначала решил что вторая ячейка служит для разряда и двоек и четверок, но тогда второе число с этой логикой не бьется.
                                0

                                Наверху 4 ячейки — три слева, одна справа (особенность реализации). Шарики битов для обоих операндов кладутся в битовые ячейки вместе, т.е.


                                0101
                                0111

                                При реализации для младшего разряда нужно реализовать полусумматор (А0, B0) -> (S0, C0), где Ai, Bi — исходные биты, Si — бит суммы, Ci — бит переноса, а для остальных разрядов — полные сумматоры (Ai, Bi, Ci-1) -> (Si, Ci)`.


                                Таким образом, полусумматор должен пропустить один шарик по пути S, если на входе он был один, и по пути C — если их было изначально два. Сумматор же должен работать так (намеренная почти копипаста из статьи):


                                • один шарик на входе — один шарик по пути S;
                                • два шарика на входе — один шарик по пути C;
                                • три шарика на входе — один шарик по пути S, и ещё один по пути C.
                                  0

                                  Даже правильнее было бы сказать, что внутренняя реализация калькулятора основана на унарной системе счисления

                                    0

                                    "(А0, B0) -> (S0, C0)" — это кхм… "отображение"? Это как человек не знакомый с физикой попросит рассказать в двух словах в чём суть гравитации в современном представлении, а ему в ответ начнут говорить про 4-х мерные тензоры.

                                    0
                                    это не «021 и 2», это 0212, т.е. 0+0, 1+1, 1+0, 1+1, иначе — 0111 + 0101
                                      0
                                      Числа подаются последовательно т.е. сначала 0111, потом сверху 0101. Выглядит это так
                                      0101
                                      0111
                                      А вправо последний разряд смещен т.к. детали механизма не слишком компактны.
                                        +2
                                        Там на самом деле два бинарных числа, если читать построчно:
                                          0
                                          0111
                                          0101
                                          ----
                                          0212
                                          +6
                                          — О боже, да вы промокли насквозь! Принести вам посуду для горячего напитка?
                                          — Да, чашку OR кружку. Можно и то и другое.
                                          — Сахар, ложка нужны?
                                          — Сахар AND ложка. Сахар мне бесполезен без ложки, и наоборот, если сахар закончился, за ложкой можно не ходить.
                                          — Наливаем вам в чашку/кружку чай или кофе?
                                          — Чай ХOR кофе. Если это смешать, получится гадость.
                                          — Лимон, молоко?
                                          — Лимон NAND молоко. С удовольствием попью чай просто так, от добавки лимона или молока не откажусь, но не то и другое сразу!
                                          — …
                                          — Э… Официант! Вы NOT заснули? Скажите «да»!
                                            0
                                            Спасибо, сохранил для объяснения базовых логических операций людям :D
                                            +3
                                            Представляю, как он правильность задержек отлаживать…
                                              0
                                              «Самым известным» механическим калькулятором является не Антикерский Механизм, а старый добрый абакус.
                                              Самым распространенным тоже.

                                              Но да, выглядит не так завораживающе, хотя, в советские времена движения костяшек под пальцами кассирши в студенческой столовой, высчитывающей за секунды сумму скромного обеда голодного студента завораживали больше, чем все эти механизмы.
                                                +1
                                                А еще есть такая интересная штука, как пневмоника .
                                                Позволяет создавать автоматику, работающую на сжатом воздухе. В составе элементной базы весь базовый набор логики. Скорость переключения элементов — до нескольких тысяч в секунду. Размеры — на уровне транзисторных компьютеров второго поколения. Можно штамповать несколько логических элементов на одной пластине. При этом почти полная независимость от температуры, электромагнитных помех и радиационного фона…
                                                P.S. Калькулятор замечательный. Автору респект за смекалку!
                                                  0

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


                                                  Если верить википедии, в процессоре 8008 было около 3500 транзисторов — теоретически, что-нибудь похожее можно было бы сделать и на пневмонике, только частота была бы меньше.

                                                    0
                                                    Я тоже, когда прочитал пару лет назад о пневмонике (а это как раз была статья в «Науке и жизни» 1965 года), сразу подумал, какая это была бы классная фишка в рамках стимпанка.
                                                    В принципе, можно даже дисплей для такого компьютера придумать. Матрица из отверстий, закрытых легкими белыми клапанами. Когда воздух выходит из отверстия, клапан поднимается и видится черная точка. Когда воздух не идет — белая.

                                                    Кстати, в 4004 было еще меньше транзисторов — 2300. А некоторые энтузиасты и сейчас разрабатывают и строят четырехбитные процессоры на дискретной логике.
                                                    0
                                                    Вы, кстати, случайно не знаете, существуют ли по пневмонике современные книги?
                                                    Интересно было бы почитать — благо, с появлением 3D принтеров ей можно было бы придать вторую жизнь.
                                                      +1
                                                      Она сейчас называется «струйная логика», или «струйная техника». Книжки и статьи есть сравнительно свежие.
                                                      Вот, например, доклад на конференции. 2013 год.
                                                      Книжек не очень много, но тоже есть.
                                                      Из классики.
                                                      Чудиков А.Д. Цифровые устройства пневмоники. // М. Энергия, 1971. Есть здесь
                                                      Чаплыгин Э.И. и др., Опыт разработки и внедрения струйных систем управления. // Пневмоавтоматика .- М.: Наука, 1974.
                                                      Из относительно свежих книг:
                                                      А.М. Касимов, Развитие пневматических средств автоматизации. / Институт проблем управления им. В.А.Трапезникова // — Москва .- 2000
                                                      Кулешова Н.А., Власов Ю.Д., Леладзе И.С. Атлас конструкций элементов систем пневмоавтоматики. Часть 2 Элементы струйной системы ВОЛГА // — М.: .- 1996 г.

                                                      Да, а еще есть настоящий пневматический процессор. Это правда не струйная логика и скорость его работы весьма невысока, но сам факт!

                                                    +1
                                                    А ещё гидротрансформаторная АКПП работает на гидрологике. Там за это отвечает гидроблок.
                                                      0
                                                      Зачем разряд повысили на выходе? 5 разряд — в мусорку. 4 бит на входе, 4 бит на выходе. Остальное — потеря при вычислениях =)
                                                      Отечественная микроэлектроника именно такие сумматоры пытается создать. Правда 8 разрядные.
                                                        +1

                                                        Основы Булевой алгебры описывается и объясняется на 2-3 страницах. Без всяких мудровствований. И зачем нужна физическая интерпретация абстрактному набору правил? Какая между ними связь? Элементарные булевы операции нужно просто запомнить — их очень мало, меньше десятка.


                                                        Более мутного объяснения булевой алгебры и представить трудно.
                                                        Всё это придумывается только с одной целью — задурить детям голову и привить им отвращение к математике и логике. Вижу процесс идёт.

                                                          0
                                                          Ну хрен знает, может люди просто в качестве хобби такими вещами занимаются.
                                                          0
                                                          Большое спасибо! Мне, как человеку, которому часто важно «потрогать, чтобы лучше понять», подобные примеры очень полезны!

                                                          Only users with full accounts can post comments. Log in, please.